Wyszukiwanie w witrynie

Jak poznać konfigurację zapory Shorewall w systemie Linux


W moim poprzednim artykule poznaliśmy instalację Shorewall, konfigurację pliku konfiguracyjnego i konfigurację przekierowania portów przez NAT. W tym artykule zagłębimy się w typowe błędy związane z Shorewall, podamy rozwiązania i przedstawimy opcje wiersza poleceń.

Shorewall oferuje szeroką gamę poleceń, które można uruchomić w wierszu poleceń. Spojrzenie na man shorewall powinno dać ci wiele do zobaczenia, ale pierwszym zadaniem, które wykonamy, będzie sprawdzenie naszych plików konfiguracyjnych.

sudo shorewall check

Shorewall wydrukuje sprawdzenie wszystkich plików konfiguracyjnych i zawartych w nich opcji.

Dane wyjściowe będą wyglądać mniej więcej tak.

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

Magiczna linia, której szukamy, to ta na dole, która brzmi: „Zweryfikowano konfigurację Shorewall”. Jeśli pojawią się jakieś błędy, najprawdopodobniej są one spowodowane brakującymi modułami w konfiguracji jądra.

Pokażę ci, jak rozwiązać dwa najczęściej spotykane błędy, ale jeśli planujesz używać swojego komputera jako zapory ogniowej, powinieneś ponownie skompilować jądro ze wszystkimi niezbędnymi modułami.

Pierwszym i najczęstszym błędem jest błąd dotyczący 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)

Jeśli widzisz coś podobnego, istnieje prawdopodobieństwo, że Twoje obecne jądro nie jest skompilowane z obsługą NAT. Jest to powszechne w przypadku większości gotowych jąder. Na początek przeczytaj mój poradnik „Jak skompilować jądro Debiana”.

Innym częstym błędem powodowanym przez kontrolę jest błąd dotyczący iptables i logowania.

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

Jest to również coś, co możesz wkompilować w nowe jądro, ale istnieje szybkie rozwiązanie tego problemu, jeśli chcesz używać ULOG. ULOG to inny mechanizm rejestrowania niż syslog. Jest całkiem łatwy w użyciu.

Aby to ustawić, musisz zmienić każde wystąpienie „info” na „ULOG” we wszystkich plikach konfiguracyjnych w /etc/shorewall . Poniższe polecenie może to zrobić za Ciebie.

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

Następnie edytuj plik /etc/shorewall/shorewall.conf i ustaw linię.

LOGFILE=

Do miejsca, w którym chcesz przechowywać swój dziennik. Mój znajduje się w /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Ponowne uruchomienie następującego polecenia powinno dać ci czysty rachunek za zdrowie.

shorewall check

Interfejs wiersza poleceń Shorewall zawiera wiele przydatnych, prostych instrukcji dla administratorów systemów. Jednym z często używanych poleceń, szczególnie gdy w zaporze dokonuje się wielu zmian, jest zapisanie bieżącego stanu konfiguracji, aby można było go przywrócić w przypadku jakichkolwiek komplikacji.

Składnia tego jest prosta.

sudo shorewall save <filename>

Wycofanie jest równie proste:

sudo shorewall restore <filename>

Shorewall można także uruchomić i skonfigurować tak, aby korzystał z alternatywnego katalogu konfiguracyjnego. Możesz określić, że jest to polecenie startu, ale najpierw będziesz chciał to sprawdzić.

sudo shorewall check <config-directory>

Jeśli chcesz po prostu wypróbować konfigurację i jeśli działa, uruchom ją, możesz określić opcję try.

sudo shorewall try <config-directory> [  ]

Shorewall to tylko jedno z wielu solidnych rozwiązań firewall dostępnych w systemach Linux. Bez względu na to, na jakim krańcu spektrum sieci się znajdujesz, wiele osób uważa to za proste i przydatne.

To zaledwie mały początek, który może poprowadzić Cię dalej bez zbytniego zagłębiania się w koncepcje sieciowe. Jak zawsze, proszę przeszukać strony podręcznika i inne zasoby. Lista mailingowa Shorewall to niesamowite miejsce, aktualne i dobrze utrzymane.