
Ubuntu 24.04 server internetə açıqdırsa, bir müddət sonra SSH loglarında eyni mənzərəni görəcəksiniz: botlar və avtomatik skriptlər davamlı olaraq giriş cəhdləri edir. SSH key istifadə etsəniz belə, bu cəhdlər log-ları doldurur və əlavə risk yaradır. Bu nöqtədə ən praktik müdafiələrdən biri Fail2ban quraşdırmaqdır.
Fail2ban log fayllarını izləyir, çox sayda uğursuz giriş cəhdi görəndə həmin IP ünvanını müvəqqəti bloklayır. Bu məqalədə Ubuntu 24.04 serverdə Fail2ban-ın necə quraşdırıldığını, SSH üçün necə aktiv edildiyini, əsas parametrlərin necə tənzimləndiyini və işlədiyinin necə yoxlandığını addım-addım göstərəcəyəm.
Fail2ban nə edir?
Fail2ban uğursuz autentifikasiya cəhdələrini log-lardan oxuyur və müəyyən limit aşılarsa firewall qaydası əlavə edib həmin IP-ni bloklayır. Yəni o, birbaşa parolu gücləndirmir, amma brute-force cəhdlərinin sürətini və effektini kəskin azaldır.
- SSH brute-force cəhdələrini zəiflədir
- müəyyən müddətlik IP ban tətbiq edir
- log əsaslı işləyir
- istəsəniz başqa servislər üçün də aktiv etmək mümkündür
Vacib qeyd: Fail2ban təkbaşına tam təhlükəsizlik həlli deyil. SSH key, güclü konfiqurasiya və firewall ilə birlikdə istifadə olunanda mənalı nəticə verir.
Bu tutorial kim üçündür?
- Ubuntu 24.04 VPS və ya dedicated server istifadəçiləri
- SSH girişini sərtləşdirmək istəyən adminlər
- internetə açıq serverlərdə brute-force riskini azaltmaq istəyənlər
Başlamazdan əvvəl nə hazır olmalıdır?
- Ubuntu 24.04 server
- sudo səlahiyyətli istifadəçi
- SSH ilə serverə giriş
- mümkünsə artıq SSH key əsaslı giriş
Addım 1: Fail2ban quraşdırın
sudo apt update
sudo apt install fail2ban -y
Quraşdırmadan sonra xidmətin vəziyyətini yoxlaya bilərsiniz:
systemctl status fail2ban.service
Bəzi hallarda servis quraşdırıldıqdan sonra avtomatik aktiv olmaya bilər. Bu normaldır, əvvəl konfiqurasiyanı tənzimləmək daha yaxşıdır.
Addım 2: Default config-i birbaşa dəyişməyin
Fail2ban-da əsas default fayl /etc/fail2ban/jail.conf olur. Amma praktik yanaşma onu birbaşa edit etmək deyil. Çünki paket update-lərində dəyişə bilər. Bunun əvəzinə local override yaradın:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Sonra local config-i açın:
sudo nano /etc/fail2ban/jail.local
Addım 3: Əsas parametrləri tənzimləyin
[DEFAULT] bölməsində ən vacib parametrlər bunlardır:
bantime = 10m
findtime = 10m
maxretry = 5
- bantime — IP nə qədər müddət bloklansın
- findtime — neçə dəqiqəlik pəncərədə cəhdlər sayılsın
- maxretry — neçə uğursuz cəhddən sonra ban tətbiq olunsun
Praktik başlanğıc üçün bunlar uyğundur. Daha sərt qayda istəyirsinizsə, məsələn:
bantime = 1h
findtime = 10m
maxretry = 3
Amma çox sərt dəyərlər qoyanda özünüzü də bloklama riskiniz artır.
Addım 4: SSH jail-ini aktiv edin
SSH üçün bölməni tapın və aktiv olduğunu yoxlayın:
[sshd]
enabled = true
Müasir Ubuntu sistemlərində bu çox vaxt kifayətdir. Əgər SSH fərqli portda işləyirsə və ya xüsusi log yolu varsa, onu da ayrıca göstərmək lazım ola bilər.
Addım 5: Servisi enable və start edin
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Sonra yenidən status yoxlayın:
sudo systemctl status fail2ban
Burada active (running) görməlisiniz.
Addım 6: Fail2ban-ın SSH üçün işlədiyini yoxlayın
Aktiv jail-ləri yoxlamaq üçün:
sudo fail2ban-client status
SSH jail detalı üçün:
sudo fail2ban-client status sshd
Burada adətən bunları görəcəksiniz:
- hazırda neçə IP izlənir
- neçə IP ban olunub
- hansı log faylı izlənir
Addım 7: Əgər UFW istifadə edirsinizsə
Fail2ban əsasən firewall qaydaları üzərindən işlədiyi üçün serverdə UFW və ya iptables/nftables məntiqi düzgün olmalıdır. UFW aktivdirsə, SSH girişinə onsuz da icazə verildiyini təsdiqləyin:
sudo ufw allow OpenSSH
sudo ufw status
Əsas fikir budur: normal girişə icazə qalır, amma çoxlu uğursuz cəhd edən IP-lər əlavə qaydalarla müvəqqəti bloklanır.
Tipik praktik konfiqurasiya
Əgər internetə açıq VPS istifadə edirsinizsə, belə bir baza profil kifayət qədər praktikdir:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
Əgər artıq SSH key istifadə edir və password login-i söndürmüsünüzsə, bu kombinasiya daha yaxşı nəticə verir.
Ən çox rast gəlinən problemlər
1. Fail2ban işə düşmür
Çox vaxt səbəb config sintaksisidir. Journal loglarına baxın:
sudo journalctl -u fail2ban --no-pager -n 50
2. SSH jail görünmür
enabled = true unudulub və ya config override düzgün yerdə yazılmayıb.
3. Ban olunur, amma təsir etmir
Firewall backend və ya log yolu uyğunsuz ola bilər. Xüsusilə custom SSH setup-larda bunu yoxlamaq lazımdır.
4. Öz IP-nizi blokladınız
Çox sərt maxretry istifadə etmisinizsə və test zamanı səhv parol yazmısınızsa, bu ola bilər. Ona görə dəyişiklikləri edəndə mövcud sessiyanı bağlamamaq ağıllıdır.
Fail2ban-ı daha faydalı edən əlavə addımlar
- SSH key istifadə edin
- password login-i söndürün
- root login-i bağlayın
- UFW aktiv edin
- vacib servislər üçün ayrıca jail-lər qurun
Yəni Fail2ban tək həll deyil, amma yaxşı layered security hissəsidir.
Nəticə
Ubuntu 24.04 serverdə Fail2ban quraşdırmaq SSH brute-force cəhdələrinə qarşı ən praktik və az xərcli müdafiələrdən biridir. Quraşdırması sürətlidir, gündəlik idarəsi sadədir və xüsusilə internetə açıq VPS-lərdə dərhal fayda verir. Əgər serverinizdə hələ aktiv deyilsə, bunu UFW və SSH key ilə birlikdə ən yaxın təhlükəsizlik addımlarınızdan biri kimi götürmək məntiqlidir.