Segítségükkel lehetőségünk van a hálózati forgalmat szabályozni. Korlátozhatjuk szerverünk egyes portjainak vagy éppen a teljes szerver elérését, szűrhetünk egyes protokollokat (pl. ICMP vagy UDP) is, de lehetséges a csomagok tartalma vagy a használt alkalmazási rétegbeli protokoll alapján való szűrés is. A komolyabb firewall-ok már IDS képességekkel is rendelkeznek.
Packet filter firewall:
A Linux-os firewall szoftverek közül eléggé elterjedt az
ipfwadm[36], bár ez a 2.2.* kernelekkel már nem működik,
helyette az ipchains[37] használatos. Az utóbbi sokkal több
funkcióval rendelkezik, de mindkettő a Linux kernel packet filter
(csomagszűrő) funkcióit használja ki, azaz protokollok, IP címek,
portok, illetve a csomagok egyéb tulajdonságai alapján filterezhetjük
a forgalmat és forwardolhatunk hálózati interface-ek között.
Application level (proxy) firewall:
Az ilyen funkciókat megvalósító programokkal (pl. TIS FWTK[39])
lehetséges az alkalmazási rétegben szűrni a csomagokat, azaz
megoldható az adott alkalmazások által használt protokollok
sajátosságain alapuló szűrés.
A proxy firewall nem forwardol az interface-ek között, a megfelelő
portokon az adott alkalmazási protokoll kezelésére írt speciális
programok fogadják a kéréseket. Minden forgalom keresztülmegy rajtuk,
így lehetőségük van a csomag tartalmának megváltoztatására is.
Ezek a programok ideális esetben a KISS (Keep It Single Stupid) logikát
követik, azaz méretük kicsi, kizárólag csak a feladatuk ellátására
készültek, forráskódjuk általában ellenőrzött.