EQVPS

როგორ დავაყენოთ fail2ban brute-force შეტევების დასაბლოკად

შეაჩერეთ პაროლის გამუდმებული ცდა თქვენს სერვერზე: fail2ban აკვირდება ლოგებს და ავტომატურად ბანავს IP-ებს, რომლებიც ვერ ახერხებენ შესვლას ზედმეტად ბევრჯერ. დააყენეთ, ჩართეთ SSH jail და მოარგეთ ბანის წესები — რამდენიმე ბრძანებით.

მაშინაც კი, როცა ყველაფერი დაცულია, ბოტები არასდროს წყვეტენ პაროლების ცდას პორტ 22-ის წინააღმდეგ — ეს მუდმივი ფონური ხმაური და დატვირთვაა. fail2ban აკვირდება თქვენს ლოგებს და ავტომატურად ბანავს ნებისმიერ IP-ს, რომელიც ვერ ახერხებს შესვლას ზედმეტად ბევრჯერ, ისე რომ შემტევები რამდენიმე მცდელობის შემდეგ იბლოკებიან, ნაცვლად მარადიული გამოცნობისა. ეს მცირე ინსტალაციაა, დიდი ვარდნით ლოგის ხმაურში.

1. დააინსტალირეთ fail2ban

sudo apt update && sudo apt install -y fail2ban

2. შექმენით ლოკალური კონფიგი

არასდროს არედაქტიროთ მიწოდებული jail.conf პირდაპირ — გადაფარეთ ის jail.local-ში:

sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF'
[DEFAULT]
# don't ban yourself — add your home/office IP
ignoreip = 127.0.0.1/8 ::1
bantime  = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
EOF

ეს ბანავს IP-ს ერთი საათით 5 წარუმატებელი შესვლის შემდეგ 10 წუთში. დაამატეთ საკუთარი IP ignoreip-ში, რომ არასდროს დაგბლოკოთ შეცდომით აკრეფილმა პაროლმა.

3. გაუშვით და ჩართეთ ჩატვირთვაზე

sudo systemctl enable --now fail2ban

4. შეამოწმეთ SSH jail

sudo fail2ban-client status sshd

დაინახავთ, რამდენი IP არის ამჟამად დაბანილი — ხშირად გასაკვირად დიდი რაოდენობა რამდენიმე წუთში.

ბანების მართვა

sudo fail2ban-client set sshd unbanip 1.2.3.4   # lift a ban
sudo fail2ban-client status                     # list all jails
sudo systemctl reload fail2ban                  # apply config changes

გულახდილი გაფრთხილებები

შემდეგი ნაბიჯები

fail2ban გამაგრებული სერვერის ერთი ფენაა. გააერთიანეთ SSH გასაღების ავთენტიფიკაციასთან და UFW firewall-თან, და გაიარეთ სრული ახალი VPS-ის უსაფრთხოების ჩეკლისტი, სანამ რამეს გამოაჩენთ ინტერნეტში.

ხდკ

რას აკეთებს fail2ban სინამდვილეში?

ის აკვირდება ლოგ ფაილებს (მაგალითად SSH auth log-ს) ერთი და იმავე IP-დან განმეორებადი წარუმატებელი მცდელობებისთვის, და როცა IP გადააჭარბებს ზღვარს, დროებით ბანს ამატებს firewall-ში. ბოტები, რომლებიც მთელი დღე ურტყამენ პორტ 22-ს, რამდენიმე მცდელობის შემდეგ ილუფება, ნაცვლად იმისა, რომ მარადიულად ცდილობდნენ გამოცნობას. ეს ავტომატური, მუდმივი დაცვაა.

მჭირდება ჯერ კიდევ fail2ban, თუ SSH გასაღებებს ვიყენებ?

ისინი სხვადასხვა პრობლემას წყვეტენ. SSH გასაღებები გამოცნობას პრაქტიკულად შეუძლებელს ხდის; fail2ban აჩერებს უსასრულო მცდელობების ხმაურსა და დატვირთვას, და იცავს ნებისმიერ სხვა სერვისსაც, რომელსაც აქვეყნებთ (mail, web login-ები). მხოლოდ-გასაღების SSH-ით რისკი უკვე დაბალია, მაგრამ fail2ban იაფი დამატებითი დაცვის ფენაა და ამცირებს ლოგის ხმაურს.

დამბანავს fail2ban შემთხვევით?

შესაძლებელია, თუ საკუთარი პაროლის აკრეფას რამდენჯერმე ცდებით — დაგიბანავენ bantime-ის ხანგრძლივობით, შემდეგ ავტომატურად მოგისხამენ ბანს. რომ არასდროს ჩაიკეტოთ, დაამატეთ საკუთარი IP 'ignoreip'-ში კონფიგში, და გახსოვდეთ — პროვაიდერის კონსოლი (EQVPS-ს აქვს ასეთი) ყოველთვის დაგაბრუნებთ შესვლას.

როგორ ვნახო, ვინ არის დაბანილი, ან როგორ მოვხსნა ბანი IP-სთვის?

გამოიყენეთ 'sudo fail2ban-client status sshd' jail-ისა და დაბანილი IP-ების სანახავად. ბანის მოსახსნელად: 'sudo fail2ban-client set sshd unbanip 1.2.3.4'. სანდო IP-ის მუდმივად დასამატებლად ჩადეთ ignoreip-ში და reload გააკეთეთ.

რა არის bantime, findtime და maxretry?

maxretry არის რამდენი წარუმატებელი მცდელობაა დაშვებული, findtime — რა დროის ფანჯარაში ითვლება ისინი, ხოლო bantime — რამდენ ხანს გრძელდება ბანი. მაგალითად, 5 წარუმატებელი მცდელობა 10 წუთში იწვევს 1-საათიან ბანს. ავამაღლეთ bantime (ან დააყენეთ უფრო გრძელი მნიშვნელობა) მუდმივი შემტევებისთვის.

კომენტარები

ჯერ არ არის კომენტარები. იყავით პირველი.

დატოვეთ კომენტარი

კომენტარები მოდერირდება გამოჩენამდე.