Mbrojtja e serverit Linux. ÇfarĂ« tĂ« bĂ«ni nĂ« radhĂ« tĂ« parĂ«

Mbrojtja e serverit Linux. ÇfarĂ« tĂ« bĂ«ni nĂ« radhĂ« tĂ« parĂ«
Habib M’henni / Wikimedia Commons, CC BY-SA

Në kohën tonë, ngritja e një serveri në hosting është çështje disa minutash dhe disa klikimesh. Por menjëherë pas lançimit, ai bie në një mjedis armiqësor, sepse është i hapur për të gjithë internetin si një vajzë e pafajshme në një diskotekë rock-esh. Shpejt do të kapet nga skanerët dhe do të zbulohet nga mijëra bota që skanojnë për vulnerabilitete dhe konfigurime të gabuara. Ka disa gjëra që duhet të bëhen menjëherë pas lançimit për të siguruar mbrojtjen bazë.

Përmbajtja

Përdorues jo-root

Së pari, duhet të krijoni një përdorues jo-root për veten. Problemi është se përdoruesi root ka privilegje absolute në sistem, dhe nëse i lejoni të bëjë administrim në distancë, do t'i bëni gjysmë të punës për hakera, duke i lënë një emër përdoruesi të vlefshëm.

Prandaj, është e nevojshme të krijoni një përdorues tjetër dhe për root, të çaktivizoni administrimin në distancë për SSH.

Përdoruesi i ri krijohet me komandën useradd:

useradd [options]

Pastaj, për të, shtohet një fjalëkalim me komandën passwd:

passwd

NĂ« fund, ky pĂ«rdorues duhet tĂ« shtohet nĂ« grupin qĂ« ka tĂ« drejtĂ« tĂ« ekzekutojĂ« komandat me privilegje tĂ« rritura — informasiya təhlĂŒkəsizliyi. NĂ« varĂ«si tĂ« shpĂ«rndarjes sĂ« Linux, kjo mund tĂ« jetĂ« grupe tĂ« ndryshme. PĂ«r shembull, nĂ« CentOS dhe Red Hat, pĂ«rdoruesi shtohet nĂ« grupin wheel:

usermod -aG wheel

NĂ« Ubuntu, ai shtohet nĂ« grupin — informasiya təhlĂŒkəsizliyi:

usermod -aG sudo

ÇelĂ«sat nĂ« vend tĂ« fjalĂ«kalimeve SSH

Brute force ose rrjedhja e fjalëkalimeve janë vektorë standardë sulmi, kështu që është më mirë të çaktivizoni autentikimin me fjalëkalime në SSH (Secure Shell) dhe në vend të tij të përdorni autentikimin me çelësa.

Ka programe të ndryshme për të realizuar protokollin SSH, të tilla si lsh dhe Dropbear, por më popullorja është OpenSSH. Instalimi i klientit OpenSSH në Ubuntu:

sudo apt install openssh-client

Instalimi në server:

sudo apt install openssh-server

Aktivizimi i demonit SSH (sshd) në serverin e Ubuntu:

sudo systemctl start sshd

Aktivizimi automatik i demonit me çdo ngarkim:

sudo systemctl enable sshd

Duhet të theksohet se pjesa server e OpenSSH përfshin edhe klientin. Kështu që, përmes openssh-server mund të lidheni me servera të tjerë. Më shumë se kaq, nga makina juaj klient, mund të nisni një tunel SSH nga serveri i largët në një host të jashtëm, dhe atëherë hosti i jashtëm do ta marrë serverin e largët si burim të kërkesave. Një funksion shumë i dobishëm për të maskuar sistemin tuaj. Më shumë shihni artikullin «Këshilla praktike, shembuj dhe tunelimit SSH».

Në makinën klient zakonisht nuk ka kuptim të vendosni një server të plotë, për të shmangur mundësinë e lidhjes së largët me kompjuterin (për arsye sigurie).

Pra, për përdoruesin tuaj të ri, duhen gjeneruar fillimisht çelësat SSH në kompjuterin nga i cili do të hyni në server:

ssh-keygen -t rsa

ÇelĂ«si publik ruhet nĂ« skedarin .pub dhe duket si njĂ« varg simbolesh tĂ« rastit qĂ« fillon me ssh-rsa.

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

Më pas, nga rrënjën, krijoni në serverin e përdoruesit një direktorium SSH në katalogun e tij shtëpiak dhe shtoni çelësin publik SSH në skedarin authorized_keys, duke përdorur një redaktues teksti si Vim:

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

vim /home/user_name/.ssh/authorized_keys

Më në fund, vendosni lejimet e sakta për skedarin:

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

dhe ndryshoni pronësinë në këtë përdorues:

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

