Parastina servera Linux. Pêşî çi bikin

Parastina servera Linux. Pêşî çi bikin
Habib M'henni/Wikimedia Commons, CC BY-SA

Naha, sazkirina serverek li ser mêvandariyek çend hûrdeman û çend klîkên mişkê ye. Lê tavilê piştî destpêkirinê, ew xwe di nav hawîrdorek dijminane de dibîne, ji ber ku ew mîna keçek bêguneh li dîskoyek rocker ji tevahiya Înternetê re vekirî ye. Skaner dê zû wê bibînin û bi hezaran botên xweber bi nivîsbarî vedîtin ku di lêgerîna qelsî û mîhengên nerast de torê dişoxilînin. Hin tişt hene ku divê hûn tavilê piştî destpêkirinê bikin da ku parastina bingehîn misoger bikin.

Contains

Bikarhênerê ne-root

Yekem tiştê ku hûn hewce ne bikin ev e ku bikarhênerek ne-root biafirînin. Mesele ew e ku bikarhêner root îmtiyazên bêkêmasî yên di pergalê de, û ger hûn destûrê bidin wî rêveberiya dûr, wê hingê hûn ê nîvê xebatê ji hacker re bikin, navek bikarhênerek derbasdar ji wî re bihêlin.

Ji ber vê yekê, hûn hewce ne ku bikarhênerek din biafirînin, û rêveberiya dûr bi riya SSH-ê ji bo root-ê neçalak bikin.

Bi fermanê bikarhênerek nû tê afirandin useradd:

useradd [options] <username>

Dûv re bi fermanê şîfreyek jê re tê zêdekirin passwd:

passwd <username>

Di dawiyê de, pêdivî ye ku ev bikarhêner li komeke ku xwedî maf e ku emrên bi îmtiyazên bilindkirî bicîh bîne were zêde kirin. sudo. Bi belavkirina Linux ve girêdayî, dibe ku ev komên cûda bin. Mînakî, di CentOS û Red Hat de bikarhênerek li komekê tê zêdekirin wheel:

usermod -aG wheel <username>

Li ser Ubuntuyê li komê tê zêdekirin sudo:

usermod -aG sudo <username>

Bişkojkên li şûna şîfreyên SSH

Hêza hovane an rijandina şîfreyê vektorek êrîşek standard e, ji ber vê yekê çêtir e ku hûn piştrastkirina şîfreyê di SSH (Secure Shell) de neçalak bikin û li şûna wê verastkirina mifteyê bikar bînin.

Ji bo pêkanîna protokola SSH bernameyên cûda hene, wek lsh и dropbear, lê ya herî populer OpenSSH e. Sazkirina xerîdar OpenSSH li Ubuntu:

sudo apt install openssh-client

Sazkirina serverê:

sudo apt install openssh-server

Destpêkirina Daemon SSH (sshd) li ser serverek Ubuntu:

sudo systemctl start sshd

Li ser her bootê bixweber daemon dest pê bikin:

sudo systemctl enable sshd

Divê were zanîn ku beşa servera OpenSSH beşa muwekîlê dihewîne. Yanî bi rêya openssh-server hûn dikarin bi serverên din ve girêbidin. Wekî din, ji makîneya muwekîlê xwe hûn dikarin tunelek SSH-ê ji serverek dûr berbi mêvandarek partiya sêyemîn vekin, û dûv re jî mêvandarê sêyemîn dê servera dûr wekî çavkaniya daxwazan bihesibîne. Ji bo maskkirina pergala we fonksiyonek pir hêsan. Ji bo bêtir agahdarî, gotara xwe bibînin. "Serişteyên pratîk, mînak û tunelên SSH".

Bi gelemperî ti xal tune ku serverek bêkêmasî li ser makîneya xerîdar were saz kirin da ku pêşî li girêdana dûr a bi komputerê bigire (ji ber sedemên ewlehiyê).

Ji ber vê yekê, ji bo bikarhênerê xweya nû, hûn pêşî hewce ne ku bişkokên SSH-ê li ser komputera ku hûn ê jê bigihîjin serverê biafirînin:

ssh-keygen -t rsa

Mifteya giştî di pelê de tê hilanîn .pub û dişibihe rêzek tîpên rasthatî ku bi wan dest pê dike ssh-rsa.

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

Dûv re, wekî root, pelrêça SSH li ser serverê di pelrêça malê ya bikarhêner de biafirînin û mifteya giştî ya SSH li pelê zêde bikin. authorized_keysbi karanîna edîtorek nivîsê ya mîna Vim:

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

vim /home/user_name/.ssh/authorized_keys

Di dawiyê de, ji bo pelê destûrên rast destnîşan bikin:

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

û xwediyê vê bikarhênerê biguherînin:

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

Li milê xerîdar, hûn hewce ne ku cîhê mifteya veşartî ji bo pejirandinê diyar bikin:

ssh-add DIR_PATH/keylocation

Naha hûn dikarin bi karanîna vê mifteyê di bin navê bikarhêner de têkevin serverê:

ssh [username]@hostname

Piştî destûrnameyê, hûn dikarin fermana scp bikar bînin ku pelan, karûbar kopî bikin sshfs ji bo sazkirina ji dûr ve pergala pelan an pelrêçan.

Tête pêşniyar kirin ku hûn çend kopiyên hilanînê yên mifteya taybet çêbikin, ji ber ku heke hûn pejirandina şîfreyê neçalak bikin û wê winda bikin, hûn ê qet rê nedin ku hûn têkevin servera xwe.

Wekî ku li jor hatî behs kirin, di SSH-ê de hûn hewce ne ku ji bo rootê erêkirinê neçalak bikin (ji bo vê yekê me bikarhênerek nû çêkir).

Li ser CentOS / Red Hat em rêzê dibînin PermitRootLogin yes di pelê veavakirinê de /etc/ssh/sshd_config û biguherîne:

PermitRootLogin no

Li ser Ubuntu rêzê lê zêde bike PermitRootLogin no ji bo pelê veavakirinê 10-my-sshd-settings.conf:

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

Piştî ku hûn piştrast bikin ku bikarhênerê nû bi karanîna mifteya xwe ve hatî pejirandin, hûn dikarin erêkirina şîfreyê neçalak bikin da ku xetera rijandina şîfreyê an hêza hov ji holê rakin. Naha, ji bo gihîştina serverê, êrîşkar dê hewce bike ku mifteya taybet bistîne.

Li ser CentOS / Red Hat em rêzê dibînin PasswordAuthentication yes di pelê veavakirinê de /etc/ssh/sshd_config û bi vî awayî biguherînin:

PasswordAuthentication no

Li ser Ubuntu rêzê lê zêde bike PasswordAuthentication no pelê kirin 10-my-sshd-settings.conf:

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

Ji bo rêwerzên li ser ka meriv çawa rastkirina du-faktorî bi SSH-ê çalak dike, binêre vir.

Firewall

Firewall piştrast dike ku tenê seyrûsefera li ser portên ku hûn rasterast destûr didin dê biçin serverê. Ev li dijî karanîna benderên ku bi xeletî ji hêla karûbarên din ve têne çalak kirin diparêze, ku rûyê êrîşê pir kêm dike.

Berî sazkirina dîwarek agir, hûn hewce ne ku pê ewle bin ku SSH di navnîşa derxistinê de ye û dê neyê asteng kirin. Wekî din, piştî destpêkirina dîwarê agir, em ê nikaribin bi serverê ve girêdayî bin.

Dabeşkirina Ubuntu bi Firewall-a Bêtevlîhev tê (wow), û bi CentOS / Red Hat - firewalld.

Destûrkirina SSH di dîwarê agir de li ser Ubuntu:

sudo ufw allow ssh

Li ser CentOS / Red Hat em fermanê bikar tînin firewall-cmd:

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

Piştî vê pêvajoyê, hûn dikarin dîwarê agir dest pê bikin.

Li ser CentOS/Red Hat em karûbarê systemd ji bo firewalld dest pê dikin:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Li ser Ubuntu em fermana jêrîn bikar tînin:

sudo ufw enable

Fail2Ban

xizmeta Fail2Ban têketinên serverê analîz dike û ji her navnîşana IP-ê hejmara hewildanên gihîştinê dihejmêre. Mîheng qaîdeyên ji bo çend hewildanên gihîştinê di navberek diyarkirî de têne destûr kirin diyar dikin - piştî ku ev navnîşana IP-ê ji bo demek diyarkirî tê asteng kirin. Mînakî, em bi riya SSH-ê di nav heyama 5 saetan de destûr didin 2 hewildanên erêkirinê yên neserkeftî, piştî ku em vê navnîşana IP-yê 12 demjimêran asteng dikin.

Sazkirina Fail2Ban li CentOS û Red Hat:

sudo yum install fail2ban

Sazkirina li ser Ubuntu û Debian:

sudo apt install fail2ban

Destpêkirin:

systemctl start fail2ban
systemctl enable fail2ban

Bername du pelên mîhengê hene: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Di dosyaya duyemîn de qedexeyên qedexekirinê hatine diyarkirin.

