Oghje, crià un servitore in un hosting hè una questione di un paru di minuti è uni pochi clicchi di u mouse. Ma subitu dopu à u lanciu, si trova in un ambiente ostili, perchè hè apertu à tuttu Internet cum'è una ragazza innocente in una discoteca rocker. I scanners truveranu rapidamente è rilevanu millaie di bots scriptati automaticamente chì scorreranu a rete in cerca di vulnerabilità è misconfigurazioni. Ci hè uni pochi di cose chì duvete fà subitu dopu à u lanciu per assicurà a prutezzione di basa.
U primu passu hè di creà un utilizatore non-root per sè stessu. U puntu hè chì l'utilizatore root privileggi assuluti in u sistema, è s'è vo li permette amministrazione remota, allura vi farà a mità di u travagliu per u pirate, lassannu un nomu d'utilizatore validu per ellu.
Dunque, avete bisognu di creà un altru utilizatore, è disattivà l'amministrazione remota via SSH per root.
Un novu utilizatore hè iniziatu da u cumandimu useradd:
useradd [options] <username>
Allora una password hè aghjuntu per ellu cù u cumandamentu passwd:
passwd <username>
Infine, stu utilizatore deve esse aghjuntu à un gruppu chì hà u dirittu di eseguisce cumandamenti elevati sudo. Sicondu a distribuzione Linux, questi ponu esse gruppi diffirenti. Per esempiu, in CentOS è Red Hat, l'utilizatore hè aghjuntu à u gruppu wheel:
usermod -aG wheel <username>
In Ubuntu hè aghjuntu à u gruppu sudo:
usermod -aG sudo <username>
Chjavi invece di password SSH
A forza bruta o fughe di password sò un vettore di attaccu standard, cusì hè megliu disattivà l'autentificazione di password in SSH (Secure Shell) è utilizate l'autentificazione chjave invece.
Ci sò diversi prugrammi per implementà u protocolu SSH, cum'è lsh и Goccia d'acqua, ma u più pupulare hè OpenSSH. Installazione di u cliente OpenSSH in Ubuntu:
sudo apt install openssh-client
Installazione di u servitore:
sudo apt install openssh-server
Accuminciate u daemon SSH (sshd) nantu à u servitore Ubuntu:
sudo systemctl start sshd
Accumincia automaticamente u daemon in ogni boot:
sudo systemctl enable sshd
Hè da nutà chì a parte di u servitore di OpenSSH include a parte di u cliente. Hè, à traversu openssh-server pudete cunnette cù altri servitori. Inoltre, da a vostra macchina cliente, pudete inizià un tunnel SSH da un servitore remotu à un òspite di terzu, è dopu l'ospite di terzu cunsiderà u servitore remotu cum'è a fonte di e dumande. Una funzione assai utile per maschera u vostru sistema. Vede l'articulu per i dettagli "Consiglii pratichi, Esempii è Tunnel SSH".
In una macchina cliente, di solitu ùn hà micca sensu installà un servitore cumpletu per impedisce a pussibilità di cunnessione remota à un computer (per ragioni di sicurezza).
Dunque, per u vostru novu utilizatore, avete prima bisognu di generà chjave SSH in l'urdinatore da quale accede à u servitore:
ssh-keygen -t rsa
A chjave publica hè guardata in un schedariu .pub è s'assumiglia à una catena di caratteri aleatori chì principia cù ssh-rsa.
Allora, da sottu à a radica, crea un cartulare SSH nantu à u servitore in u cartulare di casa di l'utilizatori è aghjunghje a chjave publica SSH à u schedariu. authorized_keys, usendu un editore di testu cum'è Vim:
Da u latu di u cliente, avete bisognu di specificà u locu di a chjave secreta per l'autentificazione:
ssh-add DIR_PATH/keylocation
Avà pudete accede à u servitore sottu u nome d'utilizatore cù sta chjave:
ssh [username]@hostname
Dopu l'autorizazione, pudete aduprà u cumandimu scp per copià i schedari, l'utilità sshfs per muntà remotamente un sistema di fugliale o cartulari.
Hè cunsigliatu di fà parechje copie di salvezza di a chjave privata, perchè se disattiveghjanu l'autentificazione di password è a perde, ùn avete micca manera di log in u vostru servitore.
Cumu l'esitatu sopra, in SSH avete bisognu di disattivà l'autentificazione per root (questu hè u mutivu chì avemu principiatu un novu utilizatore).
In CentOS / Red Hat truvamu a linea PermitRootLogin yes in u schedariu di cunfigurazione /etc/ssh/sshd_config è cambia:
PermitRootLogin no
In Ubuntu aghjunghje a linea PermitRootLogin no à u schedariu di cunfigurazione 10-my-sshd-settings.conf:
Dopu avè verificatu chì u novu utilizatore hè autentificatu cù a so chjave, pudete disattivà l'autentificazione di password per eliminà u risicu di fuga di password o forza bruta. Avà, per accede à u servitore, un attaccu hà bisognu di ottene una chjave privata.
In CentOS / Red Hat truvamu a linea PasswordAuthentication yes in u schedariu di cunfigurazione /etc/ssh/sshd_config è cambià cusì:
PasswordAuthentication no
In Ubuntu aghjunghje a linea PasswordAuthentication no à schedariu 10-my-sshd-settings.conf:
Per struzzioni nantu à attivà l'autentificazione à dui fattori via SSH, vede ccà.
firewall
U firewall assicura chì solu u trafficu nantu à i porti chì permettenu direttamente andà à u servitore. Questu prutege contr'à u sfruttamentu di i porti chì sò accidentalmente attivati cù altri servizii, chì riduce assai a superficia di attaccu.
Prima di installà un firewall, avete bisognu di assicurà chì SSH hè inclusu in a lista di esclusione è ùn serà micca bluccatu. Altrimenti, dopu avè principiatu u firewall, ùn pudemu micca cunnette à u servitore.
A distribuzione Ubuntu vene cun Firewall Uncomplicated (ufw), è cù CentOS / Red Hat - firewalld.
Permette SSH in u firewall in Ubuntu:
sudo ufw allow ssh
In CentOS / Red Hat utilizate u cumandamentu firewall-cmd:
sirvizziu Fail2Ban analizà i logs nantu à u servitore è cunta u numeru di tentativi di accessu da ogni indirizzu IP. I paràmetri specificanu e regule per quanti tentativi d'accessu sò permessi per un certu intervalu - dopu chì questu indirizzu IP hè bluccatu per un periudu di tempu. Per esempiu, permettemu 5 tentativi di autentificazione SSH falluti in 2 ore, dopu bluccà l'indirizzu IP datu per 12 ore.
Installazione di Fail2Ban nantu à CentOS è Red Hat:
U prugramma hà dui schedarii di cunfigurazione: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. E restrizioni di Ban sò specificate in u secondu schedariu.
Jail for SSH hè attivatu per difettu cù paràmetri predeterminati (5 tentativi, intervallu 10 minuti, ban per 10 minuti).
In più di SSH, Fail2Ban pò prutege altri servizii nantu à u servitore web nginx o Apache.
Aghjurnamenti automatichi di sicurità
Comu sapete, i novi vulnerabili sò constantemente truvati in tutti i prugrammi. Dopu chì l'infurmazione hè publicata, i sfruttamenti sò aghjuntu à i pacchetti di sfruttamentu populari, chì sò massivamente utilizati da i pirate è l'adulescenti quandu scannanu tutti i servitori in una fila. Per quessa, hè assai impurtante per stallà l'aghjurnamenti di sicurità appena apparsu.
Nant'à u servitore Ubuntu, l'aghjurnamenti automatichi di sicurezza sò attivati per automaticamente, per quessa, ùn hè micca necessariu più azione.
In CentOS / Red Hat avete bisognu di stallà l'applicazione dnf-automaticu è accende u timer:
SSH hè statu sviluppatu in u 1995 per rimpiazzà telnet (port 23) è ftp (port 21), cusì l'autore di u prugramma, Tatu Iltonen U portu sceltu 22 per difettu, è hè statu appruvatu da IANA.
Naturalmente, tutti l'attaccanti sò cunuscenti di quale portu SSH hè in esecuzione - è scansanu cù u restu di i porti standard per scopre a versione di u software, per verificà e password di root standard, è cusì.
Cambià i porti standard - offuscazione - parechji volte reduce a quantità di trafficu di basura, a dimensione di i logs è a carica nantu à u servitore, è ancu riduce a superficia di l'attaccu. Ancu se certi criticà stu metudu di "prutezzione attraversu l'oscurità" (sicurezza attraversu l'oscurità). U mutivu hè chì sta tecnica hè opposta à u funnamintali prutezzione architetturale. Dunque, per esempiu, l'Istitutu Naziunale di Standards è Tecnulugia di i Stati Uniti in "Guida di Sicurezza di u Servitore" indica a necessità di una architettura di u servitore apertu: "A sicurità di un sistema ùn deve micca invià à u sicretu di l'implementazione di i so cumpunenti", dice u documentu.
In teoria, cambià i porti predeterminati hè contru à a pratica di l'architettura aperta. Ma in pratica, a quantità di trafficu maliziusu hè in realtà ridutta, cusì hè una misura simplice è efficace.
U numeru di u portu pò esse cunfiguratu cambiendu a direttiva Port 22 in u schedariu di cunfigurazione / etc / ssh / sshd_config. Hè ancu indicatu da u paràmetru -p <port> в ssh. Cliente SSH è prugrammi sftp sustene ancu l'opzione -p <port>.
Parameter -p <port> pò esse usatu per specificà u numeru di portu quandu cunnette cù u cumandamentu ssh in linux. IN sftp и scp u paràmetru hè utilizatu -P <port> (P majuscule). L'istruzzioni di linea di cumanda annullanu qualsiasi valore in i schedarii di cunfigurazione.
Se ci sò parechji servitori, quasi tutte queste azzioni per prutege u servitore Linux pò esse automatizatu in un script. Ma s'ellu ci hè solu un servitore, allora hè megliu cuntrullà manualmente u prucessu.
I diritti di publicità
Ordine è cuminciate subitu! Creazione di VDS ogni cunfigurazione è cù qualsiasi sistema operatore in un minutu. A cunfigurazione massima vi permetterà di esce à u massimu - 128 core CPU, 512 GB RAM, 4000 GB NVMe. Epica 🙂