Proteksyon sa server sa Linux. Unsa ang una nga buhaton

Proteksyon sa server sa Linux. Unsa ang una nga buhaton
Habib M'henni/Wikimedia Commons, CC BY-SA

Karong panahona, ang pagpataas sa usa ka server sa usa ka pag-host usa ka butang nga pila ka minuto ug pipila ka mga pag-klik sa mouse. Apan pagkahuman sa paglansad, nakit-an niya ang iyang kaugalingon sa usa ka dili maayo nga palibot, tungod kay bukas siya sa tibuuk nga Internet sama sa usa ka inosenteng babaye sa usa ka rocker disco. Madali nga makit-an kini sa mga scanner ug makit-an ang libu-libo nga awtomatiko nga na-script nga mga bot nga nagsuhid sa network nga nangita mga kahuyangan ug sayup nga pag-configure. Adunay pipila ka mga butang nga kinahanglan nimong buhaton pagkahuman sa paglansad aron masiguro ang sukaranan nga proteksyon.

Mga sulod

Dili gamut nga tiggamit

Ang unang lakang mao ang paghimo sa usa ka non-root user alang sa imong kaugalingon. Ang punto mao nga ang tiggamit root hingpit nga mga pribilehiyo sa sistema, ug kung tugutan nimo siya nga hilit nga pagdumala, nan buhaton nimo ang katunga sa trabaho alang sa hacker, nga magbilin usa ka balido nga username alang kaniya.

Busa, kinahanglang maghimo ka og laing user, ug i-disable ang remote administration pinaagi sa SSH para sa gamut.

Ang usa ka bag-ong user gisugdan pinaagi sa sugo useradd:

useradd [options] <username>

Dayon ang usa ka password idugang alang niini uban ang sugo passwd:

passwd <username>

Sa katapusan, kini nga tiggamit kinahanglan nga idugang sa usa ka grupo nga adunay katungod sa pagpatuman sa taas nga mga mando sudo. Depende sa distribusyon sa Linux, kini mahimong lain-laing mga grupo. Pananglitan, sa CentOS ug Red Hat, ang user gidugang sa grupo wheel:

usermod -aG wheel <username>

Sa Ubuntu kini gidugang sa grupo sudo:

usermod -aG sudo <username>

Mga yawe imbes nga mga password sa SSH

Ang brute force o password leaks kay usa ka standard attack vector, mao nga labing maayo nga i-disable ang password authentication sa SSH (Secure Shell) ug gamita hinuon ang key authentication.

Adunay lain-laing mga programa alang sa pagpatuman sa SSH protocol, sama sa lsh ΠΈ dropbear, apan ang pinakasikat mao ang OpenSSH. Pag-instalar sa OpenSSH nga kliyente sa Ubuntu:

sudo apt install openssh-client

Pag-instalar sa server:

sudo apt install openssh-server

Pagsugod sa SSH daemon (sshd) sa Ubuntu server:

sudo systemctl start sshd

Awtomatikong pagsugod sa daemon sa matag boot:

sudo systemctl enable sshd

Kinahanglan nga hinumdoman nga ang bahin sa server sa OpenSSH naglakip sa bahin sa kliyente. Sa ato pa, pinaagi sa openssh-server mahimo ka magkonektar sa ubang mga server. Dugang pa, gikan sa makina sa imong kliyente, mahimo nimong sugdan ang usa ka tunel sa SSH gikan sa usa ka hilit nga server hangtod sa usa ka host sa ikatulo nga partido, ug unya ang host sa ikatulo nga partido mag-isip sa hilit nga server ingon gigikanan sa mga hangyo. Usa ka magamit kaayo nga bahin alang sa pag-mask sa imong sistema. Tan-awa ang artikulo alang sa dugang nga mga detalye "Praktikal nga mga Tip, Ehemplo, ug SSH Tunnels".

Sa usa ka makina sa kliyente, kasagaran walay kahulugan ang pag-instalar sa usa ka bug-os nga server aron mapugngan ang posibilidad sa hilit nga koneksyon sa usa ka kompyuter (alang sa mga katuyoan sa seguridad).

Mao nga, alang sa imong bag-ong tiggamit, kinahanglan una nimo nga makamugna ang mga yawe sa SSH sa kompyuter diin imong ma-access ang server:

ssh-keygen -t rsa

Ang publiko nga yawe gitipigan sa usa ka file .pub ug morag usa ka hugpong sa mga random nga karakter nga nagsugod sa ssh-rsa.

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

