W dzisiejszych czasach zabezpieczenie serwera Linux Virtual Private Server (VPS)
jest niezbędne do ochrony twoich danych i infrastruktury. Ten
szczegółowy poradnik opisuje metody zabezpieczenia serwera Linux VPS przed
cyber threats.
Utrzymuj system w dobrym stanie
Updated
Jednym z najważniejszych aspektów zabezpieczenia Linux VPS jest
dbanie o aktualność systemu. Przestarzałe oprogramowanie może
zawierać luki, które atakujący mogą wykorzystać. Oto jak to zrobić
do it:
Użyj menedżera pakietów
Większość dystrybucji Linux ma menedżer pakietów. Na przykład, jeśli
używasz systemu opartego na Debian, możesz uruchomić następujące polecenia
aby zaktualizować i uaktualnić pakiety:
sudo apt update
sudo apt upgrade
Jeśli masz system CentOS, użyj yum:
sudo yum update
Set Up Automatic
Updates
Skonfiguruj automatyczne aktualizacje za pomocą unattended-upgrades
Systemy oparte na Debian:
W systemach opartych na Debian, takich jak Ubuntu, możesz używać
pakiet unattended-upgrades do automatyzacji procesu aktualizacji.
- Zainstaluj unattended-upgrades:
sudo apt install unattended-upgrades
- Skonfiguruj automatyczne aktualizacje. Edytuj konfigurację
file:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
- Włącz automatyczne aktualizacje dla pakietów związanych z bezpieczeństwem:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
};
- Włącz i uruchom usługę unattended-upgrades:
sudo dpkg-reconfigure -plow unattended-upgrades
Ta komenda poprosi Cię o potwierdzenie zmian. Wybierz "Tak", aby
włącz automatyczne aktualizacje.
Skonfiguruj automatyczne aktualizacje za pomocą yum-cron na
CentOS:
Na CentOS możesz użyć yum-cron do automatycznych aktualizacji:
- Zainstaluj yum-cron:
sudo yum install yum-cron
- Uruchom i aktywuj usługę yum-cron:
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
Use
Silne hasła i klucze SSH do bezpiecznego uwierzytelniania
Zabezpieczenie Linux VPS wymaga stosowania silnych metod uwierzytelniania.
Niezależnie od tego, czy łączysz się z klienta Linux czy Windows, oto jak
używaj silnych haseł i kluczy SSH efektywnie:
Using Strong
Passwords
Podczas tworzenia kont użytkowników na VPS upewnij się, że hasła są
złożone, łączące wielkie i małe litery, cyfry i znaki specjalne
znaków. Unikaj haseł, które są łatwe do odgadnięcia.
Używanie klucza SSH
Authentication
Dla klienta Linux:
- Aby wygenerować parę kluczy SSH na kliencie Linux, użyj ssh-keygen
command:
ssh-keygen -t rsa -b 2048
Klucz publiczny będzie domyślnie przechowywany w ~/.ssh/id_rsa.pub.
- Skopiuj swój klucz publiczny na VPS:
ssh-copy-id user@your_server_ip
- Wyłącz logowanie za pomocą hasła SSH na VPS na serwerze SSH
w pliku konfiguracji (/etc/ssh/sshd_config):
PasswordAuthentication no
Dla klienta Windows:
- Na Windows użyj PowerShell do uzyskania analogicznej funkcjonalności:
ssh-keygen
- Skopiuj swój klucz publiczny na VPS za pomocą PowerShell. Zastąp
IP-ADDRESS-OR-FQDN adresem zdalnego serwera
address:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@{IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"
- Wyłącz logowanie za pomocą hasła SSH na VPS na serwerze SSH
w pliku konfiguracji (/etc/ssh/sshd_config):
PasswordAuthentication no
Implement a Firewall
Zabezpieczenie twojego Linux VPS polega na skonfigurowaniu zapory do kontroli
przychodzącego i wychodzącego ruchu. Oto jak wdrożyć zaporę do
enhance security:
Użyj ufw (Uncomplicated Firewall) na Debian/Ubuntu lub
firewalld on CentOS:
- Zainstaluj narzędzie do zarządzania zaporą, jeśli nie jest jeszcze zainstalowane.
Dla ufw na Debian/Ubuntu:
sudo apt install ufw
Dla firewalld na CentOS:
sudo yum install firewalld
- Dodaj reguły umożliwiające SSH przed włączeniem zapory, aby uniknąć utraty dostępu
locked out:
Dla ufw na Debian/Ubuntu:
sudo ufw allow OpenSSH
Dla firewalld na CentOS:
sudo firewall-cmd --permanent --add-service=ssh
- Włącz zaporę i ustaw reguły domyślne:
Dla ufw na Debian/Ubuntu:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
Dla firewalld na CentOS:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- Przeładuj zaporę, aby zmiany weszły w życie.
Dla ufw na Debian/Ubuntu:
sudo ufw reload
Dla firewalld na CentOS:
sudo systemctl reload firewalld
Wyłącz logowanie roota
Zabezpieczenie twojego Linux VPS polega na ograniczeniu dostępu root. Oto jak
wyłączyć logowanie root dla zwiększonego bezpieczeństwa:
- Utwórz nowego użytkownika: Zaloguj się do VPS jako użytkownik root. Następnie utwórz
nowe konto użytkownika z uprawnieniami sudo. Zastąp newuser swoją
desired username:
adduser newuser
usermod -aG sudo newuser
- Utwórz katalog .ssh, authorized_keys i ustaw uprawnienia dla
nowego użytkownika:
mkdir -p /home/newuser/.ssh
touch /home/newuser/.ssh/authorized_keys
chmod 600 /home/newuser/.ssh/authorized_keys
chown -R newuser:newuser /home/newuser/.ssh
-
Pamiętaj, aby wygenerować i skopiować klucz publiczny na swój
VPS. -
Zaloguj się jako nowy użytkownik.
-
Rozłącz się z VPS (jeśli jesteś zalogowany jako root) i zaloguj
się ponownie na nowym koncie użytkownika. To umożliwia wykonywanie
zadań administracyjnych za pomocą sudo. -
Edytuj konfigurację SSH:
Otwórz plik konfiguracji serwera SSH na swoim VPS. Plik ten znajduje się
zwykle w lokalizacji /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Znajdź linię zawierającą PermitRootLogin i ustaw ją na no:
PermitRootLogin no
Zapisz plik i zamknij edytor tekstu.
- Uruchom ponownie usługę SSH:
Po wprowadzeniu tej zmiany powinieneś uruchomić ponownie usługę SSH, aby
nowe ustawienia weszły w życie:
On Debian/Ubuntu:
sudo systemctl restart ssh
On CentOS:
sudo systemctl restart sshd
Harden SSH
Configuration
Zabezpieczenie Linux VPS wymaga dalszego wzmocnienia konfiguracji SSH
w celu zwiększenia bezpieczeństwa i upewnienia się, że reguły UFW są
aktualne. Oto jak wzmocnić ustawienia SSH i zaktualizować UFW:
rules:
- Zezwól na nowy port SSH w UFW:
Jeśli używasz UFW (Uncomplicated Firewall), najpierw zezwól na nowy port SSH
przed zmianą domyślnego portu:
# Allow the new SSH port (e.g., 2222)
sudo ufw allow 2222/tcp
- Usuń OpenSSH z reguł UFW:
Po zmianie portu SSH powinieneś usunąć starą usługę OpenSSH
(domyślny port 22) z reguł UFW, aby upewnić się, że tylko nowy
port SSH jest dozwolony:
# Remove the old OpenSSH service (default port 22)
sudo ufw delete allow OpenSSH
- Zmień port SSH:
Domyślnie SSH używa portu 22. Zmiana domyślnego portu dodaje dodatkową
warstwę bezpieczeństwa, utrudniając zautomatyzowanym botom znalezienie
serwer SSH.
Otwórz plik konfiguracyjny serwera SSH:
sudo nano /etc/ssh/sshd_config
Znajdź linię zawierającą Port 22 i zmień numer portu na
inny, nieużywany port, na przykład 2222:
Port 2222
- Włącz ponowne uwierzytelnianie klucza:
Możesz ustawić limit czasu dla ponownego uwierzytelniania klucza, aby dodatkowo zabezpieczyć
sesję SSH. Oznacza to, że jeśli opuścisz sesję SSH
bez nadzoru, wygaśnie automatycznie po upływie określonego czasu.
Dodaj lub zmodyfikuj następujące linie w pliku konfiguracyjnym
serwera SSH, a następnie zapisz go:
ClientAliveInterval 300
ClientAliveCountMax 2
- Przeładuj reguły UFW i usługę SSH:
sudo ufw reload
sudo systemctl restart ssh
- Po dokonaniu niezbędnych zmian możesz nawiązać nowe połączenie SSH
za pomocą następującego polecenia:
ssh -p <new_port> user@your_server_ip
Implement Fail2Ban
Zabezpieczenie serwera Linux VPS polega na ochronie przed atakami brute-force
i innymi rodzajami złośliwej aktywności. Fail2Ban jest przydatnym
narzędziem do tego celu. Oto jak wdrożyć Fail2Ban:
- Install Fail2Ban:
Zacznij od zaktualizowania listy pakietów, aby upewnić się, że masz najnowszą wersję
available packages:
W systemach opartych na Debian (np. Ubuntu):
sudo apt update
For CentOS:
sudo yum update
Install Fail2Ban:
W systemach opartych na Debian:
sudo apt install fail2ban
For CentOS:
sudo yum install fail2ban
- Configure Fail2Ban:
Główny plik konfiguracyjny Fail2Ban znajduje się w
/etc/fail2ban/jail.conf. Możesz utworzyć plik zastępujący
file at /etc/fail2ban/jail.local to customize settings
bez modyfikowania domyślnej konfiguracji. Otwórz ten plik:
sudo nano /etc/fail2ban/jail.local
Dodaj następującą konfigurację, aby zablokować adresy IP na 10 minut
(600 sekund) po sześciu nieudanych próbach logowania. Dostosuj parametry według
needed:
[sshd]
enabled = true
maxretry = 6
findtime = 600
bantime = 600
Zapisz plik i zamknij edytor tekstu.
- Uruchom i włącz Fail2Ban:
Uruchom Fail2Ban i skonfiguruj go do automatycznego uruchamiania podczas startu systemu:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
- Check Fail2Ban Status:
Możesz sprawdzić status Fail2Ban, aby upewnić się, że działa prawidłowo.
expected:
sudo fail2ban-client status
Powinieneś zobaczyć, że monitoruje usługę SSH.
6 omawianych tutaj metod zapewnia solidną ochronę
przed potencjalnymi zagrożeniami. Utrzymując system w aktualnym stanie,
używając silnego uwierzytelniania, konfigurując zapory sieciowe, utwardzając SSH,
i wdrażając Fail2Ban, wzmacniasz bezpieczeństwo VPS i zapewniasz sobie spokój ducha
w ciągle połączonym świecie. Jeśli masz pytania, skontaktuj się
z naszym zespołem wsparcia przez submitting a
ticket.
Potrzebujesz pomocy w czymś innym?
Mediana czasu odpowiedzi poniżej 1 godziny. Prawdziwi ludzie, nie boty.