Palekana kikowaena Linux. He aha ka hana mua

Palekana kikowaena Linux. He aha ka hana mua
Habib M'henni/Wikimedia Commons, CC BY-SA

I kēia mau lā, ʻo ka hoʻokiʻekiʻe ʻana i kahi kikowaena ma kahi hoʻokipa he mea ia o ʻelua mau minuke a me kekahi mau kaomi ʻiole. Akā ma hope koke o ka hoʻokuʻu ʻana, ʻike ʻo ia iā ia iho i kahi ʻano ʻino, no ka mea ua wehe ʻo ia i ka Pūnaewele holoʻokoʻa e like me ke kaikamahine hala ʻole i kahi disco rocker. E loaʻa koke iā Scanners a ʻike i nā tausani o nā bots i hoʻopaʻa maʻalahi ʻia e ʻimi ana i ka pūnaewele e ʻimi ana i nā nāwaliwali a me nā kuhi hewa. Aia kekahi mau mea pono ʻoe e hana ma hope o ka hoʻomaka ʻana e hōʻoia i ka pale kumu.

Nā mea

Mea hoʻohana kumu ʻole

ʻO ka hana mua e hana i kahi mea hoʻohana kumu ʻole no ʻoe iho. ʻO ka manaʻo o ka mea hoʻohana root nā kuleana piha i loko o ka ʻōnaehana, a inā ʻoe e ʻae iā ia i ka hoʻokele mamao, a laila e hana ʻoe i ka hapalua o ka hana no ka hacker, e waiho ana i kahi inoa inoa kūpono nona.

No laila, pono ʻoe e hana i kekahi mea hoʻohana, a hoʻopau i ka hoʻokele mamao ma o SSH no ke aʻa.

Hoʻomaka ʻia kahi mea hoʻohana hou e ke kauoha useradd:

useradd [options] <username>

A laila hoʻohui ʻia kahi ʻōlelo huna no ia me ke kauoha passwd:

passwd <username>

ʻO ka hope, pono e hoʻohui ʻia kēia mea hoʻohana i kahi pūʻulu nona ka kuleana e hoʻokō i nā kauoha kiʻekiʻe sudo. Ma muli o ka hoʻolaha Linux, ʻokoʻa paha kēia mau hui. No ka laʻana, ma CentOS a me Red Hat, hoʻohui ʻia ka mea hoʻohana i ka hui wheel:

usermod -aG wheel <username>

Ma Ubuntu ua hoʻohui ʻia i ka hui sudo:

usermod -aG sudo <username>

Nā kī ma kahi o nā ʻōlelo huna SSH

ʻO ka Brute force a i ʻole leak huaʻōlelo he vector hoʻouka maʻamau, no laila ʻoi aku ka maikaʻi e hoʻopau i ka hōʻoia ʻōlelo huna ma SSH (Secure Shell) a hoʻohana i ka hōʻoia kī.

Aia nā papahana like ʻole no ka hoʻokō ʻana i ka protocol SSH, e like me lsh и Pahulele, akā ʻo ka mea kaulana loa ʻo OpenSSH. Ke hoʻokomo nei i ka mea kūʻai OpenSSH ma Ubuntu:

sudo apt install openssh-client

Hoʻokomo kikowaena:

sudo apt install openssh-server

E hoʻomaka ana i ka SSH daemon (sshd) ma ka kikowaena Ubuntu:

sudo systemctl start sshd

E hoʻomaka koke i ka daemon ma kēlā me kēia pahu:

sudo systemctl enable sshd

