На свежеустановленном сервере iptables в debian 8 правил нет, весь трафик полностью разрешен ACCEPT.

Первым делом устанавливаем пакет iptables-persistent. Делается это следующим образом:

  1. Обновляем список пакетов apt-get update
  2. Устанавливаем сам пакет apt-get install iptables-persistent

Этот пакет нам нужен для того чтобы после перезагрузки сервера созданные правила iptables восстанавливались.

Правила хранятся в каталоге /etc/iptables, в этом каталоге есть 2 файла

  • rules.v4 — Для IPV4
  • rules.v6 — Для IPV6

Будем действовать по принципу — запрещено все, кроме того, что явно разрешено.

   # Generated by iptables-save v1.4.21 on Thu Feb 18 11:07:36 2016
   *filter
   : INPUT DROP [52:4949]
   : FORWARD ACCEPT [0:0]
   : OUTPUT ACCEPT [116:16277]
   -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP
   -A INPUT -p icmp -m icmp --icmp-type 17 -j DROP
   -A INPUT -p icmp -m icmp --icmp-type 13 -j DROP
   -A INPUT -p icmp -m icmp --icmp-type 17 -j DROP
   -A INPUT -m state --state INVALID -j DROP
   -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT
   -A INPUT -m recent --rcheck --seconds 86400 --name portscan --mask 255.255.255.255 --rsource -j DROP
   -A INPUT -i lo -j ACCEPT
   -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
   -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
   -A INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT
   -A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
   -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
   -A INPUT -p icmp -j ACCEPT
   -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
   -A INPUT -i tun+ -j ACCEPT
   -A FORWARD -m state --state INVALID -j DROP
   -A FORWARD -m recent --rcheck --seconds 86400 --name portscan --mask 255.255.255.255 --rsource -j DROP
   -A FORWARD -i tun+ -j ACCEPT
   -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
   -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
   -A OUTPUT -m state --state INVALID -j DROP
   -A OUTPUT -o tun+ -j ACCEPT
   COMMIT
   # Completed on Thu Feb 18 11:07:36 2016

Если вдруг какие то правила меняются надо обязательно сделать ipables-save > /etc/iptables/rules.v4 иначе после перезагрузки сервера правила очищаются.

Восстановить правила можно командой iptables-restore < /etc/iptables/rules.v4

Автор статьи: Андрей Гаркин

iptables, Linux, Debian