În principiu, setările de bază ale unui server VPS cu CentOS 7 sunt asemănătoare cu cele din Ubuntu. Pașii de mai jos vor crește securitate serverului cu CentOS 7. Precizez că toate testele și instalările atât din acest articol, cât și din cele care urmează, sunt făcute pe un server VPS achiziționat de la chroot.ro, dar ar trebui să funcționeze fără probleme pe orice server VPS sau dedicat cu CentOS. Totodată, sistemul de pe care mă conectez la server este Linux, dar probabil aceleași comenzi funcționează și din Windows cu Putty.
Pasul 1- conectare ca root
Prima conectare se va face prin ssh ca root, folosind adresa IP publică a serverului:
ssh root@ADRESĂ_IP_SERVER
Vom fi întâmpinați de un mesaj asemănător cu următorul:
The authenticity of host '123.123.123.123 (123.123.123.123)' can't be established.
ECDSA key fingerprint is
79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Are you sure you want to continue connecting (yes/no)?
Vom tasta yes. Ni se va cere parola de root de pe serverul VPS (la tastarea parolei nu vor apărea nici măcar steluțe, deci fiți atenți la apăsarea tastelor).
Despre root
Superutilizatorul (sau root) este utilizatorul cu drepturi adminsitrative într-un mediu Linux. Din această cauză, nu este recomandată folosirea contului root pentru activități curente pe un server Linux - folosind utilizatorul root, dintr-un simplu accident/neatenție se poate distruge un server Linux.
Pasul 2 - adăugarea unui nou utilizator
Tocmai din cauza faptului că superutilizatorul root poate cauza neplăceri, este indicat să adăugăm un utilizator normal, căruia îi vom acorda, ulterior, privilegii de root.
Comanda de mai jos va creea utilizatorul demo:
adduser demo
Vom seta parola noului utilizator cu comanda:
passwd demo
Ni se va cere să introducem parola aleasă de 2 ori:
# passwd demo
Changing password for user demo.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Pasul 3 - setarea privilegiilor administrative pentru noul utilizator
În acest moment, pe server avem superutilizatorul root și utilizatorul demo cu privilegii obișnuite. Trebuie să acordăm privilegii administrative noului utilizator. Pentru aceasta, vom adăuga noul utilizator demo grupului wheel:
gpasswd -a demo wheel
Acum, utilizatorul demo poate executa comenzi cu privilegii de root, folosind sudo înaintea comenzii propriu-zise. Fiind un server CentOS 7 minimal, comanda sudo nu este instalată; drept urmare, ca root, vom rula comanda:
yum install sudo
Pentru a verifica privilegiile noului utilizator, vom schimba de la utilizatorul root la utilizatorul demo cu comanda:
su - demo
Acum, ne vom afla în directorul home al utilizatorului demo.
Sistemul nostru CentOS 7 este unul neactualizat. Pentru verificare, vom da comanda cat /etc/*-release
și vom avea următorul răspuns:
$ cat /etc/*-release
CentOS Linux release 7.0.1406 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"CentOS Linux release 7.0.1406 (Core)
CentOS Linux release 7.0.1406 (Core)
Este necesară actualizarea sistemului cu comanda sudo yum update
(astfel, verificăm și funcționarea drepturilor administrative pentru utilizatorul nou creat demo). După actualizare, reverificăm versiunea distribuției și vom avea:
$ cat /etc/*-release
CentOS Linux release 7.3.1611 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"CentOS Linux release 7.3.1611 (Core)
CentOS Linux release 7.3.1611 (Core)
Pasul 4 - configurarea daemonului SSH
Trebuie să securizăm un pic noul server, interzicând conectarea ca root prin ssh. Acest lucru va fi permis doar noului utilizator demo.
Pentru a evita folosirea editorului vi, vom instala nano:
sudo yum install nano
Cu nano, vom edita următorul fișier:
sudo nano /etc/ssh/sshd_config
Vom căuta linia (reamintesc: căutarea în editorul de text nano se face apăsând tastele CTRL+W):
#PermitRootLogin yes
Vom decomenta această linie ștergând caracterul # și vom scrie no în loc de yes, astfel încât să arate așa:
PermitRootLogin no
Reîncărcarea SSH
Această modificare necesită reîncărcarea daemonului SSH:
sudo systemctl reload sshd
Înainte de a ne deloga de la server, trebuie să verificăm noile setări. Vom deschide un nou terminal și vom tasta:
ssh root@ADRESĂ_IP_SERVER
Ar trebui să primim un mesaj ca cel de mai jos:
Permission denied, please try again.
În continuare, vom scrie comanda de mai jos pentru a ne conecta cu utlizatorul nou creat demo:
ssh demo@ADRESĂ_IP_SERVER
Ar trebui să ne conectăm fără probleme la serverul nostru VPS cu CentOS 7.
Pasul 4 - configurarea timezone
Conectați la serverul VPS, dăm comanda date
și vom primi un mesaj care arată timpul serverului. Cum nu este cel dorit de noi, trebuie să-i spunem serverului care este data și timpul corect pentru România și vom folosi comanda timedatectl
:
sudo timedatectl set-timezone Europe/Bucharest
La o nouă comandă date
sau sudo timedatectl
, prim primi răspuns cu data și ora corectă.
Configurarea sincronizării NTP
Dorim ca serverul nostru VPS cu CentOS 7 să fie în permanență actualizat cu ora exată. Pentru aceasta, vom instala NTP cu următoarea comandă:
sudo yum install ntp
De asemenea, trebuie să pornim serviciul pentru sesiunea curentă și să-l activăm să pornească la fiecare restart al serverului:
sudo systemctl start ntpd
sudo systemctl enable ntpd
Mai departe, voi seta un server cu LAMP (Apache, MySQL/MariaDB, PHP) și (probabil) panoul web ISPConfig 3.
[…] Setările inițiale ale unui server cu CentOS 7 aici. […]