Pono e hoʻomaopopo ʻia ʻo ka ʻāpana kikowaena o OpenSSH e pili ana i ka ʻāpana mea kūʻai aku. ʻO ia hoʻi, ma o openssh-server hiki iā ʻoe ke hoʻohui i nā kikowaena ʻē aʻe. Eia kekahi, mai kāu mīkini mea kūʻai aku, hiki iā ʻoe ke hoʻomaka i kahi tunnel SSH mai kahi kikowaena mamao i kahi pūʻali koa ʻekolu, a laila e noʻonoʻo ka mea hoʻokipa ʻekolu i ke kikowaena mamao ke kumu o nā noi. ʻO kahi hiʻohiʻona maʻalahi no ka masking i kāu ʻōnaehana. E ʻike i ka ʻatikala no nā kikoʻī "Nā Manaʻo Hoʻomaʻamaʻa, Nā Laʻana, a me nā Tunnel SSH".

Ma ka mīkini mea kūʻai aku, ʻaʻohe mea maʻamau e hoʻokomo i kahi kikowaena piha i mea e pale ai i ka hiki ke pili mamao i kahi kamepiula (no nā kumu palekana).

No laila, no kāu mea hoʻohana hou, pono ʻoe e hoʻopuka i nā kī SSH ma ka kamepiula kahi āu e komo ai i ka kikowaena:

ssh-keygen -t rsa

Mālama ʻia ke kī lehulehu ma kahi faila .pub a ke nānā aku nei e like me ke kaula o nā huaʻōlelo random e hoʻomaka me ssh-rsa.

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

A laila, mai lalo o ke aʻa, hana i kahi papa kuhikuhi SSH ma ka kikowaena ma ka papa kuhikuhi home o ka mea hoʻohana a hoʻohui i ke kī lehulehu SSH i ka faila. authorized_keys, me ka hoʻohana ʻana i kahi hoʻoponopono kikokikona e like me Vim:

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

vim /home/user_name/.ssh/authorized_keys

ʻO ka hope, hoʻonoho i nā ʻae kūpono no ka faila:

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

a hoʻololi i ka mana i kēia mea hoʻohana:

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

Ma ka ʻaoʻao o ka mea kūʻai aku, pono ʻoe e kuhikuhi i kahi o ke kī huna no ka hōʻoia ʻana:

ssh-add DIR_PATH/keylocation

I kēia manawa hiki iā ʻoe ke komo i ka kikowaena ma lalo o ka inoa inoa me ka hoʻohana ʻana i kēia kī:

ssh [username]@hostname

Ma hope o ka ʻae ʻana, hiki iā ʻoe ke hoʻohana i ke kauoha scp e kope i nā faila, ka pono sshfs e kau i kahi ʻōnaehana waihona a i ʻole nā ​​papa kuhikuhi.

Manaʻo ʻia e hana i kekahi mau kope kope o ke kī pilikino, no ka mea inā ʻoe e hoʻopau i ka hōʻoia ʻana i ka ʻōlelo huna a nalowale, a laila ʻaʻole ʻoe e komo i kāu kikowaena ponoʻī.

E like me ka mea i ʻōlelo ʻia ma luna, ma SSH pono ʻoe e hoʻopau i ka hōʻoia no ke aʻa (ʻo ia ke kumu i hoʻomaka ai mākou i kahi mea hoʻohana hou).

Ma CentOS / Red Hat ʻike mākou i ka laina PermitRootLogin yes i ka waihona config /etc/ssh/sshd_config a hoʻololi.

PermitRootLogin no

Ma Ubuntu e hoʻohui i ka laina PermitRootLogin no i ka faila config 10-my-sshd-settings.conf:

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

Ma hope o ka hōʻoia ʻana i ka hōʻoia ʻana o ka mea hoʻohana hou me kā lākou kī, hiki iā ʻoe ke hoʻopau i ka hōʻoia ʻana i ka ʻōlelo huna e hoʻopau i ka pilikia o ka leakage password a i ʻole ka ikaika. I kēia manawa, no ke komo ʻana i ke kikowaena, pono ka mea hoʻouka e loaʻa i kahi kī pilikino.

Ma CentOS / Red Hat ʻike mākou i ka laina PasswordAuthentication yes i ka waihona config /etc/ssh/sshd_config a hoʻololi e like me kēia:

PasswordAuthentication no