Në anën e klientit, duhet të tregoni vendndodhjen e çelësit sekret për autentifikim:

ssh-add DIR_PATH/keylocation

Tani mund të hyni në server si përdorues me këtë çelës:

ssh [username]@hostname

Pasi të autorizoheni, mund të përdorni komandën scp për kopjimin e skedarëve, utilitarin sshfs për montimin e largët të sistemit të skedarëve ose direktoreve.

ËshtĂ« e kĂ«shillueshme tĂ« bĂ«ni disa kopje rezervĂ« tĂ« çelĂ«sit privat, sepse nĂ«se çaktivizoni autentifikimin me fjalĂ«kalim dhe e humbni, nuk do tĂ« keni asnjĂ« mundĂ«si pĂ«r tĂ« hyrĂ« nĂ« serverin tuaj.

Siç u përmend më sipër, në SSH duhet të çaktivizoni autentifikimin për rrënjën (për këtë arsye krijuam një përdorues të ri).

Në CentOS/Red Hat, gjeni rreshtin PermitRootLogin yes në skedarin e konfigurimit /etc/ssh/sshd_config dhe ndryshoni atë:

PermitRootLogin no

Në Ubuntu, shtoni rreshtin PermitRootLogin no në skedarin e konfigurimit 10-my-sshd-settings.conf:

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

Pas verifikimit se përdoruesi i ri kalon autentikimin me çelësin e tij, mund të çaktivizohet autentikimi me fjalëkalim për të eliminuar rrezikun e rrjedhjes ose forcimit të tij. Tani, për të pasur qasje në server, një sulmues do të duhet të sigurojë çelësin privat.

Në CentOS/Red Hat, gjeni rreshtin PasswordAuthentication yes në skedarin e konfigurimit /etc/ssh/sshd_config dhe e ndryshojmë atë si në vazhdim:

PasswordAuthentication no

Në Ubuntu, shtoni rreshtin PasswordAuthentication no në skedarin 10-my-sshd-settings.conf:

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

Udhëzimi për lidhjen me autentifikim dy-faktor për SSH shihni. këtu.

Firewall

Firewalla garanton që në server do të shkojë vetëm ai trafiku për portet që ju keni lejuar drejtpërdrejt. Kjo mbron nga shfrytëzimi i portave që mund të kenë qenë aksidentalisht të aktivizuara me shërbime të tjera, duke zvogëluar ndjeshëm sipërfaqen e sulmit.

Para instalimit të firewalls, duhet të siguroheni që SSH është në listën e përjashtimeve dhe nuk do të bllokohet. Në të kundërt, pas aktivizimit të firewalls, ne nuk do të mund të lidhemi me serverin.

Me distribuimin Ubuntu vjen Uncomplicated Firewall (ufw), dhe me CentOS/Red Hat — firewalld.

Lejimi i SSH në firewalls në Ubuntu:

sudo ufw allow ssh

Në CentOS/Red Hat përdorim komandën firewall-cmd:

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

Pas kësaj procedure, mund të aktivizoni firewalls.

Në CentOS/Red Hat aktivizojmë shërbimin systemd për firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Në Ubuntu përdorim komandën:

sudo ufw enable

Fail2Ban

ShĂ«rbimi Fail2Ban analizon loget nĂ« server dhe llogarit numrin e pĂ«rpjekjeve pĂ«r qasje nga çdo IP adresĂ«. NĂ« cilĂ«simet janĂ« tĂ« vendosura rregullat, sa pĂ«rpjekje qasje lejohen brenda njĂ« intervali tĂ« caktuar — pas sĂ« cilĂ«s kjo IP adresĂ« bllokohet pĂ«r njĂ« periudhĂ« tĂ« caktuar kohore. PĂ«r shembull, lejojmĂ« 5 pĂ«rpjekje tĂ« pasuksesshme pĂ«r autentifikim pĂ«r SSH brenda njĂ« periudhe 2 orĂ«she, pas sĂ« cilĂ«s bllokohet kjo IP adresĂ« pĂ«r 12 orĂ«.

Instalimi i Fail2Ban në CentOS dhe Red Hat:

sudo yum install fail2ban

Instalimi në Ubuntu dhe Debian:

sudo apt install fail2ban

Fillimi:

systemctl start fail2ban
systemctl enable fail2ban

Në program ka dy skedare konfigurimi: /etc/fail2ban/fail2ban.conf dhe /etc/fail2ban/jail.conf. Kufizimet për bllokim janë të specifikuara në skedarin e dytë.

Jayli për SSH aktivizohet për default me cilësimet e paracaktuara (5 përpjekje, interval 10 minuta, bllokim për 10 minuta).

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

Përveç SSH, Fail2Ban gjithashtu mund të mbrojë shërbime të tjera në serverin web nginx ose Apache.

Përditësime automatikë të sigurisë

Si është e njohur, në të gjitha programet, përshtatje të reja të sigurive gjenden vazhdimisht. Pas publikimit të informacionit, eksploitat shtohen në paketat e njohura të eksploiteve, të cilat përdoren masivisht nga hakerët dhe adoleshentët gjatë skanimit të serverëve një pas një. Prandaj, është shumë e rëndësishme të instalohet update-t e sigurisë sa herë ato dalin.

Në serverin Ubuntu, në konfigurimin e parazgjedhur, përditësimet automatikë të sigurisë janë të aktivizuara, prandaj nuk kërkohen veprime të tjera.

Në CentOS/Red Hat, duhet të instalohet aplikacioni dnf-automatic dhe të aktivizohet timer-i:

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

Kontrollimi i timer-it:

sudo systemctl status dnf-automatic.timer

Ndryshimi i porteve të paracaktuara

SSH u zhvillua në vitin 1995 për të zëvendësuar telnet (porta 23) dhe ftp (porta 21), prandaj autori i programit, Tatu Iltonen zgjodhi portin 22 si parazgjedhje, dhe ai u miratua nga IANA.

Natyrisht, tĂ« gjithĂ« sulmuesit janĂ« tĂ« vetĂ«dijshĂ«m se nĂ« cilin port funksionon SSH — dhe e skanojnĂ« atĂ« sĂ« bashku me portat e tjera standarde, pĂ«r tĂ« mĂ«suar versionin e softuerit, pĂ«r tĂ« kontrolluar fjalĂ«kalimet standarde tĂ« root-it dhe kĂ«shtu me radhĂ«.

Ndryshimi i porteve standarde — obfuscimi — redukton ndjeshĂ«m volumin e trafikut tĂ« papastĂ«r, madhĂ«sinĂ« e log-eve dhe ngarkesĂ«n mbi server, si dhe zvogĂ«lon sipĂ«rfaqen e sulmit. MegjithatĂ«, disa e kritikojnĂ« kĂ«tĂ« metodĂ« si "mbrojtje pĂ«rmes paqartĂ«sisĂ«" (security through obscurity). Arsyeja Ă«shtĂ« se kjo teknikĂ« kundĂ«rshtohet me mbrojtjen themelore arkitekturore.Prandaj, pĂ«r shembull, Instituti KombĂ«tar i Standardeve dhe TeknologjisĂ« i SHBA-sĂ« nĂ« "UdhĂ«zimin pĂ«r SigurinĂ« e ServerĂ«ve" thekson nevojĂ«n pĂ«r njĂ« arkitekturĂ« serveri tĂ« hapur: "Siguria e sistemit nuk duhet tĂ« mbĂ«shtetet nĂ« fshehtĂ«sinĂ« e zbatimit tĂ« komponenteve tĂ« tij", Ă«shtĂ« thĂ«nĂ« nĂ« dokument.

Teoretikisht, ndryshimi i porteve standarde është në përputhje me praktikën e arkitekturës së hapur. Por në praktikë, volumi i trafikut të dëmshëm vërtet zvogëlohet, kështu që kjo është një masë e thjeshtë dhe efektive.

Numri i portit mund të konfigurohet duke ndryshuar direktivën Port 22 në skedarin e konfigurimit. /etc/ssh/sshd_configAi gjithashtu e specifikon parametrin -p në sshd. Klienti SSH dhe programet sftp. po ashtu e mbështesin parametrin -p.

Parametri -p mund të përdoret për të specifikuar numrin e portit kur lidheni me komandën ssh në Linux. Në sftp. dhe scp përdoret parametri -P (titulli P). Udhëzimi nga linja e komandës anullon çdo vlerë në skedaret e konfigurimit.

Nëse ka shumë serverë, shumica e këtyre veprimeve për mbrojtjen e serverit Linux mund të automatizohen në një skript. Por nëse ka vetëm një server, është më mirë ta kontrollosh manualisht procesin.

SOF6

Porosit dhe fillo punĂ«n menjĂ«herĂ«! Krijimi i VDS cila do konfigurim dhe me çdo sistem operativ brenda njĂ« minute. Konfigurimi maksimal do tĂ« lejojĂ« tĂ« shfrytĂ«zohet plotĂ«sisht — 128 bĂ«rthama CPU, 512 GB RAM, 4000 GB NVMe. Epik 🙂

Mbrojtja e serverit Linux. ÇfarĂ« tĂ« bĂ«ni nĂ« radhĂ« tĂ« parĂ«

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster