Cara menyekat serangan kekerasan SSH menggunakan sshguard

Cara menyekat serangan kekerasan SSH menggunakan sshguard

Sshguard adalah daemon sumber terbuka yang melindungi tuan rumah dari serangan kekerasan. Ia menyelesaikannya melalui pemantauan dan pengagregatan log sistem, mengesan serangan, dan menyekat penyerang menggunakan salah satu backends firewall Linux: IPTABLES, Firewalld, pf, dan IPFW.

Pada mulanya direka untuk memberikan perlindungan tambahan untuk perkhidmatan OpenSSH, Sshguard juga melindungi pelbagai perkhidmatan seperti Vsftpd dan Postfix. Ia mengiktiraf beberapa format log termasuk fail SYSLOG, SYSLOG-NG, dan RAW.

[Anda mungkin juga suka: Cara Mengamankan dan Mengasaskan Pelayan OpenSSH]

Sshguard agak serupa dengan fail2ban hanya bahawa ia ditulis dalam C (Gagal2ban ditulis dalam Python), lebih ringan, dan memberikan ciri yang lebih sedikit.

Dalam panduan ini, kami akan menunjukkan bagaimana anda boleh memasang dan mengkonfigurasi Sshguard untuk menyekat SSH serangan kekerasan di pelayan linux anda.

Langkah 1: Pasang SSHGuard di Linux

Kami bermula dengan pemasangan Sshguard Pada Linux.

Pasang SSHGuard di Debian/Ubuntu

Pertama, kemas kini senarai pakej dan kemudian pasang Sshguard dari repositori lalai menggunakan Pengurus Pakej APT.

$ sudo apt update $ sudo apt pemasangan sshguard 

Setelah dipasang, Sshguard Perkhidmatan bermula secara automatik, dan anda boleh mengesahkannya menggunakan arahan:

$ sudo systemctl status sshguard 
Periksa sshguard di ubuntu

Pasang sshguard pada sistem rhel

Untuk pengagihan berasaskan RHEL seperti Centos, Berbatu, dan Almalinux, mulakan dengan memasang Epel repositori seperti yang disediakan dalam arahan di bawah.

$ sudo DNF Pasang https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-8.Noarch.RPM atau $ SUDO DNF Pasang EPEL-RELEASE 

Dengan Epel Di tempatnya, teruskan dan pasang Sshguard Menggunakan Pengurus Pakej DNF.

$ sudo dnf memasang sshguard 

Setelah dipasang, mulakan dan tetapkan Sshguard Untuk memulakan permulaan sistem atau reboot.

$ sudo systemctl start sshguard $ sudo systemctl enable sshguard 

Pastikan anda mengesahkannya Sshguard berjalan seperti yang diharapkan.

$ sudo systemctl status sshguard 
Periksa sshguard di rhel

Langkah 2: Konfigurasi SSHGuard di Linux

Sshguard secara aktif memantau /var/log/auth.log, /var/log/selamat jurnal Systemd, dan Syslog-ng fail log untuk percubaan masuk gagal.

Untuk setiap percubaan log masuk yang tidak berjaya, tuan rumah terpencil dilarang untuk jumlah masa yang terhad yang, secara lalai ditetapkan pada 120 saat. Selepas itu, masa larangan naik dengan faktor 1.5 dengan setiap percubaan log masuk gagal berturut -turut.

Masa tuan rumah yang menyinggung dilarang, sebagai tambahan kepada parameter lain yang ditentukan di sshguard.Conf fail. Anda boleh mengakses fail konfigurasi menggunakan editor VIM seperti yang ditunjukkan.

$ sudo vim/etc/sshguard/sshguard.Conf 

Pada pengagihan berasaskan RHEL, fail konfigurasi terletak di jalan berikut.

$ sudo vim /etc /sshguard.Conf 

Berikut adalah contoh fail konfigurasi apabila dilihat dari Ubuntu / Debian.

Fail konfigurasi SSHGuard

