Protezzjoni tas-server Linux. X'għandek tagħmel l-ewwel

Protezzjoni tas-server Linux. X'għandek tagħmel l-ewwel
Habib M'henni/Wikimedia Commons, CC BY-SA

Illum il-ġurnata, it-twaqqif ta 'server fuq hosting huwa kwistjoni ta' ftit minuti u ftit klikks tal-maws. Iżda immedjatament wara t-tnedija, isib ruħu f'ambjent ostili, għax huwa miftuħ għall-Internet kollu bħal tfajla innoċenti f'rocker disco. L-iskaners isibuha malajr u jiskopru eluf ta' bots b'kitba awtomatika li jfittxu n-netwerk biex ifittxu vulnerabbiltajiet u konfigurazzjonijiet mhux korretti. Hemm ftit affarijiet li għandek tagħmel immedjatament wara t-tnedija biex tiżgura protezzjoni bażika.

Kontenut

Utent mhux root

L-ewwel ħaġa li trid tagħmel hu li toħloq utent mhux root. Il-punt huwa li l-utent root privileġġi assoluti fis-sistema, u jekk inti tippermettilu amministrazzjoni remota, allura inti se tagħmel nofs ix-xogħol għall-hacker, li jħallu username validu għalih.

Għalhekk, għandek bżonn toħloq utent ieħor, u tiddiżattiva l-amministrazzjoni remota permezz ta 'SSH għall-għeruq.

Jinħoloq utent ġdid bil-kmand useradd:

useradd [options] <username>

Imbagħad password hija miżjuda għaliha mal-kmand passwd:

passwd <username>

Fl-aħħarnett, dan l-utent jeħtieġ li jiġi miżjud ma 'grupp li għandu d-dritt li jesegwixxi kmandi bi privileġġi elevati sudo. Skont id-distribuzzjoni tal-Linux, dawn jistgħu jkunu gruppi differenti. Pereżempju, f'CentOS u Red Hat utent jiżdied ma' grupp wheel:

usermod -aG wheel <username>

Fuq Ubuntu huwa miżjud mal-grupp sudo:

usermod -aG sudo <username>

Ċwievet minflok passwords SSH

Il-forza bruta jew it-tnixxija tal-password hija vettur ta 'attakk standard, għalhekk huwa aħjar li tiddiżattiva l-awtentikazzjoni tal-password f'SSH (Secure Shell) u minflok tuża l-awtentikazzjoni taċ-ċavetta.

Hemm programmi differenti biex jimplimentaw il-protokoll SSH, bħal lsh и dropbear, iżda l-aktar popolari huwa OpenSSH. Installazzjoni tal-klijent OpenSSH fuq Ubuntu:

sudo apt install openssh-client

Installazzjoni tas-server:

sudo apt install openssh-server

Nibda d-daemon SSH (sshd) fuq server Ubuntu:

sudo systemctl start sshd

Ibda d-daemon awtomatikament fuq kull boot:

sudo systemctl enable sshd

Għandu jiġi nnutat li l-parti tas-server OpenSSH tinkludi l-parti tal-klijent. Jiġifieri permezz openssh-server tista' tikkonnettja ma' servers oħra. Barra minn hekk, mill-magna tal-klijent tiegħek tista 'tniedi mina SSH minn server remot għal host ta' parti terza, u mbagħad l-ospitant ta 'parti terza jikkunsidra s-server remot bħala s-sors tat-talbiet. Funzjoni konvenjenti ħafna għall-maskra tas-sistema tiegħek. Għal aktar dettalji, ara l-artiklu. "Pariri prattiċi, eżempji u mini SSH".

Normalment ma jkun hemm l-ebda punt li jiġi installat server sħiħ fuq il-magna tal-klijent sabiex tiġi evitata l-possibbiltà ta 'konnessjoni remota mal-kompjuter (għal raġunijiet ta' sigurtà).

Għalhekk, għall-utent il-ġdid tiegħek, l-ewwel trid tiġġenera ċwievet SSH fuq il-kompjuter li minnu ser ikollok aċċess għas-server:

ssh-keygen -t rsa

Iċ-ċavetta pubblika hija maħżuna f'fajl .pub u qisu sensiela ta 'karattri każwali li tibda bil ssh-rsa.

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

Imbagħad, bħala għerq, oħloq direttorju SSH fuq is-server fid-direttorju tad-dar tal-utent u żid iċ-ċavetta pubblika SSH mal-fajl authorized_keysbilli tuża editur tat-test bħal Vim:

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

vim /home/user_name/.ssh/authorized_keys

Fl-aħħarnett, issettja l-permessi korretti għall-fajl:

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

