
Firewall w Linuxie od podstaw do zaawansowanej konfiguracji (UFW, nftables, iptables)
Bezpieczeństwo Linuxa nie zaczyna się od antywirusa – zaczyna się od kontroli ruchu sieciowego.
Firewall to pierwsza linia obrony – blokuje niepożądany ruch, ogranicza potencjalną powierzchnię ataku i chroni system przed skanowaniem i exploitami.
Linux oferuje dziś kilka narzędzi do konfiguracji firewalla: iptables, nftables, UFW, które różnią się poziomem abstrakcji, prostotą i funkcjonalnością. W tym artykule przeprowadzimy kompletny przegląd – od podstaw po zaawansowane techniki.
1. Podstawy – czym jest firewall w Linuxie
Firewall w Linuxie:
- działa w jądrze systemu,
- filtruje pakiety przychodzące i wychodzące,
- może działać w trzech poziomach:
- przychodzące – blokada portów i adresów źródłowych,
- wychodzące – kontrola, co system może wysyłać,
- przekazywanie (forwarding) – w przypadku routerów.
Firewall nie chroni przed błędami w aplikacjach, ale ogranicza powierzchnię ataku.
2. Różnice między narzędziami
iptables
- Klasyk w świecie Linuxa, oparty o kernelowy framework
netfilter. - Zalety:
- stabilny, powszechnie znany,
- ogrom dokumentacji i skryptów.
- Wady:
- składnia złożona,
- trudny w zarządzaniu w dużych systemach,
- brak nowoczesnej abstrakcji.
- Najlepiej używany w starszych systemach i tam, gdzie wymagany jest niski poziom kontroli.
nftables
- Następca iptables, wprowadzony w jądrze Linux 3.13+.
- Zalety:
- nowoczesna składnia i abstrakcja,
- wydajniejsze filtrowanie,
- wsparcie dla tabel, łańcuchów i map w jednym miejscu,
- łatwiejsza integracja z regułami NAT.
- Wady:
- mniejsza baza gotowych skryptów niż iptables,
- wymaga nauki nowej składni.
UFW (Uncomplicated Firewall)
- Abstrakcja dla użytkownika, głównie na desktopach i serwerach prostych usług.
- Zalety:
- łatwy w użyciu (
allow,deny,status), - integracja z systemd i systemami Ubuntu/Debian.
- łatwy w użyciu (
- Wady:
- ograniczona kontrola zaawansowana,
- trudniejsza implementacja złożonych scenariuszy NAT i przekierowań.
📌 W praktyce:
- UFW → szybkie, proste wdrożenie,
- nftables → pełna kontrola, nowoczesny standard,
- iptables → kompatybilność i tradycja, niski poziom.

3. Reguły przychodzące i wychodzące
Reguły przychodzące
- kontrolują ruch do systemu,
- blokują niechciane połączenia z Internetu,
- przykłady zastosowania:
- SSH tylko z określonego IP,
- HTTP dostępny publicznie,
- blokada portów nieużywanych.
Przykład UFW:
ufw default deny incoming
ufw allow 22/tcp
ufw allow 80/tcp
ufw enable
Przykład nftables:
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
tcp dport 22 accept
tcp dport 80 accept
ct state established,related accept
}
}
Reguły wychodzące
- kontrolują ruch z systemu na zewnątrz,
- przydatne w środowiskach krytycznych, np. serwery produkcyjne,
- mogą ograniczać aplikacje do konkretnych hostów i portów.
UFW przykład:
ufw default allow outgoing
ufw deny out 25/tcp
nftables przykład:
chain output {
type filter hook output priority 0;
policy accept;
tcp dport 25 drop
}
📌 Domyślnie większość firewalli Linuxa dopuszcza ruch wychodzący – warto to świadomie kontrolować.
4. Ochrona przed skanowaniem i atakami sieciowymi
Firewall może:
- ukryć porty (stealth),
- blokować powtarzające się połączenia (rate-limiting),
- chronić przed SYN flood i port scanning.
Przykład iptables anti-scan:
iptables -N SCAN
iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -j DROP
nftables z rate-limit:
tcp dport 22 ct state new limit rate 5/second accept
📌 Ochrona przed skanowaniem zmniejsza szanse, że atakujący znajdzie otwarte usługi.
5. Testowanie i debugowanie firewalla
Firewall jest tylko tak skuteczny, jak jego konfiguracja.
Testowanie pozwala upewnić się, że:
- reguły działają zgodnie z zamierzeniem,
- ruch nie jest blokowany przypadkowo,
- system nie jest otwarty na niechciane połączenia.
Narzędzia i metody
- nmap
- skanuje porty lokalne i zdalne,
- symuluje ataki i testuje reguły.
- tcpdump / tshark
- podgląd pakietów przychodzących/wychodzących,
- idealny do debugowania reguł.
- ufw status verbose / nft list ruleset
- weryfikacja reguł,
- sprawdzenie kolejności i priorytetów.
📌 Testowanie po każdej zmianie jest obowiązkowe – nawet najlepsza konfiguracja bez testu może być dziurawa.
6. Praktyczne wskazówki
- Zasada minimalnego dostępu – wszystko, czego nie używasz, blokuj.
- Oddziel ruch publiczny od wewnętrznego – interfejsy i strefy.
- Backup reguł – każda zmiana powinna być odtwarzalna.
- Monitoruj logi –
dmesg,journalctl, logi firewallowe. - Używaj rate-limit i fail2ban dla usług krytycznych.
7. Najczęstsze błędy administratorów
- brak kontroli ruchu wychodzącego,
- nadmierne poleganie na UFW w serwerach produkcyjnych,
- ignorowanie logów i alertów,
- chaotyczne mieszanie iptables + nftables + UFW,
- brak testów po zmianach – „w teorii działa”.
📌 Firewall to proces, nie jednorazowa komenda.
Podsumowanie
Firewall w Linuxie to podstawa twardego bezpieczeństwa – zarówno dla serwerów, jak i desktopów.
Dobry firewall:
- blokuje niepożądany ruch,
- ogranicza powierzchnię ataku,
- chroni przed skanowaniem i powtarzalnymi atakami,
- jest monitorowany i testowany.
Narzędzia do wyboru:
- UFW – szybka konfiguracja dla prostych środowisk,
- nftables – nowoczesna, pełna kontrola,
- iptables – kompatybilność i tradycja.
🔥 Kluczowe: minimalny dostęp, regularne testy, logowanie i monitoring.
Nie wystarczy ustawić reguły – trzeba wiedzieć, co naprawdę przepuszcza i blokuje Twój firewall.





