Počínaje Red Hat® Enterprise Linux® (RHEL) 7 a CentOS® 7 je pro správu iptables k dispozici firewalld. V důsledku toho musíte buď použít firewall-cmd
příkazy nebo deaktivujte firewalld a povolte iptables. Tento článek vám ukáže, jak používat klasické nastavení iptables.
Zastavte a maskujte službu firewall
Spusťte následující příkazy k zastavení a maskování služby brány firewall, kterou nechcete používat:
$ systemctl stop firewalld
$ systemctl mask firewalld
Instalace a konfigurace iptables
K instalaci a konfiguraci iptables použijte následující kroky:
-
Nainstalujte
iptables-services
balíček (pokud ještě není nainstalován) spuštěním následujícího příkazu:$ yum install iptables-services
-
Povolte spuštění služby v době spouštění spuštěním následujících příkazů:
$ systemctl enable iptables $ systemctl enable ip6tables
-
Dále přidejte pravidla iptables. Můžete to udělat jedním z následujících způsobů:
-
Z rozhraní příkazového řádku (CLI) spuštěním příkazů podobných
iptables -I INPUT ...
-
Vytvořením nebo úpravou vašeho
/etc/sysconfig/iptables
vypadat podobně jako následující základní příklad, který ponechává porty 22 a 80 otevřené:$ cat /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-port-unreachable COMMIT $cat /etc/sysconfig/ip6tables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT
-
-
(Volitelné ) Pokud ukládáte pravidla do
/etc/sysconfig/ip{,6}tables
soubory, musíte také spustit následující příkazy:$ systemctl restart iptables $ systemctl restart ip6tables
-
Dále zkontrolujte, zda je služba iptables aktivní spuštěním následujících příkazů:
$ systemctl status iptables $ systemctl status ip6tables
-
Zkontrolujte svá pravidla iptables spuštěním následujících příkazů:
$ iptables -L $ ip6tables -L
-
Ověřte, že váš server naslouchá na portech, které jste otevřeli (22 a 80 ve výše uvedeném příkladu), spuštěním následujícího příkazu:
$ netstat -plant
-
Dotaz na
systemd
journal pro protokol změn, které jste provedli ve službě iptables spuštěním následujících příkazů:$ journalctl -f -u iptables.service $ journalctl -f -u ip6tables.service
-
Restartujte server. Pravidla iptables by měla být uložena a automaticky znovu načtena.