Mari fokus pada pilihan utama.

  • The Backend Arahan menunjuk ke jalan penuh backend yang boleh dilaksanakan. Dalam contoh ini, kita melihatnya IPTABLES ditetapkan sebagai backend firewall lalai.
  • The Ambang Arahan Blok Penyerang apabila skor serangan mereka melebihi nilai yang ditentukan.
  • The Block_time Pilihan adalah bilangan detik yang penyerang disekat selepas setiap percubaan log masuk gagal berturut -turut. Secara lalai, ini ditetapkan kepada 120 selepas percubaan pertama. Ini meningkat dengan setiap percubaan log masuk gagal berturut -turut.
  • The Detection_time Pilihan merujuk kepada masa dalam beberapa saat di mana penyerang didaftarkan atau diingat oleh sistem sebelum skor mereka ditetapkan semula.
  • The Whitelist_file titik pilihan ke laluan penuh fail putih yang mengandungi tuan rumah yang tidak sepatutnya disenarai hitam./li>

Langkah 3: Konfigurasikan SSHGuard untuk menyekat serangan kekerasan SSH

Untuk menangkis kekerasan serangan, anda perlu mengkonfigurasi firewall berikut untuk bekerjasama sshguard.

Blok serangan SSH menggunakan UFW

Sekiranya anda memasang UFW dan didayakan pada anda Ubuntu / Debian sistem, ubah suai /etc/ufw/sebelumnya.peraturan fail.

$ sudo vim dll/ufw/sebelumnya.peraturan 

Tambahkan baris berikut selepas Benarkan semua pada gelung balik seksyen.

# Benarkan semua di loopback -a ufw -sebelum -input -i lo -j menerima -a ufw -before -output -o lo -j menerima # tangan kawalan untuk sshd ke sshguard: sshguard -[0: 0] -a UFW -Before -Input -P TCP -Dport 22 -J SSHGuard 

Simpan fail dan mulakan semula ufw.

$ sudo systemctl mulakan semula ufw 

Sekarang cuba masuk ke pelayan dari sistem yang berbeza dengan kelayakan yang salah dan perhatikan bahawa anda akan dikunci selama 120 saat selepas percubaan log masuk pertama gagal.

Anda boleh mengesahkannya dengan memeriksa auth.log fail log.

$ sudo ekor -f/var/log/auth.log 
Semak serangan kekerasan SSH

Selepas percubaan log gagal seterusnya, masa blok meningkat kepada 240 Seconds, kemudian 480 Seconds, kemudian 960 detik, dan sebagainya.

Blok serangan SSH menggunakan firewalld

Sekiranya anda menjalankan firewalld, pastikan ia ditubuhkan dan diaktifkan. Kemudian laksanakan arahan berikut untuk membolehkan sshguard di zon pilihan anda.

$ sudo firewall-cmd --permanent --Zone = public --add-rich-rule = "Sumber peraturan ipset = sshguard4 drop" 

Untuk menggunakan perubahan, tambah nilai Firewalld dan sshguard.

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

Kemudian sahkan peraturan seperti berikut:

$ sudo firewall-cmd--info-esset = sshguard4 
Semak SSHGuard di Firewalld

Blok serangan SSH menggunakan iptables

Sekiranya anda masih menggunakan IPTABLES, Pertama, buat peraturan rantai baru untuk sshguard dalam IPTABLES untuk mula menyekat orang jahat.

# iptables -n sshguard 

Seterusnya, kemas kini Input berantai untuk mengarahkan lalu lintas ke sshguard dan menyekat semua lalu lintas dari pihak jahat.

# iptables -a input -j sshguard 

Untuk menyekat pelabuhan tertentu seperti SSH, Pop, dan Imap dari penderita menjalankan arahan:

# iptables -a input -m multiport -p tcp --destination -ports 22,110,143 -j sshguard 

Dan akhirnya, simpan peraturan untuk perubahan yang berkuatkuasa.

# iptables-Ave>/etc/iptables/iptables.peraturan 

Langkah 4: Cara Whitelist SSH Menghalang Tuan rumah

Untuk memaparkan host yang disekat, hanya nyatakan nama host atau alamat IP dalam fail Whitelist yang terletak di:

/etc/sshguard/whitelist - Ubuntu/Debian /etc/sshguard.Whitelist - Distros berasaskan RHEL 

Selepas itu, pastikan untuk memulakan semula sshguard daemon dan backend firewall untuk perubahan yang berlaku.

Dalam panduan ini, kami telah menunjukkan bagaimana anda boleh menyekat SSH Serangan bruteforce menggunakan Sshguard Daemon di pelayan Linux. Maklum balas anda dialu -alukan.