Jump to content

Iptables на другой машине


Recommended Posts

Хочу сделать так, чтобы при достижении отрицательного баланса (после снятия абонплаты) юзеру закрывался доступ не только в Интернет, но и к гейм и фтп серверам. Проблема в том, что они находятся на разных машинах, и этот трафик, естественно не проходит через старгейзер.

У меня есть кое-какие мыслb, но реализовать не смогу. ИМХО, нужно написать скрипт, который при помощи консольного конфигуратора будет проверять состояние счета, и на его основании будет управлять файерволом.

Если кто уже такое делал - напишите как, если нет - давайте подумаем, помоему фишка заслуживает внимания.

 

ОСь - ASPLinux 9

Link to post
Share on other sites

Та да, это вопрос очень интересный, ведь скрипты OnConnect, OnDisconnect одни для всех, а доступ к геймам, фтп ит.д. имеют не все.

Link to post
Share on other sites

а что скрипты настроены на определенные порты (типа 80 3128 и email)?

если подумать логически - запрещается коннект для IP а не для IP+port

или у вас другая система ?

Link to post
Share on other sites

Смотри схему сети:

 

С <- фтп-сервер

В <- Шлюз (ПК+Линух+Stargazer) <- Инет

И <- Гейм-сервер (ПК+Линух)

Ч <- Абоненты

 

Имеем три компа. СТГ только на одном. Все компы подключены к одному свичу, туда же включаются магистрали.

 

Нужно, чтобы при отрицательном балансе абонента (база абонентов находится на шлюзе) его ИП запрещался не только на шлюзе, но и на гейм и фтп сервере.

 

Т.е. если юзер не заплатил абонентку (снимается раз в месяц, естественно если сумма на счету меньше абонплаты, то баланс будет отрицательным) то ему отрезается доступ и к нету, и ко внутренним ресурсам сети.

Link to post
Share on other sites
скрипты OnConnect, OnDisconnect одни для всех

 

Разве?

А по-моему можно использовать отдельные для каждого юзера... Хотя сам никогда не использовал...

Link to post
Share on other sites

ИМХО жестоко как-то выходит...... не заплатил за инет нет и внутренних ресурсов..

 

А вобще возможно такое решение

 

С <- фтп-сервер

В <- Шлюз (ПК+Линух+Stargazer) <- Абоненты

И <- Гейм-сервер (ПК+Линух)

Ч

 

 

Грубо говоря вынести серваки в отдельную сеть и гнать трафик к серверам через роутер поднятый на твоем инет серваке..

при этом прописать в старгазере тариф для их айпишников 0.0

конечно неудобно, но работать будет..

Link to post
Share on other sites
ИМХО жестоко как-то выходит...... не заплатил за инет нет и внутренних ресурсов..

 

Да нет же. Если только абонплату не заплатил, тогда внутренних ресурсов не видать...

 

 

А вобще возможно такое решение

 

С <- фтп-сервер

В <- Шлюз (ПК+Линух+Stargazer) <- Абоненты

И <- Гейм-сервер (ПК+Линух)

Ч

 

 

Грубо говоря вынести серваки в отдельную сеть и гнать трафик к серверам через роутер поднятый на твоем инет серваке..

при этом прописать в старгазере тариф для их айпишников 0.0

конечно неудобно, но работать будет..

 

Очень не удобно: вся нагрузка в этом случае идет на гейт, а этого очень не хочется... Не подходит, в общем.

Link to post
Share on other sites

1. если траффик не проходит через СТГ то соответственно и не регулируется им

2. управлением таким траффиком можно сделать либо управляемым свитчем либо отдельной софтиной на ФТП, Гейм-сервере по приказанию стг

 

насколько я понимаю абонплата в СТГ снимается автоматом со счета клиента - и соответственно если пользователь не оплатил инет - то инета нету

можно включить в скрипты он-коннект и он-дисконнект строчку с передаваемыми правилами на сервак ФТП

 

при этой схеме человек для доступа к серверам будет запускать авторизатор

есть инет

есть ФТП

есть Геймы

ни хочешь инет - не лазий - пользуй тока ФТП и т. д.

 

нет денег - нет ни инета ни геймов (что канечно тоже минус)

Link to post
Share on other sites
насколько я понимаю абонплата в СТГ снимается автоматом со счета клиента - и соответственно если пользователь не оплатил инет - то инета нету

можно включить в скрипты он-коннект и он-дисконнект строчку с передаваемыми правилами на сервак ФТП

 

