Linuxi serveri kaitse. Mida teha kõigepealt

Linuxi serveri kaitse. Mida teha kõigepealt
Habib M'henni / Wikimedia Commons, CC BY-SA

Tänapäeval on serveri seadistamine hostingus paari minuti ja mõne hiireklõpsu küsimus. Kuid kohe pärast käivitamist satub ta vaenulikku keskkonda, sest on avatud kogu internetile nagu süütu neiu rokidiskos. Skannerid leiavad selle kiiresti ja avastavad tuhandeid automaatselt skriptitud roboteid, mis uurivad võrku haavatavusi ja valesid konfiguratsioone otsides. Kohe pärast käivitamist peaksite esmase kaitse tagamiseks tegema mõned asjad.

Sisu

Mitte-juurkasutaja

Esimene asi, mida peate tegema, on luua mitte-juurkasutaja. Asi on selles, et kasutaja root süsteemis absoluutsed privileegid ja kui lubate tal kaughalduse, siis teete häkkeri eest pool tööd, jättes talle kehtiva kasutajanime.

Seetõttu peate looma teise kasutaja ja keelama root jaoks SSH kaudu kaughalduse.

Uus kasutaja luuakse käsuga useradd:

useradd [options] <username>

Seejärel lisatakse sellele käsuga parool passwd:

passwd <username>

Lõpuks tuleb see kasutaja lisada gruppi, millel on õigus kõrgendatud õigustega käske täita sudo. Olenevalt Linuxi distributsioonist võivad need olla erinevad rühmad. Näiteks CentOS-is ja Red Hatis lisatakse kasutaja gruppi wheel:

usermod -aG wheel <username>

Ubuntu puhul lisatakse see rühma sudo:

usermod -aG sudo <username>

Võtmed SSH-paroolide asemel

Toores jõud või paroolileke on tavaline ründevektor, seega on parem SSH-s (Secure Shell) parooli autentimine keelata ja kasutada selle asemel võtme autentimist.

SSH-protokolli juurutamiseks on erinevaid programme, nt lsh и tilkkaru, kuid kõige populaarsem on OpenSSH. OpenSSH-kliendi installimine Ubuntule:

sudo apt install openssh-client

Serveri installimine:

sudo apt install openssh-server

SSH-deemoni (sshd) käivitamine Ubuntu serveris:

sudo systemctl start sshd

Deemoni automaatne käivitamine igal alglaadimisel:

sudo systemctl enable sshd

Tuleb märkida, et OpenSSH-serveri osa sisaldab kliendiosa. See tähendab, et läbi openssh-server saate ühenduse luua teiste serveritega. Lisaks saate oma klientmasinast käivitada SSH-tunneli kaugserverist kolmanda osapoole hosti ja seejärel käsitleb kolmanda osapoole host kaugserverit päringute allikana. Väga mugav funktsioon süsteemi maskeerimiseks. Lisateavet leiate artiklist. "Praktilised näpunäited, näited ja SSH tunnelid".

Täisväärtuslikku serverit pole enamasti mõtet klientmasinasse paigaldada, et välistada arvutiga kaugühenduse võimalus (turvakaalutlustel).

Seega peate oma uue kasutaja jaoks esmalt genereerima SSH-võtmed arvutis, kust pääsete juurde serverile:

ssh-keygen -t rsa

Avalik võti salvestatakse faili .pub ja näeb välja nagu juhuslike märkide jada, mis algab tähega ssh-rsa.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

Seejärel loo administraatorina SSH kataloog serveris kasutaja kodukataloogis ja lisa failile SSH avalik võti authorized_keyskasutades tekstiredaktorit nagu Vim:

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

vim /home/user_name/.ssh/authorized_keys

Lõpuks määrake failile õiged õigused:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

ja muutke selle kasutaja omanik:

chown -R username:username /home/username/.ssh

Kliendi poolel peate määrama autentimiseks salajase võtme asukoha:

ssh-add DIR_PATH/keylocation

Nüüd saate selle võtmega kasutajanime all serverisse sisse logida:

ssh [username]@hostname

Pärast autoriseerimist saate failide kopeerimiseks kasutada käsku scp, utiliiti sshfs failisüsteemi või kataloogide kaugühendamiseks.

Soovitatav on teha privaatvõtmest mitu varukoopiat, sest parooli autentimise keelamisel ja selle kaotamisel pole teil enam võimalust oma serverisse sisse logida.

Nagu eespool mainitud, peate SSH-s root autentimise keelama (sel põhjusel lõime uue kasutaja).

CentOS/Red Hat'is leiame joone PermitRootLogin yes konfiguratsioonifailis /etc/ssh/sshd_config ja muuda seda:

PermitRootLogin no

Ubuntus lisage rida PermitRootLogin no konfiguratsioonifaili 10-my-sshd-settings.conf:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

Kui olete veendunud, et uus kasutaja on tema võtmega autentitud, saate parooliga autentimise keelata, et vältida paroolilekke või toore jõu ohtu. Nüüd peab ründaja serverile juurdepääsuks hankima privaatvõtme.

CentOS/Red Hat'is leiame joone PasswordAuthentication yes konfiguratsioonifailis /etc/ssh/sshd_config ja muutke seda järgmiselt:

PasswordAuthentication no

Ubuntus lisage rida PasswordAuthentication no viilima 10-my-sshd-settings.conf:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

Juhiseid kahefaktorilise autentimise lubamise kohta SSH kaudu vt siin.

Tulemüür