Dayon, gikan sa ilawom sa gamut, paghimo og SSH nga direktoryo sa server sa home directory sa user ug idugang ang SSH public key sa file authorized_keys, gamit ang text editor sama sa Vim:

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

vim /home/user_name/.ssh/authorized_keys

Sa katapusan, itakda ang husto nga pagtugot alang sa file:

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

ug usba ang pagpanag-iya niini nga tiggamit:

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

Sa bahin sa kliyente, kinahanglan nimo nga ipiho ang lokasyon sa sekreto nga yawe alang sa pag-authenticate:

ssh-add DIR_PATH/keylocation

Karon mahimo ka mag log in sa server sa ilawom sa username gamit kini nga yawe:

ssh [username]@hostname

Human sa pagtugot, mahimo nimong gamiton ang scp command aron kopyahon ang mga file, ang utility mga sshf sa layo nga pag-mount sa usa ka file system o mga direktoryo.

Gisugyot nga maghimo daghang mga backup nga kopya sa pribado nga yawe, tungod kay kung imong gi-disable ang pag-authenticate sa password ug nawala kini, nan wala ka’y bisan unsang paagi sa pag-log in sa imong kaugalingon nga server.

Sama sa nahisgutan sa ibabaw, sa SSH kinahanglan nimo nga i-disable ang pag-authenticate alang sa gamut (mao kini ang hinungdan nga nagsugod kami usa ka bag-ong tiggamit).

Sa CentOS/Red Hat atong makita ang linya PermitRootLogin yes sa config file /etc/ssh/sshd_config ug usba kini:

PermitRootLogin no

Sa Ubuntu idugang ang linya PermitRootLogin no sa config file 10-my-sshd-settings.conf:

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

Human mapamatud-an nga ang bag-ong user nag-authenticate gamit ang ilang yawe, mahimo nimong i-disable ang password authentication aron mawagtang ang risgo sa password leakage o brute force. Karon, aron ma-access ang server, ang tig-atake kinahanglan nga makakuha usa ka pribado nga yawe.

Sa CentOS/Red Hat atong makita ang linya PasswordAuthentication yes sa config file /etc/ssh/sshd_config ug usba kini sama niini:

PasswordAuthentication no

Sa Ubuntu idugang ang linya PasswordAuthentication no sa pag-file 10-my-sshd-settings.conf:

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

Para sa mga instruksyon sa pagpagana sa two-factor authentication pinaagi sa SSH, tan-awa dinhi.

firewall

Ang firewall nagsiguro nga ang trapiko lamang sa mga pantalan nga direkta nimong gitugotan ang maadto sa server. Kini nanalipod batok sa pagpahimulos sa mga pantalan nga aksidenteng nakapahimo sa uban nga mga serbisyo, nga sa hilabihan gayud pagkunhod sa pag-atake nawong.

Sa dili pa mag-instalar og firewall, kinahanglan nimong sigurohon nga ang SSH nalakip sa lista sa eksepsiyon ug dili ma-block. Kung dili, pagkahuman sa pagsugod sa firewall, dili kami makakonekta sa server.

Ang pag-apod-apod sa Ubuntu adunay Uncomplicated Firewall (ufw), ug uban sa CentOS/Red Hat - firewalld.

Gitugotan ang SSH sa firewall sa Ubuntu:

sudo ufw allow ssh

Sa CentOS/Red Hat gamita ang command firewall-cmd:

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

Pagkahuman niini nga pamaagi, mahimo nimong sugdan ang firewall.

Sa CentOS/Red Hat, sugdi ang systemd service para sa firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Sa Ubuntu gigamit namo ang mosunod nga sugo:

sudo ufw enable

Fail2Ban

nga pag-alagad Fail2Ban nag-analisar sa mga log sa server ug nag-ihap sa gidaghanon sa mga pagsulay sa pag-access gikan sa matag IP address. Gitino sa mga setting ang mga lagda kung pila ang mga pagsulay sa pag-access nga gitugotan alang sa usa ka piho nga agwat - pagkahuman kini nga IP address gibabagan sa usa ka piho nga yugto sa panahon. Pananglitan, tugotan nato ang 5 ka pakyas nga pagsulay sa pag-authenticate sa SSH sulod sa 2 ka oras, unya babagan ang gihatag nga IP address sulod sa 12 ka oras.

Pag-instalar sa Fail2Ban sa CentOS ug Red Hat:

sudo yum install fail2ban

Pag-instalar sa Ubuntu ug Debian:

sudo apt install fail2ban

Paglusad:

systemctl start fail2ban
systemctl enable fail2ban

Ang programa adunay duha ka mga file sa pag-configure: /etc/fail2ban/fail2ban.conf ΠΈ /etc/fail2ban/jail.conf. Ang mga pagdili sa pagdili gitakda sa ikaduhang file.

Ang jail para sa SSH gi-enable pinaagi sa default nga adunay default setting (5 nga pagsulay, interval 10 minuto, pagdili sa 10 minuto).

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

Dugang sa SSH, ang Fail2Ban makapanalipod sa ubang mga serbisyo sa nginx o Apache web server.

Awtomatikong pag-update sa seguridad

Sama sa imong nahibal-an, ang mga bag-ong kahuyangan kanunay nga makit-an sa tanan nga mga programa. Human mamantala ang impormasyon, ang mga pagpahimulos gidugang ngadto sa mga sikat nga exploit pack, nga kaylap nga gigamit sa mga hacker ug mga tin-edyer sa dihang nag-scan sa tanang mga server nga sunud-sunod. Busa, importante kaayo nga i-install ang mga update sa seguridad sa diha nga kini makita.

Sa Ubuntu server, ang awtomatikong pag-update sa seguridad gi-enable pinaagi sa default, mao nga wala nay dugang nga aksyon ang gikinahanglan.

Sa CentOS/Red Hat kinahanglan nimo nga i-install ang aplikasyon dnf-awtomatiko ug i-on ang timer:

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

Timer check:

sudo systemctl status dnf-automatic.timer

Pag-usab sa default nga mga pantalan

Ang SSH naugmad niadtong 1995 aron ilisan ang telnet (port 23) ug ftp (port 21), mao nga ang tagsulat sa programa, si Tatu Iltonen gipili nga port 22 pinaagi sa default, ug giaprobahan sa IANA.

Siyempre, nahibal-an sa tanan nga mga tig-atake kung unsang port SSH ang nagdagan - ug i-scan kini kauban ang nahabilin nga standard nga mga pantalan aron mahibal-an ang bersyon sa software, aron masusi ang standard nga mga password sa ugat, ug uban pa.

Ang pagbag-o sa standard nga mga pantalan - obfuscation - daghang mga higayon nga nakunhuran ang gidaghanon sa trapiko sa basura, ang gidak-on sa mga troso ug ang load sa server, ug gipakunhod usab ang pag-atake sa nawong. Bisan pa ang uban gisaway kini nga pamaagi sa "pagpanalipod pinaagi sa kangitngit" (seguridad pinaagi sa kangitngit). Ang hinungdan mao nga kini nga teknik supak sa sukaranan pagpanalipod sa arkitektura. Busa, pananglitan, ang US National Institute of Standards and Technology sa "Giya sa Seguridad sa Server" nagpaila sa panginahanglan alang sa usa ka bukas nga arkitektura sa server: "Ang seguridad sa usa ka sistema kinahanglan dili magsalig sa sekreto sa pagpatuman sa mga sangkap niini," ang dokumento nag-ingon.

Sa teoriya, ang pagbag-o sa default nga mga pantalan supak sa praktis sa bukas nga arkitektura. Apan sa praktis, ang gidaghanon sa malisyosong trapiko aktuwal nga gipakunhod, mao nga kini usa ka yano ug epektibo nga sukod.

Ang numero sa port mahimong ma-configure pinaagi sa pagbag-o sa direktiba Port 22 sa config file / etc / ssh / sshd_config. Gipakita usab kini sa parameter -p <port> Π² sshd. SSH nga kliyente ug mga programa sftp suportahan usab ang kapilian -p <port>.

Parameter -p <port> mahimong gamiton sa pagtino sa numero sa port kon magkonektar sa sugo ssh sa linux. SA sftp ΠΈ scp gigamit ang parameter -P <port> (kapital P). Ang instruksyon sa linya sa command nag-override sa bisan unsang bili sa mga file sa pag-configure.

Kung adunay daghang mga server, hapit tanan niini nga mga aksyon aron mapanalipdan ang server sa Linux mahimong awtomatiko sa usa ka script. Apan kung adunay usa ra ka server, nan mas maayo nga mano-mano ang pagkontrol sa proseso.

Diha sa Mga Katungod sa Pagdukiduki

Pag-order ug pagtrabaho dayon! Pagmugna sa VDS bisan unsang configuration ug sa bisan unsang operating system sulod sa usa ka minuto. Ang labing kadaghanon nga pag-configure magtugot kanimo nga makaabut sa labing kadaghan - 128 CPU cores, 512 GB RAM, 4000 GB NVMe. Epiko πŸ™‚

Proteksyon sa server sa Linux. Unsa ang una nga buhaton

Source: www.habr.com