SSH și FTP sunt două dintre cele mai exploatate protocoale de rețea Brute-Force. Hackerii utilizează instrumente automate complexe pentru a ghici numele de utilizator și parola și apoi pătrund în sistemul dumneavoastră.
Cu ajutorul unor bune practici de securitate, puteți reduce majoritatea riscurilor de securitate. Iar cu Fail2ban, puteți reduce și mai mult riscul de încălcare a securității, fiind proactivi în securizarea serverelor sau a calculatoarelor.
Ce este Fail2ban?
Fail2ban este un puternic program de securitate open source care vă protejează dinamic serverele sau calculatoarele împotriva activităților suspecte și a atacurilor brute-force.
Acesta scanează în permanență fișierele de jurnal pentru a detecta încercările de conectare și, în cazul în care acestea au loc, blochează adresa IP sursă prin actualizarea regulilor de firewall.
Fail2ban funcționează cu majoritatea serviciilor de conexiune la distanță, cum ar SSH, FTP, SMTP și HTTP.
Este ușor de configurat și de personalizat. Puteți specifica pentru cât timp doriți să blocați adresele IP sau îl puteți configura pentru a primi alerte automate atunci când există o activitate suspectă.
Pentru a sublinia, Fail2ban nu este suficient pentru a vă proteja împotriva breșelor de securitate. Ar trebui să dispuneți și de alte măsuri de securitate pentru a reduce riscul de a fi piratat.
De exemplu, ar trebui să folosiți întotdeauna parole puternice pe sistemele dvs. și să restricționați accesul pe cât de mult puteți.
Cum se instalează Fail2ban
Majoritatea distribuțiilor Linux majore inclusiv Red Hat Enterprise Linux (RHEL), Ubuntu și Arch Linux, acceptă Fail2ban. Iată cum să instalați aplicația pe distribuția dvs. Linux:
1 2 3 4 5 | sudo pacman -S fail2ban [Arch Linux] sudo apt install fail2ban [Debian/Ubuntu] sudo dnf install fail2ban [Fedora/RHEL] sudo zypper install fail2ban [openSUSE] sudo yum install fail2ban [Centos/AlmaLinux] |
În continuare, va trebui să activați serviciul. În acest fel, procesul va rula în fundal ori de câte ori sistemul dvs. va porni.
1 | sudo systemctl enable fail2ban.service |
Pentru a finaliza instalarea, porniți serviciul folosind următoarea comandă:
1 | sudo systemctl start fail2ban |
Puteți verifica dacă servciul este activ și funcționează cu comanda:
1 | sudo systemctl status fail2ban |
1 2 3 4 5 6 7 8 9 10 11 | $ sudo systemctl status fail2ban fail2ban.service - Fail2ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor... Active: active (running) since Thu 2023-05-18 21:56:25 CESt; 7s ago Docs: man:fail2ban(1) Main PID: 1352440 (fail2ban-server) Tasks: 5 (limit: 18746) Memory: 13.6M CPU: 91ms CGroup: /system.slice/fail2ban.service ﹂1352440 /usr/bin/python3 /usr/bin/fail2ban-server -xf start... |
Dacă totul este în regulă, serviciul ar trebui să fie activ. Dacă există mesaje de eroare, puteți consulta mesajele din jurnalul Fail2ban folosind utilitarul journalctl.
1 | sudo journalctl -u fail2ban |
Configurarea Fail2ban
În cele din urmă, puteți începe să configurați Fail2ban pentru a vă proteja sistemul împotriva atacurilor prin forță brută și a altor activități suspecte.
Fișierul /etc/fail2ban/jail.conf stochează principalele configurați. Ca o practică optimă, evitați să faceți modificări în acel fișier special. Folosiți-l doar ca referință.
De fiecare dată când actualizați aplicația, fișierul de configurare jail.conf va fi suprascris. Pentru a evita pierderea configurației, faceți o coie numtă jail.local în cadrul aceluiași director. Folosiți pentru aceasta comanda cp.
1 | cd /etc/fail2ban && cp jail.conf jail.local |
În continuare, deschideți fișierul jail.conf folosind editorul de text preferat și ajustați următoarele configurații:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # "ignoreip" can be a list of IP adrdresses, CIDR makes or DNS hosts. Fail2ban # will not ban a host whitch matchess an address in this list. Several addrresses # can be defined using space (and/or comma) separator. ignoreip = 127.0.0.1/8 ::1 # External command that will take an tagged arguments to ignore, e.g. <ip>, # and return true if the IP is to be ignored. False otherwise. # # ignorecommand = /path/to/command <ip> ignorecommand = # "bantime" is the number of seconds that a host is banned. bnatime = 5m # A host is banned if it has generated "maxretry" during the last "findtime" # seconds. findtime = 10m # "maxretry" is the number of failures before a host get banned. maxretry = 2 |
Fișierul de configurare este bine documentat, așa că citiți-l pentru a afla mai multe despre Fail2ban și opțiunile pe care le prezintă.
În cele din urmă, reporniți serviciul pentru ca modificările să aibă efectul dorit. Utilizați comanda:
1 | sudo systemctl restart fail2ban |
Testarea configurației
Odată configurat, puteți testa dacă configurația maxretry funcționează. Încercați să vă conectați prin SSH la calculatorul sau serverul pe care l-ați configurat.
Atunci când vi se solicită datele de autentificare, furnizați parola greșită, de două ori. Fail2ban va intra în acțiune și vă va bloca timp de cinci minute, conform configurației.
Acesta este doar un simplu caz de utilizare; acum configurați-vă serverul după bunul plac și nu ezitați să experimentați.