Ma Ubuntu e hoʻohui i ka laina PasswordAuthentication no e waiho 10-my-sshd-settings.conf:

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

No nā ʻōlelo aʻoaʻo e hiki ai i ka hōʻoia ʻelua kumu ma o SSH, e ʻike maanei.

pā ahi

ʻO ka pā ahi e hōʻoiaʻiʻo i ka hele wale ʻana o nā kaʻa ma nā awa āu e ʻae pololei ai i ke kikowaena. Mālama kēia i ka hoʻohana ʻana i nā awa i hiki ʻole ke hoʻohana ʻia me nā lawelawe ʻē aʻe, kahi e hōʻemi nui ai i ka ʻili hoʻouka.

Ma mua o ka hoʻokomo ʻana i kahi pā ahi, pono ʻoe e hōʻoia ua hoʻokomo ʻia ʻo SSH i ka papa inoa haʻalele a ʻaʻole e kāohi ʻia. A i ʻole, ma hope o ka hoʻomaka ʻana i ka pā ahi, ʻaʻole hiki iā mākou ke hoʻopili i ke kikowaena.

Hele mai ʻo Ubuntu me ka Uncomplicated Firewall (ole), a me CentOS/Red Hat - ke ahi.

E ʻae iā SSH i ka pā ahi ma Ubuntu:

sudo ufw allow ssh

Ma CentOS / Red Hat e hoʻohana i ke kauoha firewall-cmd:

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

Ma hope o kēia kaʻina hana, hiki iā ʻoe ke hoʻomaka i ka pā ahi.

Ma ka CentOS/Red Hat, e hoʻomaka i ka lawelawe systemd no firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Ma Ubuntu hoʻohana mākou i kēia kauoha:

sudo ufw enable

Fail2Ban

hana Fail2Ban kālailai i nā lāʻau ma ke kikowaena a helu i ka helu o nā hoʻāʻo ʻana mai kēlā me kēia IP address. Hōʻike nā hoʻonohonoho i nā lula no ka nui o nā hoʻāʻo ʻana i ʻae ʻia no kekahi manawa - ma hope o ka pale ʻia ʻana o kēia IP IP no kahi manawa i ʻōlelo ʻia. No ka laʻana, e ʻae kākou i 5 mau hoʻāʻo hōʻoia SSH i hāʻule i loko o 2 mau hola, a laila pale i ka helu IP i hāʻawi ʻia no 12 mau hola.

Ke hoʻokomo nei iā Fail2Ban ma CentOS a me Red Hat:

sudo yum install fail2ban

Hoʻokomo ʻia ma Ubuntu a me Debian:

sudo apt install fail2ban

Hoʻomaka:

systemctl start fail2ban
systemctl enable fail2ban

ʻElua mau faila hoʻonohonoho ka papahana: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Ua kuhikuhi ʻia nā kapu kapu ma ka faila ʻelua.

Hoʻohana ʻia ka hale paʻahao no SSH ma ka paʻamau me nā hoʻonohonoho paʻamau (5 hoʻāʻo, waena 10 mau minuke, pāpā no 10 mau minuke).

[DEFAULT] ho'āʻo ʻole= hoʻāʻo nui = 10m manawa ʻike = 10m hoʻāʻo nui = 5

Ma waho aʻe o SSH, hiki iā Fail2Ban ke pale aku i nā lawelawe ʻē aʻe ma ka nginx a i ʻole Apache pūnaewele kikowaena.

Nā mea hou palekana ʻakomi

E like me kāu e ʻike ai, loaʻa mau nā nāwaliwali hou i nā papahana āpau. Ma hope o ka paʻi ʻia ʻana o ka ʻike, hoʻohui ʻia nā mea hoʻohana i nā pūʻulu exploit kaulana, i hoʻohana nui ʻia e nā hackers a me nā ʻōpio i ka nānā ʻana i nā kikowaena āpau i ka lālani. No laila, he mea nui e hoʻokomo i nā mea hou palekana i ka wā e ʻike ʻia ai.

