====== iptables ====== ===== Просмотр ===== Отобразить список правил с номерами строк: iptables -L -n -v --line-numbers список правил в цепочке **INPUT**: iptables -L INPUT -n -v --line-numbers список правил в таблице **nat**: iptables -L -n -t nat -v --line-numbers ===== Удаление===== Удалить третье правило в цепочке **INPUT** (по умолчанию таблица **filter**): iptables -D INPUT 3 ===== Добавление ===== Добавляем правило в цепочку **RH-Firewall-1-INPUT** iptables -I RH-Firewall-1-INPUT 7 -i eth1 -j ACCEPT Добавляем правило в конец цепочки: iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT ===== НАТ ===== Здесь br703 - внешний интерфейс, br3044 - внутренний iptables -t nat -A POSTROUTING -o br703 -j MASQUERADE iptables -I FORWARD 1 -i br703 -o br3044 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD 2 -i br3044 -o br703 -j ACCEPT ===== Пример ===== **/etc/sysconfig/iptables** *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accepts all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # AntiDDoS -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # Anti-spoofing -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset # Anti SYN open connection -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP # ICMP # -A INPUT -p icmp -j ACCEPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT -A INPUT -p icmp --icmp-type 11 -j ACCEPT -A INPUT -p icmp --icmp-type 12 -j ACCEPT # SSH -A INPUT -p tcp -m state --state NEW --dport 46022 -m recent --name BLOCK --set -A INPUT -p tcp -m state --state NEW --dport 46022 -m recent --name BLOCK --update --seconds 60 --rttl --hitcount 3 -j DROP -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 46022 -j ACCEPT # HTTP -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT # -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT ===== Откат изменений через крон ===== 0 16 * * * /bin/cat /etc/sysconfig/iptables.bak > /etc/sysconfig/iptables 1 16 * * * /etc/init.d/iptables reload #0 18 * * * /sbin/reboot {{tag> linux iptables }}