Generator reguł iptables
Generuj reguły iptables dla Linux: blokuj IP, otwórz port, NAT, FORWARD. Skopiuj i wklej. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Łańcuch
INPUT = ruch do serwera, OUTPUT = z serwera, FORWARD = przekazywany
Akcja
ACCEPT przepuszcza, DROP odrzuca cicho, REJECT odpowiada komunikatem, LOG tylko zapisuje do dziennika
Protokół
porty (--dport/--sport) działają tylko dla tcp/udp — przy „dowolnym” i podanym porcie silnik przełącza na TCP
Wersja IP
IPv6 używa polecenia ip6tables, ICMP zmienia się na icmpv6 automatycznie
iptables -A INPUT -i eth0 -s 203.0.113.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -m comment --comment 'Zezwól na SSH z sieci biurowej' -j ACCEPT
Reguła DROP/REJECT na łańcuchu INPUT bez wcześniejszego wpuszczenia portu 22 (SSH) natychmiast zamyka zdalny dostęp — reguły działają od razu po poleceniu. Zanim przetestujesz: dopisz najpierw akceptację SSH (jak w przykładzie tego narzędzia), uruchom test w drugiej sesji, ustaw iptables-apply albo zadanie at/sleep … && iptables-restore, które przywróci stan, gdy stracisz połączenie. Reguły dodane poleceniem -A/-I znikają po restarcie — trwałość daje dopiero iptables-restore / netfilter-persistent.
Dostępność łańcucha w tabeli jest walidowana przez narzędzie — wybór niezgodny (np. INPUT w tabeli raw) kończy się komunikatem o dostępnych łańcuchach.
| Tabela | Łańcuchy | Do czego służy |
|---|---|---|
| filter | INPUT, FORWARD, OUTPUT | INPUT = ruch do samego serwera (SSH, www), OUTPUT = z serwera, FORWARD = przekazywany (router) — domyślna tabela |
| nat | PREROUTING, INPUT, OUTPUT, POSTROUTING | przepisywanie adresów (DNAT/SNAT, maskarada); pierwsza dopasowana reguła przestawia połączenie |
| mangle | PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING | zmiana nagłówków pakietów (markowanie, TTL) przed dalszą obróbką |
| raw | PREROUTING, OUTPUT | wczesna obróbka z pominięciem conntrack (NOTRACK) — najstarszy punkt ścieżki pakietu |
| security | INPUT, FORWARD, OUTPUT | etykiety SELinux na pakietach |
| Flaga | Znaczenie |
|---|---|
| -A INPUT | dokleja regułę na koniec łańcucha |
| -t tabela | wybór tabeli — pomijana dla filter, bo to domyślna tabela |
| -p protokół | tcp / udp / icmp (dla ip6tables automatycznie icmpv6); pomijany, gdy dopasowujesz każdy protokół |
| -s adres / -d adres | adres źródłowy i docelowy (IP, CIDR albo nazwa hosta) |
| -i interfejs / -o interfejs | interfejs wejściowy (-i) i wyjściowy (-o), np. eth0 |
| -m tcp|udp --sport / --dport | porty źródłowy/docelowy — moduł dopisywany tylko dla tcp/udp; port przy „dowolnym” protokole przełącza regułę na TCP |
| -m conntrack --ctstate | stany NEW, ESTABLISHED, RELATED, INVALID — zaznaczone opcje trafiają do listy w tej kolejności |
| -m comment --comment | etykieta reguły (maks. 256 znaków) — tylko przy włączonej opcji „Dołącz komentarz” |
| -m limit --limit / --limit-burst | limit częstotliwości logowania, umieszczany przed -j LOG |
| -j cel | ACCEPT (przepuść), DROP (cicho odrzuć), REJECT (odrzuć z odpowiedzią --reject-with), LOG (zapisz do dziennika z --log-prefix do 29 znaków i --log-level) |
Kolejność flag w poleceniu jest ustalona: interfejsy, adresy, protokół, porty, stany conntrack, komentarz, limit (przed LOG), a na końcu -j cel z opcjami (--reject-with, --log-prefix, --log-level). Opcja „Dołącz blok restore” generuje dodatkowo format iptables-restore (*tabela, reguła -A, COMMIT).
Warto wiedzieć — iptables a nowoczesne firewalle
iptables a nftables
Następcą iptables jest nftables (jądro od 3.13, Debian 10+): jedna rodzina reguł zamiast czterech narzędzi, wydajniejsze zestawy i wbudowane liczniki. Dystrybucje utrzymują kompatybilność przez iptables-nft — polecenia iptables trafiają na backend nftables. Istniejące skrypty działają dalej, ale nowe wdrożenia warto planować w nft.
Kolejność reguł decyduje
Pakiet przechodzi łańcuch do pierwszej dopasowanej reguły (dla ACCEPT/DROP/REJECT) — reguła dołączona -A na koniec nigdy nie zadziała, jeśli wcześniej coś złapie ruch. Dlatego wpuszczenie ESTABLISHED,RELATED i SSH (port 22) umieszcza się na górze INPUT (opcja „Wstaw (-I)” z pozycją 1).
Stany conntrack
Moduł conntrack pamięta aktywne połączenia: wpuszczenie ESTABLISHED,RELATED pozwala na odpowiedzi wychodzące bez otwierania wszystkich portów, a NEW ogranicza nowe połączenia do wskazanych źródeł. To typowy szkielet firewalla serwera aplikacyjnego.
Trwałość i testowanie
Zestaw reguł warto utrzymywać w pliku iptables-restore (opcja „Dołącz blok restore” generuje ten format) ładowanym przez netfilter-persistent po starcie systemu. Zmiany testuj zawsze z planem awaryjnym — druga sesja SSH albo automatyczne przywrócenie po kilku minutach.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator reguł iptables – firewall Linux dla każdego
iptables to narzędzie do konfiguracji zapory ogniowej (firewall) w Linuksie. Składnia może być trudna – generator tworzy gotowe reguły dla typowych scenariuszy: blokowanie IP, otwieranie portów, przekierowania NAT i polityki bezpieczeństwa – bez konieczności zapamiętywania parametrów.
Podstawy iptables
Tabele: filter (domyślna), nat, mangle, raw. Chains: INPUT (przychodzące), OUTPUT (wychodzące), FORWARD (przekazywane). Polityka domyślna: ACCEPT lub DROP. Reguła: iptables -A INPUT -p tcp --dport 22 -j ACCEPT. Opcje: -A (append), -I (insert), -D (delete), -L (list), -F (flush). Zapisz: iptables-save > /etc/iptables/rules.v4.
Najczęstsze reguły iptables
Otwórz port SSH: iptables -A INPUT -p tcp --dport 22 -j ACCEPT. Blokuj IP: iptables -A INPUT -s 192.168.1.100 -j DROP. Zezwól HTTP/HTTPS: iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT. Loopback: iptables -A INPUT -i lo -j ACCEPT. Ustalone połączenia: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT. DROP all: iptables -P INPUT DROP.
NAT i port forwarding
Masquerade (internet sharing): iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE. Port forwarding: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080. DNAT: iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80. Włącz forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward.
nftables – następca iptables
nftables: od Linux 3.13, domyślny w Debian 10+, CentOS 8+. Lepsza składnia: nft add rule inet filter input tcp dport 22 accept. Migracja: iptables-translate (konwertuje reguły). Tabele i chains: elastyczniejsze. Wydajność: lepiej zoptymalizowany. Dystrybucje: Ubuntu 20.04+ używa nftables przez iptables-nft (wrapper). Sprawdź: systemctl status nftables vs iptables.
Najczęstsze pytania
Jak zablokować ataki brute-force SSH przez iptables?
Ogranicz liczbę połączeń: iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set. iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP. Alternatywa: Fail2ban (automatycznie blokuje IPs po X nieudanych próbach). UFW (Ubuntu): ufw limit ssh (wbudowany rate limiting).
Jak wylistować i usunąć reguły iptables?
Lista: iptables -L -n -v (z numerami linii i statystykami). iptables -L --line-numbers (numery reguł). Usuń po numerze: iptables -D INPUT 3 (usuń 3. regułę w INPUT). Usuń konkretną: iptables -D INPUT -p tcp --dport 80 -j ACCEPT. Wyczyść wszystkie: iptables -F (flush) lub iptables -F INPUT (tylko INPUT). Przywróć domyślne: iptables -P INPUT ACCEPT.
Jak trwale zapisać reguły iptables?
Ubuntu/Debian: apt install iptables-persistent. Zapisz: netfilter-persistent save. Wczytaj: netfilter-persistent reload. Ręcznie: iptables-save > /etc/iptables/rules.v4. Wczytaj przy boot: iptables-restore < /etc/iptables/rules.v4 w /etc/rc.local. CentOS/RHEL: service iptables save. Systemd: utwórz unit service z iptables-restore.
Jaka jest różnica między iptables a UFW?
UFW (Uncomplicated Firewall): frontend dla iptables, prostszy interfejs. iptables: pełna kontrola, trudniejsza składnia. UFW: ufw allow 22/tcp. iptables: iptables -A INPUT -p tcp --dport 22 -j ACCEPT. Kiedy UFW: serwery produkcyjne, podstawowe reguły. Kiedy iptables: złożone NAT, load balancing, zaawansowane filtrowanie. Ubuntu: UFW domyślnie. CentOS 8+: firewalld (inny frontend).
Jak testować reguły iptables bez blokowania dostępu?
1. Testuj w maszynie wirtualnej. 2. Skonfiguruj cron: crontab -e → */5 * * * * iptables -F (co 5 minut czyści – jeśli się zablokujesz, za 5 min odblokujesz). 3. Najpierw: iptables -A INPUT -p tcp --dport 22 -j ACCEPT (SSH przed innymi regułami). 4. Testuj nową regułę z -I (insert na początku) zamiast -A (append na końcu). 5. Sprawdź: iptables -L -n -v.
Powiązane narzedzia: generator konfiguracji nginx, generator .htaccess i tester połączenia SSH.