Utforske Shorewall-brannmurkonfigurasjon og kommandolinjealternativer


I min forrige artikkel tok vi en titt på Shorewall, hvordan du installerer den, konfigurerte konfigurasjonsfilene og konfigurerte portvideresending over NAT. I denne artikkelen skal vi utforske noen av Shorewalls vanlige feil, noen løsninger og få en introduksjon til kommandolinjealternativene.

  1. Shorewall – En brannmur på høyt nivå for konfigurering av Linux-servere – Del 1

Shorewall tilbyr et bredt spekter av kommandoer som kan kjøres på kommandolinjen. Å ta en titt på man shorewall burde gi deg mye å se, men den første oppgaven vi skal utføre er en sjekk av konfigurasjonsfilene våre.

$ sudo shorewall check

Shorewall vil skrive ut en sjekk av alle konfigurasjonsfilene dine, og alternativene i dem. Utgangen vil se omtrent slik ut.

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

Den magiske linjen vi leter etter er den nederst som lyder: \Shorewall-konfigurasjon verifisert.\ Hvis du mottar noen feil, skyldes de mest sannsynlig manglende moduler i kjernekonfigurasjonen din.

Jeg vil vise deg hvordan du løser to av de vanligste feilene, men det påhviler deg å rekompilere kjernen med alle nødvendige moduler hvis du planlegger å bruke maskinen din som en brannmur.

Den første feilen, og mest vanlig, er feilen om 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)

Hvis du ser noe som ligner dette, er sjansen stor for at din nåværende kjerne ikke er kompilert med støtte for NAT. Dette er vanlig med de fleste ut-av-boksen kjerner. Vennligst les veiledningen min om \Hvordan kompilere en Debian-kjerne for å komme i gang.

En annen vanlig feil forårsaket av sjekken er feilen om iptables og logging.

[email :/etc/shorewall# 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

Dette er også noe du kan kompilere til en ny kjerne, men det er en rask løsning for det hvis du vil bruke ULOG. ULOG er en annen loggingsmekanisme enn syslog. Det er ganske enkelt å bruke.

For å sette dette, må du endre hver forekomst av \info til \ULOG i alle konfigurasjonsfilene i /etc/shorewall. Følgende kommando kan gjøre det for deg.

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

Etter det, rediger filen /etc/shorewall/shorewall.conf og sett linjen.

LOGFILE=

Hvor du vil at loggen din skal lagres. Min er i /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Å kjøre sudo shorewall check bør gi deg en ren helseerklæring.

Shorewalls kommandolinjegrensesnitt kommer med mange praktiske one-liners for systemadministratorer. En ofte brukt kommando, spesielt når det gjøres mange endringer i brannmuren, er å lagre den gjeldende konfigurasjonstilstanden slik at du kan rulle tilbake hvis det er noen komplikasjoner. Syntaksen for dette er enkel.

$ sudo shorewall save <filename>

Å rulle tilbake er like enkelt:

$ sudo shorewall restore <filename>

Shorewall kan også startes og konfigureres til å bruke en alternativ konfigurasjonskatalog. Du kan spesifisere at dette er startkommandoen, men du vil sjekke det først.

$ sudo shorewall check <config-directory>

Hvis du bare vil prøve ut konfigurasjonen, og hvis den fungerer, start den opp, kan du spesifisere prøvealternativet.

$ sudo shorewall try <config-directory> [  ]

Shorewall er bare en av mange robuste brannmurløsninger som er tilgjengelig på Linux-systemer. Uansett hvilken ende av nettverksspekteret du befinner deg på, synes mange det er enkelt og nyttig.

Dette er bare en liten start, og en som kan få deg på vei uten å gå tungt inn i nettverkskonsepter. Som alltid, vennligst undersøk og ta en titt på man-sidene og andre ressurser. Shorewalls e-postliste er et fantastisk sted, og er oppdatert og godt vedlikeholdt.