Podstawy

🟣 ROZSZERZENIE2 min czytaniaPostęp: 129/233

NAT i firewall (iptables)

Nieukończona

Postępy nie są zapisywane. Zarejestruj się lub zaloguj, aby śledzić postępy w kursach.

NAT i firewall (iptables)

Scenariusz z życia

Serwer Linux ma dwie sieci: wewnętrzną (pracownicy) i zewnętrzną (internet). Ma pełnić rolę bramy: ruch z sieci wewnętrznej na zewnątrz ma być przekładany na jeden adres publiczny (NAT), a z zewnątrz do wewnątrz tylko wybrane usługi (np. przekierowanie portu 443 na wewnętrzny serwer WWW). Dodatkowo firewall (iptables lub nftables) — które porty są otwarte, co blokować.

Co się dzieje w systemie

NAT: IP forwarding włączony (kernel), iptables/nftables — MASQUERADE lub SNAT dla ruchu z sieci wewnętrznej wychodzącego na zewnątrz; DNAT/PREROUTING dla przekierowania portów z zewnątrz do wewnętrznego hosta. Firewall: łańcuchy INPUT (ruch do samego serwera), FORWARD (ruch przez serwer), OUTPUT; reguły ACCEPT/DROP. Domyślna polityka: DROP na INPUT, dozwolić tylko SSH, HTTP/HTTPS, ewentualnie ping.

Co administrator zyskuje

Jedna brama z kontrolą: kto wychodzi do internetu (NAT), co jest wystawione do świata (port forwarding, firewall). Minimalna powierzchnia ataku — tylko potrzebne porty otwarte.

Typowy błąd

Zablokować port 22 (SSH) przed dopisaniem reguły zezwalającej — utrata dostępu. Albo: zapomnieć o IP forward (sysctl net.ipv4.ip_forward=1). Albo: reguły w złej kolejności (np. DROP wszystkiego przed ACCEPT dla SSH). Albo: nie zapisać reguł (iptables-save, persistencja przy starcie) — po restarcie firewall wraca do domyślnego.

Myślenie administratora

Firewall: najpierw zezwól to, co potrzebne (SSH!), potem ogranicz resztę. Zawsze test z drugiej sesji przed blokowaniem. NAT: forward włączony, MASQUERADE na interfejsie zewnętrznym; DNAT dla portów, które mają iść do hostów wewnętrznych. Zapis reguł do pliku i skrypt przy starcie.

Zapamiętaj – 4 fakty praktyczne

  • iptables/nftables: INPUT (do serwera), FORWARD (przez serwer), OUTPUT; ACCEPT/DROP w odpowiedniej kolejności.
  • NAT: ip_forward=1; MASQUERADE/SNAT dla ruchu na zewnątrz; DNAT dla port forwarding do wewnątrz.
  • Nie blokuj SSH (22) zanim nie masz innej drogi dostępu; testuj reguły z drugiej sesji.
  • Zapisz reguły (iptables-save, np. do /etc/iptables.rules) i ładuj przy starcie — inaczej restart je wyczyści.
Notatki (opcjonalnie)