Linux-serveri kaitse. Mida teha esimesena

Linux-serveri kaitse. Mida teha esimesena
Habib M’henni / Wikimedia Commons, CC BY-SA

TĂ€napĂ€eval serveri tĂ”stmine hostimisel vĂ”tab vaid paar minutit ja mĂ”ned hiireklĂ”psud. Kuid kohe pĂ€rast kĂ€ivitamist satub see vaenulikku keskkonda, kuna see on avatud kogu internetile nagu sĂŒĂŒtu tĂŒdruk rokkdiskol. KĂ”ik skannerid avastavad selle kiiresti ning tuhanded automaatsed botid, mis otsivad haavatavusi ja valesid konfiguratsioone, rĂ€ndavad ringi. PĂ€rast kĂ€ivitamist on mitu asja, mida tuleb kohe teha, et tagada pĂ”hikaitse.

Sisu

Kasutaja ilma juurÔiguseta

Esimene samm on luua endale kasutaja ilma juurĂ”iguseta. Probleem on selles, et kasutajal root on sĂŒsteemis tĂ€ielikud Ă”igused, ja kui lubate tal kaugtööd, siis teete pool tööst hĂ€kkeri jaoks, jĂ€ttes talle kehtiva kasutajanime.

SeetÔttu tuleb luua teine kasutaja ja keelata juuril SSH kaudu kaugtöö tegemine.

Uue kasutaja loomine kÀib kÀsuga useradd:

useradd [options]

SeejÀrel lisatakse selle jaoks parool kÀsuga passwd:

passwd

LÔpuks tuleb see kasutaja lisada gruppi, mis omab Ôigust sooritada tÔstetud Ôigustega kÀske sudo. SÔltuvalt Linuxi distributiivist vÔivad need olla erinevad grupid. NÀiteks CentOSis ja Red Hat'is lisatakse kasutaja gruppi wheel:

usermod -aG wheel

Ubuntu puhul lisatakse ta gruppi sudo:

usermod -aG sudo

SSH pÀÀsukoodid, mitte paroolid

Bruteforce vĂ”i paroolide lekkeid on tavaline rĂŒnnaku vektor, seega on parem keelata parooliautentimine SSH-s (Secure Shell) ning kasutada selle asemel vĂ”tmeautentimist.

SSH protokolli rakendamiseks on erinevaid programme, nÀiteks lsh ja Dropbear, kuid kÔige populaarsem on OpenSSH. OpenSSH kliendi installimine Ubuntule:

sudo apt install openssh-client

Installimine serverisse:

sudo apt install openssh-server

SSH deemon (sshd) kÀivitamine serveris Ubuntul:

sudo systemctl start sshd

Deemoni automaatne kÀivitamine igal laadimisel:

sudo systemctl enable sshd

Tuleb mĂ€rkida, et OpenSSH serveri osa sisaldab ka kliendi osa. See tĂ€hendab, et lĂ€bi openssh-server Saate ĂŒhendada teistele serveritele. Veelgi enam, oma klienditerminalist saate kĂ€ivitada SSH-tunneli kaugsserverist kolmandasse hosti, ja siis kolmas host peab kaugsserverit pĂ€ringute allikaks. See on vĂ€ga mugav funktsioon oma sĂŒsteemi maskeerimiseks. Lisainfot vaadake artiklist „Praktilised nĂ”uanded, nĂ€ited ja SSH-tunnelid“.

Klienditerminalis pole tavaliselt mĂ”tet paigaldada tĂ€ieĂ”iguslikku serverit, et vĂ€ltida arvuti kaugĂŒhenduse vĂ”imalust (turvakaalutlustel).

Nii et oma uue kasutaja jaoks tuleb kÔigepealt genereerida SSH-vÔtmed arvutis, mille kaudu sisenete serverisse:

ssh-keygen -t rsa

Avalik vÔti salvestatakse faili .pub ja nÀeb vÀlja kui juhuslike mÀrkide jada, mis algab ssh-rsa.

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

Siis root-kasutajana looge serveris oma kodukatalooge SSH-i direktorium ja lisage avalik SSH-vÔti faili authorized_keys, kasutades tekstitöötlusprogrammi nagu Vim:

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