при этой схеме человек для доступа к серверам будет запускать авторизатор

есть инет

есть ФТП

есть Геймы

ни хочешь инет - не лазий - пользуй тока ФТП и т. д.

 

Нет, эта схема не подходит. ФТП и Геймы должны быть доступны всегда (без использования авторизатора). Ну и, естественно,

нет денег - нет ни инета ни геймов (что канечно тоже минус)
Совсем не гуд...

 

ИМХО, на внутренних серверах должен стоять скрипт, проверяющий деньги на счету у пользователя. Денег меньше нуля, тогда доступ запрещаем, денег больше или равно 0, тогда доступ разрешаем. Скрип должен выполняться несколько раз в день (для того чтобы разрешать доступ юзерам, которые поздно пополнили счет).

 

Вот такая идейка. Если кто подскажет ее реализацию, буду очень благодарен.

Link to post
Share on other sites
Вот такая идейка. Если кто подскажет ее реализацию, буду очень благодарен.

В общем, скрипт, который проверяет остаток денег на счету, должен быть на шлюзе, на котором СТГ стоит. Если обнаруживается, что у пользователь Вася подпадает под наши санкции для неплательщиков, то выполняем rsh game_server_ip iptables -A INPUT -s $IP_ВАСИ -j DROP. Ну и аналогично, для включения. Это, конечно, если ты поставил rshd и настроил его.

Кстати, очень легко можно научить старгазер выполнять эти команды на автомате, при обнаружении минусового баланса.

Link to post
Share on other sites

Впринципе я все понял. Спасибо большое! :)

 

Кстати, очень легко можно научить старгазер выполнять эти команды на автомате, при обнаружении минусового баланса.

 

Если очень легко, не мог бы ты это сделать?

Link to post
Share on other sites

Значит мою тему не обсуждали.

А кто знает, как для каждого юзера использовать отдельные OnConnect, OnDisconnect?

Это для того, чтобы для тех, кто ПЛАТИТ отдельную абонку за доступ к ФТП и геймам, был доступ к ним, а к инету доступ на общих основаниях.

Link to post
Share on other sites

Если для каждого юзера писать свои скрипы, не слишком ли много придётся писать? :)

Но можно ведь сделать так: пусть все юзеры равны, но некоторые равнее других : :) , тогда в скрипте OnConnet OnDisconnect надо просто синтезировать имя файла например так: PrivUser="${0}_${1}" и затем при наличие этого файла выполнить его, как то так примерно: if [ -x "$PrivUser" ] ; then $PrivUser "$*" ; fi

 

Тогда если ты создашь файл типа OnConnect_Vasya и юзер Vasya выполнит авторизацию, указанный файл должен исполнится. (ИМХО)

Link to post
Share on other sites
Если для каждого юзера писать свои скрипы, не слишком ли много придётся писать?

 

Оччччень много. Поэтому не подходит.

 

 

Но можно ведь сделать так: пусть все юзеры равны, но некоторые равнее других

 

У меня все равны, все платят абонплату (должны платить). А вот кто ее не заплатил, пусть сидит и курит...

Link to post
Share on other sites
А кто знает, как для каждого юзера использовать отдельные OnConnect, OnDisconnect?

Зачем отдельные? Логин пользователя передается одним из параметров в скрипты OnConnect и OnDisconnect, а там уже исходя из полученного логина, делать то, что тебе нужно. Сами скрипты можно писать хоть на perl'е.

Link to post
Share on other sites
А кто знает, как для каждого юзера использовать отдельные OnConnect, OnDisconnect?

А зачем отдельные?

Просто наворачиваешь скрипт типа IF user=kozel then ну его ...

Пожалуй можно не только на shell, но и на перле налабать такое...

 

Есть вопрос по фаервольным правилам для СТГ 1.4.х к общественности:

Нужно чтобы был доступ с самбе и DHCP.

Что-то подогнать стандартные скрипты не удается. Открываю 137-139 порты, все-равно самба не видится, соответсвенно невидится вся сеть...

Достаточно ли закрывать цепочки FORWARD в таблице filter и POSTROUTING nat?

А то какие-то глюки начали вылазить (деваются деньги) , причину понять не могу, происходит в мое отсутсвие...может хацкеры завелись, однако...

Link to post
Share on other sites

Я просто тащусь два почти одинаковых сообщения. Пока писал свое, колега отпостился....

Почти коллективный разум...

Так что вероятность того что это напрвление мысли увеличивается!

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...