Moderní linuxová jádra přicházejí s rámcem pro filtrování paketů s názvem Netfilter. Netfilter vám umožňuje povolit, opustit a upravit provoz přicházející a odcházející ze systému. iptables Nástroj příkazového řádku uživatelského prostoru staví na této funkcionalitě a poskytuje výkonný firewall, který můžete nakonfigurovat přidáním pravidel pro vytvoření zásady brány firewall. iptables může být velmi skličující se svou bohatou sadou schopností a barokní syntaxí příkazů. Pojďme některé z nich prozkoumat a vytvořit sadu tipů a triků pro iptables pro mnoho situací, se kterými se může správce systému setkat.
Nezamykejte se
Scénář:Chystáte se provést změny v pravidlech zásad iptables na primárním serveru vaší společnosti. Chcete se vyhnout uzamčení sebe – a potenciálně i všech ostatních – ven. (To stojí čas a peníze a způsobí to, že váš telefon bude vyzvánět ze zdi.)
Tip #1:Udělejte si zálohu konfigurace iptables začněte na tom pracovat.
Zálohujte konfiguraci pomocí příkazu:
/sbin/iptables-save > /root/iptables-works
Tip č. 2:Ještě lepší je zahrnout do názvu souboru časové razítko.
Přidejte časové razítko pomocí příkazu:
/sbin/iptables-save > /root/iptables-works-`date +%F`
Získáte soubor s názvem jako:
/root/iptables-works-2018-09-11
Pokud uděláte něco, co brání fungování vašeho systému, můžete jej rychle obnovit:
/sbin/iptables-restore < /root/iptables-works-2018-09-11
Tip č. 3:Pokaždé, když vytvoříte záložní kopii zásady iptables, vytvořte odkaz na soubor s 'nejnovější' v názvu.
ln –s /root/iptables-works-`date +%F` /root/iptables-works-latest
Tip č. 4:Uveďte konkrétní pravidla nahoře zásady a obecná pravidla dole.
Vyhněte se obecným pravidlům, jako je toto v horní části pravidel zásad:
iptables -A INPUT -p tcp --dport 22 -j DROP
Čím více kritérií v pravidle zadáte, tím menší bude šance, že se uzamknete. Namísto výše uvedeného velmi obecného pravidla použijte něco takového:
iptables -A INPUT -p tcp --dport 22 –s 10.0.0.0/8 –d 192.168.100.101 -j DROP
Toto pravidlo se připojuje (-A ) na INPUT řetězit pravidlo, které PUSTÍ všechny pakety pocházející z bloku CIDR 10.0.0.0/8 na TCP (-p tcp ) port 22 (--dport 22 ) určeno pro IP adresu 192.168.100.101 (-d 192.168.100.101 ).
Existuje mnoho způsobů, jak můžete být konkrétnější. Například pomocí -i eth0 omezí zpracování na jednu síťovou kartu na vašem serveru. Tímto způsobem nebudou akce filtrování aplikovat pravidlo na eth1 .
Tip #5:Přidejte svou IP adresu na seznam povolených v horní části pravidel zásad.
Toto je velmi účinná metoda, jak se neuzamykat. Všichni ostatní, ne tolik.
iptables -I INPUT -s <your IP> -j ACCEPT
Toto musíte uvést jako první pravidlo, aby to fungovalo správně. Pamatujte, -já vloží jej jako první pravidlo; -A připojí jej na konec seznamu.
Tip #6:Seznamte se se všemi pravidly ve svých aktuálních zásadách a pochopte je.
Neudělat chybu na prvním místě je polovina úspěchu. Pokud pochopíte vnitřní fungování vaší politiky iptables, usnadní vám to život. Pokud musíte, nakreslete vývojový diagram. Pamatujte také:Co politika dělá a co má dělat, mohou být dvě různé věci.
Nastavení zásad brány firewall pracovní stanice
Scénář:Chcete nastavit pracovní stanici s omezujícími zásadami brány firewall.
Tip #1:Nastavte výchozí zásadu jako DROP.
# Nastavit výchozí zásadu DROP
*filtr
:VSTUP DROP [0:0]
:PŘEDOPŘEDNÝ DROP [0:0]
:VÝSTUP DROP [0:0/
Tip č. 2:Umožněte uživatelům minimální množství služeb potřebné k dokončit svou práci.
Pravidla iptables musí umožnit pracovní stanici získat IP adresu, masku sítě a další důležité informace prostřednictvím DHCP (-p udp --dport 67:68 --sport 67:68 ). Pro vzdálenou správu musí pravidla povolit příchozí SSH (--dport 22 ), odchozí pošta (--dport 25 ), DNS (--dport 53 ), odchozí ping (-p icmp ), Network Time Protocol (--dport 123 --sport 123 ) a odchozí HTTP (--dport 80 ) a HTTPS (--dport 443 ).
# Nastavit výchozí zásadu DROP
*filtr
:VSTUP DROP [0:0]
:PŘEDOPŘEDNÝ DROP [0:0]
:VÝSTUP DROP [0:0]
# Přijměte všechna související nebo navázaná připojení
-I VSTUP 1 -m stav --stav SOUVISEJÍCÍ,NASTAVENO -j PŘIJÍMÁTE
-I VÝSTUP 1 -m stav -- stav RELATED,ESTABLISHED -j ACCEPT
# Povolit veškerý provoz na rozhraní zpětné smyčky
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# Povolit odchozí požadavek DHCP
-A VÝSTUP –o eth0 -p udp --dport 67:68 --sport 67:68 -j PŘIJÍMAT
# Povolit příchozí SSH
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m stav --stav NOVÉ -j PŘIJÍMAT
# Povolit odchozí e-mail
-A VÝSTUP -i eth0 -p tcp -m tcp --dport 25 -m stav --stav NOVÉ -j PŘIJMOUT
# Odchozí vyhledávání DNS
-A VÝSTUP -o eth0 -p udp - m udp --dport 53 -j PŘIJÍMAT
# Odchozí požadavky PING
-A VÝSTUP –o eth0 -p icmp -j PŘIJÍMAT
# Odchozí síťový časový protokol (NTP) požadavky
-A OUTPU T –o eth0 -p udp --dport 123 --sport 123 -j PŘIJMOUT
# Odchozí HTTP
-A VÝSTUP -o eth0 -p tcp -m tcp --dport 80 - m state --state NEW -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
COMMITOmezení rozsahu IP adres
Scénář:Generální ředitel vaší společnosti si myslí, že zaměstnanci tráví příliš mnoho času na Facebooku a nedělají žádnou práci. Generální ředitel říká CIO, aby udělal něco s tím, aby zaměstnanci plýtvali časem na Facebooku. CIO říká CISO, aby udělal něco s tím, aby zaměstnanci plýtvali časem na Facebooku. Nakonec vy říkají, že zaměstnanci na Facebooku ztrácí příliš mnoho času a vy s tím musíte něco udělat. Rozhodnete se zablokovat veškerý přístup na Facebook. Nejprve zjistěte IP adresu Facebooku pomocí hostitele a whois příkazy.
host -t a www.facebook.com
www.facebook.com je alias pro star.c10r.facebook.com.
star.c10r.facebook.com má adresu 31.13.65.17
což je 31.13.65.17 | grep inetnum
inetnum: 31.13.64.0 – 31.13.127.255Poté převeďte tento rozsah na notaci CIDR pomocí stránky Převod CIDR na IPv4. Získáte 31.13.64.0/18 . Chcete-li zabránit odchozímu přístupu na www.facebook.com, zadejte:
iptables -A OUTPUT -p tcp -i eth0 –o eth1 –d 31.13.64.0/18 -j DROP
Regulovat podle času
Scénář:Odpor zaměstnanců společnosti kvůli odepření přístupu k Facebooku způsobí, že generální ředitel trochu poleví (to a jeho administrativní asistentka mu připomene, že udržuje JEHO stránku na Facebooku aktuální). Generální ředitel se rozhodne povolit přístup na Facebook.com pouze v době oběda (12:00 až 13:00). Za předpokladu, že výchozí zásada je DROP, použijte k otevření přístupu časové funkce iptables.
iptables –A OUTPUT -p tcp -m multiport --dport http,https -i eth0 -o eth1 -m čas --timestart 12:00 --timestart 12:00 –timestop 13:00 –d
31.13.64.0/18 -j PŘIJÍMATTento příkaz nastaví zásadu tak, aby byla povolena (-j ACCEPT ) http a https (-m multiport --dport http,https ) mezi polednem (--timestart 12:00 ) a 13:00 (--timestop 13:00 ) na Facebook.com (–d 31.13.64.0/18 ).
Regulujte časem – vezměte 2
Scénář:Během plánované odstávky pro údržbu systému musíte zakázat veškerý provoz TCP a UDP mezi 2:00 a 3:00, aby úlohy údržby nebyly narušeny příchozím provozem. To bude vyžadovat dvě pravidla iptables:
iptables -A INPUT -p tcp -m time --timestart 02:00 --timestop 03:00 -j DROP
iptables -A INPUT -p udp -m time --timestart 02:00 -- timestop 03:00 -j DROPS těmito pravidly se provoz TCP a UDP (-p tcp a -p udp ) jsou zamítnuty (-j DROP ) mezi 2:00 (--timestart 02:00 ) a 3:00 (--timestop 03:00 ) na vstupu (-A INPUT ).
Omezit připojení pomocí iptables
Scénář:Vaše webové servery připojené k internetu jsou pod útokem špatných herců z celého světa, kteří se na ně pokoušejí DoS (Denial of Service). Ke zmírnění těchto útoků omezíte počet připojení, která může mít jedna IP adresa k vašemu webovému serveru:
iptables –A INPUT –p tcp –syn -m multiport -–dport http,https –m connlimit -–connlimit-above 20 –j REJECT -–reject-with-tcp-reset
Podívejme se, co toto pravidlo dělá. Pokud hostitel vydělá více než 20 (-–connlimit-above 20 ) nová připojení (–p tcp –syn ) za minutu na webové servery (-–dport http,https ), odmítněte nové připojení (–j REJECT ) a sdělte připojujícímu se hostiteli, že připojení odmítáte (-–reject-with-tcp-reset ).
Sledování pravidel iptables
Scénář:Vzhledem k tomu, že iptables funguje na principu „první shoda vyhrává“, když pakety procházejí pravidly v řetězci, často přiřazovaná pravidla by měla být v horní části zásady a méně často vyhovující pravidla by měla být v dolní části. Jak víte, která pravidla jsou překračována nejvíce nebo nejméně, aby bylo možné je seřadit blíže nahoru nebo dolů?
Tip č. 1:Podívejte se, kolikrát bylo každé pravidlo splněno.
Použijte tento příkaz:
iptables -L -v -n –line-numbers
Příkaz zobrazí seznam všech pravidel v řetězci (-L ). Protože nebyl zadán žádný řetězec, všechny řetězce budou uvedeny s podrobným výstupem (-v ) zobrazující čítače paketů a bajtů v číselném formátu (-n ) s čísly řádků na začátku každého pravidla odpovídajícími pozici daného pravidla v řetězci.
Pomocí počtu paketů a bajtů můžete seřadit nejčastěji procházená pravidla nahoru a nejméně často procházená dolů.
Tip č. 2:Odstraňte nepotřebná pravidla.
Která pravidla se vůbec neshodují? To by byli dobří kandidáti na odstranění ze zásady. Můžete to zjistit pomocí tohoto příkazu:
iptables -nvL | grep -v "0 0"
Poznámka:toto není tabulátor mezi nulami; mezi nulami je pět mezer.
Tip č. 3:Sledujte, co se děje.
Chtěli byste sledovat, co se děje s iptables v reálném čase, například pomocí top . Pomocí tohoto příkazu můžete dynamicky sledovat aktivitu aktivity iptables a zobrazovat pouze pravidla, která jsou aktivně procházena:
watch --interval=5 'iptables -nvL | grep -v "0 0"'
sledovat spouští 'iptables -nvL | grep -v "0 0"' každých pět sekund a zobrazí první obrazovku svého výstupu. To vám umožní sledovat, jak se počty paketů a bajtů mění v průběhu času.
Hlášení o iptables
Scénář:Váš manažer si myslí, že tento firewall iptables je prostě skvělý, ale ještě lepší by byla denní zpráva o činnosti. Někdy je důležitější napsat zprávu než udělat práci.
Pomocí filtru paketů/firewallu/analyzátoru protokolů IDS FWLogwatch můžete vytvářet sestavy založené na protokolech brány firewall iptables. FWLogwatch podporuje mnoho formátů protokolů a nabízí mnoho možností analýzy. Generuje denní a měsíční souhrny souborů protokolů, což umožňuje správci zabezpečení ušetřit značné množství času, udržet lepší kontrolu nad zabezpečením sítě a omezit nepozorované útoky.
Zde je ukázkový výstup z FWLogwatch:
Více než jen ACCEPT and DROP
Pokryli jsme mnoho aspektů iptables, od zajištění, že se při práci s iptables neuzamknete, až po monitorování iptables až po vizualizaci aktivity brány iptables. Tyto vám pomohou začít na cestě k realizaci ještě více tipů a triků iptables.
Linux
Postavte si laboratoř za 36 sekund, spusťte Podman na Macu a další tipy pro systémové správce
Nejlepší jednořádkové příkazy Linuxu, přizpůsobení bitových kopií virtuálních počítačů a další tipy pro systémové správce
Psaní Python aplikací, vytváření linuxových laboratoří a další tipy pro systémové správce