Linux netþjónavörn. Hvað á að gera fyrst

Linux netþjónavörn. Hvað á að gera fyrst
Habib M'henni/Wikimedia Commons, CC BY-SA

Nú á dögum er spurning um nokkrar mínútur og nokkra músarsmelli að hækka netþjón á hýsingu. En strax eftir sjósetningu lendir hann í fjandsamlegu umhverfi, því hann er opinn fyrir öllu internetinu eins og saklaus stúlka á rokkaradiskói. Skannar munu fljótt finna það og greina þúsundir sjálfkrafa handrita vélmenna sem leita að netkerfinu í leit að veikleikum og rangstillingum. Það eru nokkur atriði sem þú ættir að gera strax eftir ræsingu til að tryggja grunnvernd.

efni

Notandi sem ekki er rót

Fyrsta skrefið er að búa til notanda sem ekki er rót fyrir sjálfan þig. Aðalatriðið er að notandinn root algjör réttindi í kerfinu og ef þú leyfir honum fjarstjórnun, þá muntu vinna hálfa vinnuna fyrir tölvuþrjótann og skilja eftir gilt notendanafn fyrir hann.

Þess vegna þarftu að búa til annan notanda og slökkva á fjarstjórnun í gegnum SSH fyrir rót.

Nýr notandi er ræstur af skipuninni useradd:

useradd [options] <username>

Síðan er lykilorði bætt við fyrir það með skipuninni passwd:

passwd <username>

Að lokum þarf að bæta þessum notanda í hóp sem hefur rétt til að framkvæma hækkaðar skipanir sudo. Það fer eftir Linux dreifingu, þetta geta verið mismunandi hópar. Til dæmis, í CentOS og Red Hat, er notandanum bætt við hópinn wheel:

usermod -aG wheel <username>

Í Ubuntu er því bætt við hópinn sudo:

usermod -aG sudo <username>

Lyklar í stað SSH lykilorða

Rute force eða lykilorðsleki er venjulegur árásarvektor, svo það er best að slökkva á lykilorðavottun í SSH (Secure Shell) og nota lykilauðkenningu í staðinn.

Það eru ýmis forrit til að innleiða SSH siðareglur, svo sem lsh и Dropbjörn, en vinsælast er OpenSSH. Uppsetning OpenSSH biðlarans á Ubuntu:

sudo apt install openssh-client

Uppsetning netþjóns:

sudo apt install openssh-server

Ræsir SSH púkann (sshd) á Ubuntu þjóninum:

sudo systemctl start sshd

Ræstu púkann sjálfkrafa við hverja ræsingu:

sudo systemctl enable sshd

Það skal tekið fram að miðlarahlutinn af OpenSSH inniheldur biðlarahlutann. Það er að segja í gegnum openssh-server þú getur tengst öðrum netþjónum. Þar að auki, frá biðlaravélinni þinni, geturðu ræst SSH göng frá ytri netþjóni til þriðja aðila gestgjafa, og þá mun þriðji aðili gestgjafi líta á ytri netþjóninn sem uppsprettu beiðna. Mjög handhægur eiginleiki til að hylja kerfið þitt. Sjá grein fyrir nánari upplýsingar „Hagnýt ráð, dæmi og SSH göng“.

Á biðlaravél er yfirleitt ekkert vit í að setja upp fullgildan netþjón til að koma í veg fyrir möguleika á fjartengingu við tölvu (af öryggisástæðum).

Svo, fyrir nýja notandann þinn, þarftu fyrst að búa til SSH lykla á tölvunni sem þú munt fá aðgang að þjóninum frá:

ssh-keygen -t rsa

Opinberi lykillinn er geymdur í skrá .pub og lítur út eins og strengur af handahófskenndum stöfum sem byrjar á ssh-rsa.

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

Síðan, undir rótinni, búðu til SSH möppu á þjóninum í heimaskrá notandans og bættu SSH almenningslyklinum við skrána authorized_keys, með því að nota textaritil eins og Vim:

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

vim /home/user_name/.ssh/authorized_keys

