Ghid de Hardening pentru Servere Linux: SSH fără Parole, UFW, Fail2ban și Securitate de Bază în Linux / Bash

Ghid complet de securizare (hardening) a unui server Linux nou de producție: configurarea SSH pe chei Ed25519, blocarea atacurilor brute-force cu Fail2ban și actualizări automate.

Sintaxă comandă
sshd_config: PasswordAuthentication no | fail2ban-client status | unattended-upgrades

Un server Linux proaspăt instalat și expus direct la internet cu o adresă IP publică este ținta a mii de atacuri automate de tip port scanning și brute-force în fiecare oră. Securizarea de bază (Server Hardening) este primul pas obligatoriu înainte de a instala orice aplicație web sau bază de date.

1. Primul pas: Crearea unui utilizator administrativ cu sudo și chei SSH
# Conectați ca root, creăm un utilizator nou de lucru (nu rulați aplicațiile ca root!):
adduser deployer
usermod -aG sudo deployer

# Copiem cheia publică SSH (generată pe laptopul local cu ssh-keygen -t ed25519):
mkdir -p /home/deployer/.ssh
chmod 700 /home/deployer/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... laptop_admin" > /home/deployer/.ssh/authorized_keys
chmod 600 /home/deployer/.ssh/authorized_keys
chown -R deployer:deployer /home/deployer/.ssh

2. Securizarea Riguroasă a Daemonului SSH

Editați fișierul de configurare /etc/ssh/sshd_config (sau adăugați un fișier în /etc/ssh/sshd_config.d/99-hardening.conf):

Configurația de aur pentru sshd_config
# 1. Dezactivăm autentificarea directă cu contul root:
PermitRootLogin no

# 2. Dezactivăm complet autentificarea prin parole (imună la atacuri brute-force!):
PasswordAuthentication no
KbdInteractiveAuthentication no

# 3. Activăm autentificarea exclusivă pe bază de chei criptografice:
PubkeyAuthentication yes

# 4. Dezactivăm funcționalități nesigure sau inutile:
X11Forwarding no
PermitEmptyPasswords no
MaxAuthTries 3

# Testați configurarea înainte de repornire (pentru a evita blocarea în afara serverului!):
sudo sshd -t
sudo systemctl restart sshd

3. Instalarea și Configurarea Fail2ban

Chiar și cu parolele dezactivate, boții de pe internet continuă să trimită mii de conexiuni de atac pe portul SSH. Fail2ban inspectează jurnalele de sistem (/var/log/auth.log) și adaugă automat reguli temporare de DROP în firewall pentru IP-urile care depășesc un număr rezonabil de încercări eșuate:

Configurarea Fail2ban în /etc/fail2ban/jail.local
sudo apt install fail2ban -y

# Creăm fișierul local de configurare:
# [sshd]
# enabled = true
# port = ssh
# maxretry = 3          # Blochează IP-ul după 3 încercări eșuate
# findtime = 600        # În interval de 10 minute
# bantime = 86400       # Blochează IP-ul timp de 24 de ore!

sudo systemctl restart fail2ban
# Verificăm starea și IP-urile blocate curent:
sudo fail2ban-client status sshd

4. Actualizări Automate de Securitate (Unattended Upgrades)

Pentru ca serverul să primească automat patch-urile critice de kernel și securitate fără downtime:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Ghid de Hardening pentru Servere Linux: SSH fără Parole, UFW, Fail2ban și Securitate de Bază

Ai o nelămurire despre utilizarea comenzii Ghid de Hardening pentru Servere Linux: SSH fără Parole, UFW, Fail2ban și Securitate de Bază sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.