vitiv Опубликовано: 10 січня, 2010 Опубликовано: 10 січня, 2010 Два сетевых интерфейса WAN 139.0.0.5 берёт инет с роутера LAN 192.168.1.5 для 5-ти пользователей домашней сети Stargazer версии 2.405.9.8 для CentOS 5.2 _http://stg.dp.ua/server_dl.php?show=2.405.9.8 Установка прошла успешно, пингуются оба интерфейса, Stargazer Configurator подключается к 192.168.1.5 порт 5555 по умолчанию Login: admin Passw:123456 Создаются пользователи и подключаются с помощью авторизатора - InetAccess Документация _http://stargazer.dp.ua/doc20.php изучена, уделено отдельное внимание _http://stargazer.dp.ua/doc20/conf_example_linux.html После изменения конфигов, по предложенному примеру, нарушается работа SRG сервера...видимо, со времени создания и модернизирования версий скрипты стали отличаться по содержанию... В существующей ситуации возникает вопрос, какие необходимо вписать данные - правила в конфигурационные файлы /etc/stargazer/ OnConnect OnDisconnect OnChange rules stargazer.conf и т.д. чтобы получить инет на сетевом интерфейсе 192.168.1.5
vitiv Опубліковано: 10 січня, 2010 Автор Опубліковано: 10 січня, 2010 OnChange login=$1param=$2 oldValue=$3 newValue=$4 #echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/stargazer/users.chg.log OnConnect login=$1param=$2 oldValue=$3 newValue=$4 #echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/stargazer/users.chg.log OnDisconnect # LoginLOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to disconnect DIRS=$4 #echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log rules ALL 192.168.1.1 DIR1 ALL 139.0.0.2 DIR1 ALL 0.0.0.0/0 DIR0
vitiv Опубліковано: 10 січня, 2010 Автор Опубліковано: 10 січня, 2010 stargazer.conf # Имя лог-файла куда пишутся события LogFile = /var/log/stargazer.log # Имя файла в котором определяются правила подсчета трафика Rules = /etc/stargazer/rules # Время через которое пишется d БД детальная статистика пользователя # Значения: 1, 1/2, 1/4, 1/6. # 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин DetailStatWritePeriod=1/6 # Периодичность записи записи в БД информации о статистике пользователя (минуты) # При большом кол-ве пользователей эту величину стоит увеличить, т.к. # запись в БД может занимать длительное время. # Значения: 1...1440 (минуты) StatWritePeriod = 10 # День снятия абонплаты # Значения: 0...31. 0 - Последний день месяца DayFee = 1 # Абонплата снимается в последний (yes) или первый (no) день учетного периода. # Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф. # Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200, # то при переходе на новый тариф со счета пользователя снимется 100, если # DayFeeIsLastDay = yes и 200, если DayFeeIsLastDay = no DayFeeIsLastDay = yes # День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы # Значения: 0...31. 0 - Последний день месяца DayResetTraff = 1 # "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый # день 1/30 или 1/31 части АП # Значения: yes, no SpreadFee = no # Данная опция определяет может ли пользователь получить доступ в интерент # если у него на счету нет денег, но остался предоплаченный трафик # Значения: yes, no FreeMbAllowInet = no # Эта опция определяет что будет писаться в стоимость трафика в detail_stat. # Если у пользователя еще есть предоплаченный трафик и WriteFreeMbTraffCost = no, # то в detail_stat стоимость будет 0. Если у пользователя уже нет # предоплаченного трафика и WriteFreeMbTraffCost = no, то в detail_stat # будет записана стоиость трафика. При WriteFreeMbTraffCost = yes стоимость # трафика будет записана в любом случае. WriteFreeMbTraffCost = no # Необязательный параметр. Указывает снимать полную абонплату у пользователя даже # если он быз заморожен только часть учетного периода. # По умолчанию установлен в no # FullFee=no # Необязательный параметр указывающий показывать на счету и позволять # использовать пользователю абонплату. По умолчанию установлен в yes # ShowFeeInCash=yes # Названия направлений. Направления без названий не будут отображаться в # авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны # быть взяты в кавычки <DirNames> DirName0 = Локаль DirName1 = Город DirName2 = Мир DirName3 = DirName4 = DirName5 = "Локальные игры" DirName6 = DirName7 = DirName8 = DirName9 = </DirNames> # Кол-во запускаемых процессов stg-exec. # Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ... # Кол-во процессов означает сколько скриптов могут выполнятся одновременно. # Значения: 1...1024 ExecutersNum = 1 # Message Key для stg-exec. # Идентификатор очереди сообщений для выполнятеля скриптов. # Его изменение может понадобится если есть необходимость запустить несколько # экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр! # Значения: 0...2^32 # Значение по умолчанию: 5555 # ExecMsgKey = 5555 # Путь к директории, в которой находятся модули сервера ModulesPath = /usr/lib/stg # Определяет директорию, в которой будут находится файлы "монитора" # работы сервера. В этой директории будут созданы пустые файлы, время # модификации которых будет меняться примерно раз в минуту. Если какой-то # компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому # признаку можно определить сбой в работе сервера и при надобности # перезапустить. Если параметр не указан или пустой, мониторинг производится # не будет. Параметр не является обязательным, по умолчанию пустой. # MonitorDir=/var/stargazer/monitor ################################################################################ # Store module # Настройки плагина работающего с БД сервера # Второй параметр - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_store_files.so <StoreModule store_files> # Рабочая директория сервера, тут содержатся данные о тарифах, пользователях, # администраторах и т.д. WorkDir = /var/stargazer # Владелец, группа и права доступа на файлы статистики (stat) пользователя ConfOwner = root ConfGroup = root ConfMode = 600 # Владелец, группа и права доступа на файлы конфигурации (conf) пользователя StatOwner = root StatGroup = root StatMode = 640 # Владелец, группа и права доступа на лог-файлы (log) пользователя UserLogOwner = root UserLogGroup = root UserLogMode = 640 </StoreModule> #<StoreModule store_firebird> # # Адрес сервера БД # server=localhost # # # Путь к БД на сервере или ее алиас # database=/var/stg/stargazer.fdb # # # Имя пользователя БД # user=stg # # # Пароль пользователя БД # password=123456 #</StoreModule> #<StoreModule store_mysql> # # Имя пользователя БД # dbuser = stg # # # Пароль пользователя БД # rootdbpass = 123456 # # # Имя БД на сервере # dbname = stg # # # Адрес сервера БД # dbhost = localhost #</StoreModule> ################################################################################ # Прочие модули <Modules> # Настройки плагина авторизации Always Online "mod_auth_ao.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_auth_ao.so <Module auth_ao> </Module> # Настройки плагина авторизации InetAccess "mod_auth_ia.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце # Т.е. полное имя модуля mod_auth_ia.so <Module auth_ia> # Порт на котором принимаются обращения от авторизатора # Значения: 1...65534 Port = 5555 # Время между посылками запроса пользователю жив ли он # и обновлением данных статистики (секунды) # Значения: 5...600 UserDelay = 15 #Таймаут для пользователя. Если в течение этого времени авторизатор #не отвечает, пользователь будет отключен # Значения: 15...1200 UserTimeout = 65 # Этот параметр определяет что будет передаваться программе InetAccess от сервера # как отстаток предоплаченного трафика # Значения: # FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления # FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления # FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления # FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления # ........................ # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления # FreeMb = cash - кол-во денег на которые юзер может бесплатно качать # FreeMb = none - ничего не передавать FreeMb = cash </Module> # Модули можно использовать несколько раз с разными параметрами #<Module auth_ia> # Port = 7777 # UserDelay = 15 # UserTimeout = 65 # FreeMb = 0 #</Module> # Настройки модуля конфигурации SgConfig "mod_conf_sg.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце <Module conf_sg> # Порт по которому сервер взаимодействует с конфигуратором # Значения: 1...65535 Port = 5555 </Module> # Модуль захвата трафика "mod_cap_ether.so" # Второй параметер - это имя модуля без mod_ в начале и .so в конце # Без параметров. Только имя модуля. <Module cap_ether> # Модуль без параметров </Module> # Настройки модуля пингующего пользователей "mod_ping.so" # Второй параметр - это имя модуля без mod_ в начале и .so в конце <Module ping> # Время, в секундах, между пингами одного и того же пользователя # Значения: 10...3600 PingDelay = 15 </Module> # # Настройки модуля для удаленного выполнения скриптов OnConnect и # # OnDisconnect "mod_remote_script.so" # # Второй параметр - это имя модуля без mod_ в начале и .so в конце # <Module remote_script> # # # Время, в секундах, между посылками подтверждений, того, что пользователь # # всё еще онлайн # # Значения: 10...600 # SendPeriod = 15 # # # Соответствие подсетей, в которой находится пользователь и # # соответствующего роутера. Первая часть строки - подсеть, заданная # # как IP-адрес и маска, через пробел - IP-адрес роутера на котором # # должны выполняться скрипты # # Например эта запись "192.168.1.0/24 192.168.1.1" означает, что для # # всех пользователей из подсети 192.168.1.0/24, скрипты будут # # выполняться на роутере с адресом 192.168.1.1 # # Subnet0...Subnet100 # Subnet0 = 192.168.1.0/24 192.168.1.7 # Subnet1 = 192.168.2.0/24 192.168.2.5 # Subnet2 = 192.168.3.0/24 192.168.2.5 # Subnet3 = 192.168.4.0/24 192.168.2.5 # # # Пароль для шифрования пакетов между stg-сервером и сервером, # # выполняющим скрипты # Password = 123456 # # # Этот параметр определяет какие параметры пользователя передаются # # на удаленный сервер # # Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName, NextTariff, Address, # # Note, Group, Email, RealName, Credit, EnabledDirs, Userdata0...Userdata9 # UserParams=Cash Tariff EnabledDirs # # # Порт по которому сервер отсылает сообщения на роутер # # Значения: 1...65535 # Port = 9999 # # </Module> # <Module radius> # Password = 123456 # ServerIP = 127.0.0.1 # Port = 6666 # AuthServices = Login-User # AcctServices = Framed-User # </Module> </Modules>
Drool Опубліковано: 10 січня, 2010 Опубліковано: 10 січня, 2010 Вот тут лежит пакетик stargazer-doc-2.405.9.8-alt2.6.noarch.rpm, расковыряйте его и посмотрите в нем examlpes, там есть готовые конфиги с боевого сервера. Мелочи могут отличаться из-за другого дистрибутива.
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 Вот тут лежит пакетик stargazer-doc-2.405.9.8-alt2.6.noarch.rpm, расковыряйте его и посмотрите в нем examlpes, там есть готовые конфиги с боевого сервера. Мелочи могут отличаться из-за другого дистрибутива. Благодарю, конфиги просмотрел, учёл все рабочие пути, в том числе для файла /etc/rc.d/rc.local /etc/stargazer/fw /usr/sbin/stargazer часть правил проверена и работает, ping на внешний адрес сервера - 139.0.0.5 проходит, доступ админа по SSH есть... инет пока не проходит, причина не понятна... fw #!/bin/sh # #Машина в офисе #office=192.168.0.2 #Машина администратора admin=192.168.1.30 #Адреса роутера server0=192.168.1.5 server1=139.0.0.5 # Интерфейс смотрящий на клиентов iface_cli=eth0 # Интерфейс смотрящий во внешний мир iface_world=eth1 # Подсеть клиентов net_cli=192.168.1.0/24 #Порты, на которых работает конфигуратор и авторизатор conf_port=5555 user_port1=5555 user_port2=5555 # Разрешаем форвардинг пакетов между интерфейсами # Эта штука необязательна, просто в некоторых дистрибутивах # по умолчанию форвардинг разрешен, а в некоторых - запрещен # Если мы подстрахуемся, хуже не бкдет echo "1" > /proc/sys/net/ipv4/ip_forward # Очищаем правила файрвола iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X # Политика по умолчанию DROP: всем всё запрещено iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Разрешаем пингам ходить всюду и всегда iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A FORWARD -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Разрешаем всё на локальном интерфейсе iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT # Разрешить серверу общаться со внешним миром iptables -t filter -A INPUT -i $iface_world -j ACCEPT iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT # DNS. Замечу, ДНС работает и по TCP и по UDP iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT # Разрешаем админу и машине в офисе доступ по SSH #iptables -t filter -A INPUT -p tcp -s $office -d $server0 --dport 22 -j ACCEPT #iptables -t filter -A OUTPUT -p tcp -d $office -s $server0 --sport 22 -j ACCEPT iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT #Разрешаем все админу и офису #Раскоментируйте то что надо #Админу iptables -t filter -A INPUT -s $admin -j ACCEPT iptables -t filter -A FORWARD -s $admin -j ACCEPT iptables -t filter -A FORWARD -d $admin -j ACCEPT iptables -t filter -A OUTPUT -d $admin -j ACCEPT #Офису #iptables -t filter -A INPUT -s $office -j ACCEPT #iptables -t filter -A FORWARD -s $office -j ACCEPT #iptables -t filter -A FORWARD -d $office -j ACCEPT #iptables -t filter -A OUTPUT -d $office -j ACCEPT # Stargazer configurator iptables -t filter -A INPUT -p tcp -s $net_cli -d $server0 --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $net_cli -s $server0 --sport $conf_port -j ACCEPT # UDP stargazer InetAccess iptables -t filter -A INPUT -p udp -s $net_cli --sport $user_port2 -d $server0 --dport $user_port1 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d $net_cli --dport $user_port1 -s $server0 -j ACCEPT #В моем примере еще используется прозрачный прокси сервер squid если он не нужен закоментируйте эти 2 строки #Разрешаем всем локальный HTTP сервер iptables -t filter -A INPUT -p tcp -s $net_cli -d $server0 --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $net_cli -s $server0 --sport 80 -j ACCEPT #Маскарад iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE #Тоже относится к прокси серверу. Если не надо то закоментируйте. Если прокси использует другой порт то измените 3128 на него. iptables -t nat -A PREROUTING -i eth1 -p tcp -d ! $server0 --dport 80 -j REDIRECT --to-port 3128 OnChange login=$1 param=$2 oldValue=$3 newValue=$4 #echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/stargazer/users.chg.log OnConnect #Этот скрипт вызывается в момент, когда пользователь #успешно прошел авторизацию на сервере. Задача скрипта - перестроить #файрвол так, что бы пользователь получил доступ в интернет # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect DIRS=$5 echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log iptables -t filter -A INPUT -s $IP -j ACCEPT iptables -t filter -A FORWARD -s $IP -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT iptables -t filter -A OUTPUT -d $IP -j ACCEPT OnDisconnect # Этот скрипт вызывается в момент, когда пользователь # желает отключится от интернета или вышел таймаут у пользователя # и сервер сам отключает пользователя # Задача скрипта подобна задаче скрипта OnConnect - перестроить # файрвол так, что бы пользователю закрыть доступ в интернет # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to disconnect #DIRS=$4 echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log iptables -t filter -D INPUT -s $IP -j ACCEPT while [ $? -eq 0 ] do iptables -t filter -D INPUT -s $IP -j ACCEPT done ################################## iptables -t filter -D FORWARD -s $IP -j ACCEPT while [ $? -eq 0 ] do iptables -t filter -D FORWARD -s $IP -j ACCEPT done ################################## iptables -t filter -D FORWARD -d $IP -j ACCEPT while [ $? -eq 0 ] do iptables -t filter -D FORWARD -d $IP -j ACCEPT done ################################## iptables -t filter -D OUTPUT -d $IP -j ACCEPT while [ $? -eq 0 ] do iptables -t filter -D OUTPUT -d $IP -j ACCEPT done stargazer.conf Ничем не отличается от установленного rules ALL 192.168.1.5 DIR0 ALL 139.0.0.5 DIR0 учитывая прочитанное _http://stargazer.dp.ua/doc20/conf_rules.html считает трафик с указанного интерфейса и т.д. видимо к моей проблеме, отсутствие инета на 192.168.1.5(LAN), отношения не имеет, т.е. пользователь авторизируется, а инет не получает... Настройки сетевых карт(инет на самом сервере присутствует): WAN-Внешний интерфейс IP 139.0.0.5 Mask 255.255.255.0 Gateway 139.0.0.1 Nameserver 139.0.0.1 LAN-Внутренний IP 192.168.1.5 Mask 255.255.255.0 [vitiv@localhost ~]$ ping ya.ru PING ya.ru (77.88.21.8) 56(84) bytes of data. 64 bytes from ya.ru (77.88.21.8): icmp_seq=1 ttl=54 time=44.4 ms 64 bytes from ya.ru (77.88.21.8): icmp_seq=2 ttl=54 time=42.1 ms 64 bytes from ya.ru (77.88.21.8): icmp_seq=3 ttl=54 time=43.7 ms 64 bytes from ya.ru (77.88.21.8): icmp_seq=4 ttl=54 time=44.4 ms 64 bytes from ya.ru (77.88.21.8): icmp_seq=5 ttl=54 time=43.6 ms
madf Опубліковано: 11 січня, 2010 Опубліковано: 11 січня, 2010 Посмотри состояние файрвола после авторизации клиента. $ iptables -nL $ iptables -t nat -nL И еще, форвардинг включен? $ cat /proc/sys/net/ipv4/ip_forwarding должно показать 1. Если 0 то нужно сделать $ echo 1 > /proc/sys/net/ipv4/ip_forwarding либо настроить это в /etc/sysctl.conf
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 Посмотри состояние файрвола после авторизации клиента. $ iptables -nL $ iptables -t nat -nL На эти команды точно ответить пока не могу, не выполняются... iptables status [root@localhost /]# /etc/rc.d/init.d/iptables status Таблица: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination Chain POSTROUTING (policy ACCEPT) num target prot opt source destination 1 MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Таблица: filter Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 127.0.0.1 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53 5 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 6 ACCEPT tcp -- 192.168.1.30 192.168.1.5 tcp dpt:22 7 ACCEPT all -- 192.168.1.30 0.0.0.0/0 8 ACCEPT tcp -- 192.168.1.0/24 192.168.1.5 tcp dpt:5555 9 ACCEPT udp -- 192.168.1.0/24 192.168.1.5 udp spt:5555 dpt:5555 10 ACCEPT tcp -- 192.168.1.0/24 192.168.1.5 tcp dpt:80 Chain FORWARD (policy DROP) num target prot opt source destination 1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 4 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 5 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 6 ACCEPT all -- 192.168.1.30 0.0.0.0/0 7 ACCEPT all -- 0.0.0.0/0 192.168.1.30 Chain OUTPUT (policy DROP) num target prot opt source destination 1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT all -- 127.0.0.1 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 5 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 6 ACCEPT tcp -- 192.168.1.5 192.168.1.30 tcp spt:22 7 ACCEPT all -- 0.0.0.0/0 192.168.1.30 8 ACCEPT tcp -- 192.168.1.5 192.168.1.0/24 tcp spt:5555 9 ACCEPT udp -- 192.168.1.5 192.168.1.0/24 udp dpt:5555 10 ACCEPT tcp -- 192.168.1.5 192.168.1.0/24 tcp spt:80 И еще, форвардинг включен? $ cat /proc/sys/net/ipv4/ip_forwarding должно показать 1. Если 0 то нужно сделать $ echo 1 > /proc/sys/net/ipv4/ip_forwarding либо настроить это в /etc/sysctl.conf Показывает 1 [root@localhost /]# cat /proc/sys/net/ipv4/ip_forward 1
madf Опубліковано: 11 січня, 2010 Опубліковано: 11 січня, 2010 Как это команды не выполняются? Так у тебя и файрвол не модифицируется по этому, и инет юзеры не получают.
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 Как это команды не выполняются? Так у тебя и файрвол не модифицируется по этому, и инет юзеры не получают. я об этом задумался, просветление пока не наступило [root@localhost /]# /etc/rc.d/init.d/iptables -nL Применение: /etc/rc.d/init.d/iptables {start|stop|restart|condrestart|status|panic|save} [root@localhost /]# /etc/rc.d/init.d/iptables -t nat -nL Применение: /etc/rc.d/init.d/iptables {start|stop|restart|condrestart|status|panic|save} тыкс сорри...
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 клиент авторизирован по 192.168.1.35 [root@localhost vitiv]# /sbin/iptables -t nat -nL Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@localhost vitiv]# /sbin/iptables -nL Chain INPUT (policy DROP) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 127.0.0.1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 ACCEPT tcp -- 192.168.1.30 192.168.1.5 tcp dpt:22 ACCEPT all -- 192.168.1.30 0.0.0.0/0 ACCEPT tcp -- 192.168.1.0/24 192.168.1.5 tcp dpt:5555 ACCEPT udp -- 192.168.1.0/24 192.168.1.5 udp spt:5555 dpt:5555 ACCEPT tcp -- 192.168.1.0/24 192.168.1.5 tcp dpt:80 Chain FORWARD (policy DROP) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ACCEPT all -- 192.168.1.30 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 192.168.1.30 Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 127.0.0.1 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ACCEPT tcp -- 192.168.1.5 192.168.1.30 tcp spt:22 ACCEPT all -- 0.0.0.0/0 192.168.1.30 ACCEPT tcp -- 192.168.1.5 192.168.1.0/24 tcp spt:5555 ACCEPT udp -- 192.168.1.5 192.168.1.0/24 udp dpt:5555 ACCEPT tcp -- 192.168.1.5 192.168.1.0/24 tcp spt:80
madf Опубліковано: 11 січня, 2010 Опубліковано: 11 січня, 2010 1. Попробуй добавить в скрипты On* шабанг: #!/bin/sh 2. Попробуй добавить права выполнения скриптам. 3. Попробуй запустить их вручную и посмотреть добавляются ли правила в файрвол.
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 1. Попробуй добавить в скрипты On* шабанг: #!/bin/sh 2. Попробуй добавить права выполнения скриптам. Сразу обратил внимание, прописал... 3. Попробуй запустить их вручную и посмотреть добавляются ли правила в файрвол. Вот в этом файле похоже загвоздка [root@localhost /]# /etc/stargazer/OnConnect /etc/stargazer/OnConnect: line 24: iptables: команда не найдена /etc/stargazer/OnConnect: line 25: iptables: команда не найдена /etc/stargazer/OnConnect: line 26: iptables: команда не найдена /etc/stargazer/OnConnect: line 27: iptables: команда не найдена #!/bin/bash # Login #LOGIN=$1 #user IP IP=$2 #cash #CASH=$3 #user ID #ID=$4 #Selected dirs to connect #DIRS=$5 echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log # !!! как раз начало 24 строки iptables -t filter -A INPUT -s $IP -j ACCEPT iptables -t filter -A FORWARD -s $IP -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT iptables -t filter -A OUTPUT -d $IP -j ACCEPT
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 изменил в файле путь к iptables /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT [root@localhost vitiv]# /etc/stargazer/OnConnect Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information.
madf Опубліковано: 11 січня, 2010 Опубліковано: 11 січня, 2010 изменил в файле путь к iptables /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT [root@localhost vitiv]# /etc/stargazer/OnConnect Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Ну да, ты ж параметры скрипту не передал, вот он и ругается. Проверь, может все уже работает.
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 изменил в файле путь к iptables /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT [root@localhost vitiv]# /etc/stargazer/OnConnect Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Ну да, ты ж параметры скрипту не передал, вот он и ругается. Проверь, может все уже работает. Как передать параметры скрипту? Что под этим подразумевается? Ребут сервера, авторизация пользователя есть-инет не проходит... В данный момент OnConnect вот такого вида #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect DIRS=$5 echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT
madf Опубліковано: 11 січня, 2010 Опубліковано: 11 січня, 2010 изменил в файле путь к iptables /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT [root@localhost vitiv]# /etc/stargazer/OnConnect Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Bad argument `ACCEPT' Try `iptables -h' or 'iptables --help' for more information. Ну да, ты ж параметры скрипту не передал, вот он и ругается. Проверь, может все уже работает. Как передать параметры скрипту? Что под этим подразумевается? Ребут сервера, авторизация пользователя есть-инет не проходит... В данный момент OnConnect вот такого вида #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect DIRS=$5 echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT Ну вобще-то ребутить сервер не нужно, это не Windows. Не нужно даже Stargazer перезапускать. А передать параметры можно так: $ /etc/stargazer/OnConnect foo 192.168.1.35
vitiv Опубліковано: 11 січня, 2010 Автор Опубліковано: 11 січня, 2010 Ну вобще-то ребутить сервер не нужно, это не Windows. Не нужно даже Stargazer перезапускать Это было профилактическое действие А передать параметры можно так: $ /etc/stargazer/OnConnect foo 192.168.1.35 Результат передачи параметров [root@localhost vitiv]# /etc/stargazer/OnConnect foo 192.168.1.35 /etc/stargazer/OnConnect: line 22: /var/stargazer/users/foo/connect.log: Нет такого файла или каталога Дополнительно создан каталог foo и файл connect.log Повторное введение параметров прописало в /var/stargazer/users/foo/connect.log C 2010.01.10-17.57.02 192.168.1.35 C 2010.01.10-17.58.07 192.168.1.35 при этом ничего не изменилось...
vitiv Опубліковано: 12 січня, 2010 Автор Опубліковано: 12 січня, 2010 А файрвол? Не меняется? Нет... для выяснения работы правил фаервола, добавил в файл fw #Адрес user IP=192.168.1.35 /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT Рестарт фаервола для обнуления таблицы /etc/rc.d/init.d/iptables restart Проверка [root@localhost vitiv]# /sbin/iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Старт фаервола /etc/stargazer/fw [root@localhost vitiv]# /sbin/iptables -nL Chain INPUT (policy DROP) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 127.0.0.1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 ACCEPT all -- 192.168.1.35 0.0.0.0/0 ACCEPT tcp -- 192.168.1.0/24 192.168.1.5 tcp dpt:5555 ACCEPT udp -- 192.168.1.0/24 192.168.1.5 udp spt:5555 dpt:5555 ACCEPT tcp -- 192.168.1.0/24 192.168.1.5 tcp dpt:80 Chain FORWARD (policy DROP) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ACCEPT all -- 192.168.1.35 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 192.168.1.35 Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 127.0.0.1 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ACCEPT all -- 0.0.0.0/0 192.168.1.35 ACCEPT tcp -- 192.168.1.5 192.168.1.0/24 tcp spt:5555 ACCEPT udp -- 192.168.1.5 192.168.1.0/24 udp dpt:5555 ACCEPT tcp -- 192.168.1.5 192.168.1.0/24 tcp spt:80 По идее на 192.168.1.35 инет должен появиться? А его нет, поправьте если я ошибаюсь, спасибо! Не могу понять как при таких правилах работает NAT... Если на время отложить в сторону сам stargzer оставив только его правила, файл fw, по идее внося принудительные изменения в настройки в fw должны ж происходить изменения? Пока тупик, выясняю правильность работы iptables в CentOS...попытаюсь сделать и запустить элементарные правила для Роутера...
Serjio Опубліковано: 12 січня, 2010 Опубліковано: 12 січня, 2010 Как я понял правила в fw не Вы писали, поэтому было бы логично убрать все правила iptables и написать их заново и осознанно в OnConnect и OnDisconnect. Ну а после этого уже модифицировать стартовый скрипт fw.
madf Опубліковано: 12 січня, 2010 Опубліковано: 12 січня, 2010 А что в таблице nat? $ iptables -t nat -nL
niidil Опубліковано: 12 січня, 2010 Опубліковано: 12 січня, 2010 Попробуйте заменить #Маскарад iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE на #Маскарад iptables -t nat -A POSTROUTING -p all -s $net_cli -o $iface_world -j MASQUERADE iptables -t nat -A POSTROUTING -p all -d $net_cli -o $iface_world -j MASQUERADE И покажите состояние фаервола после этого /sbin/iptables -t nat -nL /sbin/iptables -nL
vitiv Опубліковано: 12 січня, 2010 Автор Опубліковано: 12 січня, 2010 Как я понял правила в fw не Вы писали, поэтому было бы логично убрать все правила iptables и написать их заново и осознанно в OnConnect и OnDisconnect. Ну а после этого уже модифицировать стартовый скрипт fw. Действительно за основу был взят готовый скрипт, к сожалению для данной версии stargazer+CentOS в инстале нет ни примеров ни описания... то, что находится в док на сайте видимо устарело или не соответствует... Воспользуюсь Вашим советом, спасибо! Может кто нибудь ещё присоединится и выскажет своё мнение в отношении данных скриптов(fw OnConnect OnDisconnect)применимых к stargazer+CentOS? p/s после изучения тонкостей данную тему обязательно закончу
Serjio Опубліковано: 12 січня, 2010 Опубліковано: 12 січня, 2010 Может вы дадите шел? А то угадывать долго, что там и как.
madf Опубліковано: 12 січня, 2010 Опубліковано: 12 січня, 2010 Как я понял правила в fw не Вы писали, поэтому было бы логично убрать все правила iptables и написать их заново и осознанно в OnConnect и OnDisconnect. Ну а после этого уже модифицировать стартовый скрипт fw. Действительно за основу был взят готовый скрипт, к сожалению для данной версии stargazer+CentOS в инстале нет ни примеров ни описания... то, что находится в док на сайте видимо устарело или не соответствует... Воспользуюсь Вашим советом, спасибо! Не устарело и соответствует. Просто требует понимания работы iptables и NAT. Устарела только документация по сборке. Может кто нибудь ещё присоединится и выскажет своё мнение в отношении данных скриптов(fw OnConnect OnDisconnect)применимых к stargazer+CentOS? p/s после изучения тонкостей данную тему обязательно закончу Скрипты применимы, но опять же, требуется четкое понимание принципов работы файрвола.
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас