
, 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 dhe , por më popullorja është OpenSSH. Instalimi i klientit OpenSSH në Ubuntu:
sudo apt install openssh-clientInstalimi në server:
sudo apt install openssh-serverAktivizimi i demonit SSH (sshd) në serverin e Ubuntu:
sudo systemctl start sshdAktivizimi 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 .
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_keysvim /home/user_name/.ssh/authorized_keysMë në fund, vendosni lejimet e sakta për skedarin:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keysdhe ndryshoni pronësinë në këtë përdorues:
chown -R username:username /home/username/.sshNë anën e klientit, duhet të tregoni vendndodhjen e çelësit sekret për autentifikim:
ssh-add DIR_PATH/keylocationTani mund të hyni në server si përdorues me këtë çelës:
ssh [username]@hostnamePasi të autorizoheni, mund të përdorni komandën scp për kopjimin e skedarëve, utilitarin 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.confPas 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.confUdhëzimi për lidhjen me autentifikim dy-faktor për SSH shihni. .
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 (), dhe me CentOS/Red Hat â .
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 --permanentPas 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 firewalldNë Ubuntu përdorim komandën:
sudo ufw enable
Fail2Ban
ShĂ«rbimi 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 fail2banInstalimi në Ubuntu dhe Debian:
sudo apt install fail2banFillimi:
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 dhe të aktivizohet timer-i:
sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timerKontrollimi 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 , 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 (security through obscurity). Arsyeja Ă«shtĂ« se kjo teknikĂ« kundĂ«rshtohet me mbrojtjen themelore Prandaj, pĂ«r shembull, Instituti KombĂ«tar i Standardeve dhe TeknologjisĂ« i SHBA-sĂ« nĂ« 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. Ai gjithashtu e specifikon parametrin -p në . Klienti SSH dhe programet 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ë 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Ă«! 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 đ
Burimi: habr.com
