Menginstal fail2ban pada CentOS 7

15

Saya menggunakan jawaban @GarethTheRed untuk pertanyaan ini untuk menginstal fail2ban pada server CentOS 7 jarak jauh. Saya dapat menyelesaikan semua langkah sampai tail -f /var/log/fail2ban.log, pada titik mana saya mendapatkan hasil yang berbeda dari yang dia dapatkan dalam jawabannya.

Inilah hasil yang saya dapatkan pada langkah ini:

[[email protected] ~]# tail -f /var/log/fail2ban.log
2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2'  

Setelah baris terakhir, saya hanya mendapatkan kursor tapi tidak ada command prompt kecuali saya mengetik Ctrl-C.

Ketika saya mengetik systemctl status fail2ban, itu memberitahu saya bahwa fail2banitu aktif. Ketika saya keluar dari sistem dan masuk lagi nanti, sshdberi tahu saya bahwa ada banyak upaya gagal untuk masuk sejak login terakhir saya. Jadi harus ada fail2banlog. Tetapi sepertinya saya tidak dapat menemukan mereka.

Bisakah seseorang menunjukkan kepada saya bagaimana cara mengatur ini sehingga fail2banmenghasilkan log yang bisa saya lacak?

CodeMed
sumber
Apakah Anda memeriksa izin file? Saya sudah membuang waktu lebih dari sekali hanya untuk menemukan bahwa izin adalah masalahnya.
codewaggle
1
fail2bansekarang dalam repo EPEL. Coba pasang dari sana. Copot versi yang sekarang dan pastikan tidak ada file konfigurasi yang tersisa, dll. Kemudian instal dari EPEL. Saya menjalankannya pada mesin CentOS 7 tanpa masalah.
garethTheRed
Saya mengatakan kebohongan kecil di komentar terakhir - Saya lupa bahwa saya harus memperbaikinya beberapa waktu yang lalu. Jawaban panjang di bawah ...
garethTheRed

Jawaban:

32

Coba instal fail2bandari EPEL . Dikemas untuk CentOS 7 dan Anda akan mendapatkan pembaruan saat dirilis. Menginstal rpmformulir repo lain mungkin berfungsi (itu dalam kasus ini) tetapi bukan cara terbaik untuk melakukan sesuatu.

Pertama-tama, instal repositori EPEL dengan mengeluarkan yang berikut (sebagai root):

yum install epel-release

Di atas harus menginstal EPEL dan memberi Anda akses ke banyak paket baru . Salah satu paket tersebut adalah fail2ban, oleh karena itu instal dengan menjalankan:

yum install fail2ban

Secara default tidak ada jail yang dikonfigurasi, oleh karena itu untuk mengkonfigurasi sshdjail dasar :

Buat / edit file /etc/fail2ban/jail.localdan tambahkan:

[sshd]
enabled = true

Mulai dengan:

systemctl start fail2ban

Mulai saat boot:

systemctl enable fail2ban

Dulu ada bug yang dikenal di mana SELinux akan memblokir fail2banmengakses file log yang diperlukan untuk melakukan tugasnya. Ini tampaknya diperbaiki di versi terbaru dari CentOS 7; Anda tidak perlu melakukan perubahan di bawah ini.

Jika Anda memiliki masalah ini, gejala tidak muncul di log dan tidak ada yang muncul sebagai gagal atau diblokir di output fail2ban-client status sshd.

Untuk memeriksa kesalahan SELinux, baca jurnal dengan:

journalctl -lfu fail2ban

Awasi mereka untuk pesan seperti:

SELinux is preventing /usr/bin/python2.7 from getattr access on the file .
       *****  Plugin catchall (100. confidence) suggests   **************************
       If you believe that python2.7 should be allowed getattr access on the  file by default.
       Then you should report this as a bug.
       You can generate a local policy module to allow this access.
       Do 
       allow this access for now by executing:
       # grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
       # semodule -i mypol.pp

Karena itu lakukan seperti yang disarankan dan jalankan:

grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

Kemudian, agar aman, mulai ulang fail2ban:

systemctl restart fail2ban

Anda bahkan mungkin harus mengulangi proses di atas sampai tidak ada lagi pesan kesalahan yang muncul di log.

Jika server Anda ada di internet maka monitorlah fail2ban-client status sshd. Ini akan segera mulai menunjukkan jumlah gagal dan terlarang jika Anda telah menangkap semua masalah SELinux.

Perhatikan bahwa Anda harus mengawasi pembaruan kebijakan SELinux Anda. Jika selinux-policypembaruan paket muncul, itu mungkin menimpa di atas dan Anda mungkin perlu menjalankan perintah di atas lagi. Anda akan tahu jika ini masalahnya karena fail2banakan berhenti bekerja lagi!

garethTheRed
sumber
Terima kasih banyak. Haruskah saya mengambil langkah-langkah spesifik untuk menghapus uninstall2 terlebih dahulu? Atau apakah itu ditangani secara otomatis dalam langkah-langkah yang Anda berikan di atas?
CodeMed
Saya akan menghapus versi dari Fedora 20 terlebih dahulu dan memastikan bahwa direktori /etc/fail2bantersebut dihapus.
garethTheRed
Itu enabled = truebagian bekerja. Saya membaca di mana-mana ssh yang dikonfigurasi dan diaktifkan secara default tetapi ini tidak benar.
Rahil Wazir