არსებობს გავლის რიტუალი ყველასთვის, ვინც ახალია საკუთარი სერვერის გაშვებაში: წყვეტთ firewall-ის დაყენებას, აკრიფავთ რამდენიმე ufw ბრძანებას, დააჭერთ enable — და თქვენი ტერმინალი დადუმდება. SSH წავიდა. არაფერი გამოგიფუჭებიათ, არავინ გაგტეხავთ. უბრალოდ დაბლოკეთ კარი საკუთარი თავით გარეთ.
ეს ხდება კარგ sysadmin-ებთანაც. ეს მოხდა ჩვენს ერთ-ერთ კლიენტთან გასულ კვირას, სწორედ ამიტომ ვწერ ამას. კარგი ამბავი: ეს სრულიად აღდგენადია წუთზე ნაკლებში, და არ გჭირდებათ ხელახლა ინსტალაცია ან ერთი ფაილის დაკარგვა. აი როგორ.

რა მოხდა რეალურად
ufw (Uncomplicated Firewall) ნაგულისხმევად უარყოფს ყველა შემომავალს. მომენტში, როცა გაუშვებთ ufw enable-ს, ყველაფერი, რაც ცალსახად არ დაუშვით, იჭრება — მათ შორის SSH სესია, რომელშიც ზიხართ. თუ დაგავიწყდათ თქვენი SSH პორტის ufw allow ჯერ, თქვენი საკუთარი კავშირი გაჭერით იმ წამს, როცა წესი ძალაში შედის.
ეს კლასიკური ვერსიაა. არსებობს ორი სხვა სახეობა, რომელიც ხალხს იჭერს:
- დაუშვით არასწორი პორტი. შეცდომა, ან დაუშვით სერვისის პორტი (ვთქვათ 8080) და დაგავიწყდათ 22.
- დაუშვით 22, მაგრამ შემდეგ დააყენეთ
denyწესი სიაში მაღლა, რომელიც მას ჩრდილავს. ufw წესრიგზე მგრძნობიარეა.
ასეც თუ ისე, თავად სერვერი კარგადაა — მუშაობს, დისკი ხელუხლებელი, თქვენი აპლიკაცია ჯერ კიდევ ზუზუნებს კედლის უკან. ეს წმინდად ქსელ-წვდომის პრობლემაა. სწორედ ამიტომ არის გამოსავალი ადვილი.
არასწორი სვლა: ხელახლა ინსტალაცია
პირველი ინსტინქტი ხშირად არის „უბრალოდ გადავაყენოთ სერვერი და თავიდან დავიწყოთ“. ნუ — არა ამისთვის. ხელახლა ინსტალაცია შლის ყველაფერს მომუშავე SSH-ის დასაბრუნებლად, როცა SSH-ის ბლოკავს ერთი firewall ბრძანება, რომლის გაუქმებაც ათ წამში შეგიძლიათ. თქვენ სახლს დაწვავდით იმის გამო, რომ წინა კარი დაბლოკეთ.
ხელახლა ინსტალაცია სწორი არჩევანია, როცა გინდათ სუფთა ფურცელი. ufw ჩაკეტვისთვის ის ზედმეტია.
სწორი სვლა: web კონსოლი
ყოველი ღირსეული VPS გაძლევთ out-of-band კონსოლს — გზას მანქანაში, რომელიც არ გადის SSH-ით ან ქსელის stack-ითაც კი. EQVPS-ზე ეს არის Console ღილაკი თქვენი სერვერის გვერდზე. ის serial კონსოლია: მხოლოდ-ტექსტი, პირდაპირ VM-თან დაკავშირებული, როგორც მონიტორი და კლავიატურა იქნებოდა. firewall წესს მასზე ძალა არ აქვს, რადგან ის ქსელის ტრაფიკი არ არის.

