Kako istražiti Shorewall Firewall konfiguraciju u Linuxu


U mom prethodnom članku naučili smo instalaciju Shorewall-a, postavljanje konfiguracijske datoteke i konfiguraciju prosljeđivanja portova preko NAT-a. U ovom članku ćemo se upustiti u uobičajene greške povezane sa Shorewall-om, pružiti rješenja i predstaviti njegove opcije komandne linije.

Shorewall nudi široku lepezu komandi koje se mogu pokrenuti na komandnoj liniji. Pogled na man shorewall trebao bi vam dati mnogo toga da vidite, ali prvi zadatak koji ćemo izvršiti je provjera naših konfiguracijskih datoteka.

sudo shorewall check

Shorewall će odštampati provjeru svih vaših konfiguracijskih datoteka i opcija sadržanih u njima.

Izlaz će izgledati otprilike ovako.

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

Magična linija koju tražimo je ona na dnu koja glasi: “Shorewall konfiguracija verificirana”. Ako dobijete bilo kakve greške, one su najvjerovatnije zbog nedostajućih modula u vašoj konfiguraciji kernela.

Pokazaću vam kako da rešite dve uobičajene greške, ali treba da ponovo kompajlirate kernel sa svim potrebnim modulima ako planirate da koristite svoju mašinu kao zaštitni zid.

Prva greška, i najčešća, je greška o NAT.

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

Ako vidite nešto slično ovome, velike su šanse da vaš trenutni Kernel nije kompajliran s podrškom za NAT. Ovo je uobičajeno kod većine postojećih kernela. Molimo pročitajte moj vodič o “Kako kompajlirati Debian kernel” da biste započeli.

Još jedna uobičajena greška koju uzrokuje provjera je greška u vezi iptables i logging.

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

Ovo je također nešto što možete kompajlirati u novi kernel, ali postoji brza popravka za to ako želite koristiti ULOG. ULOG je drugačiji mehanizam evidentiranja od syslog-a. Prilično je jednostavan za korištenje.

Da biste ovo postavili, morate promijeniti svaku instancu “info ” u “ULOG ” u svim vašim konfiguracijskim datotekama u /etc/shorewall . Sljedeća komanda to može učiniti umjesto vas.

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

Nakon toga, uredite datoteku /etc/shorewall/shorewall.conf i postavite liniju.

LOGFILE=

Gdje želite da se vaš dnevnik pohrani. Moj je u /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Ponovnim izvođenjem sljedeće naredbe trebalo bi da dobijete čist pregled stanja.

shorewall check

Shorewall-ovo sučelje komandne linije dolazi s mnogo praktičnih jednostrukih tekstova za administratore sistema. Jedna od često korištenih naredbi, posebno kada se vrše brojne promjene na firewall-u, je da se sačuva trenutno stanje konfiguracije tako da se možete vratiti unatrag ako dođe do bilo kakvih komplikacija.

Sintaksa za ovo je jednostavna.

sudo shorewall save <filename>

Vraćanje je jednako jednostavno:

sudo shorewall restore <filename>

Shorewall se također može pokrenuti i konfigurirati za korištenje alternativnog konfiguracijskog direktorija. Možete odrediti da je ovo startna naredba, ali prvo ćete je htjeti provjeriti.

sudo shorewall check <config-directory>

Ako jednostavno želite da isprobate konfiguraciju i ako radi, pokrenete je, možete odrediti opciju pokušaja.

sudo shorewall try <config-directory> [  ]

Shorewall je samo jedno od mnogih robusnih firewall rješenja koja su dostupna na Linux sistemima. Bez obzira na kom kraju spektra umrežavanja se nalazite, mnogi smatraju da je to jednostavno i korisno.

Ovo je samo mali početak, koji vas može pokrenuti na putu, a da ne ulazite previše u koncepte umrežavanja. Kao i uvijek, istražite i pogledajte man stranice i druge resurse. Shorewall-ova mailing lista je odlično mjesto, ažurna je i dobro održavana.