Pwoteksyon sèvè Linux. Kisa pou w fè an premye

Pwoteksyon sèvè Linux. Kisa pou w fè an premye
Habib M'henni/Wikimedia Commons, CC BY-SA

Sèjousi, mete kanpe yon sèvè sou yon hosting se yon kesyon de yon koup la minit ak kèk klik sourit la. Men, imedyatman apre lansman, li jwenn tèt li nan yon anviwònman ostil, paske li se ouvè a tout entènèt la tankou yon ti fi inosan nan yon disko rocker. Scanners pral jwenn li byen vit epi dekouvri dè milye de bots otomatikman script ki fouye rezo a pou chèche frajilite ak konfigirasyon ki pa kòrèk. Gen kèk bagay ou ta dwe fè imedyatman apre lansman pou asire pwoteksyon debaz.

Content

Itilizatè ki pa rasin

Premye bagay ou bezwen fè se kreye yon itilizatè ki pa rasin. Pwen an se ke itilizatè a root privilèj absoli nan sistèm nan, epi si ou pèmèt l 'administrasyon aleka, Lè sa a, ou pral fè mwatye travay la pou pirate a, kite yon non itilizatè valab pou li.

Se poutèt sa, ou bezwen kreye yon lòt itilizatè, ak enfim administrasyon aleka atravè SSH pou rasin.

Yon nouvo itilizatè kreye ak lòd la useradd:

useradd [options] <username>

Lè sa a, yo ajoute yon modpas pou li ak lòd la passwd:

passwd <username>

Finalman, itilizatè sa a bezwen ajoute nan yon gwoup ki gen dwa pou egzekite kòmandman ak privilèj wo sudo. Tou depan de distribisyon an Linux, sa yo ka diferan gwoup. Pou egzanp, nan CentOS ak Red Hat yon itilizatè ajoute nan yon gwoup wheel:

usermod -aG wheel <username>

Sou Ubuntu li ajoute nan gwoup la sudo:

usermod -aG sudo <username>

Kle olye de modpas SSH

Fòs brital oswa flit modpas se yon vektè atak estanda, kidonk li pi bon pou enfim otantifikasyon modpas nan SSH (Secure Shell) epi sèvi ak otantifikasyon kle pito.

Gen diferan pwogram pou aplike pwotokòl SSH, tankou lsh и dropbear, men ki pi popilè a se OpenSSH. Enstale kliyan OpenSSH la sou Ubuntu:

sudo apt install openssh-client

Enstalasyon sèvè:

sudo apt install openssh-server

Kòmanse demon SSH (sshd) sou yon sèvè Ubuntu:

sudo systemctl start sshd

Otomatikman kòmanse demon an sou chak bòt:

sudo systemctl enable sshd

Li ta dwe remake ke pati nan sèvè OpenSSH gen ladan pati nan kliyan. Sa vle di, atravè openssh-server ou ka konekte ak lòt serveurs. Anplis, nan machin kliyan ou a ou ka lanse yon tinèl SSH soti nan yon sèvè aleka nan yon lame twazyèm-pati, ak Lè sa a, lame a twazyèm-pati pral konsidere sèvè a aleka kòm sous la nan demann. Yon fonksyon trè pratik pou maske sistèm ou an. Pou plis detay, gade atik la. "Konsèy pratik, egzanp ak tinèl SSH".

Anjeneral pa gen okenn pwen nan enstale yon sèvè plen véritable sou machin nan kliyan yo nan lòd yo anpeche posibilite pou koneksyon aleka nan òdinatè a (pou rezon sekirite).

Se konsa, pou nouvo itilizatè ou an, ou premye bezwen jenere kle SSH sou òdinatè a ki soti nan kote ou pral jwenn aksè nan sèvè a:

ssh-keygen -t rsa

Se kle piblik la ki estoke nan yon dosye .pub epi sanble yon seri karaktè o aza ki kòmanse ak ssh-rsa.

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

Lè sa a, kòm rasin, kreye yon anyè SSH sou sèvè a nan anyè lakay itilizatè a epi ajoute kle piblik SSH la nan dosye a. authorized_keyslè l sèvi avèk yon editè tèks tankou Vim:

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

