milord
Маглыmilord's Achievements
Пролетал Мимо (1/9)
0
Репутація
-
все работает спасибо не указал eth1
-
версия 2.014.7.6 файл fw: #!/bin/bash #Машина в офисе #office=192.168.1.2 #Машина администратора admin=192.168.1.80 #Адреса роутера server0=192.168.1.244 (через этот интерфейс соединяюсь с роутером подсети 192.168.1.0 для выхода в инет) server1=192.168.10.1(через этот подключаю к нету подсеть 192.168.10.0) #server2=172.18.1.1 # Адрес файлового архива с mp3 и video #video_serv=172.18.1.2 # Интерфейс смотрящий на клиентов iface_cli=eth1 # Интерфейс смотрящий во внешний мир iface_world=eth0 # Интерфейс смотрящий на архив #iface_int=etheth2 #Порты, на которых работает конфигуратор и авторизатор 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 # Разрешить видео-серверу обращаться во внешним миром и роутером #iptables -t filter -A INPUT -s $video_serv -j ACCEPT #iptables -t filter -A FORWARD -s $video_serv -j ACCEPT #iptables -t filter -A FORWARD -d $video_serv -j ACCEPT #iptables -t filter -A OUTPUT -d $video_serv -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 -p tcp -s $admin -d $server0 --dport 5555 -j ACCEPT iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 10000 -j ACCEPT # Stargazer configurator iptables -t filter -A INPUT -p tcp -s 192.168.10.0/24 -d $server1 --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.10.0/24 -s $server1 --sport $conf_port -j ACCEPT # UDP stargazer InetAccess iptables -t filter -A INPUT -p udp -s 192.168.10.0/24 -d $server1 --dport $user_port1 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d 192.168.10.0/24 --dport $user_port1 -s $server1 -j ACCEPT #Маскарад iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE onConnect: #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 echo "Yes `date +%Y.%m.%d-%H.%M.%S` $IP $CASH $ID" >> /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: #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 echo "No `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 ----------------------------------- rules: ALL 192.168.10.0/24 DIR0 ALL 0.0.0.0/0 DIR1 ---------------------------------- stargazer.conf: # Файл настроек сервера stargazer # Имя файла в котором определяются правила подсчета трафика rules=/etc/stargazer/rules # Рабочая директория сервере, тут содержатся данный о тарифах, изерах и админах WorkDir=/var/stargazer/ # Имя лог файла куда пушутся события LogFile=/var/log/stargazer.log # Если юзер в течение UserTimeout секунд не подает признаков жизни, сервер отключит его # (естественно, если клиент был подключен до этого) UserTimeout=60 # Время через которое сервер повторяет проверку того, жив ли клиент. Также это время # через которое у клиента обновляется его статитстика. UserDelay должно быть в # 3...10 раз меньше чем UserTimeout UserDelay=10 # Эта опция действительна только для сервера работающего со вторым типом тарифных планов # Она определяет что будет передаватся программе InetAccess от сервера # FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления # FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления # FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления # ................. # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления # FreeMb = cash - кол-во денег на которые юзер может бесплатно качать # FreeMb = none - ничего не передавать FreeMb=2 # Время через которое пишется детальная статистика # возможные значения 3, 2, 1, 1/2, 1/4, 1/6 # 3 - раз в три часа, 1 - раз в чаc, 1/2 - раз в пол часа, 1/6 - раз в 10 мин StatTime=1/6 # Номер порта по которому сервер слушает обращения конфигуратора adminPort=5555 # Номер порта по которому сервер ожидает обращения авторизатора userPort=5555 # Максимальное кол-во юзеров. Эта величина влияет на кол-во памяти необходимой серверу MaxUsers=100 # for FreeBSD only # Имя интерфейсов на которых нужно вести подсчет трафика # iface=ed0,ed1,rl0 # Опция определяющая менять ли местами upload и download TurnTraff=no # День снятия абонплаты DayFee=1 # День, в который происходит обнуление счетчиков трафика DayResetTraff=1 # Имена направлений. Пустые имена не будут отображаться # ни в авторизаторе, ни в конфигураторе DirName0=Local DirName1=World DirName2= DirName3= DirName4= DirName5= DirName6= DirName7= DirName8= DirName9= # "Разамазанное" снятие абонплаты. Каждый день # 1/30 (1/31, 12/28) часть абонплаты SpreadFee=no # Владелец, группа и права доступа на файлы # статистики у пользователей StatOwner=root StatGroup=stg_stat StatMode=640 # Владелец, группа и права доступа на файлы # конфигурации у пользователей ConfOwner=root ConfGroup=root ConfMode=640 # Владелец, группа и права доступа на логи # у пользователей UserLogOwner=root UserLogGroup=root UserLogMode=640 # Разрешение на доступ конфигуратором AdminOrder=allow,deny AdminAllowFrom=192.168.1.80 # Разрешение на доступ авторизатором UserOrder=allow,deny UserAllowFrom=192.168.10.0/24 # Запрет на слишком частые обращения на порт авторизатора FloodControl=yes
-
скрипты коннект и дисконнект выполсняются. При авторизации и нет у пользователя появляется, а статистика закачек 0. вот сами скрипты: onConnect #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 iptables -t nat -A POSTROUTING -s $IP -j SNAT --to-source 192.168.1.244 --------------- onDisconnect #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 iptables -t nat -D POSTROUTING -s $IP -j SNAT --to-source 192.168.1.244
