Iptable je administrační nástroj pro filtrování paketů IPv4 a NAT. Iptables se používá k nastavení, údržbě a kontrole tabulek pravidel filtrování paketů IPv4 v jádře Linuxu. Lze definovat několik různých tabulek. Každá tabulka obsahuje řadu vestavěných řetězců a může obsahovat také řetězce definované uživatelem. Každý řetězec je seznam pravidel, která mohou odpovídat sadě paketů. Každé pravidlo určuje, co dělat s paketem, který se shoduje. To se nazývá ,cíl', což může být skok do uživatelem definovaného řetězce ve stejné tabulce.
Pravidlo brány firewall určuje kritéria pro paket a cíl. Pokud se paket neshoduje, dalším pravidlem v řetězci je zkoumaný; pokud se shoduje, pak je další pravidlo určeno hodnotou cíle, což může být název uživatelem definovaného řetězce nebo jedna ze speciálních hodnot ACCEPT, DROP, QUEUE nebo RETURN.
- AKCEPTOVAT znamená nechat paket projít.
- DROP znamená hodit paket na zem
- QUEUE znamená předat paket do uživatelského prostoru
- NÁVRAT znamená zastavit procházení tohoto řetězce a pokračovat u dalšího pravidla v předchozím řetězci.
Existují celkem 4 řetězce:
- INPUT - Výchozí řetězec se používá pro pakety adresované systému. Použijte toto k otevření nebo zavření příchozích portů a IP adres/podsítě
- VÝSTUP - Výchozí řetězec se používá při generování paketů ze systému. Použijte toto otevření nebo zavření odchozích portů a IP adres/podsítí
- Vpřed - Výchozí řetězce se používají při odesílání paketů přes jiné rozhraní. Obvykle se používá, když nastavujete Linux jako router
- RH-Firewall-1-INPUT - Toto je uživatelsky definovaný vlastní řetězec. Používají ho řetězce INPUT, OUTPUT a FORWARD.
Instalace Iptables
Můžeme nainstalovat iptables pomocí následujícího příkazu.
[root@vpn ~]# yum install iptables -y
Zkontrolujte verzi iptable:
[root@vpn ~]# iptables --version
iptables v1.3.5
Zkontrolujte stav iptables:
[root@vpn ~]# service iptables status
Spustit iptables:
[root@vpn ~]# service iptables start
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Chcete-li nastavit iptables, začněte při spuštění:
[root@vpn ~]# chkconfig iptables on
Výchozí konfigurační soubor CentOS je /etc/sysconfig/iptables. Jsou to systémové skripty, které aktivují firewall přečtením tohoto souboru
Pravidla Iptable
1) Resetujte všechna pravidla (F) a řetězce (X), nutné, pokud jste již definovali pravidla iptables
#iptables -t filter -F
#iptables -t filter -X
2) Zobrazit stav brány firewall
#iptables -L -n -v
3) Blokování nulových paketů
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
4) Odmítněte útok SYN -FLOOD
#iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
5) Odmítnout paket rekonfigurace
#iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
6) Přidání rozhraní localhost do filtru brány firewall
#iptables -A INPUT -i lo -j ACCEPT
7) Povolit provoz webového serveru
#iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
8) Povolit uživatelům používat servery SMTP
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
9) Umožněte uživatelům číst e-maily na jejich serveru
povolit provoz POP3
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
povolit provoz POP3
#iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
10) Povolit provoz ssh
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
povolit provoz na port SSH, pokud pochází z jednoho zdroje
#iptables -A INPUT -p tcp -s YOUR_IP_ADDRESS -m tcp --dport 22 -j ACCEPT
11) Povolit všem navázaným odchozím připojením přijímat odpovědi ze serveru
#iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12) Blokovat IP adresu
#iptables -A INPUT -s IP_ADDRESS -j DROP
13) Zablokujte port pro konkrétní IP adresu
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j DROP
14) Otevřete port pro konkrétní IP adresu
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j ACCEPT
15) Povolit tiskárně pro konkrétní IP adresu
#iptables -A INPUT -s IP_ADDRESS -p udp -m udp --dport 631 -j ACCEPT
16) Otevřete DNS
#iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
17) Otevřete port MYSQL
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
18) Otevřete řadu portů (např. :7000-7100)
#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7100 -j ACCEPT
Po nastavení všech pravidel je potřeba pravidla uložit a restartovat iptables
#service iptables save
#service iptables restart