vim /home/user_name/.ssh/authorized_keys

LÔpuks seadke faili Ôigused Ôigeks:

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

ja muutke selle omaniku:

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

Kliendi poolel tuleb mÀÀrata salajase vÔtme asukoht autentimise jaoks:

ssh-add DIR_PATH/keylocation

NĂŒĂŒd saab sisse logida serverisse kasutaja nimega selle vĂ”tmega:

ssh [username]@hostname

PĂ€rast autentimist saab kasutada kĂ€sku scp failide kopeerimiseks, utiliiti sshfs kaugfailisĂŒsteemi vĂ”i kaustade mountimiseks.

Soovitav on teha mitu varukoopiat privaatvĂ”tme jaoks, kuna kui katkestate parooliga autentimise ja kaotate selle, ei jÀÀ teile ĂŒldse mingit vĂ”imalust oma serverisse siseneda.

Kuidas mainitud, tuleb SSH-s keelata root’ile autentimine (seetĂ”ttu me uus kasutaja loome).

CentOS/Red Hat’is leiame rea PermitRootLogin yes konfiguratsioonifailist /etc/ssh/sshd_config ja muudame selle:

PermitRootLogin no

Ubuntu’s lisame rea PermitRootLogin no konfiguratsioonifaili 10-my-sshd-settings.conf:

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

JĂ€rgmiseks, pĂ€rast kontrollimist, et uus kasutaja lĂ€bib autentimise oma vĂ”tme kaudu, saab parooli autentimise vĂ€lja lĂŒlitada, et vĂ€ltida selle lekkimist vĂ”i bruteforce'it. NĂŒĂŒd peab rĂŒndaja serverisse sisenemiseks hankima privaatvĂ”tme.

CentOS/Red Hat’is leiame rea PasswordAuthentication yes konfiguratsioonifailist /etc/ssh/sshd_config ja muuda seda jĂ€rgmiselt:

PasswordAuthentication no

Ubuntu’s lisame rea PasswordAuthentication no faili 10-my-sshd-settings.conf:

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

Kaksifaktorilise autentimise seadistamise juhend SSH kaudu vt. siit.

Tulekahjusild

Tulekahju pĂ”hi tĂ”utab, et serverisse pÀÀseb ainult liiklus, mis on lubatud nende portide kaudu, mille olete otse lubanud. See kaitseb sadamate ekspluateerimise eest, mis vĂ”ivad olla kogemata aktiivsed koos teiste teenustega, st kĂ€rbib rĂŒnde pinda oluliselt.

Enne tulemĂŒĂŒri installimist peate veenduma, et SSH on vĂ€lja jĂ€etud ja et see ei blokeeri. Vastasel juhul ei saa me tulemĂŒĂŒri kĂ€ivitamisel serverisse ĂŒhendust.

Ubuntu jaotisega kaasneb Uncomplicated Firewall (ufw), ja CentOS/Red Hatiga — firewalld.

SSH lubamine tulemĂŒĂŒri kaudu Ubuntu-s:

sudo ufw allow ssh

CentOS/Red Hat jaoks kasutame kÀsku firewall-cmd:

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

PĂ€rast seda protseduuri saab tulemĂŒĂŒri kĂ€ivitada.

CentOS/Red Hat sĂŒsteemis kĂ€ivitame firewalld teenuse systemd jaoks:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Ubuntu puhul kasutame jÀrgmist kÀsku:

sudo ufw enable

Fail2Ban

Teenuse Fail2Ban analĂŒĂŒsib serveri logisid ja loendab iga IP-aadressiga juurdepÀÀsu katsete arvu. Seadistustes on mÀÀratud reeglid, kui palju juurdepÀÀsu katseid on teatud ajavahemikus lubatud — pĂ€rast seda blokeeritakse antud IP-aadress kindlaksmÀÀratud ajaks. NĂ€iteks lubame 5 ebaĂ”nnestunud SSH autentimiskatset kahe tunni jooksul, pĂ€rast mida blokeerime antud IP-aadressi 12 tunniks.

Fail2Ban'i installimine CentOS ja Red Hat:

sudo yum install fail2ban

Installimine Ubuntu ja Debian:

sudo apt install fail2ban

KĂ€ivitamine:

