
, CC BY-SA
TĂ€napĂ€eval on serveri kĂ€itamine hostingus vaid paari minuti ja mĂ”ne hiirekliki asi. Kuid kohe pĂ€rast kĂ€ivitamist satub ta vaenulikku keskkonda, kuna on avatud kogu internetile nagu sĂŒĂŒtu tĂŒdruk rokidiskol. Skanneerijad leiavad ta kiiresti ning avastavad tuhandeid automaatseid skriptibote, kes otsivad internetis haavatavusi ja vale konfiguratsioone. On mitmeid asju, mida tuleks kohe pĂ€rast kĂ€ivitamist teha, et tagada pĂ”hiline kaitse.
Sisukord
Nerootkasutaja
Esiteks tuleb endale luua nerootkasutaja. Asi nimelt on selles, et kasutajal on root absoluutsed Ă”igused sĂŒsteemis, ja kui lubate tal kaughaldust, siis teete poole töö lĂŒkkamiseks hĂ€kkerile, jĂ€ttes talle kehtiva kasutajanime.
SeetÔttu tuleb luua teine kasutaja, ning root-kasutaja kaugjuhtimine SSH kaudu tuleb keelata.
Uus kasutaja luuakse kÀsuga useradd:
useradd [options] SeejÀrel lisatakse talle parool kÀsuga passwd:
passwd LÔpuks tuleb see kasutaja lisada gruppi, millel on Ôigused kÀivitada kÀsklusi kÔrgendatud Ôigustega. sudoSÔltuvalt Linuxi jaotise versioonist vÔivad need olla erinevad grupid. NÀiteks CentOS-is ja Red Hat'is lisatakse kasutaja gruppi wheel:
usermod -aG wheel Ubuntu-s lisatakse ta gruppi sudo:
usermod -aG sudo
SSH vÔtmed paroolide asemel
Bruteforce vĂ”i paroolide lekkimine on standardne rĂŒnnaku vektor, seega on parem SSH (Secure Shell) paroolide autentimine vĂ€lja lĂŒlitada ja selle asemel kasutada vĂ”tmeautentimist.
SSH protokolli rakendamiseks on erinevad programmid, nÀiteks ja , kuid kÔige populaarsem on OpenSSH. OpenSSH kliendi installimine Ubuntu-s:
sudo apt install openssh-clientInstallimine serveris:
sudo apt install openssh-serverSSH daemon (sshd) kÀivitamine serveris Ubuntu-s:
sudo systemctl start sshdDemony automaatne kÀivitus igal kÀivitamisel:
sudo systemctl enable sshd Pöörake tĂ€helepanu, et OpenSSH serveriklient sisaldab ka kliendi osa. See tĂ€hendab, et lĂ€bi openssh-server saate ĂŒhendada teiste serveritega. Pealegi vĂ”ite oma kliendimasinast kĂ€ivitada SSH-tunneli eemalolevast serverist kolmanda osapoole hosti, ja siis kolmanda osapoole host peab eemalolevat serverit pĂ€ringute allikaks. VĂ€ga mugav funktsioon oma sĂŒsteemi maskeerimiseks. TĂ€iendavaid ĂŒksikasju leiate artiklist .
Kliendimasinas ei ole tavaliselt mĂ”tet paigaldada tĂ€isfunktsionaalset serverit, et vĂ€ltida eemalseisva arvuti kaugĂŒhenduse vĂ”imalust (turvalisuse kaalutlustel).
Seega peate uue kasutaja jaoks kÔigepealt genereerima SSH-vÔtmed arvutis, millega serverisse sisenete:
ssh-keygen -t rsa Avalik vĂ”ti salvestatakse faili .pub ja nĂ€eb vĂ€lja nagu juhuslike sĂŒmbolite string, mis algab ssh-rsa.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
SeejÀrel peate root-kasutaja alt serveris looma SSH-kausta kasutaja kodukatalooge ja lisama avaliku SSH-vÔti faili authorized_keys, kasutades tekstiredaktorit nagu Vim:
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keysvim /home/user_name/.ssh/authorized_keysLÔpuks peate seadistama faili Ôigused:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keysja muutma omaniku selle kasutaja jaoks:
chown -R username:username /home/username/.sshKliendi poolel tuleb mÀÀrata salajase vÔtme asukoht autentimiseks:
ssh-add DIR_PATH/keylocationNĂŒĂŒd saate sisse logida serverisse selle vĂ”tme abil kasutajanime jĂ€rgi:
ssh [username]@hostnameAutentimise jĂ€rel saate faile kopeerimiseks kasutada scp kĂ€sku, utiliiti kaugfailisĂŒsteemi vĂ”i kataloogide mountimiseks.
Soovitatav on teha mitu varukoopiat privaatvĂ”tme kohta, kuna kui keelata parooliga autentimine ja see kaotada, ei jÀÀ teil enam ĂŒldse mingit vĂ”imalust oma serverisse siseneda.
Nagu eelnevalt mainitud, tuleb SSH-is keelata root-kasutaja autentimine (seetÔttu lÔimegi uue kasutaja).
CentOS/red Hat'is leidke konfiguratsioonifailist rida PermitRootLogin yes ja muutke seda: /etc/ssh/sshd_config PermitRootLogin no
Ubuntu-s lisage rida konfiguratsioonifaili Ubuntu-s lisage rida 10-my-sshd-settings.conf 10-my-sshd-settings.conf:
sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confPĂ€rast kontrollimist, et uus kasutaja autentib end oma vĂ”tmega, saab parooli autentimise vĂ€lja lĂŒlitada, et vĂ€hendada selle Ă€rakasutamise vĂ”i bruteforce'i riski. NĂŒĂŒd peab kĂŒberkurjategija serverisse sisenemiseks saama eravĂ”tme.
CentOS/red Hat'is leidke konfiguratsioonifailist rida , salvestada muudatused ja taaskÀivitada Ubuntu20.04. ja muutke seda: /etc/ssh/sshd_config ja muudame seda jÀrgmiselt:
tuleb seada vÀÀrtusele konfiguratsioonifaili tuleb seada vÀÀrtusele faili 10-my-sshd-settings.conf:
sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confJuhend kahefaasilise autentimise seadistamiseks SSH kaudu vt. .
TulemĂŒĂŒr
Tulekahju sein tagab, et serverisse pÀÀseb ainult see liiklus, mis on nende portide kaudu, mida te olete otseselt lubanud. See kaitseb sadamate Ă€rakasutamise eest, mis vĂ”ivad olla kogemata aktiveeritud teiste teenustega, seega vĂ€hendab see rĂŒnnaku pinda.
Enne tulekahju seina paigaldamist tuleb veenduda, et SSH on erandite nimekirjas ja ei blokeerita. Muul juhul ei saa me pÀrast tulekahju seina kÀivitamist serverisse sisse logida.
Ubuntu versiooniga kaasneb Uncomplicated Firewall (), ja CentOS/Red Hati puhul â .
SSH lubamine Ubuntu tulekahju seinal:
sudo ufw allow ssh CentOS/Red Hat'is kasutame kÀsku firewall-cmd:
sudo firewall-cmd --zone=public --add-service=ssh --permanentPÀrast seda protseduuri saab tulekahju seina kÀivitada.
CentOS/Red Hat'is kÀivitame firewalld teenuse systemd kaudu:
sudo systemctl start firewalld
sudo systemctl enable firewalldUbuntu's kasutame sellist kÀsku:
sudo ufw enable
Fail2Ban
Teenuseid analĂŒĂŒsib serveri logisid ja loendab igast IP-aadressist pĂ€rit sisenemiskatseid. Seadetesse on mÀÀratud reeglid, kui palju sisenemiskatseid on lubatud teatud ajavahemiku jooksul â pĂ€rast seda blokeeritakse see IP-aadress mÀÀratud ajaks. NĂ€iteks lubame 5 ebaĂ”nnestunud sisenemiskatse SSH kaudu 2 tunni jooksul, pĂ€rast mida blokeerime selle IP-aadressi 12 tunniks.
Fail2Ban'i paigaldamine CentOS ja Red Hati jaoks:
sudo yum install fail2banPaigaldamine Ubuntu ja Debianile:
sudo apt install fail2banPĂ€rast seda
systemctl start fail2ban
systemctl enable fail2ban Programmal on kaks konfiguratsioonifaili: /etc/fail2ban/fail2ban.conf ja /etc/fail2ban/jail.conf. Blokeerimise piirangud mÀÀratakse teises failis.
SSH jaoks on jail vaikimisi lubatud vaike seadistustega (5 katset, intervall 10 minutit, ban 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 exploite populaarsetesse exploite-pakettidesse, mida kasutavad laialdaselt hÀkkerid ja noored, skannides kÔiki servereid jÀrjestikku. SeetÔttu on vÀga oluline installida turvauuendused kohe, kui need ilmuvad.
Ubuntu serveris on vaikeseadistuses sisse lĂŒlitatud automaatsed turvauuendused, seega tĂ€iendavaid toiminguid ei ole vaja.
CentOSi/Red Hati peetakse vajalikuks rakenduse installimine ja ajastuse lubamine:
sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timerAjastuse kontrollimine:
sudo systemctl status dnf-automatic.timer
Vaikimisi portsade muutmine
SSH vÀljatöötamine toimus 1995. aastal telneti (port 23) ja ftp (port 21) asendamiseks, seega valis programmi autor Tatu Aaltonen , ja see kinnitati IANA-s.
Loomulikult on kĂ”ik kurjategijad teadlikud, millisel pordil SSH töötab â ja nad skannivad seda koos teiste standardportidega, et mÀÀrata tarkvara versioon, kontrollida hÀÀlestusparooli ja nii edasi.
Standardportide muutmine â obfuskeerimine â vĂ€hendab mitmeid kordi prĂŒgiliiklust, logifailide suurust ja serveri koormust ning vĂ€hendab ka rĂŒnnakupinda. Kuigi mĂ”ned (security through obscurity). PĂ”hjus on selles, et see tehnika on vastuolus fundamentaalse SeetĂ”ttu ĂŒtleb nĂ€iteks USA Riiklik Standardite ja Tehnoloogia Instituut et avatud serveri arhitektuur on vajalik: âSĂŒsteemi turvalisus ei tohi tugineda selle komponentide rakendamise varjatud olemusele,â on öeldud dokumendis.
Teoreetiliselt on vaikimisi portide muutmine vastuolus avatud arhitektuuri praktikaga. Kuid praktikas vÀheneb tÔeliselt pahatahtliku liikluse maht, seega on see lihtne ja tÔhus meetod.
Pordi numbrit saab seadistada, muutes direktiivi Port 22 config-failis. Samuti on see mÀÀratud parameetrina -p ja . SSH klient ja programmid toetavad samuti seda parameetrit -p.
Parameeter -p mis vĂ”imaldab pordi numbri mÀÀramise ĂŒhenduses kĂ€suga ssh Linuxis. Programmis ja scp kasutatakse parameetrit -P (pealkiri P). KĂ€surea nĂ€itamine ĂŒletab kĂ”ik vÀÀrtused konfiguratsioonifailides.
Kui servereid on palju, saab enamik neist Linux-serveri kaitsemeetmetest automatiseerida skripti abil. Kuid kui server on ainult ĂŒks, siis on parem protsessi kĂ€sitsi kontrollida.
Reklaami Ôigustes
Tellige ja hakake kohe tööle! mis tahes konfiguratsiooni ja mis tahes operatsioonisĂŒsteemiga ĂŒhe minutiga. Maksimaalne konfiguratsioon vĂ”imaldab suurt vabadust â 128 protsessorituuma, 512 GB RAM-i, 4000 GB NVMe. Eepiline đ
Allikas: habr.com
