GNU/Linux >> Belajar Linux >  >> Linux

Cara Melindungi Apache dan SSH Dengan Fail2Ban di CentOS 8

Jika Anda seorang administrator sistem, maka melindungi server Anda dari berbagai jenis serangan adalah bagian penting dari pekerjaan Anda; Firewall Fail2Ban dapat membantu Anda mencapai ini. Fail2Ban adalah sistem pencegahan intrusi yang ditulis dalam bahasa Python yang digunakan untuk memblokir IP berbahaya yang mencoba menembus keamanan sistem Anda. Ia bekerja dengan memindai berbagai file log dan memblokir IP yang mencoba melakukan upaya login yang sering untuk waktu tertentu. Ini juga memungkinkan Anda untuk memantau kekuatan dan frekuensi serangan. Karena kesederhanaannya, ini dianggap sebagai perangkat lunak pilihan untuk mengamankan server Anda dari DOS, DDOS, dan serangan brute force.

Dalam tutorial ini, kami akan menunjukkan cara mengamankan server SSH dan Apache dengan Fail2Ban di CentOS 8.

Prasyarat

  • VPS CentOS 8 baru di Platform Cloud Atlantic.net.
  • Kata sandi root yang dikonfigurasi di server Anda.

Langkah 1 – Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih CentOS 8 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server CentOS 8 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

dnf update -y

Langkah 2 – Instal Fail2Ban

Anda dapat menginstalnya dengan perintah berikut:

dnf install epel-release -y

Setelah menginstal repositori EPEL, Anda dapat menginstal Fail2Ban dengan perintah berikut:

dnf install fail2ban -y

Setelah terinstal, mulai layanan Fail2Ban dan aktifkan untuk memulai setelah sistem reboot:

systemctl start fail2ban
systemctl enable fail2ban

Langkah 3 – Amankan SSH dengan Fail2Ban

Di bagian ini, kita akan mempelajari cara mengamankan server SSH dengan Fail2Ban.

Konfigurasikan Fail2Ban untuk SSH

Anda dapat membuat file jail.local untuk SSH dengan perintah berikut:

nano /etc/fail2ban/jail.local

Tambahkan baris berikut:

[DEFAULT]
ignoreip = your-server-ip
bantime = 300
findtime = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd]
enabled = true

Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Fail2Ban untuk menerapkan perubahan:

systemctl restart fail2ban

Anda sekarang dapat memeriksa status jail SSH dengan perintah berikut:

fail2ban-client status

Anda akan melihat bahwa jail SSH diaktifkan:

Status
|- Number of jail:        1
`- Jail list:        sshd

Penjelasan singkat dari setiap parameter ditunjukkan di bawah ini:

  • abaikan :Digunakan untuk menentukan alamat IP yang ingin Anda abaikan.
  • jamban :Digunakan untuk menentukan berapa detik alamat IP yang akan diblokir.
  • waktu mencari :Digunakan untuk menentukan jumlah waktu antara upaya login sebelum IP diblokir.
  • maxretry :Digunakan untuk menentukan jumlah percobaan yang harus dilakukan sebelum alamat IP diblokir.
  • larangan :Melarang tindakan.
  • diaktifkan :Opsi ini mengaktifkan perlindungan untuk layanan SSH.

Uji SSH Terhadap Serangan Kata Sandi

Pada titik ini, Fail2Ban diinstal dan dikonfigurasi. Saatnya untuk menguji apakah itu berfungsi atau tidak.

Untuk melakukannya, buka mesin jarak jauh dan coba SSH ke alamat IP server:

ssh [email protected]

Anda akan diminta untuk memberikan kata sandi root. Ketik kata sandi yang salah lagi dan lagi. Setelah Anda mencapai batas upaya login, alamat IP Anda akan diblokir.

Anda dapat memverifikasi alamat IP yang diblokir dengan perintah berikut:

fail2ban-client status sshd

Anda akan melihat IP yang diblokir pada output berikut:

Status for the jail: sshd
|- Filter
|  |- Currently failed:   7
|  |- Total failed:          39
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:        2
   `- Banned IP list:     190.8.80.42

Anda juga dapat memeriksa log SSH untuk login yang gagal:

tail -5 /var/log/secure | grep 'Failed password'

Anda akan melihat output berikut:

Mar  1 03:55:03 centos8 sshd[11196]: Failed password for invalid user bpadmin from 190.8.80.42 port 55738 ssh2

Anda juga dapat memblokir dan membuka blokir alamat IP tertentu secara manual.

Misalnya, untuk membuka blokir IP 190.8.80.42, jalankan perintah berikut:

fail2ban-client set sshd unbanip 190.8.80.42

Untuk memblokir IP 190.8.80.42, jalankan perintah berikut:

fail2ban-client set sshd banip 190.8.80.42

Langkah 4 – Amankan Apache dengan Fail2Ban

Anda juga dapat mengamankan server web Apache dari berbagai jenis serangan. Anda perlu mengkonfigurasi file jail.local untuk Apache seperti yang ditunjukkan di bawah ini:

nano /etc/fail2ban/jail.local

Tambahkan baris berikut di akhir file:

[apache-auth]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

[apache-badbots]
enabled = true
port    = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1

[apache-noscript]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Fail2Ban untuk menerapkan perubahan:

systemctl restart fail2ban

Anda sekarang dapat memverifikasi status semua penjara dengan perintah berikut:

fail2ban-client status

Anda akan melihat output berikut:

Status
|- Number of jail:        5
`- Jail list:        apache-auth, apache-badbots, apache-noscript, sshd

Penjelasan singkat masing-masing penjara ditunjukkan di bawah ini:

  • apache-auth :Penjara ini digunakan untuk melindungi Apache dari upaya login yang gagal.
  • apache-badbots :Penjara ini digunakan untuk melarang host yang agennya mengidentifikasi robot spammer yang merayapi web untuk alamat email.
  • apache-noscript :Digunakan untuk memblokir IP yang mencoba mencari skrip di situs web untuk dieksekusi.

Kesimpulan

Dalam tutorial di atas, kita belajar cara melindungi server SSH dan Apache dengan Fail2Ban. Ini adalah sistem pencegahan intrusi yang sangat berguna yang menambahkan keamanan ekstra ke sistem Linux Anda. Anda sekarang dapat mengonfigurasi Fail2Ban yang sesuai dengan kebutuhan keamanan spesifik Anda. Mulai Fail2Ban hari ini dengan VPS Hosting dari Atlantic.Net!


Linux
  1. Cara Menggunakan Fail2ban untuk Mengamankan SSH di CentOS 7

  2. Bagaimana Cara Menginstal dan Mengkonfigurasi Fail2ban di CentOS 8?

  3. Bagaimana cara menyelidiki kebocoran memori dengan Apache dan PHP?

  1. Cara Menginstal dan Mengonfigurasi Fail2ban di CentOS 8

  2. Cara Menginstal Apache Hive dengan Hadoop di CentOS, Ubuntu dan LinuxMint

  3. Cara Menginstal Apache 2.4.2 dari Sumber di CentOS 6.2 dengan SSL

  1. Cara Menginstal dan Mengamankan phpMyAdmin dengan Apache di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi Nextcloud dengan Apache di CentOS 7

  3. Cara Menginstal WordPress dengan Apache di CentOS 7