Ma ke kikowaena ʻo Ubuntu, hoʻohana ʻia nā hoʻoponopono palekana ma ka paʻamau, no laila ʻaʻohe hana hou e koi ʻia.

Ma CentOS / Red Hat pono ʻoe e hoʻokomo i ka noi dnf-akomi a hoʻā i ka manawa:

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

Nānā manawa:

sudo systemctl status dnf-automatic.timer

Ke hoʻololi nei i nā awa paʻamau

Ua hoʻomohala ʻia ʻo SSH i ka makahiki 1995 e pani i ka telnet (port 23) a me ftp (port 21), no laila ka mea kākau o ka papahana, ʻo Tatu Iltonen. i koho ʻia i ka awa 22 ma ka paʻamau, a ua aponoia e IANA.

Ma keʻano maʻamau, ʻike ka poʻe hoʻouka kaua i ka port SSH e holo nei - a nānā iā ia me nā koena o nā awa maʻamau e ʻike i ka mana polokalamu, e nānā i nā ʻōlelo huna kumu maʻamau, a pēlā aku.

Ke hoʻololi nei i nā awa maʻamau - obfuscation - hoʻemi i nā manawa he nui i ka nui o ka ʻōpala, ka nui o nā lāʻau a me ka ukana ma ke kikowaena, a hoʻemi pū i ka ʻili hoʻouka. ʻOiai kekahi hoʻohewa i kēia ʻano o ka "pale i ka pōuliuli" (security through obscurity). ʻO ke kumu ke kū'ē nei kēia ʻenehana i ke kumu pale hale. No laila, no ka laʻana, ka US National Institute of Standards and Technology in "Alakaʻi palekana Server" e hōʻike ana i ka pono o kahi hoʻolālā kikowaena wehe: "ʻAʻole pono e hilinaʻi ka palekana o kahi ʻōnaehana i ka huna o ka hoʻokō ʻana i kāna mau ʻāpana," wahi a ka palapala.

ʻO ka manaʻo, ʻo ka hoʻololi ʻana i nā awa paʻamau e kūʻē i ka hana o ka wehe ʻana. Akā i ka hoʻomaʻamaʻa ʻana, ua hoʻemi maoli ʻia ka nui o nā kaʻa hewa, no laila he mea maʻalahi a maikaʻi kēia.

Hiki ke hoʻonohonoho ʻia ka helu awa ma ka hoʻololi ʻana i ke kuhikuhi Port 22 i ka waihona config / etc / ssh / sshd_config. Hōʻike ʻia e ka ʻāpana -p <port> в ssh. SSH mea kūʻai aku a me nā polokalamu sftp kākoʻo pū i ke koho -p <port>.

ʻO ka pākuhi -p <port> hiki ke hoʻohana ʻia e kuhikuhi i ka helu awa ke hoʻopili ʻia me ke kauoha ssh ma linux. IN sftp и scp hoʻohana ʻia ka parameter -P <port> (kapita P). Hoʻopau ke aʻo laina kauoha i kekahi waiwai i nā faila hoʻonohonoho.

Inā nui nā kikowaena, kokoke i kēia mau hana a pau e pale i ka kikowaena Linux hiki ke hoʻohana ʻia i kahi palapala. Akā inā hoʻokahi wale nō kikowaena, a laila ʻoi aku ka maikaʻi o ka mālama lima ʻana i ke kaʻina hana.

Nā Pono o ka hoʻolaha

E kauoha a hoʻomaka koke! Hana ʻia o VDS kekahi hoʻonohonoho a me kekahi ʻōnaehana hana i loko o hoʻokahi minuke. ʻO ka hoʻonohonoho kiʻekiʻe e ʻae iā ʻoe e hele i ka piha - 128 CPU cores, 512 GB RAM, 4000 GB NVMe. Epic 🙂

Palekana kikowaena Linux. He aha ka hana mua

Source: www.habr.com