GNU/Linux >> Znalost Linux >  >> Linux

Jak na to:Základní řešení problémů s IPTables

Úvod

V tomto článku si probereme několik základních kroků, které můžete podniknout při odstraňování problémů, se kterými se můžete setkat s tím, aby vaše pravidla iptables dělala to, co byste od nich mohli chtít.

Předpoklady

Server se systémem CentOS 6.x (nebo jakákoli distribuce Linuxu)

iptables nainstalované a nakonfigurované (pro základní konfiguraci viz Základní konfigurace souboru IPTables)

Základní řešení problémů s IPTables

Jedním z užitečných doplňků k vytváření pravidel iptables je nastavení protokolování. Protokolování používá speciální cíl v sadě nástrojů iptables, který vede výběrový výstup do souborů protokolu vašeho operačního systému (dmesg nebo systemd).

Na příkazovém řádku:

sudo iptables -A INPUT -j LOG --log-prefix DROPPED-INGRESS-

Nebo ve vašem souboru /etc/sysconfig/iptables:

Ukázka syntaxe protokolování

Rozbalíme syntaxi:

* ‘-A INPUT ‘ připojí toto pravidlo na konec řetězce INPUT. Pamatujte, že pořadí pravidel je důležité, takže pokud toto pravidlo umístíte za pravidlo, které snižuje nebo odmítá provoz, nebude nikdy použito. Více o tom, když probereme --log-prefix níže.

* ‘-j LOG ‘ přeskočí na LOG cílová. Tento cíl je speciální, nazývaný „nekoncový“ cíl. Na rozdíl od nejběžněji používaných cílů (jako je ACCEPT , DROP nebo REJECT ), to nezabrání iptables v analýze dalších pravidel. Když je tedy toto pravidlo vyvoláno, zaprotokoluje paket (a může provést další volby, pokud jsou specifikovány v následujících možnostech), a poté pokračuje ve vyhodnocování pravidel ve stejném řetězci, dokud nenarazí na odpovídající pravidlo s ukončovacím cílem nebo dokud překoná poslední pravidlo v řetězci a následuje výchozí cíl.

* ‘--log-prefix DROPPED-INGRESS- ‘ přidá ke každé položce protokolu řetězec „DROPPED-INGRESS-“. Toto přidání může být užitečné pro filtrování nebo vyhledávání v dlouhém souboru protokolu. „--log-prefix ” může mít řetězec o délce až 256 znaků. Protože toto pravidlo je posledním pravidlem v tomto INPUT řetězce, toto zaprotokoluje každý paket, který neodpovídá žádnému z výše uvedených pravidel, a bude zpracován pomocí výchozí zásady (v tomto případě DROP ).

Chcete-li vidět, která z vašich pravidel jsou vyvolána (a co je možná stejně důležité, která nikoli), můžete se podívat na počítadla paketů a provozu. Použijte ‘-v “ do položky „iptables ‘ příkaz k zobrazení čítačů (a také některých dalších informací):

sudo iptables -vL INPUT

nebo

sudo iptables -nvL INPUT

Výstup jednoho z těchto příkazů se zobrazí ve sloupcích na levé straně pro čítače paketů a bajtů pro každé pravidlo. „-L Možnost ‘ označuje, že chceme, aby byla pravidla uvedena (všimněte si, že tato konkrétní možnost je velká). „-n ‘ znamená, že nechceme překládat IP adresy na jejich názvy hostitelů (v delších seznamech může toto zpětné rozlišení názvů způsobit zbytečnou režii serveru a vaše řešení problémů bude nepříjemně zpomalovat). Každý příznak můžete použít samostatně (-n -v -L , např.) nebo společně, jak je uvedeno výše, ale pozor:„L ‘ musí být poslední, protože hledá další vstup ve formě názvu řetězce, který se má vypsat (pokud není nic zadáno, výchozí je vypsat všechny řetězce v tabulce filtrů).

iptables -nvL INPUT Výstup

Všimněte si, že jeden paket zasáhl moje pravidlo ssh pro povolení všech a několik paketů zasáhlo první povolený RELATED/ESTABLISHED pravidlo (to by odpovídalo mé relaci ssh na tento server). Také vidím, že moje pravidla pro povolení provozu ssh z rozsahu 192.168.50.0/24 nemají žádné výsledky. Takže, kdybych například měl někoho, kdo řekl, že na tento server nemá přístup z tohoto rozsahu, viděl jsem, že jeho pokusy se na tento server ani nedostaly.

Je docela možné, že vaše počítadla bajtů paketů narostou dostatečně vysoko, že hodnoty budou na konci zkráceny „K“, „M“ nebo dokonce „G“, což odpovídá 1 000, 1 000 000 nebo 1 000 000 000. Pokud stále chcete vidět nezkrácené počty, uveďte „-x příznak ‘:

sudo iptables -nvxL INPUT

Pokud nechcete, aby se museli zabývat velkými počty, můžete je vynulovat (vynulovat) pomocí „-Z příkaz ‘ (opět si uvědomte, že tento příznak je velkými písmeny). Můžete vynulovat počty pro všechny řetězce, konkrétní řetězec nebo pro konkrétní řádek v řetězci. Respektive:

sudo iptables -Z
sudo iptables -Z INPUT
sudo iptables -Z INPUT 1

Poslední příklad by pouze vynuloval čítače pro řádek číslo 1 v INPUT řetěz.

Čítače by se také vynulovaly pokaždé, když znovu načtete iptables (ať už při restartu serveru nebo při opětovném načtení iptables služby sudo). Toto však nejsou nejideálnější způsoby, jak tento úkol splnit.

Můžete také chtít získat více v reálném čase prozkoumat vaše počítadla iptables. Zde je „watch ‘ příkaz se hodí. „Watch ‘ nám umožňuje opakovat stejné příkazy a sledovat výstup každou chvíli (výchozí nastavení je každé 2 sekundy).

sudo watch iptables -nvL INPUT

Při „watch ‘ samo o sobě nevyžaduje přístup sudo, pokud to vyžaduje příkaz, který budete sledovat, můžete předřadit ‘sudo ‘ do ‘watch ‘, abyste měli oprávnění root pro příkaz, který chcete sledovat. Také, pokud byste chtěli sledovat výstup pomocí kanálu „grep ‘, budete chtít dát celý příkazový řetězec do jednoduchých uvozovek:

sudo watch 'iptables -nvL INPUT | grep tcp'

Chcete-li opustit „watch ‘, stiskněte <Ctrl-C> .

Zjistěte více o našich hostingových službách VPS a virtuálních privátních serverech.


Linux
  1. Jak vyprázdnit pravidla iptables

  2. Jak na to:Linux General – IPTtables obecně

  3. CentOS / RHEL 6:Jak uložit pravidla iptables

  1. CentOS / RHEL:Průvodce řešením problémů s iptables

  2. Jak otevřít port v Linuxu

  3. Jak zobrazím seznam IP adres blokovaných iptables?

  1. Jak vyprázdnit pravidla iptables

  2. Linux – směrování přes Iptables?

  3. Řešení základních problémů s fondem aplikací