დააჭირეთ, შედით თქვენი root credentials-ით (ან გამოაჩინეთ პაროლი პანელში, თუ ის ხელთ არ გაქვთ) და box-ზე ხართ — firewall-ით თუ firewall-ის გარეშე.
ახლა გააუქმეთ ზიანი. ყველაზე სწრაფი გზა:
sudo ufw disable
ეს თიშავს firewall-ს და ინახავს თქვენს წესებს, ასე რომ მოგვიანებით შეგიძლიათ ხელახლა ჩართოთ, როცა შეცდომას გაასწორებთ. SSH პირდაპირ ბრუნდება.
თუ გირჩევნიათ, firewall მთლიანად არ ჩამოაგდოთ, უბრალოდ გახსენით პორტი, რომელიც გამოტოვეთ:
sudo ufw allow 22
sudo ufw status numbered
status numbered ხედი ღირს დათვალიერებად — ის აჩვენებს წესის წესრიგს, სადაც იმალება „დავუშვი 22, მაგრამ ის მაინც ბლოკავს“ შემთხვევები. თუ deny ზის თქვენს allow-ის ზემოთ, წაშალეთ ის sudo ufw delete <number>-ით.
NAT ხაფანგი, რომელსაც უმეტესი გზამკვლევი გამოტოვებს
თუ NAT ტარიფზე ხართ, აქ ხაფანგია. SSH-ით შედიხართ მაღალ პორტზე — რაღაც 20266-ის მსგავსი — ასე რომ ბუნებრივი ინსტინქტი არის ufw allow 20266. ეს არაფერს აკეთებს.
NAT-ზე ის გარე პორტი გადამისამართებულია პორტ 22-ზე VM-ის შიგნით. ufw მუშაობს VM-ის შიგნით და ყოველთვის მხოლოდ 22-ს ხედავს. ასე რომ წესი, რომელიც რეალურად გჭირდებათ, არის:
sudo ufw allow 22
დაუშვით 20266 და მიაჩერდებით ჯერ კიდევ გატეხილ კავშირს და გაინტერესებთ, რატომ. დაუშვით 22 და შესული ხართ. იგივე იდეა ნებისმიერი სერვისისთვის: დაუშვით პორტი, რომელსაც პროცესი უსმენს box-ის შიგნით, არა გადამისამართებული, რომელზეც გარედან უკავშირდებით.
როგორ არასოდეს გავაკეთოთ ეს ხელახლა
გამოსავალი წუთს იღებს, მაგრამ მისი არ-საჭიროება უფრო კარგია. ორი ჩვევა:
დაუშვით თქვენი SSH პორტი ჩართვამდე. ამ წესრიგში, ყოველთვის:
sudo ufw allow 22
sudo ufw enable
გააკეთეთ ის უკუღმა და კონსოლში ხართ დაბრუნებული.
შეინახეთ მეორე სესია ღია, სანამ firewall წესებს ცვლით. შედით ორჯერ. გააკეთეთ თქვენი ცვლილებები ერთ ფანჯარაში; თუ SSH მოკვდება, მეორე ფანჯარა ჯერ კიდევ ცოცხალია გასასწორებლად. ძველი ხრიკი, ყოველ ჯერზე გიხსნით.
და თუ ახალ box-ს აყენებთ, ჩვენი ახალი-VPS უსაფრთხოების ჩეკ-ლისტი ფარავს ufw-ს სწორი მიმართულებით, SSH გასაღებებთან და იმ რამდენიმე სხვა რამესთან ერთად, რასაც რეალურად მნიშვნელობა აქვს პირველ ათ წუთში.
დასკვნა
ufw ჩაკეტვა საშინლად გამოიყურება და თითქმის არაფერია. სერვერი არასოდეს წასულა; უბრალოდ გჭირდებათ კარი, რომელსაც firewall ვერ დახურავს — web კონსოლი — და ერთი ბრძანება. შეინახეთ ufw disable და კონსოლი ჯიბეში, დაუშვით თქვენი პორტი ჩართვამდე შემდეგ ჯერზე და ამაზე აღარასოდეს იოფლიანებთ.
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.