vim /home/user_name/.ssh/authorized_keys

Finalman, mete otorizasyon ki kòrèk yo pou dosye a:

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

epi chanje pwopriyetè a itilizatè sa a:

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

Sou bò kliyan an, ou bezwen presize kote kle sekrè a pou otantifikasyon:

ssh-add DIR_PATH/keylocation

Koulye a, ou ka konekte nan sèvè a anba non itilizatè a lè l sèvi avèk kle sa a:

ssh [username]@hostname

Apre otorizasyon, ou ka sèvi ak kòmandman scp pou kopye fichye, sèvis piblik la sshfs pou monte adistans yon sistèm dosye oswa anyè.

Li rekòmande pou fè plizyè kopi sovgad kle prive a, paske si ou enfim otantifikasyon modpas epi pèdi li, ou p ap gen okenn fason pou w konekte nan sèvè pwòp ou a.

Kòm mansyone pi wo a, nan SSH ou bezwen enfim otantifikasyon pou rasin (pou rezon sa a nou te kreye yon nouvo itilizatè).

Sou CentOS/Red Hat nou jwenn liy lan PermitRootLogin yes nan dosye konfigirasyon an /etc/ssh/sshd_config epi chanje li:

PermitRootLogin no

Sou Ubuntu ajoute liy lan PermitRootLogin no nan dosye konfigirasyon an 10-my-sshd-settings.conf:

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

Apre ou fin verifye ke nouvo itilizatè a otantifye lè l sèvi avèk kle yo, ou ka enfim otantifikasyon modpas pou elimine risk pou flit modpas oswa fòs brital. Koulye a, pou jwenn aksè nan sèvè a, atakè a ap bezwen jwenn kle prive a.

Sou CentOS/Red Hat nou jwenn liy lan PasswordAuthentication yes nan dosye konfigirasyon an /etc/ssh/sshd_config epi chanje li jan sa a:

PasswordAuthentication no

Sou Ubuntu ajoute liy lan PasswordAuthentication no pou ranpli 10-my-sshd-settings.conf:

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

Pou enstriksyon sou kòman yo pèmèt otantifikasyon de faktè atravè SSH, gade isit la.

Firewall

Firewall la asire ke sèlman trafik sou pò yo ke ou dirèkteman pèmèt pral ale nan sèvè a. Sa a pwoteje kont eksplwatasyon nan pò ki aksidantèlman pèmèt pa lòt sèvis, ki anpil diminye sifas la atak.

Anvan ou enstale yon firewall, ou bezwen asire w ke SSH enkli nan lis esklizyon an epi yo pa pral bloke. Sinon, apre yo fin kòmanse firewall la, nou pa yo pral kapab konekte ak sèvè a.

Distribisyon Ubuntu a vini ak Firewall san konplike (wow), ak CentOS/Red Hat - firewalld.

Pèmèt SSH nan firewall la sou Ubuntu:

sudo ufw allow ssh

Sou CentOS/Red Hat nou itilize kòmandman an firewall-cmd:

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

Apre pwosedi sa a, ou ka kòmanse firewall la.

Sou CentOS/Red Hat nou lanse sèvis systemd pou firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Sou Ubuntu nou itilize lòd sa a:

sudo ufw enable

Fail2Ban

Lapòs Fail2Ban analize mòso bwa sèvè epi konte kantite tantativ aksè nan chak adrès IP. Anviwònman yo presize règ yo pou konbyen tantativ aksè yo pèmèt nan yon sèten entèval - apre yo fin adrès IP sa a bloke pou yon peryòd tan espesifye. Pou egzanp, nou pèmèt 5 tantativ otantifikasyon san siksè atravè SSH nan yon peryòd de 2 èdtan, apre sa nou bloke adrès IP sa a pou 12 èdtan.

Enstale Fail2Ban sou CentOS ak Red Hat:

sudo yum install fail2ban

Enstalasyon sou Ubuntu ak Debian:

sudo apt install fail2ban

