 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  UFW Firewall na VPS — konfiguracja

# UFW Firewall na VPS — konfiguracja i reguły portów

Opublikowano: 8 kwietnia 2026 · Kategoria: Bezpieczeństwo VPS

UFW (Uncomplicated Firewall) to nakładka na iptables dostępna domyślnie w Ubuntu i Debian. Świeżo postawiony VPS bez firewalla akceptuje połączenia na wszystkich portach — skanery botnetów znajdą otwarty port MySQL, Redis czy inny serwis w ciągu minut. Prawidłowo skonfigurowany UFW blokuje cały ruch z wyjątkiem wyraźnie dozwolonych portów.

## Instalacja i pierwsze uruchomienie

**Krytyczne:** zawsze dodaj regułę SSH przed włączeniem UFW, inaczej zablokujesz sobie dostęp.

\# Instalacja (Ubuntu/Debian)
sudo apt update && sudo apt install ufw -y

# NAJPIERW dodaj SSH (zanim włączysz UFW!)
sudo ufw allow ssh
# lub konkretny port:
sudo ufw allow 22/tcp

# Włącz UFW (teraz bezpiecznie)
sudo ufw enable

# Sprawdź status
sudo ufw status verbose

## Podstawowe reguły dla serwera web

\# HTTP i HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Lub użyj profilu (jeśli nginx/apache jest zainstalowany)
sudo ufw allow 'Nginx Full'
sudo ufw allow 'Apache Full'

# Domyślna polityka: blokuj przychodzące, zezwalaj wychodzące
sudo ufw default deny incoming
sudo ufw default allow outgoing

## Reguły dla baz danych i serwisów wewnętrznych

Bazy danych powinny być dostępne TYLKO z localhost lub konkretnych IP — nigdy publicznie:

\# MySQL/MariaDB — tylko z konkretnej podsieci
sudo ufw allow from 10.0.0.0/8 to any port 3306

# PostgreSQL — tylko localhost (domyślnie nie jest potrzebna reguła UFW)
# PostgreSQL słucha tylko na localhost w /etc/postgresql/\*/main/postgresql.conf
# Jeśli jednak potrzebujesz z innego IP:
sudo ufw allow from 192.168.1.100 to any port 5432

# Redis — NIGDY nie otwieraj publicznie!
# Redis domyślnie bind 127.0.0.1 — jeśli zmieniłeś, przywróć lub dodaj regułę:
sudo ufw deny 6379

# Elasticsearch — tylko wewnętrzna sieć
sudo ufw allow from 10.0.0.0/8 to any port 9200

## Rate limiting SSH — ochrona przed brute-force

\# Rate limiting: blokuj IP po 6 próbach w 30 sekund
sudo ufw limit ssh
# lub dla niestandardowego portu:
sudo ufw limit 2222/tcp

# Sprawdź reguły z numerami
sudo ufw status numbered

# Usuń regułę po numerze
sudo ufw delete 3

## Zmiana portu SSH — procedura bezpieczna

\# Krok 1: Otwórz nowy port w UFW
sudo ufw allow 2222/tcp

# Krok 2: Zmień Port w konfiguracji SSH
sudo nano /etc/ssh/sshd\_config
# Znajdź i zmień: Port 22  ->  Port 2222

# Krok 3: Restart SSH
sudo systemctl restart sshd

# Krok 4: TEST — otwórz NOWĄ sesję SSH na port 2222
# ssh -p 2222 user@server\_ip

# Krok 5 (tylko po potwierdzeniu że działa): usuń stary port
sudo ufw delete allow ssh
sudo ufw delete allow 22/tcp

## Whitelist konkretnych IP

\# Zezwól na wszystko z konkretnego IP (np. biuro)
sudo ufw allow from 203.0.113.10

# Zezwól na SSH tylko z konkretnego IP
sudo ufw allow from 203.0.113.10 to any port 22

# Zablokuj konkretne IP (np. po ataku)
sudo ufw deny from 198.51.100.0/24

# Zezwól na wszystko z podsieci prywatnej
sudo ufw allow from 10.0.0.0/8

## Logowanie UFW

\# Włącz logowanie (domyślnie low)
sudo ufw logging on
# Poziomy: off, low, medium, high, full
sudo ufw logging medium

