Tento článek poskytuje základní informace o tom, jak používat iptables
softwarový firewall. Tento firewall je výchozím řešením firewallu pro distribuce založené na Red Hat® Enterprise Linux® (RHEL®) 6 a CentOS® 6.
Poznámka :Kroky v tomto článku nejsou určeny pro použití na serverech RackConnect®. Pokud potřebujete provést změny ve vašem firewallu na serveru RackConnect, musíte použít Dedicated Firewall Manager.
Předpoklady
Musíte mít následující předpoklady:
- Základní znalost SecureShell® (SSH)
- Sudo nebo administrativní přístup k vašemu serveru
- Cloudový server jiný než RackConnect se systémem RHEL 6 nebo CentOS 6.
Co je to „iptables“ a jak funguje?
iptables
je výchozí softwarové řešení firewallu pro Linux. Pomocí modulu jádra netfilter iptables
dokáže zpracovat příchozí a odchozí síťový provoz. iptables
používá řetězce pravidel nakonfigurovaných jako součást tabulky na serveru. Tabulka seskupuje podobné řetězce, které plní konkrétní úkol.
Tabulky, řetězce a pravidla
Každá tabulka má sadu výchozích řetězců. Tento článek odkazuje na filtr tabulka, která obsahuje INPUT , Vpřed a VÝSTUP řetězy. Pravidla v těchto řetězcích se čtou a zpracovávají shora dolů.
-
INPUT :Tento řetězec zpracovává příchozí provoz, který je určen pro server.
-
Vpřed :Tento řetězec zpracovává provoz, který přichází na server, ale je určen pro jiné zařízení.
-
VÝSTUP :Tento řetězec se používá pro odchozí pakety, které pocházejí ze serveru.
Cíle, akce a filtry
Následující tabulka ukazuje některé základní cíle a akce v iptables
když je provoz odeslán na server:
Název | Popis |
---|---|
PŘIJMOUT | Provoz je přijímán a žádná další pravidla se nezpracovávají. |
DROP | Paket je zablokován a žádná další pravidla se nezpracovávají. Odesílateli nebyla odeslána žádná odpověď. |
LOG | Informace o paketech se zaprotokolují na server a iptables pokračuje ve zpracování pravidel. |
ODMÍNIT | Podobá se paketu DROP, ale odešle odpověď odesílateli. |
Filtr | Co to dělá |
---|---|
-p (protocol) | Protokol paketu. Zadaný protokol může být jeden z tcp , udp , icmp , nebo speciální klíčové slovo all . |
-s, --source | Zdrojová IP adresa paketu. |
-d --destination | Cíl pro paket. |
-sport | Odpovídající zdrojový port. |
-dport | Cílový port, který se má shodovat. |
-i | Rozhraní, ve kterém je paket přijat. |
Anatomie pravidla
Následující pravidlo je příkladem iptables
pravidlo:
iptables -I INPUT -i eth0 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
V tomto příkladu provoz pocházející ze zdrojové IP adresy 192.168.1.1
, přes tcp
protokol je přijímán na eth0
rozhraní na cílovém portu 22
. Toto pravidlo je přidáno do horní části INPUT
řetěz.
Jak fungují pravidla „iptables“?
Jedním ze způsobů, jak omezit příchozí a odchozí síťový provoz na serveru, je implementace pravidel brány firewall. Na serveru RHEL nebo CentOS 6 je výchozí softwarové řešení brány firewall iptables
. iptables
umožňuje nastavit konfiguraci podobnou konfiguraci vyhrazené brány firewall, která běží na vašem serveru. Tato pravidla konfigurujete v CHAIN
v závislosti na pravidle. Tento článek pojednává o INPUT
řetězce, což je výchozí řetězec pro přijímání provozu prostřednictvím iptables
.
Povolení a kontrola stavu „iptables“
Před přidáním nových pravidel do iptables
, měli byste ověřit, že služba běží, a uvést aktuální pravidla.
Chcete-li zkontrolovat stav iptables
, spusťte následující příkaz:
service iptables status
Měli byste dostat výstup indikující, že služba je Active
na serveru. Pokud ne, můžete službu spustit pomocí service iptables start
příkaz.
Po spuštění služby můžete zobrazit seznam pravidel pomocí následujícího příkazu:
iptables -L
Pokud jste ještě nenakonfigurovali žádná pravidla, výstup vypadá podobně jako v následujícím příkladu:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
příklady „iptables“
Následující příklady ukazují některá pravidla v iptables
a jejich funkčnost v rámci iptables
.
INSERT versus APPEND
Pomocí iptables
, -I
flag vloží pravidlo na začátek vybraného řetězce a -A
flag připojí nové pravidlo na konec vybraného řetězce. To je důležité, protože pravidla se čtou shora dolů. Pokud je tedy nahoře pravidlo, které blokuje veškerý příchozí provoz a použijete -A
Chcete-li připojit pravidlo, které přijímá provoz z IP adresy, pravidlo, které jste přidali, je blokováno prvním pravidlem. Měli byste zvážit konfiguraci, abyste zjistili, zda -A
nebo -I
je lepší volba pro změnu prováděnou na serveru. Před provedením změn si vždy přečtěte aktuální pravidla.
Dobrým pravidlem je připojit všechna pravidla, která končí dropem, a vložit všechna pravidla, která přijímají paket.
Příklad příkazu | Co to dělá |
---|---|
iptables -L | Tento příkaz vypíše všechny iptables pravidla. |
iptables -L --line-numbers | Tento příkaz vypíše všechny iptables pravidla a u každého pravidla poskytuje číslo řádku. |
iptables -D INPUT 2 | Při použití ve spojení s iptables -L --line-numbers , tento příkaz odstraní druhé pravidlo v INPUT řetěz. Toto je nejlepší způsob, jak zajistit odstranění správného pravidla. |
iptables -A INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j DROP | Toto pravidlo sníží provoz na portu 22 ze zdrojové IP prostřednictvím řetězce INPUT přes TCP. Toto pravidlo je připojeno na začátek řetězce INPUT. |
iptables -A INPUT -s 12.345.67.89 -j DROP | Toto pravidlo zruší všechna příchozí připojení ze zdrojové IP adresy. Tento příklad je připojen k horní části INPUT řetěz. |
iptables -D INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Tento příkaz odstraní zadané pravidlo z INPUT stůl. Můžete použít -D příznak s jakýmkoli řetězcem nebo pravidlem, ale doporučujeme odstranit podle čísla řádku, jak je uvedeno výše. |
iptables -I INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Toto pravidlo přijímá provoz na portu 22 ze zdrojové IP prostřednictvím INPUT řetěz přes TCP. Toto pravidlo se vloží do INPUT řetěz. |
iptables -I INPUT -s 12.345.67.89 -j ACCEPT | Toto pravidlo přijímá všechna příchozí připojení ze zdrojové IP přes libovolný protokol na libovolném portu. Toto pravidlo se vloží do INPUT řetěz. |
service iptables save | Ve výchozím nastavení iptables neposkytuje vytrvalost. Tento příkaz umožňuje uložit pravidla. |
service iptables reload | Tento příkaz znovu načte službu iptables, aby umožnil zpracování nových pravidel. |
Další čtení
Tento článek se dotýká pouze základů iptables
. Existuje několik dalších úloh a pravidel, která můžete nakonfigurovat, abyste omezili přístup k vašemu serveru. Další informace o iptables
, můžete si prohlédnout man
stránka pro iptables na adrese iptables – manuálová stránka Linuxu.