Өнөө үед хостинг дээр сервер тохируулах нь хэдхэн минут, хулганаар хэдхэн товшилт хийхэд хангалттай. Гэвч хөөргөснөөс хойш тэр даруй рокер диско дээр сууж байгаа гэнэн охин шиг интернетэд нээлттэй байдаг учраас тэр өөрийгөө дайсагнасан орчинд олдог. Сканнерууд үүнийг хурдан олж, сүлжээний эмзэг байдал, буруу тохиргоог хайж олохын тулд автоматаар бичигдсэн мянга мянган роботуудыг олох болно. Үндсэн хамгаалалтыг хангахын тулд хөөргөсний дараа нэн даруй хийх ёстой хэд хэдэн зүйл байдаг.
Агуулга
Root бус хэрэглэгч SSH нууц үгийн оронд түлхүүрүүд Галт хана Fail2Бан Аюулгүй байдлын автомат шинэчлэлтүүд Өгөгдмөл портуудыг өөрчлөх
Root бус хэрэглэгч
Таны хийх ёстой хамгийн эхний зүйл бол root бус хэрэглэгч үүсгэх явдал юм. Гол нь хэрэглэгч root
систем дэх үнэмлэхүй давуу эрх, хэрэв та түүнд алсаас удирдахыг зөвшөөрвөл та хакерын ажлын хагасыг хийж, түүнд хүчинтэй хэрэглэгчийн нэр үлдээх болно.
Тиймээс та өөр хэрэглэгч үүсгэж, root-д зориулсан SSH-ээр дамжуулан алсын удирдлагаа идэвхгүй болгох хэрэгтэй.
Шинэ хэрэглэгчийг тушаалаар үүсгэнэ useradd
:
useradd [options] <username>
Дараа нь тушаалаар нууц үг нэмнэ passwd
:
passwd <username>
Эцэст нь, энэ хэрэглэгчийг өндөр эрх бүхий тушаалуудыг гүйцэтгэх эрхтэй бүлэгт нэмэх шаардлагатай. sudo
. Линуксийн тархалтаас хамааран эдгээр нь өөр өөр бүлгүүд байж болно. Жишээлбэл, CentOS болон Red Hat дээр хэрэглэгчийг бүлэгт нэмдэг wheel
:
usermod -aG wheel <username>
Ubuntu дээр үүнийг бүлэгт нэмсэн sudo
:
usermod -aG sudo <username>
SSH нууц үгийн оронд түлхүүрүүд
Харгис хүч эсвэл нууц үг задрах нь стандарт халдлагын вектор тул SSH (Secure Shell) дахь нууц үгийн баталгаажуулалтыг идэвхгүй болгож оронд нь түлхүүр баталгаажуулалтыг ашиглах нь дээр.
гэх мэт SSH протоколыг хэрэгжүүлэх өөр өөр хөтөлбөрүүд байдаг
sudo apt install openssh-client
Сервер суурилуулах:
sudo apt install openssh-server
Ubuntu сервер дээр SSH дэмоныг (sshd) эхлүүлэх:
sudo systemctl start sshd
Ачаалах бүрт демоныг автоматаар эхлүүлэх:
sudo systemctl enable sshd
OpenSSH серверийн хэсэг нь үйлчлүүлэгчийн хэсгийг агуулдаг гэдгийг тэмдэглэх нь зүйтэй. Энэ нь дамжуулан openssh-server
Та бусад серверүүдтэй холбогдож болно. Нэмж дурдахад, та өөрийн клиент машинаас SSH туннелийг алсын серверээс гуравдагч талын хост руу ажиллуулж болох бөгөөд дараа нь гуравдагч талын хост алсын серверийг хүсэлтийн эх үүсвэр гэж үзэх болно. Таны системийг далдлахад маш тохиромжтой функц. Дэлгэрэнгүй мэдээллийг нийтлэлээс үзнэ үү.
Компьютерт алсаас холбогдох боломжийг (аюулгүй байдлын үүднээс) урьдчилан сэргийлэхийн тулд үйлчлүүлэгчийн машин дээр бүрэн сервер суулгах нь ихэвчлэн утгагүй байдаг.
Тиймээс, таны шинэ хэрэглэгчийн хувьд та эхлээд серверт хандах компьютер дээрээ SSH түлхүүрүүдийг үүсгэх хэрэгтэй.
ssh-keygen -t rsa
Нийтийн түлхүүр нь файлд хадгалагддаг .pub
гэж эхэлдэг санамсаргүй тэмдэгтүүдийн цуваа шиг харагдана ssh-rsa
.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
Дараа нь root болгон сервер дээр хэрэглэгчийн гэрийн директорт SSH директор үүсгээд SSH нийтийн түлхүүрийг файлд нэмнэ үү. authorized_keys
Vim шиг текст засварлагч ашиглан:
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
vim /home/user_name/.ssh/authorized_keys
Эцэст нь файлын зөв зөвшөөрлийг тохируулна уу:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
мөн энэ хэрэглэгчийн өмчлөлийг өөрчлөх:
chown -R username:username /home/username/.ssh
Үйлчлүүлэгч тал дээр та баталгаажуулалтын нууц түлхүүрийн байршлыг зааж өгөх хэрэгтэй.
ssh-add DIR_PATH/keylocation
Одоо та энэ түлхүүрийг ашиглан серверт хэрэглэгчийн нэрээр нэвтэрч болно:
ssh [username]@hostname
Зөвшөөрөл авсны дараа та scp командыг ашиглан файлуудыг хуулах боломжтой
Хувийн түлхүүрийн хэд хэдэн нөөц хуулбарыг хийхийг зөвлөж байна, учир нь хэрэв та нууц үгийн баталгаажуулалтыг идэвхгүй болгоод алдсан тохиолдолд өөрийн серверт нэвтрэх боломжгүй болно.
Дээр дурдсанчлан, SSH-д та root-ийн баталгаажуулалтыг идэвхгүй болгох хэрэгтэй (энэ шалтгаанаар бид шинэ хэрэглэгч үүсгэсэн).
CentOS/Red Hat дээр бид мөрийг олдог PermitRootLogin yes
тохиргооны файлд /etc/ssh/sshd_config
мөн үүнийг өөрчлөх:
PermitRootLogin no
Ubuntu дээр мөрийг нэмнэ үү PermitRootLogin no
тохиргооны файл руу 10-my-sshd-settings.conf
:
sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf
Шинэ хэрэглэгч түлхүүрээ ашиглан баталгаажуулсан эсэхийг шалгасны дараа нууц үг задрах эсвэл бүдүүлэг хүч хэрэглэх эрсдлийг арилгахын тулд нууц үгийн баталгаажуулалтыг идэвхгүй болгож болно. Одоо сервер рүү нэвтрэхийн тулд халдагч хувийн түлхүүрээ авах шаардлагатай болно.
CentOS/Red Hat дээр бид мөрийг олдог PasswordAuthentication yes
тохиргооны файлд /etc/ssh/sshd_config
мөн дараах байдлаар өөрчлөх:
PasswordAuthentication no
Ubuntu дээр мөрийг нэмнэ үү PasswordAuthentication no
файл болгох 10-my-sshd-settings.conf
:
sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf
SSH-ээр дамжуулан хоёр хүчин зүйлийн баталгаажуулалтыг хэрхэн идэвхжүүлэх тухай зааврыг үзнэ үү
Галт хана
Галт хана нь зөвхөн таны шууд зөвшөөрөгдсөн портууд дээрх траффик сервер рүү очихыг баталгаажуулдаг. Энэ нь бусад үйлчилгээнүүдийн санамсаргүйгээр идэвхжүүлсэн портуудыг ашиглахаас хамгаалдаг бөгөөд энэ нь халдлагын гадаргууг ихээхэн хэмжээгээр бууруулдаг.
Галт ханыг суулгахаасаа өмнө SSH нь хасагдах жагсаалтад орсон бөгөөд хаагдахгүй эсэхийг шалгах хэрэгтэй. Үгүй бол галт ханыг ажиллуулсны дараа бид серверт холбогдох боломжгүй болно.
Ubuntu түгээлт нь төвөггүй галт хана (
Ubuntu дээрх галт хананд SSH-г зөвшөөрөх:
sudo ufw allow ssh
CentOS/Red Hat дээр бид командыг ашигладаг firewall-cmd
:
sudo firewall-cmd --zone=public --add-service=ssh --permanent
Энэ процедурын дараа та галт ханыг эхлүүлж болно.
CentOS/Red Hat дээр бид галт хананд зориулсан systemd үйлчилгээг эхлүүлнэ:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Ubuntu дээр бид дараах тушаалыг ашигладаг.
sudo ufw enable
Fail2Бан
үйлчилгээ
CentOS болон Red Hat дээр Fail2Ban суулгаж байна:
sudo yum install fail2ban
Ubuntu болон Debian дээр суулгах:
sudo apt install fail2ban
Эхлэх:
systemctl start fail2ban
systemctl enable fail2ban
Програм нь хоёр тохиргооны файлтай: /etc/fail2ban/fail2ban.conf
и /etc/fail2ban/jail.conf
. Хориглох хязгаарлалтыг хоёр дахь файлд зааж өгсөн болно.
SSH-д зориулсан шорон нь анхдагч тохиргоогоор (5 оролдлого, интервал 10 минут, 10 минутын турш хориг) идэвхждэг.
[DEFAULT] үл тоомсорлох команд = bantime = 10м олох хугацаа = 10м maxretry = 5
SSH-ээс гадна Fail2Ban нь nginx эсвэл Apache вэб сервер дээрх бусад үйлчилгээг хамгаалах боломжтой.
Аюулгүй байдлын автомат шинэчлэлтүүд
Та бүхний мэдэж байгаагаар бүх програмуудад шинэ сул талууд байнга олддог. Мэдээлэл нийтлэгдсэний дараа бүх серверүүдийг дараалан сканнердахдаа хакерууд болон өсвөр насныхан өргөн ашигладаг түгээмэл exploit багцуудад эксплойтууд нэмэгддэг. Тиймээс аюулгүй байдлын шинэчлэлтүүдийг боломжтой болмогц суулгах нь маш чухал юм.
Ubuntu серверүүд аюулгүй байдлын автомат шинэчлэлтийг анхдагчаар идэвхжүүлдэг тул нэмэлт алхам хийх шаардлагагүй.
CentOS/Red Hat дээр та програмыг суулгах хэрэгтэй
sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer
Цаг хэмжигч шалгах:
sudo systemctl status dnf-automatic.timer
Өгөгдмөл портуудыг өөрчлөх
SSH нь 1995 онд telnet (порт 23) болон ftp (порт 21)-ийг орлох зорилгоор бүтээгдсэн тул программын зохиогч нь Тату Илтонен юм.
Мэдээжийн хэрэг, бүх халдагч SSH аль порт дээр ажиллаж байгааг мэддэг бөгөөд програм хангамжийн хувилбарыг олж мэдэх, стандарт root нууц үгээ шалгах гэх мэт бусад стандарт портуудтай хамт сканнердаж байна.
Стандарт портуудыг хэд хэдэн удаа солих нь төөрөгдөл, хог хаягдлын хэмжээ, бүртгэлийн хэмжээ, сервер дээрх ачааллыг бууруулж, халдлагын гадаргууг бууруулдаг. Хэдийгээр зарим нь
Онолын хувьд анхдагч портуудыг өөрчлөх нь нээлттэй архитектурын практикт харшлах болно. Гэвч бодит байдал дээр хортой урсгалын хэмжээ буурч байгаа тул энэ нь энгийн бөгөөд үр дүнтэй арга хэмжээ юм.
Портын дугаарыг удирдамжийг өөрчлөх замаар тохируулж болно Port 22
тохиргооны файлд -p <port>
в -p <port>
.
Үзүүлэлт -p <port>
командыг ашиглан холбогдох үед портын дугаарыг зааж өгөхөд ашиглаж болно ssh
Линукс дээр. IN scp
параметрийг ашигладаг -P <port>
(том P). Үүнийг командын мөрөөс зааж өгснөөр тохиргооны файлууд дахь аливаа утгыг дарна.
Хэрэв олон сервер байгаа бол Линукс серверийг хамгаалах эдгээр бараг бүх үйлдлийг скрипт дээр автоматжуулж болно. Гэхдээ хэрэв зөвхөн нэг сервер байгаа бол процессыг гараар хянах нь дээр.
Сурталчилгааны эрх
Захиалга өгөөд шууд ажиллаж эхлээрэй!
Эх сурвалж: www.habr.com