Að lokum skaltu stilla réttar heimildir fyrir skrána:

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

og breyttu eignarhaldi í þennan notanda:

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

Á biðlarahlið þarftu að tilgreina staðsetningu leynilykilsins fyrir auðkenningu:

ssh-add DIR_PATH/keylocation

Nú geturðu skráð þig inn á netþjóninn undir notendanafninu með þessum lykli:

ssh [username]@hostname

Eftir heimild geturðu notað scp skipunina til að afrita skrár, tólið sshfs til að fjartengja skráarkerfi eða möppur.

Það er ráðlegt að taka nokkur öryggisafrit af einkalyklinum, því ef þú slekkur á auðkenningu lykilorðs og týnir því, þá muntu alls ekki hafa neina leið til að skrá þig inn á þinn eigin netþjón.

Eins og getið er hér að ofan, í SSH þarftu að slökkva á auðkenningu fyrir rót (þetta er ástæðan fyrir því að við byrjuðum nýjan notanda).

Á CentOS/Red Hat finnum við línuna PermitRootLogin yes í stillingarskránni /etc/ssh/sshd_config og breyta því:

PermitRootLogin no

Á Ubuntu bættu við línunni PermitRootLogin no í stillingarskrána 10-my-sshd-settings.conf:

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

Eftir að hafa gengið úr skugga um að nýi notandinn sé að auðkenna með lykilnum sínum geturðu slökkt á auðkenningu lykilorðs til að útiloka hættu á lykilorðsleka eða brute force. Nú, til að fá aðgang að þjóninum, þarf árásarmaður að fá sér einkalykil.

Á CentOS/Red Hat finnum við línuna PasswordAuthentication yes í stillingarskránni /etc/ssh/sshd_config og breyttu því svona:

PasswordAuthentication no

Á Ubuntu bættu við línunni PasswordAuthentication no að skrá 10-my-sshd-settings.conf:

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

Fyrir leiðbeiningar um að virkja tvíþætta auðkenningu í gegnum SSH, sjá hér.

Eldveggur

Eldveggurinn tryggir að aðeins umferðin á höfnunum sem þú leyfir beint fer á netþjóninn. Þetta verndar gegn hagnýtingu á höfnum sem eru óvart virkjaðar með annarri þjónustu, sem dregur verulega úr árásaryfirborðinu.

Áður en þú setur upp eldvegg þarftu að ganga úr skugga um að SSH sé innifalið á útilokunarlistanum og verði ekki lokað. Annars, eftir að eldveggurinn er ræstur, getum við ekki tengst þjóninum.

Ubuntu dreifing kemur með óbrotnum eldvegg (), og með CentOS/Red Hat - firewalld.

Leyfa SSH í eldveggnum á Ubuntu:

sudo ufw allow ssh

Notaðu skipunina á CentOS/Red Hat firewall-cmd:

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

Eftir þessa aðferð geturðu ræst eldvegginn.

Á CentOS/Red Hat, ræstu systemd þjónustuna fyrir eldvegg:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Á Ubuntu notum við eftirfarandi skipun:

sudo ufw enable

Fail2Ban

Service Fail2Ban greinir logs á þjóninum og telur fjölda aðgangstilrauna frá hverri IP tölu. Stillingarnar tilgreina reglur um hversu margar aðgangstilraunir eru leyfðar á tilteknu tímabili - eftir það er þetta IP-tala lokað í ákveðinn tíma. Til dæmis skulum við leyfa 5 misheppnaðar SSH auðkenningartilraunir innan 2 klukkustunda og loka síðan fyrir uppgefið IP tölu í 12 klukkustundir.

Að setja upp Fail2Ban á CentOS og Red Hat:

sudo yum install fail2ban

Uppsetning á Ubuntu og Debian:

sudo apt install fail2ban

Ræsa:

systemctl start fail2ban
systemctl enable fail2ban

Forritið hefur tvær stillingarskrár: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Banntakmarkanir eru tilgreindar í annarri skránni.

