From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <40A33DAA.9090201@rmts.donpac.ru> Date: Thu, 13 May 2004 13:19:38 +0400 From: Eugene Prokopiev User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.5) Gecko/20031011 X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: community@altlinux.ru X-Enigmail-Version: 0.76.7.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Processed: rmts.donpac.ru, Thu, 13 May 2004 13:19:52 +0400 (not processed: message from valid local sender) X-MDRemoteIP: 192.168.10.5 X-Return-Path: john@rmts.donpac.ru X-MDaemon-Deliver-To: community@altlinux.ru Subject: [Comm] iptables: =?koi8-r?b?0M/L0snUycvVytTFINDSwdfJzME=?= X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.4 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 09:20:30 -0000 Archived-At: List-Archive: List-Post: Здравствуйте! Покритикуйте, пожалуйста, следующий набор правил iptables на предмет возможных проблем: #!/bin/sh # Переменные EXTERNAL_DEVICE="eth0" EXTERNAL_ADDRESS=some_ip INTERNAL_DEVICE="eth1" LOCAL_DEVICE="lo" IPTABLES="/sbin/iptables" # Сбрасываем все в 0 $IPTABLES -F $IPTABLES -X $IPTABLES -t nat -F $IPTABLES -t nat -X # Правила по умолчанию $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP # Биллинг $IPTABLES -A FORWARD -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50 --ulog-prefix forward $IPTABLES -A INPUT -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50 --ulog-prefix input $IPTABLES -A OUTPUT -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50 --ulog-prefix output # Цепочки - цели всех правил. То, что отвергается, пишется в лог $IPTABLES -N inet_input_allowed $IPTABLES -A inet_input_allowed -j ACCEPT $IPTABLES -N inet_input_rejected $IPTABLES -A inet_input_rejected -m limit --limit 3/minute --limit-burst 6 -j LOG --log-prefix "INET INPUT REJECTED: " $IPTABLES -A inet_input_rejected -j DROP $IPTABLES -N forward_allowed $IPTABLES -A forward_allowed -j ACCEPT $IPTABLES -N forward_rejected $IPTABLES -A forward_rejected -m limit --limit 3/minute --limit-burst 6 -j LOG --log-prefix "FORWARD REJECTED: " $IPTABLES -A forward_rejected -j DROP # То, что открыто для входящих пакетов. Разрешены все TCP-пакеты, не пытающиеся открыть новое соединение (кроме ssh), все ICMP и некоторые UDP (для dns и time) $IPTABLES -A INPUT ! -i $EXTERNAL_DEVICE -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP ! --syn -m state --state NEW -j inet_input_rejected $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP --syn --dport 22 -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP -m state --state ESTABLISHED,RELATED -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --dport 53 -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --sport 53 -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --dport 123 -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --sport 123 -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p ICMP -j inet_input_allowed $IPTABLES -A INPUT -i $EXTERNAL_DEVICE -j inet_input_rejected # Перебираем всех, кому разрешен NAT for i in `/opt/scripts/make_ldap_filter.pl allowNat` do # Для них разрешаем все исходящие пакеты и все входящие, кроме # ТCP-пакетов, пытающихся открыть новое соединение. # Еще запрещаем ICMP request $IPTABLES -t nat -A POSTROUTING -s $i -j SNAT --to-source $EXTERNAL_ADDRESS $IPTABLES -A FORWARD -s $i -j forward_allowed $IPTABLES -A FORWARD -p TCP --syn -d $i -j forward_rejected $IPTABLES -A FORWARD -p ICMP --icmp-type 8 -d $i -j forward_rejected $IPTABLES -A FORWARD -d $i -j forward_allowed #$IPTABLES -A FORWARD -j forward_rejected done # Перенаправляем всех, кого надо, на squid for i in `/opt/scripts/make_ldap_filter.pl forceProxy` do $IPTABLES -t nat -A PREROUTING -s $i -p TCP --dport 80 -j REDIRECT --to-port 3128 done Нет ли каких-нибудь глупых ошибок? -- С уважением, Прокопьев Евгений