V tomto tutoriálu budeme mluvit o iptables, firewall nebo firewall, který máme v Linuxu. Tento nástroj nám umožní filtrovat pakety (kterými se tutoriál bude zabývat), generovat záznam protokolu, provádět překlady NAT.
Díky iptables můžeme generovat pravidla pro filtrování paketů docela jednoduše, i když to při prvním použití může vypadat poněkud matoucí, uvidíte, že když to používáte několik dní, nebude to mít žádné komplikace.
Použití tohoto nástroje vyžaduje vysoká oprávnění, to znamená, že k jeho spuštění budeme muset být superuživatelé. V iptables máme mnoho funkcí, cílem tutoriálu je pomocí příkladů přiblížit jeho použití. Je důležité, abyste po dokončení tutoriálu pokračovali v kopání, protože je to velmi užitečné.
Poté opustíme oficiální web pro případ, že by byl zajímavý:
PoznámkaPro IPv6 máme tabulky ip6.
Pokud chceme vidět informace o iptables, provedeme v terminálu následující:
člověk iptablesUvidíme následující informace:
Na obrázku vidíte část informací poskytnutých příkazem, abyste je viděli všechny, přejděte v terminálu dolů. Jak jsme viděli na začátku tutoriálu, jedním z úkolů, které nám iptables umožní, je vytvořit pravidla nebo filtry, abychom věděli, co dělat s pakety, jejichž původ / cíl má náš stroj. Pro tento úkol nás bude zajímat, proč používáme následující koncepty:
Desky
Iptables má několik tabulek, ale v našem kurzu se zaměřujeme pouze na filtrační stůl, který má na starosti filtrování, se ve výchozím nastavení používá v iptables.
Řetězy
Řetězce, které zde vložím, jsou ty, které patří do tabulky komentované dříve.
- Vstup: Balíčky určené pro náš stroj.
- Výstup: Balíčky pocházející z našeho systému.
- Vpřed: Balíčky, které procházejí naším strojem, jsou směrovány do jiného.
Pravidla
Uvedeme 2, které budou použity v tutoriálu, ale existuje více.
- Přijmout: Balíčky jsou přijímány.
- Pokles: Pakety jsou vyřazeny.
Parametry
Některé z parametrů, které můžeme použít, jsou následující.
- -Pravidlo: Chcete -li přidat pravidlo
- -D pravidlo: Odstranit pravidlo, které označujeme.
- -L: Umožňuje vypsat pravidla.
- -F: Odstranit všechna stávající pravidla.
- -j cíl: Nastavit typ pravidla (Přijmout, Zrušit).
- -t stůl: Udává použitou tabulku (ve výchozím nastavení tabulka filtrů).
- -p protokol: Používá se k označení protokolu.
- -i rozhraní: Vytvoříme rozhraní pro pravidlo.
- -s: K označení původu.
- -d: K označení cíle.
- -h: Zobrazí nápovědu.
Existuje mnoho dalších, jak mohou být -cílový port nebo --zdrojový port. Chcete -li je zobrazit všechny, můžete spustit příkaz, který jsme probrali výše:
člověk iptablesNebo můžete také spustit:
iptables -hPoznámkaMusíte se pečlivě podívat na možnosti, které nástroj nabízí, protože rozlišuje malá a velká písmena a můžeme udělat chybu (nebude stejné -p že -P).
Začněme příklady, celkem jich bude vloženo 10, takže bude lépe pochopeno a můžeme vidět, jak iptables funguje v režimu brány firewall. V příkladech neuvidíte sudo, nebude to nutné, pokud jste jako root, jinak budete muset na začátek každého příkladu přidat slovo sudo.
1. Zakažte odlet na jakékoli místo určeníNa začátek uvedeme snadný příklad, nenechávejte nikde východ.
iptables -A VÝSTUP -j DROPTenhle je velmi snadný, jak vidíte, další je ještě jednodušší.
2. Vymažte všechna pravidlaPokračujeme velmi jednoduchým příkladem, ponecháme naše iptables bez pravidel, proto provedeme:
iptables -FPojďme to v dalším trochu zkomplikovat.
3. Zakázat odjezd přes přístav 80Nyní se postaráme o uzavření výstupu přes konkrétní port, v tomto případě je to 80, proto nebudeme mít procházení webu protokolem http (pokud přejdeme na stránku https, můžeme navigovat, i když bychom mohli udělat to samé jako 80).
iptables -A VÝSTUP -p tcp -cílový port 80 -j DROPPoznámkaPři použití cílového nebo zdrojového portu budeme muset zadat parametr -p k označení protokolu.
Přejdeme ke čtvrtému příkladu.
4. Zakázat navigaci na stránkuPři této příležitosti máme zájem zakázat přístup na stránku X z našeho systému, představme si, že tato stránka je solvetic.com, za tímto účelem zjistíme její IP, velmi snadno provedením příkazu ping jej získáme.
A nyní provedeme:
iptables -A VÝSTUP -d 178.33.118.246 -j DROPJak vidíme, stačí za parametrem uvést vaši IP -d.
5. Seznam pravidel, která existujíTento příklad se pokusí vypsat pravidla filtrování, která jsme aktuálně definovali:
iptables -LVidíme obrázek, máme definována pouze dvě pravidla, jak vidíme níže:
Přejdeme k šestému příkladu, ve kterém opět použijeme seznam pravidel.
6. Odstraňte konkrétní pravidloZde, počínaje pravidly, která jsme měli v předchozím příkladu, odstraníme jedno z pravidel ukončení, v tomto případě první, které se objeví, provedeme následující:
iptables -D VÝSTUP 1A abychom ověřili, že byla skutečně odstraněna, použijeme příklad 5:
Pokračujme v dalších.
7. Vyhněte se pinguNechceme, aby na nás pingovali, za tímto účelem zablokujeme záznam pro protokol ICMP.
iptables -A VSTUP -p ICMP -j DROPNíže nechávám obrázek ping před spuštěním výše uvedeného příkazu a po:
Vidíme, že náš počítač neodpovídá, protože odmítá ICMP pakety. Pokud místo vstupu zablokujeme výstup, provedeme:
iptables -A VÝSTUP -p ICMP -j DROPZnovu se stane to samé, co na předchozím obrázku. Chcete -li otestovat, udělal jsem 3krát ping, pokud spustíme, uvidíme počet balíčků:
iptables -L -v
Vidíme, že efektivně dá 3 na předchozí obrázek.
8. Zabraňte tomu, aby nám IP zasílala dataPoužijeme vstupní, nechceme, aby nás spojila určitá IP, takže provedeme:
iptables -A VSTUP -s 192.168.66.1 -j DROPPodívejme se na poněkud delší příklad.
9. Povolte ukončení řady IPPředstavte si, že chcete přijímat pouze výstupy na řadu IP adres, ale ostatní výstupy odmítnout, musíme provést:
Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT Iptables -A OUTPUT -j DROPPoznámkaNa pořadí provedení pravidel záleží, zkuste tento příklad se sítí, kterou chcete povolit, a vytvořte připojení, uvidíte, že to funguje, poté smažte všechna pravidla a spusťte 2 věty obráceně, nyní by to spojení odmítlo .
Přejděme k desátému a poslednímu příkladu.
10. Otevřete port 143 (imap)Otevřeme port pro vstup všech paketů tcp, v tomto případě 143 (pro zbytek by to bylo stejné).
iptables -A INPUT -m stav --state NOVINKA -p tcp --dport 143 -j PŘIJMOUTV tomto příkladu jsme chtěli použít --port, takže vidíte, že můžeme použít toto nebo -cílový port, mohli bychom také použít --sport namísto --zdrojový port.
Zde tutoriál končí, nyní se pokusíte aplikovat jiná pravidla, čím více budete cvičit, tím budete při uplatňování pravidel rychlejší a tím vás to bude stát méně. Na závěr ponecháme tutoriál, který by vás mohl zajímat, otevírání a zavírání portů ve Windows 10.