GNU/Linux >> Znalost Linux >  >> Linux

16 iptables tipů a triků pro systémové správce

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

COMMIT

Omezení 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.255

Poté 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ÍMAT

Tento 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 DROP

S 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
  1. Nejlepších 5 podcastů pro novinky a tipy pro Linux

  2. Tipy a triky pro použití CUPS pro tisk s Linuxem

  3. Musíte znát příkazy Linuxu, spouštět Podman ve Windows a další tipy pro systémové správce

  1. Postavte si laboratoř za 36 sekund, spusťte Podman na Macu a další tipy pro systémové správce

  2. 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

  3. Psaní Python aplikací, vytváření linuxových laboratoří a další tipy pro systémové správce

  1. Triky a tipy pro hledání informací v Man Pages?

  2. Top 8 tipů a triků příkazového řádku MySQL

  3. Oblíbené rsync tipy a triky