Stawiasz nowy serwer i zastanawiasz się od czego zacząć? W tym artykule zebraliśmy podstawowe kroki, które warto wykonać zaraz po uruchomieniu. To nie jest kompletny audyt bezpieczeństwa – to fundament, na którym można budować dalej.
1. Aktualizacja systemu
Pierwsza rzecz po zalogowaniu – zaktualizuj wszystkie pakiety. Stare wersje oprogramowania to otwarte drzwi dla atakujących.
sudo apt update && sudo apt upgrade -yRozważ też włączenie automatycznych aktualizacji bezpieczeństwa przez unattended-upgrades.
2. Nowy użytkownik zamiast root
Logowanie jako root to zły nawyk. Stwórz osobnego użytkownika z prawami sudo:
adduser deploy
usermod -aG sudo deployOd teraz loguj się jako ten użytkownik i używaj sudo gdy potrzebujesz uprawnień root.
3. Konfiguracja SSH
SSH to główna brama do serwera – warto ją dobrze zabezpieczyć. Edytuj /etc/ssh/sshd_config:
Zalecane ustawienia:
- PermitRootLogin no
- PasswordAuthentication no
- PubkeyAuthentication yes
- Port 2222 # zmień na niestandardowy
Ważne: przed wyłączeniem logowania hasłem upewnij się, że masz skonfigurowany klucz SSH! Inaczej zamkniesz sobie dostęp.
sudo systemctl restart sshd4. Firewall (UFW)
Uncomplicated Firewall (UFW) to prosty sposób na kontrolowanie ruchu sieciowego:
# Domyślnie blokuj wszystko przychodzące
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Zezwól na SSH (użyj swojego portu)
sudo ufw allow 2222/tcp
# Zezwól na HTTP/HTTPS jeśli potrzebujesz
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Włącz firewall
sudo ufw enable5. Fail2ban
Fail2ban automatycznie blokuje IP, które próbują brute-force'ować SSH:
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2banDomyślna konfiguracja działa dobrze dla SSH. Po kilku nieudanych próbach logowania IP zostaje zbanowane na określony czas.
6. Wyłącz nieużywane usługi
Każda uruchomiona usługa to potencjalny wektor ataku. Sprawdź co działa i wyłącz to, czego nie potrzebujesz:
# Lista działających usług
sudo systemctl list-units --type=service --state=running
# Wyłącz niepotrzebną usługę
sudo systemctl disable nazwa-uslugi
sudo systemctl stop nazwa-uslugiPodsumowanie
Te sześć kroków to absolutne minimum dla każdego nowego serwera. Nie zajmują dużo czasu, a znacząco podnoszą poziom bezpieczeństwa. Pamiętaj jednak, że to dopiero początek – w zależności od tego, co będzie działać na serwerze, warto wdrożyć dodatkowe zabezpieczenia.
Checklist na start:
- ☐ Aktualizacja systemu
- ☐ Nowy użytkownik z sudo
- ☐ Klucz SSH + wyłączenie logowania hasłem
- ☐ Zmiana portu SSH
- ☐ Firewall (UFW)
- ☐ Fail2ban
- ☐ Przegląd działających usług
Potrzebujesz pomocy z konfiguracją serwera? Stawiamy i zabezpieczamy infrastrukturę dla projektów. Napisz do nas.