ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] iptables: покритикуйте правила
@ 2004-05-13  9:19 Eugene Prokopiev
  2004-05-13 11:01 ` Alexey Morsov
  0 siblings, 1 reply; 5+ messages in thread
From: Eugene Prokopiev @ 2004-05-13  9:19 UTC (permalink / raw)
  To: community

Здравствуйте!

Покритикуйте, пожалуйста, следующий набор правил 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

Нет ли каких-нибудь глупых ошибок?

-- 
С уважением, Прокопьев Евгений



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-05-18  4:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-13  9:19 [Comm] iptables: покритикуйте правила Eugene Prokopiev
2004-05-13 11:01 ` Alexey Morsov
2004-05-14  4:20   ` Eugene Prokopiev
2004-05-14  5:53     ` Alexey Morsov
2004-05-18  4:55       ` Eugene Prokopiev

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git