Устанавливаем:
emerge iptables
Создаем скрипт с правилами:
#!/bin/sh INET_IP="192.168.1.2" INET_IFACE="eth1" INET_BROADCAST="192.168.1.255" LAN_IP="192.168.7.1" LAN_IP_RANGE="192.168.7.0/16" LAN_IFACE="eth0" LO_IFACE="lo" LO_IP="127.0.0.1" IPTABLES="iptables" /sbin/depmod -a /sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe iptable_filter /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ipt_LOG /sbin/modprobe ipt_limit /sbin/modprobe ipt_state /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp echo "1" > /proc/sys/net/ipv4/ip_forward $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -N bad_tcp_packets $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP # открываем и закрываем наши порты $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 23 -j REJECT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT $IPTABLES -A INPUT -p tcp -j bad_tcp_packets $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets $IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP # radmin: $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN_IFACE -p tcp -d 192.168.7.2 --dport 4999 -j ACCEPT $IPTABLES -t nat -A PREROUTING -d $INET_IP -p tcp --dport 4999 -j DNAT --to-destination 192.168.7.2 $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: " $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: " $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
Хочу уточнить, что это всего-лишь пример. ![]()
В примере рассмотрены 2 сетевые карты:
сетевая карта с адресом 1.2 смотрит в интернет
сетевая карта с адресом 7.1 смотрит в локальную сеть
Если есть какие-либо вопросы по правилам - добро пожаловать в комменты =)
Другие ссылки по этой теме:
Установка Gentoo. Попытка #2
Radmin и iptables
Дополнение:
Чтобы сохранить правила нужно запустить
/etc/init.d/iptables save
Чтобы iptables запускался автоматически при загрузке запустисте следующую команду:
rc-update add iptables default
Допнение №2:
Строку
echo "1" > /proc/sys/net/ipv4/ip_forward
писать не обязательно. Нужно в /etc/sysctl.conf поставить net.ipv4.ip_forward = 1
Дополнение №3:
Полезным будет почитать следующий документ:
wiki
Популярность: 59%
ROM
RSS Записей
Поддержи сайт!


25.06.2007 в 14:44
[…] Сервер должен выполнять следующие функции: 1. Интернет-роутер, файрвол (iptables) 2. Прокси-сервер (sqiud) 3. LAMP (Apache2, Mysql4, Perl + PHP) 4. Xfs для […]
11.07.2007 в 10:38
[…] также: Установка Gentoo - iptables Radmin и iptables Настраиваем DNS сервер - Bind/Named Настройка proxy […]
14.04.2008 в 20:52
у меня переменная какая то не пашет….помогите
14.04.2008 в 21:10
Готов помочь.Что именно пишет при ругани?
Может обсудим это в форуме?
18.04.2008 в 10:26
А у меня вроде все работает… Странно.
15.06.2008 в 04:31
я тоже поставил без проблем!Спасибо
16.06.2008 в 15:43
поставил, почемуто не работает(((
17.06.2008 в 12:00
я поставил, спасибо! очень полезная штука