
, CC BY-SA
Në ditët e sotme, ngritja e një serveri në hosting është një çështje e disa minutave dhe disa klikimesh. Por menjëherë pas aktivizimit, ai hyn në një ambient armiqësor, sepse është i hapur për të gjithë internetin si një vajzë e pafajshme në një diskoteke rock. Shpejt do të zbulohet nga skanerët dhe do të zbulohen mijëra botëra skriptuale automatike që enden në rrjet në kërkim të dobësive dhe konfigurimeve të gabuara. Ka disa gjëra që duhet të bëni menjëherë pas aktivizimit 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 atij administrimin e largët, atëherë do t'i bëni punën gjysmës së hakut duke lënë një emër përdoruesi të vlefshëm për të.
Prandaj, duhet të krijoni një përdorues tjetër dhe për root të çaktivizoni administrimin e largët përmes SSH.
Përdoruesi i ri krijohet me komandën useradd:
useradd [options] Pastaj, për të, shtohet fjalëkalimi me komandën passwd:
passwd Së fundi, ky përdorues duhet të shtohet në grupin që ka të drejta për të ekzekutuar komanda me privilegje të larta sudo. Në varësi të distribucionit të Linuxit, këto mund të jenë grupe të ndryshme. Për shembull, në CentOS dhe Red Hat përdoruesit shtohen në grupin wheel:
usermod -aG wheel Në Ubuntu ai shtohet në grupin sudo:
usermod -aG sudo
ĂelĂ«sa nĂ« vend tĂ« fjalĂ«kalimeve SSH
Brute force ose rrjedhja e fjalëkalimeve është një vektor standard sulmi, kështu që është më mirë të çaktivizoni autentikimin me fjalëkalime në SSH (Secure Shell) dhe të përdorni në vend të tij autentikimin me çelësa.
Ka programe të ndryshme për realizimin e protokollit SSH, siç janë dhe , por më popullorja është OpenSSH. Instalimi i klientit OpenSSH në Ubuntu:
sudo apt install openssh-clientInstalimi në server:
sudo apt install openssh-serverNisja e demonit SSH (sshd) në serverin e Ubuntu:
sudo systemctl start sshdNisja automatike e demonit në çdo ngarkim:
sudo systemctl enable sshd Duhet të vërejmë se ana serverike e OpenSSH përfshin edhe klientin. Pra, përmes openssh-server mund të lidheni me servera të tjerë. Më shumë, nga makina juaj klient, mund të nisni një tunel SSH nga serveri i largët në një host tjetër, dhe atëherë hosti tjetër do të konsiderojë serverin e largët si burimin e 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 në distancë me kompjuterin (për arsye sigurie).
Pra, për përdoruesin tuaj të ri, fillimisht duhet të gjeneroni çelësa SSH në kompjuterin nga i cili do të hyni në server:
ssh-keygen -t rsa ĂelĂ«si publik ruhet nĂ« njĂ« skedar .pub dhe duket si njĂ« varg simbolesh rastĂ«sore qĂ« nisin me ssh-rsa.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
Pastaj, si rrënjë, krijoni në server një direktori SSH në katalogun e shtëpisë së përdoruesit dhe shtoni çelësin publik SSH në skedarin authorized_keys, duke përdor një redaktues teksti si Vim:
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keysvim /home/user_name/.ssh/authorized_keysFinalmente, përcaktoni lejet e duhura 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ë përcaktoni vendndodhjen e çelësit sekret për autentifikim:
ssh-add DIR_PATH/keylocationTani mund të bëni login në server nën emrin e përdoruesit me këtë çelës:
ssh [username]@hostnamePas autorizimit, mund të përdorni komandën scp për të kopj epekto, utilitarin për të montuar një sistem ose direktori dosjesh në distancë.
Ă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 atĂ«, nuk do keni fare opsion pĂ«r tĂ« hyrĂ« nĂ« serverin tuaj.
Siç u përmend më parë, në SSH duhet të çaktivizoni autentifikimin për root (për këtë arsye kemi krijuar një përdorues të ri).
Në CentOS/Red Hat, gjejmë rreshtin PermitRootLogin yes në skedarin e konfigurimit /etc/ssh/sshd_config dhe e ndryshojmë atë:
PermitRootLogin no Në Ubuntu, shtojmë 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 vlerësimit që përdoruesi i ri po kalon autentikimin me çelësin e tij, mund të çaktivizoni autentikimin me fjalëkalim për të eliminuar rrezikun e rrjedhjes ose brute-force. Tani për të hyrë në server, një sulmues do të duhet të sigurojë çelësin privat.
Në CentOS/Red Hat, gjejmë rreshtin PasswordAuthentication yes në skedarin e konfigurimit /etc/ssh/sshd_config dhe e ndryshojmë si më poshtë:
PasswordAuthentication no Në Ubuntu, shtojmë rreshtin PasswordAuthentication no në skedarin 10-my-sshd-settings.conf:
sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confPër udhëzime mbi lidhjen me autentikimin me dy faktorë për SSH, shih. .
Firewall
Firewall garanton që në server do të kalojë vetëm ai trafik në portet që ju i keni lejuar direkt. Kjo mbron nga shfrytëzimi i porteve që mund të kenë qenë aksidentalisht aktivizuar me shërbime të tjera, duke e zvogëluar ndjeshëm sipërfaqen e sulmit.
Para se të instaloni firewall-in, sigurohuni që SSH është regjistruar në listën e përjashtimeve dhe nuk do të bllokohet. Ndryshe, pas aktivizimit të firewall-it ne nuk mund të lidhemi me serverin.
Me distribucionin Ubuntu vjen Uncomplicated Firewall (), ndĂ«rsa me CentOS/Red Hat â .
Lejimi i SSH në firewall 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 ta aktivizoni firewall-in.
Në CentOS/Red Hat nisni shërbimin systemd për firewalld:
sudo systemctl start firewalld
sudo systemctl enable firewalldNë Ubuntu përdorim këtë komandë:
sudo ufw enable
Fail2Ban
ShĂ«rbimi analizon logĂ«t nĂ« server dhe numĂ«ron pĂ«rpjekjet e aksesit nga çdo IP adresĂ«. NĂ« konfigurimet janĂ« vendosur rregulla pĂ«r sa pĂ«rpjekje aksesi lejohen pĂ«r njĂ« interval tĂ« caktuar â pas tĂ« cilit kjo IP adresĂ« bllokohet pĂ«r njĂ« periudhĂ« tĂ« caktuar kohe. PĂ«r shembull, lejojmĂ« 5 pĂ«rpjekje tĂ« pasuksesshme pĂ«r autentifikim me SSH brenda njĂ« intervali prej 2 orĂ«sh, pas sĂ« cilĂ«s bllokohet kjo IP adressĂ« pĂ«r 12 orĂ«.
Instalimi i Fail2Ban në CentOS dhe Red Hat:
sudo yum install fail2banInstalimi në Ubuntu dhe Debian:
sudo apt install fail2banNisja:
systemctl start fail2ban
systemctl enable fail2ban Në program ka dy skedarë konfigurimi: /etc/fail2ban/fail2ban.conf dhe /etc/fail2ban/jail.conf. Kufizimet për bllokimin janë të përcaktuara në skedarin e dytë.
Dheili për SSH është aktivizuar nga e para me cilësimet përfundimtare (5 përpjekje, intervali 10 minuta, bllokimi për 10 minuta).
[DEFAULT] ignorecommand = bantime = 10m findtime = 10m maxretry = 5
Përveç SSH, Fail2Ban mund të mbrojë edhe shërbime të tjera në serverin web nginx ose Apache.
Përditësime automatike të sigurisë
Si është e njohur, në të gjitha programet vazhdimisht gjejnë dobësi të reja. Pas publikimit të informacionit, exploit-t shtohen në paketat e njohura të exploit-eve, të cilat përdoren masivisht nga hakerat dhe adoleshentët gjatë skanimit të të gjitha serverëve njëpasnjëshëm. Prandaj, është shumë e rëndësishme të instaloni azhurnimet e sigurisë sapo të shfaqen.
Në serverin Ubuntu, në konfigurimin e parazgjedhur, azhurnimet automatike të sigurisë janë të aktivizuara, kështu që veprime të tjera nuk kërkohen.
Në CentOS/Red Hat, është e nevojshme të instaloni aplikacionin dhe të aktivizoni timer-in:
sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timerKontrolli i timer-it:
sudo systemctl status dnf-automatic.timer
Ndryshimi i porteve të paracaktuara
SSH u zhvillua në vitin 1995 si zëvendësim për telnet (porti 23) dhe ftp (porti 21), kështu që autori i programit, Tatu Iltonen, , dhe ai u miratua në IANA.
Natyrisht, tĂ« gjithĂ« sulmuesit janĂ« tĂ« vetĂ«dijshĂ«m pĂ«r portin nĂ« tĂ« cilin funksionon SSH â dhe e skanojnĂ« atĂ« sĂ« bashku me portet e tjera standarde, pĂ«r tĂ« verifikuar versionin e software-it, pĂ«r tĂ« kontrolluar fjalĂ«kalimet standarde tĂ« root dhe kĂ«shtu me radhĂ«.
Ndryshimi i porteve standarde â obfuscimi â redukton masivisht volumin e trafikut tĂ«padĂ«shiruar, madhĂ«sinĂ« e logjeve dhe ngarkesĂ«n nĂ« server, si dhe zvogĂ«lon sipĂ«rfaqen e sulmit. MegjithĂ«se disa (security through obscurity). Arsyeja Ă«shtĂ« se kjo teknikĂ« i kundĂ«rvihet mbrojtjes themelore . Prandaj, pĂ«r shembull, Instituti KombĂ«tar i Standardeve dhe TeknologjisĂ« i SHBA-ve nĂ« shpreh nevojĂ«n pĂ«r njĂ« arkitekturĂ« serveri tĂ« hapur: "Siguria e sistemit nuk duhet tĂ« mbĂ«shtetet nĂ« fshehtĂ«sinĂ« e implementimit tĂ« komponentĂ«ve tĂ« tij", â thuhet nĂ« dokument.
Teorikisht, ndërrimi i porteve standarde bien ndesh me praktikën e arkitekturës së hapur. Por në praktikë, volumi i trafikut të dëmshëm vërtet reduktohet, 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 përcaktohet nga parametri -p në . Klienti SSH dhe programet po ashtu mbështesin parametrin -p.
Parametri -p që 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). Një komandë nga linja e komandës anashkalon çdo vlerë në skedarët e konfigurimit.
Nëse ka shumë serverë, shumica e këtyre veprimeve për mbrojtjen e serverit Linux mund të automatizohen në një skenar. Por, nëse ka vetëm një server, është më mirë ta kontrollosh procesin manualisht.
Si reklamë
Porosit dhe fillo menjĂ«herĂ«! nĂ« çdo konfigurim dhe me çdo sistem operativ brenda njĂ« minute. Konfigurimi maksimal do tĂ« lejojĂ« tĂ« arrish deri nĂ« 128 bĂ«rthama CPU, 512 GB RAM, 4000 GB NVMe. Epik đ
Burimi: habr.com
