Iată și primul articol despre securitate de pe noul server VPS . 🙂 Cam târziu, dar nu a fost vina mea, ci a celor de la RCS&RDS, că s-au propagat al naibii de greu noile DNS-uri în rețeaua lor: schimbate la ora 12, terminare propagare la 22:30.
Cât am stat și-am așteptat propagarea, am mai făcut câte ceva la server: am instalat firewall-ul plus alte câteva setări adiționale de securitate (și nu numai).
Dezactivare conectare cu ROOT prin SSH
Superutilizatorul root este cel care taie și spânzură într-un sistem de operare Linux. Din cauza acestor privilegii maxime, este descurajată folosirea sa în mod regulat, pentru a preveni modificările accidentale care pot fi distructive pentru server.
Aici am văzut cum se poate adăuga un utilizator obișnuit, căruia îi putem acorda, ocazional, drepturi de administrator.
Configurarea Daemon-ului SSH
Ne conectăm prin SSH la server cu utilizatorul root:
ssh root@adresa_IP
Instalăm un editor de text în terminal - Ubuntu 14.04 vine cu vi, dar nu-mi place absolut deloc, așa că instalăm nano:
apt-get install nano
După instalare, modificăm fișierul text de configurare a daemon-ului ssh:
nano /etc/ssh/sshd_config
Căutăm linia (în nano se poate căuta un șir de caractere folosind CTRL+W):
PermitRootLogin yes
Și o modificăm astfel încât să arate așa:
PermitRootLogin no
Salvăm cu CTRL+X, confirmăm cu Y și ieșim cu ENTER.
Setarea făcută nu va fi funcțională decât dup restartarea serviciului SSH:
service ssh restart
Nu ne deconectăm decât după ce avem confirmarea că ne putem conecta fără probleme cu utilizatorul non-root. Vom deschide o fereastră a terminalului într-un alt tab și tastăm:
ssh utilizator_non-root@adresa_IP
Suntem întrebați de parolă și, în mod normal, nu ar trebui să fie absolut nicio problemă la conectare. Țineți minte, pentru a acorda utilizatorului_non-root drepturi de administrator, trebuie pus sudo în fața comenzii.
Configurare firewall în Ubuntu 14.04
După cum spus și într-un articol precedent, pentru a crește nivelul de securitate al serverului, nu trebuie să uităm să instalăm și să configurăm firewall-ul (UFW - Uncomplicated Firewall).
După conectarea prin SSH la server (cu utilizatorul non-root, că celălalt nu mai are permisiuni), tastăm:
sudo apt-get install ufw
Activare:
sudo ufw enable
Vom primi următorul mesaj: Command may disrupt existing ssh connections. Proceed with operation (y|n)? la care răspundem cu y.
Dezactivare:
sudo ufw disable
Bineînțeles, nu uităm să-l reactivăm...
Am spus aici ce porturi trebuie să avem deschise. Pentru a stabili comportamentul prestabilit la intrări și ieșiri, dăm următoarele 2 comenzi:
sudo ufw default deny incoming
și
sudo ufw default allow outgoing
Pentru activarea portului 22 (SSH):
sudo ufw allow ssh
Pentru deschiderea unui port se dă comanda:
sudo ufw allow 21
sau
sudo ufw 25/tcp
deschidem, rând pe rând, porturile menționate mai sus.
Pentru deschiderea porturilor dintr-un anumit interval:
sudo ufw allow 1000:2000/tcp
sau
sudo ufw allow 1000:2000/udp
De asemenea, se poate specifica permiterea conexiunii de la o numita adrssă (de exemplu, permiterea conexiunii de la calculatorul de la serviciu):
sudo ufw allow from 192.168.255.255
Închiderea unui port și interzicerea accesului prin acel loc:
sudo ufw deny 80/tcp
Ștergerea unei reguli:
sudo ufw delete allow 80/tcp
sau
sudo ufw delete allow 1000:2000/tcp
Pentru a vedea regulile adăugate:
sudo ufw show added
cu răspunsul
les (see 'ufw status' for running firewall):
ufw allow 22
ufw allow 20
ufw allow 21
ufw allow 25
ufw allow 25/tcp
ufw allow 53
ufw allow 53/tcp
ufw allow 53/udp
ufw allow 80
ufw allow 80/tcp
ufw allow 80/udp
ufw allow 110
ufw allow 143
ufw allow 443
ufw allow 3306
Verificarea statusului se face:
sudo ufw status
La ieșire, trebuie să avem ceva de genul:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
20 ALLOW Anywhere
21 ALLOW Anywhere
25 ALLOW Anywhere
25/tcp ALLOW Anywhere
53 ALLOW Anywhere
53/tcp ALLOW Anywhere
53/udp ALLOW Anywhere
80 ALLOW Anywhere
80/tcp ALLOW Anywhere
80/udp ALLOW Anywhere
110 ALLOW Anywhere
143 ALLOW Anywhere
443 ALLOW Anywhere
3306 ALLOW Anywhere
587 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
20 (v6) ALLOW Anywhere (v6)
21 (v6) ALLOW Anywhere (v6)
25 (v6) ALLOW Anywhere (v6)
25/tcp (v6) ALLOW Anywhere (v6)
53 (v6) ALLOW Anywhere (v6)
53/tcp (v6) ALLOW Anywhere (v6)
53/udp (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
80/udp (v6) ALLOW Anywhere (v6)
110 (v6) ALLOW Anywhere (v6)
143 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
3306 (v6) ALLOW Anywhere (v6)
587 (v6) ALLOW Anywhere (v6)
Dacă, dintr-un anumit motiv, se dorește ștergerea tuturor regulilor și revenirea la setările inițiale, se dă comanda:
sudo ufw reset
Configurări de amănunt ale firewall-ului UFW aici.
În acest moment, serverul VPS ar trebui să fi corect configurat din punct de vedere al securității.
Vom merge mai departe (într-un alt articol) cu primii pași în panoul de control Sentora instalat pe acest server.
Fukers a zis
root@porn:~# ufw status
Status: active
To Action From
-- ------ ----
6667 ALLOW Anywhere
1000:2000/udp ALLOW Anywhere
1000:2000/tcp ALLOW Anywhere
6000:7000/tcp ALLOW Anywhere
6000:7000/udp ALLOW Anywhere
6667 (v6) ALLOW Anywhere (v6)
1000:2000/udp (v6) ALLOW Anywhere (v6)
1000:2000/tcp (v6) ALLOW Anywhere (v6)
6000:7000/tcp (v6) ALLOW Anywhere (v6)
6000:7000/udp (v6) ALLOW Anywhere (v6)
Bobses a zis
După cum am zis, ai o mulțime de porturi deschise.
Deschide-le și pe cele de care ai strictă nevoie: 22, 80, 443...
Fukers a zis
Am incercat dar numi deschide porturi am un dedicat de rusia si nu merge sa deschid nici un port
Bobses a zis
Mie Rusia asta nu-mi sună prea bine. Mă rog, ai Ubuntu pa el sau altă distribuție? Nu se poate sa nu deschidă porturile...
Fukers a zis
root@porn:~/scan# cat /etc/issue
Ubuntu 16.04 LTS n l
Bobses a zis
Mișto hostname. 🙂
Ce firewall ai? Îți dă vreun mesaj de eroare?
Fukers a zis
nu am idee
To Action From
-- ------ ----
6667 ALLOW Anywhere
1000:2000/udp ALLOW Anywhere
1000:2000/tcp ALLOW Anywhere
6000:7000/tcp ALLOW Anywhere
6000:7000/udp ALLOW Anywhere
6667 (v6) ALLOW Anywhere (v6)
1000:2000/udp (v6) ALLOW Anywhere (v6)
1000:2000/tcp (v6) ALLOW Anywhere (v6)
6000:7000/tcp (v6) ALLOW Anywhere (v6)
6000:7000/udp (v6) ALLOW Anywhere (v6)
Bobses a zis
Dacă nu știi ce firewall ai, de unde știi că nu-ți deschide niciun port? 🙂
Din ce îmi arăți tu aici, văd că ai accesul permis pe anumite porturi.
Probabil ai ufw iar output-ul pe care mi l-ai arătat este în urma comenzii
ufw status
.Deschide ce porturi ai nevoie cu comenzile din articol.