u ibdel is-sjieda lil dan l-utent:

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

Min-naħa tal-klijent, trid tispeċifika l-post taċ-ċavetta sigrieta għall-awtentikazzjoni:

ssh-add DIR_PATH/keylocation

Issa tista' tidħol fis-server taħt l-isem tal-utent billi tuża din iċ-ċavetta:

ssh [username]@hostname

Wara l-awtorizzazzjoni, tista 'tuża l-kmand scp biex tikkopja fajls, l-utilità sshfs għall-immuntar mill-bogħod ta' sistema ta' fajls jew direttorji.

Huwa rakkomandabbli li tagħmel diversi kopji ta 'backup taċ-ċavetta privata, għaliex jekk tiddiżattiva l-awtentikazzjoni tal-password u titlifha, ma jkollok ebda mod biex tidħol fis-server tiegħek.

Kif imsemmi hawn fuq, f'SSH trid tiddiżattiva l-awtentikazzjoni għall-għeruq (għal din ir-raġuni ħloqna utent ġdid).

Fuq CentOS/Red Hat insibu l-linja PermitRootLogin yes fil-fajl tal-konfigurazzjoni /etc/ssh/sshd_config u ibdelha:

PermitRootLogin no

Fuq Ubuntu żid il-linja PermitRootLogin no għall-fajl tal-konfigurazzjoni 10-my-sshd-settings.conf:

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

Wara li tivverifika li l-utent il-ġdid huwa awtentikat bl-użu taċ-ċavetta tiegħu, tista 'tiddiżattiva l-awtentikazzjoni tal-password biex telimina r-riskju ta' tnixxija tal-password jew forza bruta. Issa, biex jaċċessa s-server, l-attakkant ikollu bżonn jikseb iċ-ċavetta privata.

Fuq CentOS/Red Hat insibu l-linja PasswordAuthentication yes fil-fajl tal-konfigurazzjoni /etc/ssh/sshd_config u ibdelha kif ġej:

PasswordAuthentication no

Fuq Ubuntu żid il-linja PasswordAuthentication no għall-fajl 10-my-sshd-settings.conf:

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

Għal struzzjonijiet dwar kif tiġi attivata l-awtentikazzjoni b'żewġ fatturi permezz ta' SSH, ara hawn.

Firewall

Il-firewall jiżgura li t-traffiku biss fuq il-portijiet li inti tippermetti direttament imur għas-server. Dan jipproteġi kontra l-isfruttament tal-portijiet li huma aċċidentalment attivati ​​minn servizzi oħra, li jnaqqas ħafna l-wiċċ tal-attakk.

Qabel ma tinstalla firewall, trid tiżgura li SSH huwa inkluż fil-lista ta 'esklużjoni u mhux se jiġi mblukkat. Inkella, wara li nibdew il-firewall, ma nkunux nistgħu nikkonnettjaw mas-server.

Id-distribuzzjoni tal-Ubuntu tiġi b'Uncomplicated Firewall (naqra), u b'CentOS/Red Hat - firewalld.

Nippermettu SSH fil-firewall fuq Ubuntu:

sudo ufw allow ssh

Fuq CentOS/Red Hat nużaw il-kmand firewall-cmd:

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

Wara din il-proċedura, tista 'tibda l-firewall.

Fuq CentOS/Red Hat inniedu s-servizz systemd għal firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Fuq Ubuntu nużaw il-kmand li ġej:

sudo ufw enable

Fail2Ban

Servizz Fail2Ban janalizza r-reġistri tas-server u jgħodd in-numru ta' tentattivi ta' aċċess minn kull indirizz IP. Is-settings jispeċifikaw ir-regoli għal kemm huma permessi tentattivi ta 'aċċess f'ċertu intervall - wara dan l-indirizz IP jiġi mblukkat għal perjodu ta' żmien speċifikat. Pereżempju, aħna nħallu 5 tentattivi ta 'awtentikazzjoni mingħajr suċċess permezz ta' SSH f'perjodu ta 'sagħtejn, u wara nibblukkaw dan l-indirizz IP għal 2-il siegħa.

Installazzjoni ta' Fail2Ban fuq CentOS u Red Hat:

sudo yum install fail2ban

Installazzjoni fuq Ubuntu u Debian:

sudo apt install fail2ban

Tnedija:

systemctl start fail2ban
systemctl enable fail2ban

Il-programm għandu żewġ fajls ta 'konfigurazzjoni: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Ir-restrizzjonijiet tal-projbizzjoni huma speċifikati fit-tieni fajl.