Fangelsi fyrir SSH er sjálfgefið virkt með sjálfgefnum stillingum (5 tilraunir, 10 mínútur á milli, bann í 10 mínútur).

[sjálfgefið] ignorecommand=bantime=10m findtime=10m maxretry=5

Auk SSH getur Fail2Ban verndað aðra þjónustu á nginx eða Apache vefþjóninum.

Sjálfvirkar öryggisuppfærslur

Eins og þú veist eru nýir veikleikar stöðugt að finna í öllum forritum. Eftir að upplýsingarnar hafa verið birtar er hetjudáðum bætt við vinsæla exploit pakka, sem eru gríðarlega notaðir af tölvuþrjótum og unglingum þegar þeir skanna alla netþjóna í röð. Þess vegna er mjög mikilvægt að setja upp öryggisuppfærslur um leið og þær birtast.

Á Ubuntu netþjóninum eru sjálfvirkar öryggisuppfærslur virkar sjálfgefið, svo ekki er þörf á frekari aðgerðum.

Á CentOS/Red Hat þarftu að setja upp forritið dnf-sjálfvirkur og kveiktu á tímamælinum:

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

Tímamælir athugun:

sudo systemctl status dnf-automatic.timer

Breyting á sjálfgefnum höfnum

SSH var þróað árið 1995 til að koma í stað telnet (port 23) og ftp (port 21), svo höfundur forritsins, Tatu Iltonen valið port 22 sjálfgefið, og hefur verið samþykkt af IANA.

Auðvitað eru allir árásarmenn meðvitaðir um hvaða höfn SSH er að keyra á - og skanna hana ásamt restinni af stöðluðu höfnunum til að finna út hugbúnaðarútgáfuna, athuga venjuleg rót lykilorð, og svo framvegis.

Breyting á stöðluðum höfnum - obfuscation - nokkrum sinnum dregur úr magni ruslaumferðar, stærð annála og álagi á þjóninum og minnkar einnig árásarflötinn. Þó sumir gagnrýna þessa aðferð „vernd í gegnum myrkur“ (öryggi í gegnum myrkur). Ástæðan er sú að þessi tækni er andstæð grundvallaratriðum byggingarverndar. Þess vegna, til dæmis, US National Institute of Standards and Technology í „Öryggisleiðbeiningar fyrir netþjón“ gefur til kynna þörfina fyrir opinn netþjónaarkitektúr: „Öryggi kerfis ætti ekki að treysta á leynd um útfærslu íhluta þess,“ segir í skjalinu.

Fræðilega séð er það að breyta sjálfgefnum höfnum gegn iðkun opins arkitektúrs. En í reynd minnkar í raun magn skaðlegrar umferðar, þannig að þetta er einföld og áhrifarík ráðstöfun.

Hægt er að stilla gáttanúmerið með því að breyta tilskipuninni Port 22 í stillingarskránni / etc / ssh / sshd_config. Það er einnig gefið til kynna með færibreytunni -p <port> в ssh. SSH viðskiptavinur og forrit sftp styðja einnig möguleikann -p <port>.

Viðfang -p <port> er hægt að nota til að tilgreina gáttarnúmerið þegar tengst er með skipuninni ssh í linux. IN sftp и scp breytu er notuð -P <port> (hástafur P). Skipanalínuleiðbeiningar hnekkja hvaða gildi sem er í stillingarskrám.

Ef það eru margir netþjónar geta næstum allar þessar aðgerðir til að vernda Linux netþjóninn verið sjálfvirkar í handriti. En ef það er aðeins einn þjónn, þá er betra að stjórna ferlinu handvirkt.

Um réttindi auglýsinga

Pantaðu og byrjaðu strax! Stofnun VDS hvaða stillingar sem er og með hvaða stýrikerfi sem er innan mínútu. Hámarksuppsetningin gerir þér kleift að komast til fulls - 128 CPU kjarna, 512 GB vinnsluminni, 4000 GB NVMe. Epic 🙂

Linux netþjónavörn. Hvað á að gera fyrst

Heimild: www.habr.com