როგორ დავიცვათ SSH Linux VPS-ზე
ახალი 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. ჩართეთ firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseგახსენით მხოლოდ საჭირო პორტები, მაგალითად 80 და 443 veb-სერვერისთვის. SSH-ის შეზღუდვა მხოლოდ თქვენი IP მისამართით ასევე შესაძლებელია cloud კონსოლში firewall წესით.
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ბრძანებით. - სერვერის კონფიგურაციის დასრულების შემდეგ გააკეთეთ სნეპშოტი, რომ სუფთა საწყისი მდგომარეობა აღდგეს.
თუ სერვერთან წვდომა დაიკარგა, cloud პანელის ბრაუზერის კონსოლით შედით და გაასწორეთ კონფიგურაცია. შემდეგი დონის დაცვაზე იხილეთ ჩვენი DDoS დაცვის გზამკვლევი.
ხშირად დასმული კითხვები
უსაფრთხოა root შესვლის გამორთვა?
დიახ, თუ ჯერ შექმნით sudo მომხმარებელს და შეამოწმებთ მისი გასაღების მუშაობას. ადმინისტრაციული ბრძანებების გაშვება შესაძლებელია sudo-თი.
მჭირდება Fail2ban, თუ მხოლოდ გასაღებებს ვიყენებ?
არასავალდებულოა. პაროლით შესვლის გამორთვის შემდეგ brute force თავდასხმა ვერ გაიწევს წარმატებას, მაგრამ Fail2ban ამცირებს ლოგების ხმაურსა და დატვირთვას.
რა ვქნა, თუ SSH გასაღები დავკარგე?
cloud პანელის კონსოლით შედით, დაამატეთ ახალი საჯარო გასაღები ~/.ssh/authorized_keys ფაილში და წაშალეთ ძველი.