Il-ħabs għal SSH hija attivata awtomatikament b'settings default (5 tentattivi, intervall 10 minuti, projbizzjoni għal 10 minuti).

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

Minbarra SSH, Fail2Ban jista 'jipproteġi servizzi oħra fuq is-server tal-web nginx jew Apache.

Aġġornamenti awtomatiċi tas-sigurtà

Kif tafu, vulnerabbiltajiet ġodda jinsabu kontinwament fil-programmi kollha. Wara li l-informazzjoni tiġi ppubblikata, l-isfruttamenti huma miżjuda ma 'pakketti ta' sfruttament popolari, li jintużaw ħafna minn hackers u adoloxxenti meta jiskennjaw is-servers kollha wara xulxin. Għalhekk, huwa importanti ħafna li jiġu installati aġġornamenti tas-sigurtà hekk kif isiru disponibbli.

Is-servers Ubuntu għandhom aġġornamenti awtomatiċi tas-sigurtà attivati ​​b'mod awtomatiku, għalhekk m'hemmx bżonn ta 'passi addizzjonali.

Fuq CentOS/Red Hat għandek bżonn tinstalla l-applikazzjoni dnf-awtomatiku u ixgħel it-tajmer:

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

Kontroll tat-tajmer:

sudo systemctl status dnf-automatic.timer

Nibdlu l-portijiet default

SSH ġie żviluppat fl-1995 biex jissostitwixxi telnet (port 23) u ftp (port 21), għalhekk l-awtur tal-programm huwa Tatu Iltonen għażel il-port 22 awtomatikament, u ġie approvat mill-IANA.

Naturalment, l-attakkanti kollha jafu fuq liema port SSH qed jaħdem - u skennjawh flimkien ma 'portijiet standard oħra biex issir taf il-verżjoni tas-softwer, biex tiċċekkja l-passwords standard tal-għeruq, eċċ.

It-tibdil tal-portijiet standard - tfixkil - inaqqas il-volum tat-traffiku junk, id-daqs ta 'zkuk u t-tagħbija fuq is-server diversi drabi, u jnaqqas ukoll il-wiċċ tal-attakk. Għalkemm xi wħud tikkritika dan il-metodu ta’ “difiża permezz tal-oskurità” (sigurtà permezz tal-oskurità). Ir-raġuni hija li din it-teknika hija kuntrarja għall-fundamentali protezzjoni arkitettonika. Għalhekk, pereżempju, l-Istitut Nazzjonali tal-Istandards u t-Teknoloġija tal-Istati Uniti "Gwida tas-Sigurtà tas-Server" jindika l-ħtieġa għal arkitettura ta 'server miftuħ: "Is-sigurtà ta' sistema m'għandhiex tiddependi fuq is-segretezza tal-implimentazzjoni tal-komponenti tagħha," jgħid id-dokument.

Fit-teorija, it-tibdil tal-portijiet default huwa kuntrarju għall-prattiki tal-arkitettura miftuħa. Iżda fil-prattika, il-volum ta 'traffiku malizzjuż fil-fatt jonqos, għalhekk din hija miżura sempliċi u effettiva.

In-numru tal-port jista 'jiġi kkonfigurat billi tinbidel id-direttiva Port 22 fil-fajl tal-konfigurazzjoni / etc / ssh / sshd_config. Huwa indikat ukoll mill-parametru -p <port> в ssh. Klijent u programmi SSH sftp jappoġġjaw ukoll il-parametru -p <port>.

Parametru -p <port> jista 'jintuża biex jispeċifika n-numru tal-port meta tikkonnettja bl-użu tal-kmand ssh fil-Linux. IN sftp и scp jintuża parametru -P <port> (kapital P). L-ispeċifikazzjoni tagħha mil-linja tal-kmand tipprevali kwalunkwe valur fil-fajls tal-konfigurazzjoni.

Jekk hemm ħafna servers, kważi dawn l-azzjonijiet kollha biex jipproteġu server Linux jistgħu jiġu awtomatizzati fi skript. Imma jekk hemm server wieħed biss, allura huwa aħjar li tikkontrolla l-proċess manwalment.

Dwar id-Drittijiet tar-Reklamar

Ordna u ibda taħdem mill-ewwel! Ħolqien ta' VDS kwalunkwe konfigurazzjoni u bi kwalunkwe sistema operattiva fi żmien minuta. Il-konfigurazzjoni massima tippermettilek li jkollok blast - 128 CPU cores, 512 GB RAM, 4000 GB NVMe. Pjuttost epika :)

Protezzjoni tas-server Linux. X'għandek tagħmel l-ewwel

Sors: www.habr.com