Консультация № 69508
04.01.2007, 12:55
0.00 руб.
0 1 1
Здравствуйте, ув. эксперты.
Вопрос по iptables.
ASP Linux 9.0 и иже с ним.
Правила настроены согласно примеров во всем известном мануале (в приложении).
При такой постановке правил при перезапуске файрвола не очищаются установленные соединения. А мне надо, чтобы обрывались.

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

А мне надо, чтобы при перезапуске файрвола все установленные соединения обрывались сразу. Т.е. пользователь вылетал с сервера сразу, а не после его выхода из чата (например).

Спасибо.

Приложение:
#!/bin/bashecho "Запускается Firewall..."#Локальные переменныеinet_ip="x.x.x.x"inet_if="eth1"dnet_ip="10.0.0.1"lo_ip="127.0.0.1"lo_if="lo"bnet_ip="192.168.170.1"dnet="10.0.0.0/22"bnet="10.0.10.0/23"alexander="10.0.0.3"ruslan="10.0.1.222"lilya="10.0.0.5"oleg="10.0.10.3"ipt="/sbin/iptables"mp="/sbin/modprobe"echo "1" > /proc/sys/net/ipv4/ip_forward$ipt -F$ipt -X$ipt -t nat -F$ipt -t nat -X$ipt -t mangle -F$ipt -t mangle -X#Создаем дополнительные цепочки$ipt -N bad_tcp_packets$ipt -N allowed$ipt -N tcp_packets$ipt -N udp_packets$ipt -N icmp_packets#Правила по умолчанию$ipt -P INPUT DROP$ipt -P FORWARD DROP$ipt -P OUTPUT DROP#Описываем цепочку для "плохих" пакетов$ipt -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset$ipt -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP#Описываем цепочку allowed - разрешенные пакеты$ipt -A allowed -p tcp --syn -j ACCEPT$ipt -A allowed -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT$ipt -A allowed -p tcp -j DROP#Цепочка tcp_packets - для обработки пакетов протокола tcp#IRC, SSH, FTP,ntp можно всем$ipt -A tcp_packets -p tcp -m mport --dports 21,22,6667,123 -j allowed#webmin,inetaccess,samba#dnet$ipt -A tcp_packets -p tcp -s $alexander -m mport --dports 10000,5554,139 -j allowed$ipt -A tcp_packets -p tcp -s $ruslan -m mport --dports 10000,5554,139 -j allowed$ipt -A tcp_packets -p tcp -s $lilya -m mport --dports 10000,5554,139 -j allowed#bnet$ipt -A tcp_packets -p tcp -s $oleg -m mport --dports 10000,5554 -j allowed#Цепочка udp_packets - для обработки пакетов протокола udp#dns,ntp,InetAccess$ipt -A udp_packets -p udp -s $dnet -m mport --dports 53,123,5555 -j ACCEPT##ntp#$ipt -A udp_packets -p udp -s $dnet --dport 123 -j ACCEPT##InetAccess#$ipt -A udp_packets -p udp -s $dnet --dport 5555 -j ACCEPT#DHCP можно всем$ipt -A udp_packets -p udp --sport 68 --dport 67 -j ACCEPT#Цепочка icmp_packets - для обработки пакетов протокола icmp$ipt -A icmp_packets -p icmp --icmp-type 8 -j ACCEPT$ipt -A icmp_packets -p icmp --icmp-type 11 -j ACCEPT#################Цепочка INPUT#отбрасываем "плохие" пакеты$ipt -A INPUT -p tcp -j bad_tcp_packets#разрешаем установленные соединения для всех входящих запросов на всех ифейсах$ipt -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT#должники и штрафники/home/admin/dolgniki/home/admin/straf#все можно на локальном интерфейсе$ipt -A INPUT -p all -i $lo_if -s $lo_ip -j ACCEPT$ipt -A INPUT -p all -i $lo_if -s $dnet_ip -j ACCEPT$ipt -A INPUT -p all -i $lo_if -s $bnet_ip -j ACCEPT$ipt -A INPUT -p all -i $lo_if -s $inet_ip -j ACCEPT#обрабатываем остальные пакеты$ipt -A INPUT -p tcp -s $dnet -j tcp_packets$ipt -A INPUT -p tcp -s $bnet -j tcp_packets$ipt -A INPUT -p udp -s $dnet -j udp_packets$ipt -A INPUT -p udp -s $bnet -j udp_packets$ipt -A INPUT -p icmp -s $dnet -j icmp_packets$ipt -A INPUT -p icmp -s $bnet -j icmp_packets##################Цепочка FORWARD#Отбрасываем "плохие" пакеты$ipt -A FORWARD -p tcp -j bad_tcp_packets/home/admin/sat#ICQ - запрет передачи файлов#$ipt -A FORWARD -p tcp -m string --string "_FT" -j DROP#Радио, чат, сайты, форум, игры#Радио 8000#чат 6667#сайты, форум 80#игры 27015:27019; 8080,3724,8085; 2 2106,7777,9014#myAC 20087#радмин 10000,4899#$ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT#$ipt -A FORWARD -p tcp -s $bnet -d $dnet -m mport # --dports 22,4899,10000,80,8080,3724,8085,8000,2106,7777,9014,27015:27019,20087 -j ACCEPT#FTP только админский доступ$ipt -A FORWARD -p tcp -s $oleg -d $dnet -m mport --dports 21 -j ACCEPT##udp для CS#$ipt -A FORWARD -p udp -s $bnet -d $dnet --dport 27015:27019 -j ACCEPT#пинги без ключа$ipt -A FORWARD -p icmp -s $bnet -d $dnet -j icmp_packets##################Цепочка OUTPUT#отбрасываем "плохие" пакеты$ipt -A OUTPUT -p tcp -j bad_tcp_packets#Разрешаем компу общаться с внешним миром$ipt -A OUTPUT -p all -s $lo_ip -j ACCEPT$ipt -A OUTPUT -p all -s $dnet_ip -j ACCEPT$ipt -A OUTPUT -p all -s $bnet_ip -j ACCEPT$ipt -A OUTPUT -p all -s $inet_ip -j ACCEPT###################Цепочка POSTROUTING$ipt -t nat -A POSTROUTING -s $bnet -j ACCEPT$ipt -t nat -A POSTROUTING -d $bnet -j ACCEPT$ipt -t nat -A POSTROUTING -j SNAT --to-source $inet_ipecho "Firewall запущен!"#!/bin/bash#client1iptables -A INPUT -m mac --mac-source 00:0E:2E:8C:62:66 -j DROPiptables -A INPUT -s 10.0.1.24 -j DROP#client2iptables -A INPUT -m mac --mac-source 00:13:D4:8B:6B:19 -j DROPiptables -A INPUT -s 10.0.1.44 -j DROP

Обсуждение

Неизвестный
04.01.2007, 13:01
общий
это ответ
Здравствуйте, Грибенников Александр Сергеевич!
уберите строчки, которые разрешют ESTABLISHED (тоесть уже установленые связи) и каждый пакет Ваших пользователь будет проходить полную проверку всегда.
Форма ответа