Linux VPS дээрх SSH-ийг хамгаалах арга
Нийтэд нээлттэй VPS нь онлайн болсноос хойш хэдхэн минутын дотор автомат нэвтрэх оролдлого хүлээн авдаг. Доорх алхмууд нь SSH-д халдахад хамаагүй хүндрүүлнэ. Эдгээр нь Ubuntu эсвэл Debian-д зориулагдсан; хэрэв сервер үүсгээгүй бол Linux VPS түрээслэх боломжтой бөгөөд цэвэр дүрсээс эхэлж болно. Шинэ тохиргоог өөр цонхноос туршиж дуустал одоогийн SSH сессээ нээлттэй байлгаарай.
1. Sudo эрхтэй энгийн хэрэглэгч үүсгэх
adduser deploy
usermod -aG sudo deploy2. Нууц үгийн оронд SSH түлхүүр ашиглах
Өөрийн компьютер дээр:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPНууц үгийг унтраахаасаа өмнө түлхүүрээр нэг удаа нэвтэрч ажиллаж байгааг шалга.
3. Нууц үг болон root нэвтрэлтийг унтраах
/etc/ssh/sshd_config.d/99-hardening.conf файлыг үүсгэ:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Синтаксийг шалгаад үйлчилгээг дахин ачаалах. Үйлчилгээний нэр Ubuntu болон Debian дээр ssh, RHEL-д суурилсан системд sshd байна:
sudo sshd -t && sudo systemctl reload sshХоёр дахь терминал нээгээд дахин нэвтэр. Зөвхөн тэгсний дараа хуучин сессээ хаа.
4. Галт хана идэвхжүүлэх
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseЗөвхөн хэрэгтэй портуудыг нээ, жишээ нь веб сервер бол 80 ба 443. Мөн үүлэн удирдлагын консол дээрх галт ханын дүрмээр SSH-г өөрийн IP хаягаар хязгаарлаж болно.
5. Fail2ban-аар давтагдсан алдааг хаах
sudo apt install -y fail2ban/etc/fail2ban/jail.local файлыг үүсгэ:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Аюулгүй байдлын шинэчлэлтийг автоматаар суулгах
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Нэмэлт сонголтууд
- SSH портыг солих нь логийн шуугианыг бууруулдаг боловч өөрөө аюулгүй байдлын арга хэмжээ биш.
- Хувийн түлхүүрийг нууц үгээр хамгаалж, нөөц хуулбарыг аюулгүй газар хадгал.
lastболонsudo journalctl -u ssh --since todayкомандаар нэвтрэлтийг шалга.- Сервер тохируулж дууссаны дараа snapshot хийж, цэвэр суурь төлөвөө сэргээх боломжтой болго.
Хэрэв түгжигдсэн бол үүлэн самбарын хөтчийн консолоор нэвтэрч тохиргоогоо засна. Дараагийн түвшний хамгаалалтыг DDoS-оос хамгаалах гарын авлага тайлбарлана.
Түгээмэл асуултууд
Root нэвтрэлтийг унтраахад аюулгүй юу?
Тийм, хэрэв эхлээд sudo хэрэглэгч үүсгээд түүний түлхүүр ажиллаж байгааг шалгасан бол. Та sudo-ээр удирдлагын командуудыг ажиллуулсаар байна.
Зөвхөн түлхүүр ашигладаг бол Fail2ban хэрэгтэй юу?
Заавал биш. Нууц үгээр нэвтрэлтийг унтраасан үед бүдүүн хүчээр оролдлого амжилтгүй болох боловч Fail2ban логийн шуугиан болон ачааллыг багасгана.
SSH түлхүүрээ алдвал яах вэ?
Үүлэн самбарын консолоор нэвтэрч, шинэ нийтийн түлхүүрийг ~/.ssh/authorized_keys руу нэмж, хуучныг нь устга.