Tulemüür tagab, et serverisse suunatakse ainult liiklus nendes portides, mida te otse lubate. See kaitseb teiste teenuste poolt kogemata lubatud portide ärakasutamise eest, mis vähendab oluliselt rünnaku pinda.

Enne tulemüüri installimist peate veenduma, et SSH on välistamise loendis ja seda ei blokeerita. Vastasel juhul ei saa me pärast tulemüüri käivitamist serveriga ühendust luua.

Ubuntu distributsioon on varustatud komplitseerimata tulemüüriga (vau) ja CentOS/Red Hatiga – tulemüür.

SSH lubamine Ubuntu tulemüüris:

sudo ufw allow ssh

CentOS/Red Hat'is kasutame käsku firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

Pärast seda protseduuri saate tulemüüri käivitada.

CentOS/Red Hat'is käivitame tulemüüri jaoks süsteemse teenuse:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Ubuntus kasutame järgmist käsku:

sudo ufw enable

Fail2Ban

Teenus Fail2Ban analüüsib serveri logisid ja loendab iga IP-aadressi juurdepääsukatsete arvu. Seadistused määravad reeglid, mitu juurdepääsukatset on teatud intervalli jooksul lubatud – pärast mida see IP-aadress teatud ajaks blokeeritakse. Näiteks lubame 5 tunni jooksul SSH kaudu 2 ebaõnnestunud autentimiskatset, misjärel blokeerime selle IP-aadressi 12 tunniks.

Fail2Bani installimine CentOS-i ja Red Hati:

sudo yum install fail2ban

Installimine Ubuntu ja Debiani jaoks:

sudo apt install fail2ban

Käivitamine:

systemctl start fail2ban
systemctl enable fail2ban

Programmil on kaks konfiguratsioonifaili: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Keelupiirangud on määratud teises failis.

Jail for SSH on vaikimisi lubatud vaikeseadetega (5 katset, intervall 10 minutit, keeld 10 minutit).

[VAIKE] ignorecommand = bantime = 10 m leidmisaeg = 10 m max katse = 5

Lisaks SSH-le saab Fail2Ban kaitsta teisi teenuseid nginxi või Apache veebiserveris.

Automaatsed turvavärskendused

Teatavasti leitakse kõikidest programmidest pidevalt uusi turvaauke. Pärast teabe avaldamist lisatakse populaarsetele exploit-pakettidele exploitid, mida häkkerid ja teismelised laialdaselt kasutavad, kui nad skannivad kõiki servereid järjest. Seetõttu on väga oluline installida turvavärskendused kohe, kui need kättesaadavaks muutuvad.

Ubuntu serverites on automaatsed turvavärskendused vaikimisi lubatud, seega pole lisatoiminguid vaja.

CentOS/Red Hat'is peate rakenduse installima dnf-automaatne ja lülitage taimer sisse:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

Taimeri kontroll:

sudo systemctl status dnf-automatic.timer

Vaikimisi portide muutmine

SSH töötati välja 1995. aastal, et asendada telnet (port 23) ja ftp (port 21), seega on programmi autor Tatu Iltonen valis vaikimisi pordi 22ja selle kiitis heaks IANA.

Loomulikult teavad kõik ründajad, millisel pordil SSH töötab – ja skannivad seda koos teiste standardportidega, et teada saada tarkvara versioon, kontrollida standardseid juurparoole jne.

Standardsete portide muutmine – hägustamine – vähendab rämpsliikluse mahtu, logide suurust ja serveri koormust mitu korda ning vähendab ka ründepinda. Kuigi mõned kritiseerida seda meetodit "kaitse läbi varguse" (turvalisus läbi hämaruse). Põhjus on selles, et see tehnika on vastuolus põhilisega arhitektuurikaitse. Seetõttu näiteks USA riiklik standardi- ja tehnoloogiainstituut "Serveri turvajuhend" viitab vajadusele avatud serveriarhitektuuri järele: "Süsteemi turvalisus ei tohiks tugineda selle komponentide juurutamise salasusele," öeldakse dokumendis.

Teoreetiliselt on vaikeportide muutmine vastuolus avatud arhitektuuri tavadega. Kuid praktikas pahatahtliku liikluse maht tegelikult väheneb, seega on see lihtne ja tõhus meede.

Pordi numbrit saab seadistada käskkirja muutes Port 22 konfiguratsioonifailis / etc / ssh / sshd_config. Seda näitab ka parameeter -p <port> в sSHD. SSH klient ja programmid sftp toetavad ka parameetrit -p <port>.

Parameeter -p <port> saab kasutada pordi numbri määramiseks käsuga ühenduse loomisel ssh Linuxis. IN sftp и scp parameetrit kasutatakse -P <port> (suurtäht P). Selle määramine käsurealt alistab kõik väärtused konfiguratsioonifailides.

Kui servereid on palju, saab peaaegu kõiki neid Linuxi serveri kaitsmise toiminguid skriptis automatiseerida. Aga kui servereid on ainult üks, siis on parem protsessi käsitsi juhtida.

Reklaamide õiguste kohta

Telli ja asu kohe tööle! VDS-i loomine mis tahes konfiguratsiooniga ja mis tahes operatsioonisüsteemiga minuti jooksul. Maksimaalne konfiguratsioon võimaldab teil lõhkeda - 128 protsessorituuma, 512 GB muutmälu, 4000 GB NVMe. Päris eepiline :)

Linuxi serveri kaitse. Mida teha kõigepealt

Allikas: www.habr.com