GNU/Linux >> Belajar Linux >  >> Linux

Cara Memblokir Serangan Brute Force SSH Menggunakan SSHGUARD

SSHGuard adalah daemon open-source yang melindungi host dari serangan brute force. Ini menyelesaikannya melalui pemantauan dan agregasi log sistem, mendeteksi serangan, dan memblokir penyerang menggunakan salah satu backend firewall Linux:iptables, FirewallD, pf, dan ipfw.

Awalnya dirancang untuk memberikan lapisan perlindungan ekstra untuk layanan OpenSSH, SSHGuard juga melindungi berbagai layanan seperti Vsftpd dan Postfix. Ia mengenali beberapa format log termasuk Syslog, Syslog-ng, dan file log mentah.

SSHGuard sangat mirip dengan Fail2ban hanya saja ia ditulis dalam C (Fail2ban ditulis dengan Python), lebih ringan, dan menyediakan lebih sedikit fitur.

Dalam panduan ini, kami akan menunjukkan bagaimana Anda dapat menginstal dan mengkonfigurasi SSHGuard untuk memblokir serangan brute force SSH di server Linux Anda.

Langkah 1:Instal SSHGuard di Linux

Kita mulai dengan instalasi SSHGuard di Linux.

Instal SSHGuard di Debian/Ubuntu

Pertama, perbarui daftar paket lalu instal SSHGuard dari repositori default menggunakan apt package manager.

$ sudo apt update
$ sudo apt install sshguard

Setelah diinstal, layanan SSHGuard dimulai secara otomatis, dan Anda dapat memverifikasi ini menggunakan perintah:

$ sudo systemctl status sshguard

Instal SSHGuard di Sistem Yum/RHEL

Untuk distribusi berbasis RHEL seperti CentOS, mulailah dengan menginstal repositori EPEL seperti yang diberikan pada perintah di bawah ini.

$ sudo yum install epel-release

ATAU

$ sudo dnf install epel-release

Dengan EPEL, lanjutkan dan instal SSHGuard menggunakan pengelola paket dnf.

$ sudo dnf install sshguard

Setelah terinstal, mulai dan atur SSHGuard untuk memulai saat startup atau reboot sistem.

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

Pastikan untuk memverifikasi bahwa SSHGuard berjalan seperti yang diharapkan.

$ sudo systemctl status sshguard

Langkah 2:Konfigurasi SSHGuard di Linux

SSHGuard secara aktif memantau /var/log/auth.log, /var/log/secure systemd journal, dan file log syslog-ng untuk upaya login yang gagal.

Untuk setiap upaya login yang gagal, host jarak jauh dilarang untuk waktu terbatas yang, secara default diatur pada 120 detik. Setelah itu, waktu larangan naik dengan faktor 1,5 dengan setiap upaya login yang gagal berturut-turut.

Waktu pelarangan host yang melanggar, selain parameter lain ditentukan dalam file sshguard.conf. Anda dapat mengakses file konfigurasi menggunakan editor vim seperti yang ditunjukkan.

$ sudo vim /etc/sshguard/sshguard.conf

Pada distribusi berbasis RHEL, file konfigurasi terletak di jalur berikut.

$ sudo vim /etc/sshguard.conf

Berikut adalah contoh file konfigurasi jika dilihat dari Ubuntu / Debian.

Berfokus pada opsi utama:

  • BACKEND direktif menunjuk ke path lengkap dari backend yang dapat dieksekusi. Dalam contoh ini, kita melihat bahwa IPtables disetel sebagai backend firewall default.
  • BATAS direktif memblokir penyerang saat skor serangan mereka melebihi nilai yang ditentukan.
  • BLOCK_TIME option adalah jumlah detik penyerang diblokir setelah setiap upaya login yang gagal berturut-turut. Secara default, ini diatur ke 120 setelah upaya pertama. Ini meningkat dengan setiap upaya login yang gagal berturut-turut.
  • Waktu DETEKSI_TIME opsi mengacu pada waktu dalam detik saat penyerang terdaftar atau diingat oleh sistem sebelum skor mereka disetel ulang.
  • Berkas_WHITELIST opsi arahkan ke jalur lengkap file daftar putih yang berisi host yang tidak seharusnya masuk daftar hitam.

