Ինչպես ամրացնել 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-ը վեբ սերվերի համար։ Կարող եք նաև սահմանափակել SSH-ը ձեր սեփական IP հասցեով՝ ամպային վահանակում 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 պորտը փոխելը նվազեցնում է լոգերի աղմուկը, բայց ինքնին անվտանգության միջոց չէ։
- Պաշտպանեք մասնավոր բանալին գաղտնաբառային արտահայտությամբ (passphrase) և պահեք պահուստային պատճենը ապահով տեղում։
- Վերանայեք մուտքերը հետևյալ հրամաններով՝
lastևsudo journalctl -u ssh --since today։ - Վերցրեք snapshot սերվերի կարգավորումից հետո, որպեսզի կարողանաք վերականգնել մաքուր հիմքը։
Եթե կողպվել եք դուրս, օգտագործեք ամպային վահանակի բրաուզերային կոնսոլը՝ մուտք գործելու և կարգավորումը ուղղելու համար։ Մեր DDoS պաշտպանության ուղեցույցը ներկայացնում է պաշտպանության հաջորդ շերտը։
Հաճախ տրվող հարցեր
Արդյո՞ք ապահով է root մուտքը անջատելը։
Այո՛, եթե նախ ստեղծել եք sudo օգտատեր և ստուգել, որ նրա բանալին աշխատում է։ Վարչական հրամանները դեռ կարող եք կատարել sudo-ով։
Արդյո՞ք Fail2ban-ը անհրաժեշտ է, եթե օգտագործում եք միայն բանալիներ։
Այն պարտադիր չէ։ Երբ գաղտնաբառով մուտքն անջատված է, բրուտֆորս հարձակումը չի կարող հաջողվել, սակայն Fail2ban-ը նվազեցնում է լոգերի աղմուկը և բեռը։
Ի՞նչ անեմ, եթե կորցնեմ SSH բանալիս։
Օգտագործեք ամպային վահանակի կոնսոլը՝ մուտք գործելու համար, ավելացրեք նոր հանրային բանալի ~/.ssh/authorized_keys ֆայլում և հեռացրեք հինը։