Nu sunt extrem de paranoic atunci când vine vorba despre securitate, dar, acolo unde pot, îmbunătățesc lucrurile. Iată ce ai putea face pentru a îmbunătăți puțin securitatea VPS-ului tău (recomand VPS ori de la MX ori de la DO):
- Autentificarea se face exclusiv prin chei SSH. De preferat, chei SSH protejate cu parolă. Aici ai un ghid care te învață să faci atât asta cât și următorii pași.
- Utilizatorul
root
va avea o parolă zdravănă. Pentru că e serverul tău (și nu vreun serviciu online), nu ai vreo limită de combinații la parolă. Sugestia mea este să nu folosești un password ci un passphrase. Altfel spus, s-ar putea ca un citat favorit să fie ceva mai ușor de ținut minte ȘI mai sigur decât o înșiruire de caractere; - Autentificarea prin SSH se face exclusiv pe un utilizator non root. De fapt, este recomandat să dezactivezi autentificarea ssh pe
root
și dacă ai nevoie de acces elevat, adaugi prefixulsudo
la orice comandă dorești. Vezi aici cum se face; - Schimbă portul SSH. În mod implicit este
22
, dar îți recomand ceva diferit (până la urmă, un strop de securitate prin obscuritate nu strică, nu?); - Instalează și configurează fail2ban astfel încât să blocheze orice încercare repetată de autentificare;
- Dacă ai IP static, accepți conexiuni doar de la un anumit IP (sau anumite IP-uri);
- Folosește o cheie ssh diferită pentru fiecare server. Da, poți faci asta folosind fișierul
~/.ssh/config
. Ai mai jos un exemplu:
Host MY_ALIAS HostName xxx.xxx.xxx.xxx Port yyyy User myuser IdentityFile ~/.ssh/alias
Evident, trebuie să ajustezi toate datele de mai sus. După ce faci asta, este suficient să tastezi ssh MY_ALIAS
și gata, totul funcționează.
Ai vreun sfat de securitate pe care l-am uitat? Scrie-l mai jos!
Nu ești extrem?
@Marius: ba deloc. Mi se pare chiar că-s chiar indulgent cu anumite lucruri (e.g. auth la root ar putea sta în spatele unui 2FA – asta pe lângă parola zdravănă)
2FA e o mizerie. CSF sau UFW (Ubuntu/*bian) pentru a bloca toate porturile mai putin cele de care ai nevoie. Din cate stiu ambele merg in combinatie perfecta cu fail2ban.
Apoi daca esti singurul administrator pe diverse paneluri poti bloca accesul global la ele din config la webserver sau reverse proxy.
@Malin: ai și argumente pentru treaba cu 2fa?
@Malin: + pentru ufw. Foarte util si simplu de folosit. Fail2ban tot am zis ca pun si eu, dar am amanat mereu.
@Ionuț Staicu: Da, e bataie de cap in plus. Interesul meu e sa accesez o zona protejata cat mai simplu si in siguranta. Nu poti sa definesti simplu’ atunci cand trebuie sa faci chestii in plus gen sa urmezi link din email sau sa bagi cod de SMS. Cat de sigura poate sa fie comunicarea dintre server si email (mai ales daca folosesti Yahoo, Gmail etc.) sau comunicarea necriptata pe reteaua de GSM.
Adica come on’ vorbim de securitate sau ne batem joc de ea?
@Malin: 2FA are câteva modalități de implementare. Pe lângă cele amintite de tine – email și sms – mai există și varianta cu token, unde o aplicație mobilă generează un număr valabil ~30 secunde. Nu ai nevoie de rețea, nu ai nevoie de nimic.
@Ionuț Staicu: Pentru mine si pentru tine varianta cu token e viabila pentru ca stim sa instalam/configuram, dar pentru un basic user nu e. Pentru mine 2FA ramane o mizerie sinistra din toate punctele de vedere.
Firewall-ul ii sfant.
Firewall. Allow numai la porturile pe care le folosesti in firewall-ul cloud providerului, adica sa incui usa la hotel.
La fel si in firewall-ul din VPS chiar daca faci acelasi lucru ca mai sus, adica incui usa la camera.