თითქმის ყველა ახალი VPS ერთნაირად იწყება: root-ით შედიხართ, რამდენიმე რამეს აინსტალირებთ და ერთი თვის შემდეგაც root ხართ. ეს მანამ მუშაობს, სანამ ჩასმული სკრიპტი არასწორ საქაღალდეს არ წაშლის. ჩვეულებრივი მომხმარებლის sudo-თი მომზადებას ხუთი წუთი სჭირდება, ხოლო თანმიმდევრობა ბრძანებებზე მნიშვნელოვანია — თუ აურევთ, თავს გარეთ ჩაიკეტავთ.
აი უსაფრთხო თანმიმდევრობა Ubuntu 22.04/24.04-სა და Debian 12-ისთვის.
1. შექმენით მომხმარებელი
root-ით:
adduser deploy
usermod -aG sudo deploy
adduser პაროლს და რამდენიმე არასავალდებულო მონაცემს გკითხავთ (უბრალოდ Enter დააჭირეთ). აირჩიეთ ნამდვილი პაროლი: მას sudo-სთვის აკრეფთ. Debian-ის მინიმალურ image-ზე, თუ ბრძანება არ არის, ჯერ apt install -y sudo გაუშვით.
2. მიეცით მას თქვენი SSH-გასაღები
ყველაზე მარტივი გზაა root-ის ავტორიზებული გასაღებების კოპირება სწორი მფლობელობის შენარჩუნებით:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
თუ ხელით გირჩევნიათ:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
არასწორი უფლებები კლასიკური მიზეზია, რის გამოც გასაღებით შესვლა ჩუმად ვერ ხერხდება. SSH უგულებელყოფს authorized_keys-ს, რომელშიც სხვა მომხმარებლებს ჩაწერა შეუძლიათ.
3. შეამოწმეთ, სანამ რამეს შეცვლით
root-ის სესია ღია დატოვეთ. ახალ ტერმინალში:
ssh -p 22 deploy@203.0.113.10
sudo whoami
გამოიყენეთ თქვენი IP და პორტი — NAT-გეგმაზე ეს სამართავი პანელის პირადი SSH-პორტია. თუ sudo whoami დაბეჭდავს root-ს, ყველაფერი რიგზეა. თუ შესვლა ვერ მოხერხდა, გასასწორებლად root-ის ფანჯარა ჯერ კიდევ გაქვთ.
4. გამორთეთ root-ით შესვლა
ახლა კარი დახურეთ. მთავარი კონფიგურაციის რედაქტირების ნაცვლად შექმენით პატარა drop-in ფაილი:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t ჯერ სინტაქსს ამოწმებს. გაფუჭებული კონფიგურაცია და reload — აი, როგორ ხვდებიან ადამიანები კონსოლის იმედად. PasswordAuthentication no-ს აზრი მხოლოდ მაშინ აქვს, როცა ახალი მომხმარებლისთვის გასაღებით შესვლა მუშაობს — რაც ახლახან შეამოწმეთ.
გახსენით კიდევ ერთი ტერმინალი და დარწმუნდით, რომ root უარყოფილია, deploy კი კვლავ შედის. შემდეგ დახურეთ ძველი root-ის სესია.
5. არასავალდებულო: sudo პაროლის გარეშე ავტომატიზაციისთვის
თუ deploy-სკრიპტს შეკითხვის გარეშე sudo სჭირდება, მიეცით ზუსტად ეს და არაფერი მეტი:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
გულწრფელად რომ ვთქვათ, NOPASSWD: ALL მაცდურია, მაგრამ ეს ნიშნავს, რომ მოპარული გასაღები root-ის ტოლფასია. შეზღუდეთ იმ ბრძანებებით, რომლებსაც ავტომატიზაცია უშვებს.
თუ რამე არასწორად წავიდა
სამართავი პანელის ვებ-კონსოლი არც SSH-ზეა დამოკიდებული და არც ფაირვოლზე. შედით იქიდან, გაასწორეთ ფაილი /etc/ssh/sshd_config.d/-ში, გააკეთეთ reload და მორჩა. აღდგენის სრული პროცესი აღვწერეთ სტატიაში როგორ დავბრუნდეთ ჩაკეტილ VPS-ში.
რა გავაკეთოთ შემდეგ
- ნამდვილად გადადით მხოლოდ გასაღებით შესვლაზე: SSH-გასაღებით ავთენტიფიკაცია.
- შეამცირეთ brute force-ის ცდების ხმაური: fail2ban.
- დანარჩენი საფუძვლები დაასრულეთ ახალი VPS-ის უსაფრთხოების ჩამონათვალით.
თითოეული გეგმის წვდომის ვარიანტები წვდომის დოკუმენტაციაშია. $3-იანი Nano-ც კი იმსახურებს root-ის გარეშე მომხმარებელს — ეს უსაფრთხოების ყველაზე იაფი გაუმჯობესებაა.
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.