iptables to narzędzie linii poleceń umożliwiające administratorom systemu konfigurację firewalla w systemie Linux. Dzięki niemu można kontrolować ruch sieciowy przychodzący, wychodzący oraz przekierowywany przez serwer. Oto przewodnik po konfiguracji iptables, który pomoże zabezpieczyć Twój serwer Linux.
Podstawy iptables
iptables operuje na zestawach reguł zorganizowanych w łańcuchy (chains). Istnieją trzy podstawowe łańcuchy:
- INPUT - dotyczy pakietów przychodzących do serwera.
- FORWARD - dla pakietów przekazywanych przez serwer.
- OUTPUT - odnosi się do pakietów wychodzących z serwera.
Zasady tworzenia reguł
Reguły są przetwarzane sekwencyjnie w obrębie każdego łańcucha, aż do znalezienia pasującej reguły. Dlatego kolejność dodawania reguł ma znaczenie. Każda reguła może zakończyć się akcją (np. ACCEPT, DROP).
Konfiguracja podstawowej ochrony
-
Zezwolenie na połączenia loopback:
Pozwala to na komunikację wewnętrzną serwera.
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
-
Zezwolenie na istniejące połączenia:
Pozwala to na kontynuację aktywnych połączeń.
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-
Zezwolenie na SSH:
Pozwala na zdalne zarządzanie serwerem. Zastąp
22
numerem portu SSH, jeśli używasz niestandardowego.iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
Blokowanie niechcianego ruchu:
Wszystkie pozostałe połączenia przychodzące, które nie pasują do żadnej reguły, powinny być odrzucane lub ignorowane. Komenda ta powinna zostać wykonana wyłącznie po zrobieniu całej konfiguracji(!).
iptables -A INPUT -j DROP
Zaawansowane konfiguracje
-
Zezwolenie na HTTP/HTTPS:
Jeśli serwer działa jako serwer WWW, zezwól na ruch HTTP i HTTPS.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
-
Ograniczanie liczby połączeń SSH:
Aby zapobiec atakom brute-force na SSH, ogranicz liczbę prób połączeń.
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 5 -j ACCEPT
-
Zablokowanie ruchu z określonych adresów IP:
Możesz zablokować ruch z podejrzanych lub szkodliwych adresów IP.
iptables -A INPUT -s niechciany_adres_ip -j DROP
Zarządzanie i utrzymanie iptables
-
Zapisywanie konfiguracji:
Po skonfigurowaniu firewalla, zapisz ustawienia, aby były stosowane również po restarcie systemu.
iptables-save > /etc/iptables/rules.v4
-
Czyszczenie reguł:
Jeśli potrzebujesz zresetować konfigurację, możesz wyczyścić wszystkie reguły.
iptables -F
Pamiętaj, że skuteczne zabezpieczenie serwera wymaga nie tylko konfiguracji firewalla, ale także regularnych aktualizacji oprogramowania, monitorowania aktywności systemu oraz stosowania innych praktyk bezpieczeństwa, takich jak używanie silnych haseł i szyfrowanie danych. Konfiguracja iptables jest jednym z wielu kroków na drodze do zapewnienia większego bezpieczeństwa Twojego serwera Linux.