Lanse:

systemctl start fail2ban
systemctl enable fail2ban

Pwogram nan gen de dosye konfigirasyon: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Restriksyon entèdiksyon yo espesifye nan dezyèm dosye a.

Prizon pou SSH aktive pa default ak paramèt default (5 tantativ, entèval 10 minit, entèdiksyon pou 10 minit).

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

Anplis SSH, Fail2Ban ka pwoteje lòt sèvis sou sèvè entènèt nginx oswa Apache.

Mizajou sekirite otomatik yo

Kòm ou konnen, nouvo frajilite yo toujou ap jwenn nan tout pwogram yo. Apre enfòmasyon yo pibliye, eksplwatasyon yo ajoute nan pake eksplwatasyon popilè yo, ki lajman itilize pa entru ak adolesan lè yo analize tout sèvè nan yon ranje. Se poutèt sa, li trè enpòtan pou enstale mizajou sekirite le pli vit ke yo vin disponib.

Sèvè Ubuntu gen mizajou sekirite otomatik yo aktive pa default, kidonk pa gen okenn etap adisyonèl ki nesesè.

Sou CentOS/Red Hat ou bezwen enstale aplikasyon an dnf-otomatik epi limen revèy la:

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

Tcheke revèy:

sudo systemctl status dnf-automatic.timer

Chanje pò default yo

SSH te devlope an 1995 pou ranplase telnet (pò 23) ak ftp (pò 21), kidonk otè pwogram nan se Tatu Iltonen. te chwazi pò 22 pa default, epi li te apwouve pa IANA.

Natirèlman, tout atakè yo konnen ki pò SSH ap kouri sou - epi tcheke li ansanm ak lòt pò estanda yo chèche konnen vèsyon an lojisyèl, yo tcheke modpas rasin estanda, ak sou sa.

Chanje pò estanda-obfuscation-plizyè fwa diminye volim nan trafik fatra, gwosè a nan mòso bwa ak chaj la sou sèvè a, epi tou redwi sifas la atak. Malgre ke gen kèk kritike metòd sa a nan "defans nan fènwa" (sekirite nan fènwa). Rezon ki fè la se ke teknik sa a opoze ak fondamantal la pwoteksyon achitekti. Se poutèt sa, pou egzanp, US National Institute of Standards and Technology "Gid Sekirite Sèvè" endike nesesite pou yon achitekti sèvè louvri: "Sekirite a nan yon sistèm pa ta dwe konte sou sekrè nan aplikasyon an nan eleman li yo," dokiman an di.

Nan teyori, chanje pò yo default se kontrè ak pratik achitekti louvri. Men, nan pratik, volim nan trafik move aktyèlman diminye, kidonk sa a se yon mezi ki senp epi efikas.

Nimewo pò a ka configuré pa chanje direktiv la Port 22 nan dosye konfigirasyon an / etc / ssh / sshd_config. Li se tou endike pa paramèt la -p <port> в ssh. Kliyan SSH ak pwogram yo sftp sipòte tou paramèt la -p <port>.

Paramèt -p <port> ka itilize pou presize nimewo pò a lè w konekte lè l sèvi avèk lòd la ssh nan Linux. NAN sftp и scp paramèt yo itilize -P <port> (Majiskil P). Espesifye li nan liy kòmand la pase nenpòt valè nan dosye konfigirasyon yo.

Si gen anpil serveurs, prèske tout aksyon sa yo pou pwoteje yon sèvè Linux ka otomatize nan yon script. Men, si gen yon sèl sèvè, Lè sa a, li pi bon manyèlman kontwole pwosesis la.

Sou Dwa yo nan Piblisite

Kòmande epi kòmanse travay touswit! Kreyasyon VDS nenpòt konfigirasyon ak nenpòt sistèm opere nan yon minit. Konfigirasyon maksimòm lan pral pèmèt ou gen yon eksplozyon - 128 nwayo CPU, 512 GB RAM, 4000 GB NVMe. Byen sezon :)

Pwoteksyon sèvè Linux. Kisa pou w fè an premye

Sous: www.habr.com