Langkah 3:Konfigurasikan SSHGuard untuk Memblokir Serangan Brute Force SSH

Untuk menangkal serangan brute force, Anda perlu mengonfigurasi firewall berikut agar berfungsi dengan sshguard.

Blokir Serangan SSH Menggunakan UFW

Jika Anda telah menginstal dan mengaktifkan UFW di sistem Ubuntu / Debian Anda, ubah file /etc/ufw/before.rules.

$ sudo vim etc/ufw/before.rules

$ sudo vim etc/ufw/before.rules

Tambahkan baris berikut tepat setelah bagian “allow all on loopback”.

# 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

Simpan file dan mulai ulang UFW.

$ sudo systemctl restart ufw

Sekarang coba masuk ke server dari sistem yang berbeda dengan kredensial yang salah dan perhatikan bahwa Anda akan terkunci selama 120 detik setelah upaya masuk pertama yang gagal.

Anda dapat memverifikasi ini dengan memeriksa file log auth.log.

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

Setelah upaya log yang gagal berikutnya, waktu pemblokiran meningkat menjadi 240 detik, lalu 480 detik, lalu 960 detik, dan seterusnya.

Blokir Serangan SSH Menggunakan Firewalld

Jika Anda menjalankan firewalld, pastikan sudah diatur dan diaktifkan. Kemudian jalankan perintah berikut untuk mengaktifkan sshguard di zona pilihan Anda.

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

Untuk menerapkan perubahan, muat ulang Firewalld dan sshguard.

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

Kemudian verifikasi aturan sebagai berikut:

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

Blokir Serangan SSH Menggunakan Iptables

Jika Anda masih menggunakan Iptables, pertama, buat aturan rantai baru untuk sshguard di Iptables untuk mulai memblokir tamu yang tidak diinginkan.

# iptables -N sshguard

Selanjutnya, perbarui rantai INPUT untuk mengarahkan lalu lintas ke sshguard dan memblokir semua lalu lintas dari pihak jahat.

# iptables -A INPUT -j sshguard

Untuk memblokir port tertentu seperti SSH, POP, dan IMAP dari penyalahguna, jalankan perintah:

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

Dan terakhir, simpan aturan agar perubahan diterapkan.

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

Langkah 4:Cara Mengizinkan Host yang Diblokir SSH

Untuk memasukkan host yang diblokir ke daftar putih, cukup tentukan nama host atau alamat IP-nya di file daftar putih yang terletak di:

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

Setelah itu, pastikan untuk memulai ulang daemon sshguard dan backend firewall agar perubahan diterapkan.

Dalam panduan ini, kami menunjukkan bagaimana Anda dapat memblokir serangan SSH Bruteforce menggunakan SSHGuard di sistem Linux.

Silakan merujuk ke beranda kami untuk panduan lebih lanjut.


Linux
  1. Ssh – Bagaimana Menghubungkan Ke Pc Melalui Pc Lain Menggunakan Ssh?

  2. Ssh – Bagaimana Cara Mempercepat Login Ssh yang Terlalu Lambat?

  3. Bagaimana Cara Ssh Ke Server Menggunakan Server Lain??

  1. Bagaimana cara mereset kata sandi Admin Plesk menggunakan SSH di Server Linux?

  2. Bagaimana cara mengembalikan database MySQL menggunakan perintah di SSH?

  3. Bagaimana cara memaksa pengguna untuk mengubah kata sandi saat pertama kali masuk menggunakan ssh?

  1. Cara Mengatur Blok GeoIP menggunakan Apache

  2. Cara Menghubungkan Host Jarak Jauh Menggunakan Perintah ssh

  3. Bagaimana cara mengunduh file dari server menggunakan SSH?