Sprawa wygląda tak:
1. W różnych miejscach wędrówki pakietów przez kernel istnieją tzw "tapy" mechanizmu NetFilter (np pakiet wpada do karty sieciowej, pakiet właśnie zakończył routing, itd). "Tap" jest to miejsce, jakby rozgałęźnik, do którego może podłączyć się aplikacja i oglądać oraz modyfikować przepływające pakiety.
2. Korzystając z dostępnych "tapów" stworzono infrastrukturę modułów użytkowych o nazwie IPTables, które świetnie nadają się do obróbki przepływów protokołu IP, m. in. do robienia firewalli. Konfiguracja IPTables jest robiona przez odpowiednie wywołania odpwiednich funkcji jądra.
3. Program użytkowy 'iptables' przyjmuje od użytkownika czytelne komendy (no, na ogół czytelne
![Smiley :)](http://forum.linux.pl/Smileys/default/smiley.gif)
i generuje odpowiednie wywołania do IPTables aby je skonfigurować.
4. Narzędzia typu "firestarter" generują automatycznie ciągi poleceń (de-facto skrypty) dla programu 'iptables' na podstawie jakiejś "klikanej" konfiguracji. Te narzędzia można nazwać "managerem firewalla".
W Ubuntu masz domyślnie zainstalowany manager 'ufw', tyle, że jest domyślnie wyłączony. Aby go włączyć wystarczy wydać polecenie
ufw enable. Instrukcja
man ufw pokieruje cię dalej. Możesz także zainstalowac graficzną nakładkę na ufw o nazwie
gufw. Pojawia się w menu System/Administracja/Firewall.