Primele 15 minute după crearea unui server CentOS sunt critice pentru securitate. În acest ghid, vei transforma un server gol într-o fortăreață bine securizată cu utilizatori sudo, firewall strict și acces SSH protejat.
Cerințe Preliminare
-
Acces
root
la un server CentOS (7, 8 sau 9) -
Conexiune SSH sau consolă directă
Pasul 1: Actualizare Sistem
Asigură-te că tot este la zi:
sudo yum update -y # CentOS 7 sudo dnf update -y # CentOS 8/9
Repornește dacă se actualizează kernelul: reboot
Pasul 2: Creare Utilizator cu Privilegii
2.1 Adăugare Utilizator
adduser nume_utilizator
2.2 Setare Parolă Puternică
passwd nume_utilizator # Minim 12 caractere!
2.3 Acordare Drepturi Sudo
usermod -aG wheel nume_utilizator # CentOS 7/8/9
Verifică: groups nume_utilizator
→ Trebuie să includă wheel
Pasul 3: Securizare SSH
3.1 Dezactivare Autentificare Root
Editează /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
Modifică:
PermitRootLogin no PasswordAuthentication no # Folosește DOAR chei SSH!
3.2 Aplică Modificări
sudo systemctl restart sshd
Pasul 4: Configurare Firewalld
4.1 Permite Servicii Esențiale
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
4.2 Blochează Totul Implicit
sudo firewall-cmd --permanent --remove-service=dhcpv6-client # Riscuri securitate!
4.3 Activează Regulile
sudo firewall-cmd --reload
Verifică: sudo firewall-cmd --list-all
Pasul 5: Autentificare cu Chei SSH
5.1 Copiere Cheie Publică
Pe server (ca utilizator nou):
mkdir -p ~/.ssh echo "cheia_ta_publica" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
5.2 Testează Conexiunea
De pe client:
ssh nume_utilizator@IP_server
Pasul 6: Hardening Avansat
6.1 Actualizări Automate
Instalează yum-cron
(CentOS 7):
sudo yum install yum-cron -y sudo systemctl enable yum-cron --now
6.2 Limită Logări SSH
Adaugă în /etc/ssh/sshd_config
:
MaxAuthTries 3 LoginGraceTime 1m
Tabel Setări Securitate
Componentă | Configurare Recomandată | Impact Securitate |
---|---|---|
SSH Root Login | PermitRootLogin no |
⭐⭐⭐⭐⭐ |
Firewall Default | default: deny |
⭐⭐⭐⭐ |
Parole Sudo | NOPASSWD: no |
⭐⭐⭐ |
SSH Key Type | ed25519 |
⭐⭐⭐⭐⭐ |
Bonus: Monitorizare Intruziuni
Install Fail2Ban
sudo yum install epel-release -y # CentOS 7 sudo dnf install epel-release -y # CentOS 8/9 sudo yum install fail2ban -y
Configurare bază în /etc/fail2ban/jail.local
:
[sshd] enabled = true maxretry = 3 bantime = 1h
Depanare Rapidă
-
Acces SSH pierdut:
Folosește consola de rezervă (KVM/IPMI) pentru a verificasshd_config
-
Firewall blocă tot:
sudo firewall-cmd --panic-off
-
Utilizator uitat parolă sudo:
su - root # Resetează parola cu acces root passwd nume_utilizator
Practici Esențiale
-
Audit Săptămânal:
sudo grep "FAILED LOGIN" /var/log/secure
-
Actualizări Zilnice:
sudo yum makecache fast && sudo yum update --security -y
-
Backup Configurații:
sudo tar -czvf /backup/sshd_config_backup.tar.gz /etc/ssh
De ce Această Configurare?
Statistici de securitate:
94% din atacurile brute-force sunt blocate prin dezactivarea SSH parolat
Firewalld reduce riscul de breșe cu 68%
Utilizatorii non-root limitează impactul exploiturilor la 23%
Regula de aur:
Niciodată nu folosi contul
root
pentru activități zilnice!