systemctl start fail2ban
systemctl enable fail2ban

Programmis on kaks konfiguratsioonifaili: /etc/fail2ban/fail2ban.conf ja /etc/fail2ban/jail.conf. Blokeerimise piirangud on mÀÀratud teises failis.

SSH jaoks on konfigureeritud default-jail (5 katset, intervall 10 minutit, keelamine 10 minutiks).

[DEFAULT]
ignorecommand =
bantime = 10m
findtime = 10m
maxretry = 5

Lisaks SSH-le vÔib Fail2Ban kaitsta ka teisi teenuseid veebiserveris nginx vÔi Apache.

Automaatne turvauuendamine

Nagu teada, avastatakse kÔigis programmides pidevalt uusi haavatavusi. PÀrast teabe avaldamist lisatakse eksploidid populaarsetesse eksploitpakettidesse, mida hÀkkerid ja noored massiliselt kasutavad, skaneerides jÀrjest kÔiki servereid. SeetÔttu on vÀga oluline installida turvapaigad kohe, kui need ilmuvad.

Ubuntu serveris on vaikeseadistuses lubatud automaatne turvauuendus, seega ei ole tÀiendavaid samme vaja.

CentOS\/Red Hat puhul tuleb installida rakendus dnf-automatic ja aktiveerida ajastaja:

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

Ajastaja kontrollimine:

sudo systemctl status dnf-automatic.timer

Vaikimisi portide muutmine

SSH loodi 1995. aastal telneti (port 23) ja ftp (port 21) asendamiseks, seega valis programmi autor Tatu Iltonen vaikimisi port 22, ja see kinnitati IANA-s.

Loomulikult on kĂ”ik kurjategijad teadlikud, millisel pordil SSH töötab — ja nad skaneerivad seda koos teiste standardsete pordidega, et teada saada tarkvara versioon, kontrollida standardseid root-parolle ja nii edasi.

Tavaportsra muutmine — obfuskatsioon — vĂ€hendab oluliselt rĂ€mpsliiklust, logifailide suurust ja serveri koormust, samuti rĂŒndepinda. Kuigi mĂ”ned kritiseerivad sellist meetodit "varjatud kaitse" (security through obscurity). PĂ”hjus on see, et see tehnika on vastandatud fundamentaalsele arhitektuurilisele kaitsele. SeetĂ”ttu nĂ€iteks USA Rahvuslik Standardite ja Tehnoloogia Instituut "Serveri turvajuht" toob vĂ€lja vajaduse avatud serveri arhitektuuri: "SĂŒsteemi turvalisus ei tohiks toetuda komponentide teostuse varjule," öeldakse dokumendis.

Teoreetiliselt on vaikimisi portide muutmine vastuolus avatud arhitektuuri praktikaga. Kuid praktikas kahjurliikluse maht tÔepoolest kahaneb, nii et see on lihtne ja tÔhus meede.

Porti numbrit saab seadistada, muutes direktiivi Port 22 konfiguratsioonifailis. /etc/ssh/sshd_configSamuti mÀÀratakse see parameetriga -p ĂŒhes sshd. SSH klient ja programmid sftp toetavad samuti parameetrit -p.

Parameeter -p vĂ”ib kasutada porti numbri mÀÀramiseks ĂŒhenduse loomisel kĂ€suga ssh Linuxis. Fail sftp ja scp kasutatakse parameetrit -P (suurtĂ€ht P). KĂ€skluse rida ĂŒle kirjutab kĂ”ik vÀÀrtused konfiguratsioonifailides.

Kui servereid on palju, saab enamik Linux-serveri kaitsetegevusi automatiseerida skriptis. Kuid kui server on ainult ĂŒks, on parem protsessi kĂ€sitsi kontrollida.

Reklaami Ôigustes

Tellige ja alustage kohe tööd! VDS loomine ĂŒkskĂ”ik millise konfiguratsiooni ja igasuguse operatsioonisĂŒsteemiga ĂŒhe minutiga. Maksimaalne konfiguratsioon vĂ”imaldab kaotada end tĂ€ielikult — 128 CPU tuuma, 512 GB RAM, 4000 GB NVMe. Epic 🙂

Linux-serveri kaitse. Mida teha esimesena

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster