OKWszystkie usługi działają prawidłowo
InfrawireLogo InfrawireDokumentacja

Instalacja i konfiguracja UFW na VPS

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

Bash
sudo 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

Bash
1# 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:

Bash
1# Włącz UFW 2sudo ufw enable 3 4# Sprawdź status 5sudo ufw status verbose

📝 Reguły zaawansowane

Zezwolenie na konkretne adresy IP

Bash
1# 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ń

Bash
1# 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ł

Bash
1# Lista numerowana 2sudo ufw status numbered 3 4# Szczegółowy status 5sudo ufw status verbose

Usuwanie reguł

Bash
1# 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

Bash
1sudo 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

Bash
1sudo 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

Bash
sudo 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:

Bash
1# 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:

Bash
1# Wyłącz UFW 2sudo ufw disable 3 4# Włącz ponownie 5sudo ufw enable

📚 Dobre praktyki

  1. Zawsze zezwalaj na SSH przed włączeniem UFW
  2. Testuj reguły przed wdrożeniem na produkcji
  3. Używaj konkretnych adresów IP, gdy to możliwe, zamiast otwierać porty dla wszystkich
  4. Przeglądaj reguły regularnie i usuwaj nieużywane
  5. Dokumentuj reguły dla łatwiejszego utrzymania
  6. Twórz kopię zapasową konfiguracji przed większymi zmianami

🆘 Rozwiązywanie problemów

Brak połączenia SSH po włączeniu UFW

Bash
1# 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ą

Bash
1# 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

Bash
1# 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.