Unul dintre cele mai importante lucruri de făcut imediat după conectarea unui server de la Ubuntu la Internet este, desigur, protecția împotriva accesului neautorizat la administrarea serverului prin ssh. Dacă acest lucru nu este realizat, atunci programe foarte scrise special scrise de scanare a rețelei globale vor găsi că portul 22 este deschis pe serverul dvs. și că este suficient să selectați doar parola pentru utilizatorul rădăcină pentru a controla complet sistemul. Desigur, nu există protecție absolută, dar putem complica complet sarcina unui atacator. Povestea despre metodele de protecție a ssh va fi păstrată, având în vedere posibilele caracteristici atât pentru serverele dedicate cu Ubuntu, cât și pentru serverele VPS / VDS.
Este absolut necesar să protejăm accesul prin ssh. Dacă nu ați făcut deja acest lucru, examinați doar fișierul /var/log/auth.log. Desigur, există înregistrări de încercări de acces neautorizat la sistem.
sudo nano / etc / ssh / sshd_config
Într-una din primele sale linii, găsim directiva Port. Schimbați numărul portului 22 la unul dintre porturile non-standard, de exemplu la 4118.
# Ce porturi, IP-uri și protocoale ascultăm pentru Port 4118
După aceea, reporniți serverul ssh:
sudo service ssh reporniți
... și destul de previzibil vom pierde contactul cu serverul. Prin urmare, reconectăm prin ssh, dar acum specificăm în parametrii de conectare un nou port, de exemplu, astfel:
ssh -p 4118 [email protected]
Schimbarea numărului portului ssh vă permite să eliminați majoritatea tentativelor de parolă prin programe automate. Cu toate acestea, acest pas nu vă va salva de la încercări mai profesioniste de acces neautorizat la sistemul dvs. Prin aceasta ar trebui aplicate alte metode de protecție.
Prin urmare, cu exemplul creării unui nou cont de testare, voi arăta cum să creați un nou utilizator și să îi acordați dreptul de a executa comanda sudo. De fapt, mai întâi creați un utilizator nou. Presupunem că noul utilizator este creat din sub contul rădăcină, așa că în mod deliberat omitesem cuvântul cheie sudo înaintea comenzii adduser:
Apoi, trebuie să știți cine are permisiunea de a executa comenzi în numele superuserului folosind cuvântul cheie sudo. Pentru aceasta trebuie să analizăm fișierul visudo:
În acest fișier puteți găsi următoarele linii:
Rândurile de mai sus înseamnă că utilizatorul rădăcină, precum și utilizatorii din grupurile sudo și admin, pot executa comenzi în numele super administratorului. Prin urmare, este suficient să plasați un utilizator nou într-unul din aceste grupuri. Fișierul visudo, între timp, ar trebui să fie închis fără a face modificări. După aceea, adăugați utilizatorul de test la grupul sudo:
testul usermod -a-G sudo
Pentru a verifica dacă utilizatorul de test a fost adăugat la grupul sudo, puteți executa următoarea comandă:
După aceea, închideți sesiunea ssh ca root, conectați-vă la sistem sub testul de utilizator (rețineți, schimbați numărul portului în primul pas) și dezactivați contul rădăcină:
logout ssh -p 4118 [email protected] sudo passwd -l rădăcină
Cheile implicite sunt stocate în directorul de domiciliu al utilizatorului, în fișiere
/.ssh/id_rsa (cheia privată) și
scp -P 4118 [email protected]:
Această comandă va încărca fișierul id_rsa.pub în serverul example.org în directorul home al testului utilizatorului. De asemenea, această comandă specifică un număr de port non-standard pentru ssh: 4118. Apoi, pe serverul de la distanță, trebuie să adăugați conținutul fișierului id_rsa.pub în fișier
/.ssh/authorized_keys în directorul de domiciliu al utilizatorului pe care dorim să-l logăm folosind cheia generată. După adăugarea la cheile autorizate, fișierul sursă cu cheia publică poate fi șters.
ssh -p 4118 -v [email protected]
# Schimbați la nu pentru a dezactiva parolele de text clar șterse PasswordAuthentication no
După aceea, trebuie doar să reporniți ssh:
sudo service ssh reporniți
Mai întâi, instalați denyhosts din depozit:
sudo aptitude install denyhosts
Imediat după instalare, denyhosts este gata de lucru, dar vă recomandăm să acordați atenție mai multor setări din fișierul /etc/denyhosts.conf.
În primul rând, este direcția PURGE_DENY, care specifică timpul în care se stochează ip-ul blocat în lista hosts.deny. În mod implicit, această directivă conține o valoare goală, ceea ce înseamnă că lista de hosts.deny nu este niciodată eliminată.
Prin urmare, vă recomand să stabiliți această directivă la o valoare de câteva ore.
Pentru ca setările noi să aibă efect, trebuie să reporniți serviciul denyhosts:
sudo service denyhosts reporniți