Unsaon Pag-block sa SSH Brute Force Attacks Gamit ang SSHGUARD


Ang SSHGuard usa ka open-source nga daemon nga nanalipod sa mga host gikan sa brute-force nga mga pag-atake. Nahimo kini pinaagi sa pagmonitor ug pagtipon sa mga log sa sistema, pag-ila sa mga pag-atake, ug pagbabag sa mga tig-atake gamit ang usa sa mga backend sa firewall sa Linux: iptables, FirewallD, pf, ug ipfw.

Sa sinugdan gidesinyo sa paghatag og dugang nga layer sa proteksyon alang sa OpenSSH nga serbisyo, ang SSHGuard usab nanalipod sa usa ka halapad nga mga serbisyo sama sa Vsftpd ug Postfix. Giila niini ang daghang mga format sa log lakip ang Syslog, Syslog-ng, ug hilaw nga mga file sa log.

[ Tingali ganahan ka usab: Unsaon Pagsiguro ug Paggahi sa OpenSSH Server ]

Ang SSHGuard parehas ra sa Fail2ban nga gisulat lamang sa C (Ang Fail2ban gisulat sa Python), mas gaan, ug naghatag gamay nga bahin.

Sa kini nga giya, among ipakita kung giunsa nimo ma-install ug ma-configure ang SSHGuard aron babagan ang mga pag-atake sa brute force sa SSH sa imong server sa Linux.

Lakang 1: I-install ang SSHGuard sa Linux

Nagsugod kami sa pag-instalar sa SSHGuard sa Linux.

Una, i-update ang mga lista sa package ug dayon i-install ang SSHGuard gikan sa mga default nga repository gamit ang apt package manager.

$ sudo apt update
$ sudo apt install sshguard

Sa higayon nga ma-install, ang serbisyo sa SSHGuard awtomatik nga magsugod, ug mahimo nimo kining pamatud-an gamit ang sugo:

$ sudo systemctl status sshguard

Para sa RHEL-based distributions sama sa CentOS, Rocky, ug AlmaLinux, sugdi pinaagi sa pag-install sa EPEL repository nga gihatag sa command sa ubos.

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo dnf install epel-release

Uban sa EPEL sa lugar, ipadayon ug i-install ang SSHGuard gamit ang dnf package manager.

$ sudo dnf install sshguard 

Sa higayon nga ma-install, sugdi ug i-set ang SSHGuard nga magsugod sa system startup o reboot.

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

Siguruha nga pamatud-an nga ang SSHGuard nagdagan sama sa gipaabut.

$ sudo systemctl status sshguard

Lakang 2: SSHGuard Configuration sa Linux

Aktibo nga gimonitor sa SSHGuard ang /var/log/auth.log, /var/log/secure systemd journal, ug syslog-ng log files alang sa napakyas nga pagsulay sa pag-login.

Alang sa matag dili malampuson nga pagsulay sa pag-login, ang hilit nga host gidili sa limitado nga oras nga, sa default gitakda sa 120 segundos. Pagkahuman, ang oras sa pagdili mosaka sa usa ka hinungdan nga 1.5 sa matag sunud-sunod nga napakyas nga pagsulay sa pag-login.

Ang panahon nga gidili ang mga nakasala nga mga host, dugang sa ubang mga parameter gipiho sa sshguard.conf file. Mahimo nimong ma-access ang configuration file gamit ang vim editor sama sa gipakita.

$ sudo vim /etc/sshguard/sshguard.conf

Sa RHEL-based distributions, ang config file nahimutang sa mosunod nga dalan.

$ sudo vim /etc/sshguard.conf

Ania ang usa ka sample sa configuration file kung tan-awon gikan sa Ubuntu/Debian.

