Ten przewodnik pokazuje, jak zainstalować i skonfigurować UFW (Uncomplicated Firewall) — prosty, ale skuteczny firewall dla systemu Linux. UFW ułatwia zarządzanie regułami zapory na serwerze VPS.
📋 Wymagania wstępne
- Serwer VPS z dostępem root lub sudo
- Aktywne połączenie SSH
- Ubuntu/Debian (polecenia dostosowane do tych dystrybucji)
📥 Instalacja UFW
Instalacja na Ubuntu/Debian
Bashsudo apt update sudo apt install ufw -y
Weryfikacja instalacji
Bash# Sprawdź status UFW sudo ufw status
Jeśli UFW nie jest włączony, zobaczysz komunikat: Status: inactive
⚙️ Podstawowa konfiguracja
Ustawienie reguł domyślnych
Bash# Blokuj przychodzące, zezwalaj na wychodzące sudo ufw default deny incoming sudo ufw default allow outgoing
Zezwolenie na niezbędne połączenia
Bash1# SSH (22) 2sudo ufw allow 22/tcp 3 4# HTTP (80) 5sudo ufw allow 80/tcp 6 7# HTTPS (443) 8sudo ufw allow 443/tcp
🔧 Włączenie UFW
Po skonfigurowaniu podstawowych reguł włącz UFW:
Bash1# Włącz UFW 2sudo ufw enable 3 4# Sprawdź status 5sudo ufw status verbose
📝 Reguły zaawansowane
Zezwolenie na konkretne adresy IP
Bash1# Zezwól na konkretny adres IP 2sudo ufw allow from 192.168.1.100 3 4# Zezwól na konkretny IP na konkretnym porcie 5sudo ufw allow from 192.168.1.100 to any port 22
Zakresy portów
Bash# Zezwól na zakres portów sudo ufw allow 8000:9000/tcp
Odrzucanie wybranych połączeń
Bash1# Odrzuć konkretny port 2sudo ufw deny 8080/tcp 3 4# Odrzuć konkretny adres IP 5sudo ufw deny from 192.168.1.200
🔍 Zarządzanie regułami
Lista wszystkich reguł
Bash1# Lista numerowana 2sudo ufw status numbered 3 4# Szczegółowy status 5sudo ufw status verbose
Usuwanie reguł
Bash1# Usuń regułę po numerze 2sudo ufw delete 3 3 4# Usuń regułę po treści 5sudo ufw delete allow 80/tcp
Reset wszystkich reguł
Bash# Reset UFW do stanu domyślnego (wyłączenie i usunięcie reguł) sudo ufw reset
💡 Typowe przykłady
Konfiguracja serwera WWW
Bash1sudo ufw default deny incoming 2sudo ufw default allow outgoing 3sudo ufw allow 22/tcp 4sudo ufw allow 80/tcp 5sudo ufw allow 443/tcp 6sudo ufw enable
Konfiguracja serwera pocztowego
Bash1sudo ufw allow 25/tcp # SMTP 2sudo ufw allow 587/tcp # SMTP submission 3sudo ufw allow 465/tcp # SMTPS 4sudo ufw allow 993/tcp # IMAPS 5sudo ufw allow 995/tcp # POP3S
Konfiguracja serwera bazy danych
Bashsudo ufw allow from 192.168.1.0/24 to any port 3306 # MySQL z sieci lokalnej sudo ufw allow from 192.168.1.0/24 to any port 5432 # PostgreSQL z sieci lokalnej
✅ Weryfikacja
Sprawdź, czy UFW działa poprawnie:
Bash1# Status 2sudo ufw status verbose 3 4# Aktywne reguły (numerowane) 5sudo ufw status numbered 6 7# Test połączenia z innej maszyny 8# (telnet lub nc do testu portów)
🚫 Wyłączenie UFW
Jeśli chcesz tymczasowo wyłączyć UFW:
Bash1# Wyłącz UFW 2sudo ufw disable 3 4# Włącz ponownie 5sudo ufw enable
📚 Dobre praktyki
- Zawsze zezwalaj na SSH przed włączeniem UFW
- Testuj reguły przed wdrożeniem na produkcji
- Używaj konkretnych adresów IP, gdy to możliwe, zamiast otwierać porty dla wszystkich
- Przeglądaj reguły regularnie i usuwaj nieużywane
- Dokumentuj reguły dla łatwiejszego utrzymania
- Twórz kopię zapasową konfiguracji przed większymi zmianami
🆘 Rozwiązywanie problemów
Brak połączenia SSH po włączeniu UFW
Bash1# Połącz się przez konsolę dostawcy (jeśli dostępna) 2 3# Reset UFW 4sudo ufw reset 5sudo ufw allow 22/tcp 6sudo ufw enable
Reguły UFW nie działają
Bash1# Czy UFW jest aktywny 2sudo ufw status 3 4# Przeładuj UFW 5sudo ufw reload 6 7# Sprawdź iptables (UFW korzysta z iptables) 8sudo iptables -L -n
Port nadal zablokowany po dodaniu reguły
Bash1# Czy reguła istnieje 2sudo ufw status numbered 3 4# Czy reguła deny nie ma pierwszeństwa 5sudo ufw status verbose 6 7# Usuń i dodaj regułę ponownie 8sudo ufw delete allow 80/tcp 9sudo ufw allow 80/tcp 10sudo ufw reload
📚 Dodatkowe zasoby
❓ Najczęstsze pytania
P: Czy mogę używać UFW razem z innymi narzędziami firewall?
O: Nie — UFW zarządza bezpośrednio iptables. Jednoczesne użycie z firewalld itp. może powodować konflikty.
P: Jak zezwolić na port dla konkretnej usługi?
O: Po numerze portu: sudo ufw allow 3306/tcp lub po nazwie usługi, jeśli jest zdefiniowana: sudo ufw allow mysql.
P: Czy UFW działa na CentOS/RHEL?
O: UFW jest przeznaczone głównie dla Debian/Ubuntu. Na CentOS/RHEL lepiej użyć firewalld.
P: Jak zobaczyć otwarte porty?
O: sudo ufw status verbose pokazuje aktywne reguły i porty.
P: Czy UFW w kontenerze Docker?
O: UFW działa na poziomie hosta. W kontenerach korzystaj z sieci i zabezpieczeń Dockera.