Udforskning af Shorewall Firewall Configuration og Command Line Options


I min forrige artikel kiggede vi på Shorewall, hvordan man installerer det, opsætter konfigurationsfilerne og konfigureret portvideresendelse over NAT. I denne artikel skal vi udforske nogle af Shorewalls almindelige fejl, nogle løsninger og få en introduktion til dens kommandolinjemuligheder.

  1. Shorewall - en firewall på højt niveau til konfiguration af Linux-servere - del 1

Shorewall tilbyder en bred vifte af kommandoer, der kan køres på kommandolinjen. At se på man shorewall burde give dig masser at se, men den første opgave, vi skal udføre, er en kontrol af vores konfigurationsfiler.

$ sudo shorewall check

Shorewall udskriver en check af alle dine konfigurationsfiler og mulighederne indeholdt i dem. Outputtet ser sådan ud.

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 linje, som vi er på udkig efter, er den nederst, der lyder: "Verifikation af strandmur". Hvis du modtager fejl, skyldes de sandsynligvis manglende moduler i din kernekonfiguration.

Jeg vil vise dig, hvordan du løser to af de mere almindelige fejl, men det skal du kompilere din kerne med alle de nødvendige moduler, hvis du planlægger at bruge din maskine som en firewall.

Den første og mest almindelige fejl er fejlen 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 noget, der ligner dette, er chancerne for, at din nuværende kerne ikke er kompileret med support til NAT. Dette er almindeligt med de fleste ikke-kasserede kerner. Læs min tutorial om "Sådan kompileres en Debian-kerne" for at komme i gang.

En anden almindelig fejl produceret af kontrollen er fejlen om iptables og logning.

[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å noget, du kan kompilere i en ny kerne, men der er en hurtig løsning på det, hvis du gerne vil bruge ULOG. ULOG er en anden logningsmekanisme end syslog. Det er ret nemt at bruge.

For at indstille dette skal du ændre hver forekomst af "info" til "ULOG" i alle dine konfigurationsfiler i/etc/shorewall. Den følgende kommando kan gøre det for dig.

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

Derefter skal du redigere filen /etc/shorewall/shorewall.conf og indstille linjen.

LOGFILE=

Til hvor du ønsker, at din log skal opbevares. Min er i /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

At køre "sudo shorewall check" skal give dig en ren sundhedsregning.

Shorewalls kommandolinjegrænseflade leveres med mange praktiske one-liners til systemadministratorer. En hyppigt anvendt kommando, især når der foretages adskillige ændringer i firewallen, er at gemme den aktuelle konfigurationstilstand, så du kan rulle tilbage, hvis der er komplikationer. Syntaksen for dette er enkel.

$ sudo shorewall save <filename>

Rulning er lige så let:

$ sudo shorewall restore <filename>

Shorewall kan også startes og konfigureres til at bruge en alternativ konfigurationsmappe. Du kan angive, at dette er startkommandoen, men du vil først kontrollere det.

$ sudo shorewall check <config-directory>

Hvis du blot vil prøve konfigurationen, og hvis den fungerer, skal du starte den, du kan angive prøveindstillingen.

$ sudo shorewall try <config-directory> [  ]

Shorewall er kun en af mange robuste firewall-løsninger, der er tilgængelige på Linux-systemer. Uanset hvilken ende af netværksspektret du befinder dig på, finder mange det at være simpelt og nyttigt.

Dette er kun en lille start, og en der kan få dig på vej uden at gå meget ind i netværkskoncepter. Som altid bedes du undersøge og kigge på mandsiderne og andre ressourcer. Shorewalls postliste er et fantastisk sted og er opdateret og velholdt.