Girtîgeha ji bo SSH-ê bi mîhengên xwerû (5 hewildan, navber 10 hûrdem, qedexekirina 10 hûrdeman) ji hêla xwerû ve tê çalak kirin.

[DEFAULT] neguhêzkirin = bantime = 10 m dema peydakirinê = 10 m maxretry = 5

Ji bilî SSH, Fail2Ban dikare karûbarên din ên li ser servera webê ya nginx an Apache biparêze.

Nûvekirinên ewlehiyê yên otomatîkî

Wekî ku hûn dizanin, qelsiyên nû bi berdewamî di hemî bernameyan de têne dîtin. Piştî ku agahdarî têne weşandin, îstîsmar li pakêtên îstîsmarê yên populer têne zêdekirin, ku bi berfirehî ji hêla hackers û ciwanan ve têne bikar anîn dema ku hemî serveran li pey hev dişopînin. Ji ber vê yekê, pir girîng e ku gava ku ew berdest bibin nûvekirinên ewlehiyê saz bikin.

Pêşkêşkerên Ubuntu xwedan nûvekirinên ewlehiyê yên otomatîkî ne ku ji hêla xwerû ve têne çalak kirin, ji ber vê yekê gavên zêde hewce ne hewce ne.

Li ser CentOS / Red Hat hûn hewce ne ku serîlêdanê saz bikin dnf-otomatîk û demjimêrê veke:

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

Kontrolkirina demjimêrê:

sudo systemctl status dnf-automatic.timer

Guhertina portên xwerû

SSH di 1995-an de hate pêşve xistin ku şûna telnet (port 23) û ftp (port 21) bigire, ji ber vê yekê nivîskarê bernameyê Tatu Iltonen e. ji hêla xwerû ve porta 22 hilbijart, û ji hêla IANA ve hate pejirandin.

Bi xwezayî, hemî êrîşkar dizanin ku SSH li ser kîjan portê dimeşe - û wê ligel portên standard ên din bişopînin da ku guhertoya nermalavê bibînin, şîfreyên root standard kontrol bikin, û hwd.

Guhertina benderên standard - guheztin - qebareya seyrûsefera nebaş, mezinahiya têketin û barkirina serverê çend caran kêm dike, û di heman demê de rûbera êrîşê jî kêm dike. Tevî ku hinek rexne li vê rêbaza "parastina bi nepenîtiyê" (ewlehî bi rêya nepenîtiyê). Sedem ew e ku ev teknîk li dijî bingehîn e parastina mîmarî. Ji ber vê yekê, wek nimûne, Enstîtuya Neteweyî ya Standard û Teknolojiyê ya Dewletên Yekbûyî "Rêberê Ewlekariya Server" Di belgeyê de dibêje: "Ewlehiya pergalê divê xwe bispêre nepeniya pêkanîna pêkhateyên wê hewcedariya mîmariya serverek vekirî destnîşan dike."

Di teorîyê de, guhertina benderên xwerû berevajî pratîkên mîmariya vekirî ye. Lê di pratîkê de, qebareya seyrûsefera xerab bi rastî kêm dibe, ji ber vê yekê ev pîvanek hêsan û bandorker e.

Hejmara portê dikare bi guheztina rêwerzê ve were mîheng kirin Port 22 di pelê veavakirinê de / etc / ssh / sshd_config. Ew jî ji hêla pîvanê ve tê nîşandan -p <port> в ssh. Xerîdar û bernameyên SSH sftp di heman demê de pîvanê piştgirî bikin -p <port>.

Parîsê -p <port> dikare were bikar anîn ji bo destnîşankirina jimareya portê dema ku bi karanîna fermanê ve girêdayî ye ssh li Linux. LI sftp и scp parametre tê bikaranîn -P <port> (sermaye P). Diyarkirina wê ji rêzika fermanê her nirxek di pelên vesazkirinê de derbas dike.

Ger gelek server hebin, hema hema hemî van kiryaran ji bo parastina serverek Linux-ê dikarin di skrîptekê de otomatîk bibin. Lê heke tenê serverek hebe, wê hingê çêtir e ku meriv pêvajoyê bi destan kontrol bike.

Li Mafên Malperê

Ferman bike û tavilê dest bi xebatê bike! Afirandina VDS her veavakirin û bi her pergala xebitandinê di nav deqîqeyek de. Veavakirina herî zêde dê bihêle ku hûn teqînek hebe - 128 core CPU, 512 GB RAM, 4000 GB NVMe. Pir destanî :)

Parastina servera Linux. Pêşî çi bikin

Source: www.habr.com