Când creați pentru prima dată un server cu Ubuntu 16.04, există câțiva pași ce țin de configurare pe care ar trebui să îi urmați ca parte a setării de bază. Acest lucru va spori siguranța și gradul de utilizare a serverului oferindu-vă o bază solidă pentru acțiunile ulterioare.
Pasul 1 – Logarea Root
Pentru a vă accesa serverul, trebuie să știți adresa IP publică a serverului. Veți avea nevoie, de asemenea, de parolă, sau în cazul în care ați instalat autentificarea cu parolă SSH, de cheia privată pentru contul utilizatorului „root”.
Dacă nu sunteți deja conectat la server, logați-vă ca utilizator root folosind următoarea comandă (inlocuiți cuvântul îngroșat cu adresa IP publică a serverului dumneavoastră):
ssh root@SERVER_IP_ADDRESS
Finalizați procesul de logare acceptând avertizarea despre autenticitatea gazda, dacă aceasta apare, atunci când furnizează autentificarea root (parola sau cheie privată).
Despre Root
Utilizatorul root este un utilizator administrativ într-un mediu Linux care are multe privilegii. Din cauza acestor privilegii asupra contului root, sunteți sfătuit să nu îl folosiți cu regularitate. Aceasta se datorează faptului că drepturile asupra contului root pot face modificări distructive chiar și din greșeală.
Următorul pas este acela de a vă crea un cont alternativ, cu drepturi limitate, pentru munca de zi cu zi. Vă vom arăta cum să câștigați privilegii de-a lungul timpului sau atunci când aveți nevoie de ele.
Pasul doi – Crearea unui nou utilizator
Odată logat ca utilizator root, sunteți pregătiți să adăugați un cont nou de utilizator pe care îl veți folosi pentru autentificare de acum înainte.
În acest exemplu vom crea un utilizator pe nume „sammy”, dar dumneavoastră îl puteți înlocui cu numele de utilizator pe care îl preferați:
adduser sammy
Vi se vor pune câteva întrebări, prima fiind parola de acces.
Introduceți o parolă complexă și, opțional, completați informații adiționale dacă doriți. Acest lucru nu este necesar așa că puteți apăsa ENTER pentru a trece la următorul câmp.
Pasul trei – Drepturi Root
Acum, avem un cont nou de utilizator cu drepturi obișnuite. Cu toate acestea, uneori, va trebui să facem și treburi administrative. Pentru a evita să vă delogați ca utilizator normal și să vă logați ca utilizator root, puteți seta ceea ce se numește „superuser” sau drepturi root pentru contul normal. Acest lucru va permite utilizatorului normal să execute comenzi cu drepturi administrative prin punerea cuvântului sudo înaintea fiecărei comenzi.
Pentru a adăuga aceste drepturi noului utilizator, trebuie să adăugăm noul utilizator la grupul „sudo„. Implicit, pe Ubuntu 16.04, utilizatorii care aparțin grupului „sudo” au dreptul să folosească comenzi sudo.
Ca utilizator root, executați această comandă pentru a adăuga noi utilizatori la grupul „sudo” (inlocuiți cuvântul îngroșat cu noul utilizator):
usermod -aG sudo sammy
Acum puteți executa comenzi cu drepturi de „superuser„.
Dacă doriți să creșteți securitatea serverului dumneavoastră, urmați restul pașilor din acest tutorial.
Pasul patru – Adaugă autentificarea cu cheia publică (Recomandat)
Următorul pas în securizarea server-ului dumneavoastră este configurarea cheii publice de autentificare pentru utilizatorul nou. Setând aceasta, securitatea server-ului va crește prin necesitatea introducerii unei chei private SSH.
Generarea unei perechi de chei
Dacă nu aveți deja o pereche de chei SSH, care este alcătuită dintr-o cheie publică și una privată, trebuie să vă generați una. Dacă aveți deja o cheie pe care doriți să o folosiți, săriți la pasul ” Copiați cheia publică”.
Pentru a genera o nouă pereche de chei introduceți următoarea comandă:
ssh-keygen
Presupunând că utilizatorul este numit „localuser„, o să vedeți un mesaj care va arăta ca următorul:
ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Apăsați „return” pentru a accepta acest nume și această cale (sau introduceți un nume nou).
În continuare vi se va solicita o parolă pentru a securiza cheia. Fie introduceți o parolă, fie lăsați spațiul liber.
Observație: Dacă lăsați spațiul pentru parolă liber, o să vă puteți autentifica folosind cheia privată fără a fi nevoie de parolă. Dacă introduceți o parolă, o să aveți nevoie de ambele pentru a vă loga, atât de cheia privată cât și de parolă. Securizându-vă cheile cu parole este mai sigur, dar ambele metode au utilizările lor fiind mai sigure decât clasica autentificare cu parolă.
Aceasta generează o cheie privată, id_rsa, și o cheie publică, id_rsa.pub, în directorul .ssh al utilizatorului localuser. Nu uitați că acea cheie privată nu trebuie dezvăluită nici unei persoane care nu are acces la serverul dumneavoastră.
Copierea Cheii Publice
După generarea unei perechi de chei SSH, va trebui să copiați cheia publică pe noul server. Vă vom prezenta două metode simple pentru a face acest lucru.
Metoda 1: Folosirea copiei id-ului ssh
Dacă computerul dumneavoastră are script-ul ssh-copy-id instalat, îl puteți folosi pentru a instala cheia publică pentru orice utilizator pentru care aveți acreditare.
Rulați scriptul ssh-copy-id specificând utilizatorul și adresa IP a serverului pe care doriți instalarea acestei chei, ca mai jos:
ssh-copy-id sammy@SERVER_IP_ADDRESS
După furnizarea parolei, cheia publică va fi adăugată în fișierul utilizatorilor la distanță .ssh/authorized_keys. Cheia privată corespunzătoare poate fi folosită pentru a vă loga în server.
Metoda 2: Instalarea manuală a cheii
Presupunând că ați generat o pereche de chei SSH folosind pasul anterior, utilizați următoarea comandă pe computerul dumneavoastră pentru a imprima cheia publică (id_rsa.pub):
cat ~/.ssh/id_rsa.pub
Aceasta ar trebui să vă afișeze cheia publică SSH, care ar trebui să arate ca mai jos:
id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
Selectați cheia publică și copiați-o în clipboard.
Pentru activarea utilizării cheii SSH necesară autentificării utilizatorilor la distanță, trebuie să adăugați cheia publică într-un fișier special din home directory al utilizatorului.
Pe server, ca utilizator root, introduceți următoarea comandă pentru a comuta temporar la noul utilizator (înlocuiți cu propriul nume de utilizator):
su – sammy
Acum veți fi în directorul home al utilizatorului dumneavoastră.
Creați un nou director numit .ssh și restricționați accesul cu ajutorul următoarelor comenzi:
mkdir ~/.ssh
chmod 700 ~/.ssh
Deschideți un fișier în .ssh denumit authorized_keys cu un editor de text. Vom folosi nano pentru a edita fișierul:
nano ~/.ssh/authorized_keys
Acum introduceți cheia publică (pe care ați copiat-o în clipboard) lipind-o în editor.
Apăsați CTRL-x pentru a ieși din fișier, apoi y pentru a salva modificările pe care le-ați făcut, apoi ENTER pentru a confirma numele fișierului.
Acum restricționați permisiunea fișierului authorized_keys cu această comandă:
chmod 600 ~/.ssh/authorized_keys
Tastați această comandă o dată pentru a vă întoarce la utilizatorul root:
exit
Acum cheia publică este instalată și puteți folosi cheile SSH pentru a vă loga ca utilizator.
În continuare vă vom arăta cum să creșteți securitatea serverului prin dezactivarea parolei de autentificare.
Pasul cinci – Dezactivarea Parolei de Autentificare (Recomandat)
Acum că noul utilizator poate folosi cheile SSH pentru a se loga, veți putea crește securitatea serverului prin dezactivarea autentificării numai cu parole. Acest lucru va limita accesul SSH la server numai cu cheia publică. Singura modalitate de autentificare la server (în afara de consolă) fiind cu ajutorul cheii private care face pereche cu cheia publică care a fost instalată.
Observație: Dezactivați parola de autentificare doar dacă instalați o cheie publică pentru utilizatorul dumneavoastră așa cum se recomandă în secțiunea anterioară, pasul patru. În caz contrar, vă veți bloca accesul la propriul server.
Pentru a dezactiva logarea cu parolă pe server, urmați acești pași:
Ca root sau ca new sudo user, deschideți serviciul configurare SSH:
sudo nano /etc/ssh/sshd_config
Găsiți rândul care specifică PasswordAuthentication deselectați ștergând precedentul #, apoi schimbați valoarea în „no„. Ar trebui să arate așa după ce ați făcut schimbările:
sshd_config — Disable password authentication
PasswordAuthentication no
Aici mai sunt alte două setări importante pentru autentificarea doar prin cheie, acestea fiind setate în mod implicit. Dacă nu ați modificat acest fișier înainte, nu trebuie să modificați aceste setări:
shd_config — Important defaults
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Când ați terminat de făcut modificările, salvați și închideți fișierul utilizând metoda prezentată mai devreme (CTRL-X, apoi Y, apoi ENTER).
Tastați asta pentru a reîncărca serviciul:
sudo systemctl reload sshd
Autentificarea cu parolă este acum dezactivată. Serverul dumneavoastră poate fi accesat acum numai prin autentificarea cu parola SSH.
Pasul șase – Testare Log In
Acum, înainte de a vă deloga din server trebuie să vă testați noua configurare. Nu vă deconectați până când nu aveți confirmarea că vă puteți loga cu succes folosind cheile SSH.
Deschideți o nouă fereastră și logați-vă la server folosind noul cont creat. Pentru a face acest lucru, folosiți comanda (înlocuiți numele de utilizator și adresa IP a serverului):
ssh sammy@SERVER_IP_ADDRESS
Dacă ați ales să folosiți autentificarea cu ajutorul cheii publice, așa cum a fost descrisă în pașii patru și cinci, cheia dumneavoastră privată va fi folosită pentru autentificare. În caz contrar, vi se va cere parola pentru acel utilizator.
Observație despre autentificarea cu chei: Dacă ați creat perechea de chei cu parolă, vi se va cere să introduceți parola pentru cheia privată, în caz contrar, dacă perechea de chei este fără parolă, vă veți loga la server fără a avea nevoie de parolă.
Odată ce autentificarea este acceptată de server, vă puteți loga ca utilizator nou.
Nu uitați, dacă trebuie să executați o comandă cu drepturi root, trebuie să tastați „sudo” înainte, ca mai jos:
sudo command_to_run
Pasul șapte – Configurați un Firewall de Bază
Pentru serverele cu Ubuntu 16.04 puteți folosi firewall-ul UFW pentru a vă asigura că numai conexiunile sigure sunt permise. Putem configura un firewall de bază folosind această aplicație. Diferite aplicații se pot înregistra la instalare profilurile lor UFW. Aceste profiluri permit UFW să gestioneze aceste aplicații folosindu-se de nume. OpenSSH, serviciul care ne permite conectarea la server, are un profil înregistrat cu UFW. Puteți vedea aceasta tastând:
sudo ufw app list
Output:
Available applications:
OpenSSH
Trebuie să ne asigurăm că firewall-ul ne permite conectarea cu SSH pentru a ne putea loga următoarea dată. Putem permite aceste conexiuni tastând:
sudo ufw allow OpenSSH
După aceea, putem activa firewall-ul tastând:
sudo ufw enable
Tastați „y” și apăsați ENTER pentru a continua. O să vedeți că aceste conexiuni SSH sunt încă permise tastând:
sudo ufw status
Output:
Status: active
To Action From
– –– –-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Dacă instalați și configurați servicii adiționale, va trebui să ajustați setările firewall pentru a putea permite trafic.