GNU/Linux >> Znalost Linux >  >> Linux

Jak zajistit vypršení platnosti pravidel iptables?

Řešení 1:

Pokud máte na mysli, aby iptables úplně odstranilo pravidlo samo o sobě, nebudete to moci udělat, pokud vím. Jaký to má účel? Pokud potřebujete nějaký druh automatického dočasného zabanování, standardním řešením je fail2ban.

Alternativně můžete použít úlohu cron k odstranění pravidla, které přidáváte, nebo, lépe, pokud to chcete provést interaktivně, at práce:

iptables -I INPUT -s 192.168.1.100 -j DROP
echo "iptables -D INPUT -s 192.168.1.100 -j DROP" | at @10pm 

Podívejte se také na recent modul iptables. To s jeho --seconds tato možnost může pomoci v závislosti na vašich skutečných potřebách. man iptables pro více informací.

Řešení 2:

Vložte do pravidel komentář s časovým razítkem (pravděpodobně sekund od epochy). Pravidelně provádějte smést pravidel, jejichž platnost vypršela.

Všimněte si, že nejnovější linuxové jádro podporuje dynamické načítání IP adres do mezipaměti konzultované pravidly iptable namísto přímých pravidel iptables.

Příklad:

iptables  -A INPUT -s 192.168.200.100/32 -m comment --comment "expire=`date -d '+ 5 min' +%s`" -j DROP 
iptables -L INPUT -n --line-numbers | tac | perl -ne 'next unless /(^\d+).*expire=(\d+)/; if ($2 < time) { print "iptables -D INPUT $1\n"; }'

Můžete samozřejmě iptables -D INPUT $1 místo tisku příkazu.

Řešení 3:

iptables má metodu pro automatické přidávání IP adres do seznamu, pokud jsou splněny podmínky definované uživatelem. Abych se vyhnul automatickým pokusům o hacknutí mého portu ssh, používám následující:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --name ssh --seconds 60 --reap -j DROP

To pomáhá omezit automatické pokusy o získání přístupu k serveru omezením pokusů o připojení ze stejné IP adresy na jeden každých 60 sekund.

Pokud chcete povolit stanovený počet pokusů v časovém rámci, například 4 za 5 minut, a v případě neúspěchu je zakázat na delší dobu, například 24 hodin, můžete udělat něco jako:

iptables -X black
iptables -N black
iptables -A black   -m recent --set   --name blacklist   -j DROP

iptables -X ssh
iptables -N ssh
iptables -I ssh 1   -m recent --update    --name blacklist   --reap   --seconds 86400     -j DROP
iptables -I ssh 2   -m recent --update    --name timer       --reap   --seconds   600     --hitcount 4   -j black
iptables -I ssh 3   -m recent --set       --name timer   -j ACCEPT

iptables -A INPUT   -p TCP --dport ssh   -m state --state NEW -j ssh

Ve výše uvedeném vytvoříme 2 řetězce; "ssh" a "black" a 2 seznamy; „časovač“ a „černá listina“.

Krátce; poslední řetězec zobrazený výše je "dveře" do řetězce ssh.

  • Pravidlo 1 v řetězci ssh kontroluje, zda je zdrojová IP adresa na seznamu „blacklist“. Pokud ano, spojení se přeruší a 24hodinový časovač černé listiny se restartuje. Pokud je pravidlo 1 nepravdivé, pak přejdeme k pravidlu 2.
  • Pravidlo 2 v řetězci ssh kontroluje, zda zdrojová IP neudělala více než 4 pokusy o připojení za 5 minut. Pokud ano, odešle paket do řetězce „black“, kde je přidán do seznamu „blacklist“. Řetěz „černý“ pak spojení ODPOVÍDÁ a máme hotovo.
  • Pravidla 3 v řetězci "ssh" je dosaženo pouze tehdy, jsou-li pravidla 1 a 2 nepravdivé. Pokud ano, paket je PŘIJAT a zdrojová IP je přidána do seznamu „časovač“, abychom mohli sledovat frekvenci pokusů o připojení.

Volba "--reap" říká jádru, aby prohledalo seznam a vyčistilo všechny položky, které jsou starší než nastavený časový limit; 5 minut pro seznam „časovač“ a 24 hodin pro seznam „černá listina“.

poznámka:mezery navíc slouží pro čitelnost a jsou ve vašem shell skriptu volitelné.

Řešení 4:

IPTables má funkci vytvořenou výslovně pro toto:IP Set. Pravidlo vytvoříte jednou a přetrvává jako obvykle, ale zkontroluje shodu v sadě IP adres (nebo portů). Skvělé je, že tuto sadu lze dynamicky a efektivně aktualizovat bez narušení zbytku firewallu.

Hlavní web, příklady.

Chcete-li jej použít, stále byste museli použít at nebo cron naplánovat odstranění.

Řešení 5:

Pomocí fail2ban můžete zakázat adresy IP a nakonfigurovat dobu, po kterou bude adresa zablokována.


Linux
  1. Jak vyprázdnit pravidla iptables

  2. Jak zajistit, aby pravidla brány firewall iptables trvala na Debianu/Ubuntu

  3. Jak zobrazím aktuální stav pravidel pro předávání portů Ssh?

  1. Jak vyprázdnit pravidla iptables

  2. Jak přidat vlastní pravidla iptables v CSF Firewallu

  3. Jak (dále) zajistit bezpečnost SSH?

  1. Jak vytvořit VPN

  2. Jak zobrazit a odstranit pravidla iptables – seznam a vyprázdnění

  3. Linux IPTables:Jak přidat pravidla brány firewall (s příkladem Allow SSH)