any = "0/0"
eth_i = "eth0"
eth_l = "eth1"
ip_i = "a.b.c.d"
ip_l = "10.0.0.4"
ip_l_mask ="24"
p_apache = "80"
p_squid = "3128"
p_ftp = "8021
p_pop = "8110"
p_smtp = "8025"
p_dns = "53"
p_big = "1025:65535"
dns1 = "dns1"
dns2 = "dns2" echo 1 > /proc/sys/net/ipv4/ip_forward
sbin/ipchains -F
sbin/ipchains -N icmp-acc
sbin/ipchains -P input DENY
sbin/ipchains -P output DENY
sbin/ipchains -P forward ACCEPT
#############################################
# Input
#############################################
sbin/ipchains -A input -p UDP -i $eth_i -s $dns1 53 -d $any $p_big -j ACCEPT # Ну это К ДНС. Она будет отвечать с 53 порта на хр@н знает какой
sbin/ipchains -A input -p UDP -i $eth_i -s $dns2 53 -d $any $p_big -j ACCEPT # с 1024 и выше
ipchains -A input -p icmp -j icmp-acc # Это дополнительная цепочка для пингов, Админы разрешают : ping, tracert(traceroute)
sbin/ipchains -A input -i lo ACCEPT #Думаю и ежу понятно :-)
sbin/ipchains -A input -i $eth_l -s $ip_l/$ip_l_mask -d $ip_l $p_apache -j ACCEPT
sbin/ipchains -A input -i $eth_l -s $ip_l/$ip_l_mask -d $ip_l $p_squid -j ACCEPT
sbin/ipchains -A input -i $eth_l -s $ip_l/$ip_l_mask -d $ip_l $p_ftp -j ACCEPT
sbin/ipchains -A input -i $eth_l -s $ip_l/$ip_l_mask -d $ip_l $p_smtp -j ACCEPT
sbin/ipchains -A input -i $eth_l -s $ip_l/$ip_l_mask -d $ip_l $p_pop -j ACCEPT # Ну это типа твои Порты для открывания, здеся моно добавлять или удалять!
sbin/ipchains -A input -i $eth_l -s $ip_l/$ip_l_mask -d $ip_l 22 -j ACCEPT # Это типа для SSH, поставь 23 для телнета :-) но SSH лучше! рано или поздно тебе надоест сидеть в консоли!
#для инета
sbin/ipchains -A input -p TCP -i $eth_i -s $any -d $ip_i -y -j REJECT -l # [l] это параметр для логирования отброшеного пакета, а вдруг ломают а я и не узнаю!
sbin/ipchains -A input -p UDP -i $eth_i -s $any -d $ip_i -j REJECT -l # Вместо REJECT можно поставить DENY тогда удаленный хост просто подумает что его посылают на ...
sbin/ipchains -A input -p TCP -i $eth_i -s $any -d $ip_i -j ACCEPT # Теперь про все 3 строки Первая запрещает на машину ПО протоколу ТСП запросы на соединение
# вторая отбрасывает протокол UDP
# А третья разрешает открытые нами соединение!!!!!!! без этой строки пакеты по ТСП ходить не будут с нас на инет.
# Для локалки
sbin/ipchains -A input -p TCP -i $eth_l -s $any -d $ip_l -y -j REJECT # смотри выше!
sbin/ipchains -A input -p UDP -i $eth_l -s $any -d $ip_l -j REJECT
sbin/ipchains -A input -p TCP -i $eth_l -s $any -d $ip_l -j ACCEPT
##########################################
# Forward
##########################################
sbin/ipchains -A forward -i $eth_i -p icmp -s $ip_l/$ip_l_mask -d ! $ip_l/$ip_l_mask -j MASQ #Если не хош чтобы юзеры пинговали инет то убери эту строку
##########################################
# Output
##########################################
##########################################
# icmp_acc
##########################################
## Это посмотри в документации, я оттудова это скатал и пока не глючило :-)
sbin/ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
sbin/ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
sbin/ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
sbin/ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
sbin/ipchains -A icmp-acc -p icmp -j DENY #Пусть дальше по цепочкам не путешевствует :-)
-------------------------------------------------------------------------------------------------------->