terminal

LINUX ADMIN7

Strona główna / Baza Wiedzy / Firewall Hardening

Konfiguracja Firewalla: Ewolucja od iptables do nftables

Zaawansowane zarządzanie filtrowaniem ruchu sieciowego i hardening reguł dla serwerów publicznych.

01. Wstęp: Dlaczego nowoczesny firewall ma znaczenie?

W świecie administrowania systemami Linux, firewall to nie tylko "blokada portów". To rzemiosło, które decyduje o stabilności i bezpieczeństwie całego ekosystemu. W dobie zmasowanych ataków typu brute-force oraz skanowania podatności w czasie rzeczywistym, pasywne podejście do bezpieczeństwa sieciowego jest wyrokiem.

Jako administratorzy musimy dążyć do precyzji. Każdy pakiet, który trafia do stosu sieciowego jądra, musi być procesowany z minimalnym narzutem wydajnościowym, przy zachowaniu maksymalnej przejrzystości reguł.

02. Zmiana warty: Od iptables do nftables

Przez lata iptables był standardem. Jednak jego architektura – oparta na oddzielnych narzędziach dla IPv4, IPv6 (ip6tables), ARP (arptables) i mostków (ebtables) – stała się nieefektywna.

nftables wprowadza rewolucję:

  • check_circle Zunifikowany framework dla wszystkich protokołów.
  • check_circle Znacznie prostsza i bardziej czytelna składnia wzorowana na tcpdump.
  • check_circle Lepsza wydajność dzięki atomowym aktualizacjom reguł bez konieczności przeładowywania całego stosu.

03. Praktyczna konfiguracja nftables

Poniżej prezentuję bazowy szablon konfiguracji dla serwera publicznego, który implementuje bezpieczne podejście „Default Drop”.

# /etc/nftables.conf

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        # Allow loopback
        iif "lo" accept

        # Established and related connections
        ct state established,related accept

        # ICMP (Ping) with rate limit
        icmp type echo-request limit rate 5/second accept

        # SSH - restrict to trusted IP or use port knocking
        tcp dport 22 accept

        # HTTP/HTTPS for web server
        tcp dport { 80, 443 } accept
        
        # Log dropped packets (optional for debugging)
        limit rate 3/minute log prefix "NFT_INPUT_DROP: "
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

04. Hardening reguł: Rate Limiting & Logging

Podstawowe otwarcie portów to dopiero początek. Prawdziwy hardening polega na limitowaniu nadmiarowego ruchu, który może wskazywać na próbę ataku DoS lub brute-force.

speed Rate Limiting

Używaj setów do dynamicznego banowania IP, które generują zbyt wiele połączeń w krótkim czasie na port SSH.

description Logging Strategy

Loguj tylko to, co istotne. Nadmierne logowanie może doprowadzić do wyczerpania miejsca na dysku i spowolnienia systemu.

Podsumowanie

Przejście na nftables na początku wydaje się trochę jak uczenie się jazdy na nowo. Przez kilkanaście lat wklepywałem regułki iptables z zawiązanymi oczami, więc zmiana nawyków trochę bolała. Ale powiem wprost: było warto. Nftables to nie tylko nowa, czystsza składnia. To przede wszystkim koniec koszmaru z debugowaniem konfliktów między IPv4 a IPv6, koniec zgadywania dlaczego tabela NAT ignoruje nasze pakiety i koniec resetowania wszystkich połączeń przy każdym przeładowaniu firewalla podczas wdrożenia.

Dla mnie największą wartością nie jest nawet sama wydajność, o której wszyscy trąbią (choć przy gigabajtowych atakach DDoS robi to robotę). Najważniejszy jest święty spokój. Zestawy (sets) i mapowanie pozwalają mi zredukować setki rozwlekłych linijek konfiguracji do jednego, czytelnego pliku, który w końcu mogę normalnie utrzymywać w systemie kontroli wersji. To czysta higiena pracy administratora i inwestycja w to, żeby pager nie budził Cię w środku nocy. Traktuj to jako fundament, bez którego po prostu nie wypuszcza się maszyn na produkcję w otwarty internet.