# Logi w /var/log/ufw.log
sudo tail -f /var/log/ufw.log

# Filtruj zablokowane połączenia
sudo grep "BLOCK" /var/log/ufw.log | tail -20

# Top IP atakujące port 22
sudo grep "BLOCK.\*DPT=22" /var/log/ufw.log | awk '{print $13}' | sort | uniq -c | sort -rn | head -10

Port / Serwis

Rekomendacja

Polecenie

22 (SSH)

Ogranicz do konkretnych IP lub użyj rate limiting

`ufw limit ssh`

80 (HTTP)

Otwórz publicznie

`ufw allow 80/tcp`

443 (HTTPS)

Otwórz publicznie

`ufw allow 443/tcp`

3306 (MySQL)

Tylko z konkretnych IP lub localhost

`ufw allow from IP to any port 3306`

5432 (PostgreSQL)

Tylko localhost lub konkretne IP

`ufw allow from IP to any port 5432`

6379 (Redis)

NIGDY publicznie — tylko localhost

`ufw deny 6379`

8080 (aplikacja)

Opcjonalnie — tylko jeśli potrzebne

`ufw allow 8080/tcp`

## Najczęstsze pytania

Jak włączyć UFW na Ubuntu/Debian? +

Instalacja i uruchomienie UFW: sudo apt install ufw && sudo ufw allow ssh && sudo ufw enable. WAŻNE: zawsze najpierw dodaj regułę dla SSH (port 22) zanim uruchomisz UFW, inaczej zablokujesz sobie dostęp do serwera. Sprawdzenie statusu: sudo ufw status verbose.

Jakie porty otworzyć na serwerze WWW z UFW? +

Minimalne porty dla serwera web: SSH (22 lub niestandardowy), HTTP (80), HTTPS (443). Opcjonalnie: MySQL (3306, tylko z konkretnego IP), PostgreSQL (5432, tylko lokalnie), Redis (6379, tylko localhost). Reguła: sudo ufw allow 80/tcp && sudo ufw allow 443/tcp. Dla MySQL z konkretnego IP: sudo ufw allow from 192.168.1.0/24 to any port 3306.

Jak zmienić port SSH z 22 na inny z UFW? +

Bezpieczna zmiana portu SSH: (1) Dodaj regułę dla nowego portu: sudo ufw allow 2222/tcp, (2) Zmień Port w /etc/ssh/sshd\_config na 2222, (3) Zrestartuj SSH: sudo systemctl restart sshd, (4) Przetestuj nowe połączenie (nie zamykaj starego!), (5) Usuń regułę dla port 22: sudo ufw delete allow ssh. Bez kroku 4 ryzykujesz zablokowanie dostępu.

Jak ograniczyć liczbę połączeń SSH z UFW? +

UFW ma wbudowany rate limiting dla SSH: sudo ufw limit ssh. Blokuje IP po 6 nieudanych próbach połączenia w ciągu 30 sekund. To podstawowa ochrona przed brute-force. Bardziej zaawansowana ochrona: fail2ban (osobne narzędzie). Sprawdzenie reguł: sudo ufw status numbered.

## Firewall ma sens dopiero tam, gdzie masz dostęp do systemu

Jeśli chcesz wdrożyć UFW, wybieraj VPS-y, na których sam zarządzasz portami, SSH i usługami sieciowymi.

Mikrus

Dobry do nauki firewalli, SSH i podstawowego hardeningu.

VPS

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

Contabo

Opcja do bardziej rozbudowanych testów sieciowych i wielu usług.

Zasoby

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Polski punkt odniesienia dla własnej konfiguracji UFW i usług systemowych.

PL VPS

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

## Powiązane strony

-   [Fail2ban — konfiguracja na VPS](/baza-wiedzy/fail2ban-konfiguracja-vps)
-   [Klucze SSH — konfiguracja i bezpieczeństwo](/baza-wiedzy/ssh-klucze-konfiguracja-hosting)
-   [Nginx — konfiguracja virtual hosts](/baza-wiedzy/nginx-vhost-konfiguracja)
-   [phpMyAdmin — zabezpieczenie dostępu](/baza-wiedzy/phpmyadmin-bezpieczenstwo)
-   [Wszystkie artykuły](/baza-wiedzy/)