Firewally

Pavel Březina, 359290@mail.muni.cz

Obsah

Typy firewallů

Paketový filtr

Stavové paketové filtry

Aplikační brána/Proxy firewall

Netfilter

Jedná se o framework pro filtrování a manipulaci s pakety zabudovaný do jádra systému. Definuje několik přípojných bodů na kterých můžou moduly jádra registrovat vlastní callback funkce. Tento callback je pak zavolán pro každý paket, který prochází příslušným přípojným bodem.

Umožňuje například:

Přípojné body

IP Tables

ip_tables (ip6_tables) je zřejmě jedním z nejznámějších modulů využívajích netfilter. Prostřednictvím přípojných bodů netfiltru vytváří stavový paketový filter pro IPv4 (resp. IPv6) - pro sledování spojení využívá modul conntrack. Obsahuje v sobě čtyři tabulky:

filter
Připojuje se na input, forward, output. Je to výchozí tabulka a slouží pro filtrování paketů.
nat
Připojuje se na prerouting, postrouting, output a slouží k manipulaci s adresami paketu.
mangle
Připojuje se na všechny přípojné body a slouží pro úpravu paketů.
raw
Připojuje se na prerouting, output a slouží především ke zrušení monitorování stavu spojení (na přípojné body se registruje s větší prioritou a je tedy volán dřív než ip_conntrack a další moduly iptables).

Modul conntrack rozděluje pakety do následujících kategorií:

Konfigurace tabulek se provádí příkazem iptables (ip6tables). Základní syntaxe pro přidání/smazání pravidla je:


   iptables [-t table] {-A|-D} chain rule-specification
   rule-specification = [matches...] [target]
   match = -m matchname [per-match-options]
   target = -j targetname [per-target-options]

chain jeden z předdefinovaných (PREROUTING, FORWARD, INPUT, OUTPUT, POSTROUTING) nebo můžeme použít vlastní (pomocí iptables -N chainname)

matchname je název modulu, který se použije při porovnávání paketu. Modulů existuje celá řada a každý má svoje specifické parametry. (Např. state).

targetname říká, co se má s paketem provést. Například:

Příklady

iptables -F
Smaže všechny pravidla.
iptables -P INPUT DROP
Nastavení výchozí chování na DROP (zahození paketu) pro přípojný bod INPUT
iptables -A INPUT -s "80.80.80.80" -j DROP
Přidá pravidlo pro zahazování paketů z adresy 80.80.80.80.
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
Povolí připojení na ssh.
iptables -L [-t table]
Vypíše pravidla pro tabulku table

Další užitečné příkazy

Literatura