Etichetă: ssh

  • De ce am dezactivat logarea ca root pe serverul meu

    La câteva ore de la expunerea serverului către accesul public, am observat prin loguri că există multe încercări de conectare prin SSH. Majoritatea încercau să intre cu utilizatorul root, ceea ce este am înțeles ulterior că este destul de comun pe internet.

    Prima dată când vezi logurile live, îți dai seama cât de des sunt scanate serverele pe internet.

    Majoritatea tentativelor sunt făcute de boți care scanează automat internetul și încearcă utilizatori comuni precum root, admin sau guest.

    Verificare a ultimelor tentative de logare:

    sudo tail /var/log/auth.log

    Verificare tentative de login in timp real:

    sudo tail -f /var/log/auth.log

    Vezi doar tentativele de login eșuate:

    sudo grep "Failed password" /var/log/auth.log

    Vezi doar userii cu care s-a încercat logarea:

    sudo grep "Invalid user" /var/log/auth.log

    Chiar dacă parola este puternică, nu este o idee bună să permiți logarea directă ca root. Este mai sigur să te conectezi cu un utilizator normal și să folosești comanda sudo atunci când ai nevoie de drepturi administrative.

    Având în vedere cele de mai sus, am decis să dezactivez logarea ca root.

    Primul pas a fost să deschid fișierul de configurare SSH:

    sudo nano /etc/ssh/sshd_config

    În acest fișier am căutat linia:

    #PermitRootLogin prohibit-password

    Și am modificat-o astfel:

    PermitRootLogin no

    Nu uita să ștergi # din față. Eu am uitat prima dată și nu înțelegeam de ce nu se aplică setarea.

    Salvarea modificării în editorul nano:

    • Ctrl + O → Enter (salvare)
    • Ctrl + X (ieșire)

    Această setare înseamnă că utilizatorul root nu mai poate să se conecteze prin SSH deloc.

    După ce am salvat fișierul, am repornit serviciul SSH pentru ca modificarea să intre în vigoare:

    sudo systemctl restart ssh

    Apoi am făcut un test simplu încercând să mă conectez ca root prin consola de la windows tastând comanda:

    ssh root@ubuntu.home.ro

    Am introdus parola și am primit următorul mesaj:

    Permission denied, please try again.

    Ceea ce înseamnă că setarea funcționează corect.

    Este un pas mic, dar important pentru securitatea unui server expus pe internet. În combinație cu fail2ban și o parolă bună, reduce mult riscul de acces neautorizat.

    Încet, încet, încep să înțeleg mai bine cum funcționează lucrurile în spate și cât de importantă este securitatea chiar și pentru un mic web server construit acasă.

  • Cum am ajuns să instalez Fail2ban pe web server

    După ce am pus serverul meu online și am început să mă uit prin loguri, am rămas puțin surprins. În mod constant apăreau încercări de conectare prin SSH, cu utilizatori precum root, admin sau guest. Nu era nimic personal, sunt doar boți care scanează internetul și încearcă parole la întâmplare, dar tot mi s-a părut o idee bună să mai adaug un strat de protecție.

    Așa am ajuns la Fail2ban.

    Fail2ban este un program care citește logurile sistemului și, dacă vede prea multe încercări eșuate de autentificare de la același IP, blochează automat acel IP pentru o perioadă de timp.

    Instalarea a fost destul de simplă.

    Mai întâi am instalat programul:

    sudo apt install fail2ban -y

    După instalare am verificat dacă serviciul rulează:

    sudo systemctl status fail2ban

    Apoi am creat un fișier de configurare local:

    sudo nano /etc/fail2ban/jail.local

    În el am adăugat configurația pentru SSH:

    [sshd]
    enabled = true
    port = ssh
    logpath = /var/log/auth.log
    maxretry = 5
    bantime = 1h
    findtime = 10m

    Pe scurt, asta înseamnă că dacă cineva greșește parola de 5 ori în 10 minute, IP-ul este blocat automat pentru o oră.

    După ce am salvat fișierul, am repornit serviciul:

    sudo systemctl restart fail2ban

    Ca să verific dacă funcționează:

    sudo fail2ban-client status

    Și pentru detalii despre SSH:

    sudo fail2ban-client status sshd

    După câteva minute am început să văd IP-uri banate automat, ceea ce a fost chiar interesant de urmărit în loguri. Practic, serverul începe să se apere singur de tentativele repetitive.

    Pentru un server mic, expus pe internet, Fail2ban mi se pare una dintre cele mai simple și eficiente măsuri de securitate. Nu rezolvă tot, dar reduce mult zgomotul din loguri și oprește rapid încercările repetate.

    Încet, încet, încep să înțeleg mai bine cum funcționează lucrurile în spate și cum se leagă toate piesele: SSH, firewall, loguri și serviciile sistemului.