Magpokus kita sa panguna nga kapilian.

  • Ang direktiba sa BACKEND nagpunting sa tibuok nga agianan sa backend nga ma-executable. Niini nga pananglitan, atong makita nga ang IPtables gitakda isip default firewall backend.
  • Gibabagan sa THRESHOLD nga direktiba ang mga tig-atake kung ang ilang marka sa pag-atake molapas sa gitakda nga kantidad.
  • Ang opsyon nga BLOCK_TIME mao ang gidaghanon sa mga segundo nga gibabagan ang tig-atake human sa matag sunodsunod nga napakyas nga pagsulay sa pag-login. Sa kasagaran, kini gibutang sa 120 human sa unang pagsulay. Kini nagdugang sa matag sunodsunod nga napakyas nga pagsulay sa pag-login.
  • Ang opsyon sa DETECTION_TIME nagtumong sa oras sa mga segundo diin ang tig-atake narehistro o nahinumdoman sa sistema sa wala pa ma-reset ang ilang puntos.
  • Ang opsyon sa WHITELIST_file nagpunting sa tibuok nga agianan sa whitelist file nga adunay mga host nga dili angay i-blacklist./li>

Lakang 3: I-configure ang SSHGuard aron babagan ang SSH Brute Force Attacks

Aron mapugngan ang mga pag-atake sa brute-force, kinahanglan nimo nga i-configure ang mga mosunud nga firewall aron magamit ang sshguard.

Kung na-install ug gi-enable nimo ang UFW sa imong Ubuntu/Debian system, usba ang /etc/ufw/before.rules file.

$ sudo vim etc/ufw/before.rules

Idugang ang mosunod nga mga linya human lang sa allow all on loopback nga seksyon.

# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

# hand off control for sshd to sshguard
:sshguard - [0:0]
-A ufw-before-input -p tcp --dport 22 -j sshguard

I-save ang file ug i-restart ang UFW.

$ sudo systemctl restart ufw

Karon sulayi ang pag-log in sa server gikan sa lahi nga sistema nga adunay sayup nga mga kredensyal ug matikdi nga ma-lock ka sulod sa 120 segundos pagkahuman sa una nga napakyas nga pagsulay sa pag-login.

Mahimo nimong pamatud-an kini pinaagi sa pagsusi sa auth.log log file.

$ sudo tail -f  /var/log/auth.log

Human sa sunod nga napakyas nga pagsulay sa log, ang block time mosaka ngadto sa 240 segundos, dayon 480 segundos, dayon 960 segundos, ug uban pa.

Kung nagdagan ka sa firewalld, siguroha nga kini gipahimutang ug gipagana. Dayon ipatuman ang mosunod nga sugo aron mahimo ang sshguard sa imong gusto nga zone.

$ sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule source ipset=sshguard4 drop"

Aron magamit ang mga pagbag-o, i-reload ang Firewalld ug sshguard.

$ sudo firewall-cmd --reload
$ sudo systemctl restart sshguard

Dayon pamatud-i ang lagda sama sa mosunod:

$ sudo firewall-cmd —-info-ipset=sshguard4

Kung naggamit ka pa sa Iptables, una, paghimo usa ka bag-ong lagda sa kadena alang sa sshguard sa Iptables aron masugdan ang pagbabag sa mga daotan.

# iptables -N sshguard

Sunod, i-update ang INPUT chain aron madirekta ang trapiko sa sshguard ug babagan ang tanan nga trapiko gikan sa mga daotan nga partido.

# iptables -A INPUT -j sshguard

Aron babagan ang piho nga mga pantalan sama sa SSH, POP, ug IMAP gikan sa mga nag-abuso, padagana ang mando:

# iptables -A INPUT -m multiport -p tcp --destination-ports 22,110,143 -j sshguard

Ug sa katapusan, i-save ang lagda aron matuman ang mga pagbag-o.

# iptables-save > /etc/iptables/iptables.rules

Lakang 4: Giunsa Pag-whitelist ang SSH nga Na-block nga mga Host

Aron ma-whitelist ang usa ka gi-block nga host, ipiho lang ang hostname o IP address niini sa whitelist file nga nahimutang sa:

/etc/sshguard/whitelist - Ubuntu/Debian 
/etc/sshguard.whitelist - RHEL-based distros

Pagkahuman, siguruha nga i-restart ang sshguard daemon ug ang backend sa firewall aron magamit ang mga pagbag-o.

Sa kini nga giya, among gipakita kung giunsa nimo mapugngan ang mga pag-atake sa SSH Bruteforce gamit ang SSHGuard daemon sa mga server sa Linux. Gidawat ang imong feedback.