Полдня потратил на то чтобы найти более менее рабочий пример, не нашел, короче пришлось самому ваять. Данный конфиг ipchains-а, открывает для локальной сети службы FTP, SSH, SMTP, WWW, DNS, POP3, IMAP. Для внешнего мира остается только SMTP, DNS и WWW. #!/bin/sh # write btr icq:#105360 . /etc/rc.d/init.d/functions . /etc/sysconfig/network echo 1 > /proc/sys/net/ipv4/ip_forward if [ ! -x /sbin/ipchains ] then exit 0 fi # Ваш интерфейс смотрящий в Инет. INT="eth0" LOOPBACKINT="lo" # IP адрес на интерфейсе. IPADDR="195.195.195.195" # Ваша сеть NET="195.195.195.0/24" LOOPBACK="127.0.0.0/8" LOCALHOST="127.0.0.0/8" ANYWHERE="any/0" PRIVPORTS="0:1023" UNPRIVPORTS="1024:65535" case "$1" in start) INT="eth0" LOOPBACKINT="lo" # Описание выше IPADDR="195.195.195.195" NET="195.195.195.0/24" LOOPBACK="127.0.0.0/8" LOCALHOST="127.0.0.0/8" ANYWHERE="any/0" PRIVPORTS="0:1023" UNPRIVPORTS="1024:65535" # Сбрасываем правила и выставляем разрешить все по дефолту. ipchains -F ipchains -X ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT ipchains -A input -i lo -j ACCEPT ipchains -A output -i lo -j ACCEPT ipchains -A forward -i lo -j ACCEPT # Разрешаем ICMP ipchains -A input -i $INT -p icmp --icmp-type source-quench -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type source-quench -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type parameter-problem -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type parameter-problem -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type destination-unreachable -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type destination-unreachable -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type time-exceeded -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type time-exceeded -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type echo-reply -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type echo-request -d 0.0.0.0/0 -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type echo-reply -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type echo-request -d $IPADDR -j ACCEPT # ХЗ для чего это но надо =))) ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET -d $IPADDR -j ACCEPT # SMTP, чтобы почта ходила. Юзается для всего мира. ipchains -A output -i $INT -p tcp -s $IPADDR -d $ANYWHERE 25 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $ANYWHERE 25 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 25 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 25 -d $ANYWHERE $UNPRIVPORTS -j ACCEPT # FTP открываем чисто для своих =) ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 21 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 21 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 21 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 21 -d $NET $UNPRIVPORTS -j ACCEPT # POP3 для клиентов. ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 110 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 110 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 110 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 110 -d $NET $UNPRIVPORTS -j ACCEPT # SSH открываем для своей сети. ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 22 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 22 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 22 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 22 -d $NET $UNPRIVPORTS -j ACCEPT # WWW для всего мира естественно. ipchains -A output -i $INT -p tcp -s $IPADDR -d $ANYWHERE 80 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $ANYWHERE 80 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 80 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 80 -d $ANYWHERE $UNPRIVPORTS -j ACCEPT # IMAP для клиентов. ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 143 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 143 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 143 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 143 -d $NET $UNPRIVPORTS -j ACCEPT # DNS для всех. ipchains -A output -i $INT -p udp -s $IPADDR -d $ANYWHERE 53 -j ACCEPT ipchains -A input -i $INT -p udp -s $ANYWHERE 53 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p udp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 53 -j ACCEPT ipchains -A output -i $INT -p udp -s $IPADDR 53 -d $ANYWHERE $UNPRIVPORTS -j ACCEPT # NTP, для своей сети, юзается для коррекции времени =)) ipchains -A output -i $INT -p udp -s $IPADDR -d $NET 113 -j ACCEPT ipchains -A input -i $INT -p udp -s $NET 113 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p udp -s $NET $UNPRIVPORTS -d $IPADDR 113 -j ACCEPT ipchains -A output -i $INT -p udp -s $IPADDR 113 -d $NET $UNPRIVPORTS -j ACCEPT # разрешаем ICMP ipchains -A input -i $INT -p icmp -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp -s $IPADDR -j ACCEPT # Остальное, что не разрешено в запретку. ipchains -A input -i $INT -j DENY ipchains -A output -i $INT -j DENY ipchains -A forward -i $INT -j DENY ;; forward) ipchains -F ipchains -X ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT #MASQ ipchains -A input -i lo -j ACCEPT ipchains -A output -i lo -j ACCEPT ipchains -A forward -i lo -j ACCEPT ipchains -A forward -j REJECT ;; stop) echo -n "Shutting Firewalling Services: " ipchains -F ipchains -X ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT ;; restart|reload) $0 stop $0 start ;; *) echo -n "Usage: ipchains {start|stop|restart|reload}" exit 1 esac exit 0