การติดตั้ง fail2ban บน CentOS 7


15

ฉันใช้คำตอบของ @GarethTheRed สำหรับคำถามนี้เพื่อติดตั้ง fail2ban บนเซิร์ฟเวอร์ CentOS 7 ระยะไกล ฉันสามารถทำตามขั้นตอนทั้งหมดจนถึงtail -f /var/log/fail2ban.logจุดที่ฉันได้รับผลลัพธ์ที่แตกต่างจากที่เขาได้รับคำตอบของเขา

นี่คือผลลัพธ์ที่ฉันได้รับในขั้นตอนนี้:

[root@remotecentosserver.com ~]# 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'  

หลังจากที่บรรทัดสุดท้ายที่ฉันเพิ่งได้รับเคอร์เซอร์ Ctrl-Cแต่ไม่พร้อมรับคำสั่งจนกว่าฉันประเภท

เมื่อฉันพิมพ์systemctl status fail2banมันจะบอกฉันว่าfail2banมีการใช้งาน เมื่อฉันออกจากระบบและเข้าสู่ระบบอีกครั้งในภายหลังsshdบอกฉันว่ามีความพยายามล้มเหลวหลายครั้งในการเข้าสู่ระบบตั้งแต่การเข้าสู่ระบบครั้งล่าสุดของฉัน ดังนั้นควรมีfail2banบันทึก แต่ฉันดูเหมือนจะไม่พบพวกเขา

ใครสามารถแสดงวิธีการตั้งค่านี้เพื่อfail2banสร้างบันทึกที่ฉันสามารถติดตามได้


คุณตรวจสอบการอนุญาตของไฟล์หรือไม่? ฉันเสียเวลามากกว่าหนึ่งครั้งเพื่อค้นหาว่าการอนุญาตมีปัญหา
codewaggle

1
fail2banขณะนี้อยู่ใน repo ของ EPEL ลองติดตั้งจากที่นั่น ถอนการติดตั้งเวอร์ชันปัจจุบันและตรวจสอบให้แน่ใจว่าไม่มีไฟล์กำหนดค่าคงเหลืออื่น ๆ จากนั้นติดตั้งจาก EPEL ฉันได้รับมันทำงานบนเครื่อง CentOS 7 โดยไม่มีปัญหาใด ๆ
garethTheRed

ฉันบอกเรื่องเล็ก ๆ น้อย ๆ ในความคิดเห็นสุดท้าย - ฉันลืมไปว่าฉันต้องแก้ไขมันสักพักแล้ว คำตอบยาวด้านล่าง ...
garethTheRed

คำตอบ:


32

ลองติดตั้งfail2banจากEPEL มาพร้อมกับ CentOS 7 และคุณจะได้รับการอัปเดตเมื่อมีการเผยแพร่ การติดตั้งrpmแบบฟอร์ม repo อื่นอาจใช้งานได้ (มันเป็นในกรณีนี้) แต่ไม่ใช่วิธีที่ดีที่สุดในการทำสิ่งต่าง ๆ

ก่อนอื่นให้ติดตั้งที่เก็บ EPEL โดยออกดังต่อไปนี้ (ในฐานะที่เป็น root):

yum install epel-release

ข้างต้นควรติดตั้ง EPEL และให้คุณเข้าถึงแพ็คเกจใหม่มากมาย หนึ่งในแพ็คเกจเหล่านั้นคือfail2banติดตั้งโดยใช้:

yum install fail2ban

โดยปกติแล้วจะไม่มีการกำหนดค่าคุกดังนั้นการกำหนดค่าsshdคุกพื้นฐาน:

สร้าง / แก้ไขไฟล์/etc/fail2ban/jail.localและเพิ่ม:

[sshd]
enabled = true

เริ่มด้วย:

systemctl start fail2ban

ทำให้เริ่มในเวลาบูต:

systemctl enable fail2ban

เคยมีข้อผิดพลาดที่รู้จักกันซึ่ง SELinux จะบล็อกไม่ให้fail2banเข้าถึงไฟล์บันทึกที่จำเป็นในการทำงาน ดูเหมือนว่าจะได้รับการแก้ไขใน CentOS 7 เวอร์ชันล่าสุด คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงด้านล่าง

fail2ban-client status sshdหากคุณมีปัญหานี้อาการมีอะไรที่ปรากฏในบันทึกและไม่มีอะไรปรากฏว่าล้มเหลวหรือถูกปิดกั้นในการส่งออกของ

ในการตรวจสอบข้อผิดพลาดของ SELinux ให้อ่านวารสารด้วย:

journalctl -lfu fail2ban

ดูพวกเขาสำหรับข้อความเช่น:

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

ดังนั้นทำตามที่แนะนำและเรียกใช้:

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

จากนั้นเพื่อความปลอดภัยให้รีสตาร์ทfail2ban:

systemctl restart fail2ban

คุณอาจต้องทำซ้ำกระบวนการข้างต้นจนกว่าจะไม่มีข้อความแสดงข้อผิดพลาดปรากฏในบันทึก

fail2ban-client status sshdหากเซิร์ฟเวอร์ของคุณอยู่บนอินเทอร์เน็ตแล้วตรวจสอบ ในไม่ช้ามันจะเริ่มแสดงว่าล้มเหลวและถูกนับหากคุณพบปัญหาทั้งหมดของ SELinux

โปรดทราบว่าคุณจะต้องคอยติดตามการปรับปรุงนโยบาย SELinux ของคุณ หากการselinux-policyอัปเดตแพ็คเกจปรากฏขึ้นอาจมีการเขียนทับข้อมูลด้านบนและคุณอาจต้องเรียกใช้คำสั่งด้านบนอีกครั้ง คุณจะรู้ว่านี่เป็นกรณีที่fail2banจะหยุดทำงานอีกครั้ง!


ขอบคุณมาก. ฉันควรทำตามขั้นตอนเฉพาะในการถอนการติดตั้ง fail2ban ก่อนหรือไม่ หรือว่าจัดการโดยอัตโนมัติในขั้นตอนที่คุณให้ไว้ข้างต้น?
CodeMed

ฉันจะถอนการติดตั้งเวอร์ชันจาก Fedora 20 ก่อนและตรวจสอบให้แน่ใจว่า/etc/fail2banลบไดเรกทอรีแล้ว
garethTheRed

enabled = trueส่วนนั้นทำงาน ฉันอ่านทุกที่ที่มีการกำหนดค่า ssh และเปิดใช้งานโดยค่าเริ่มต้น แต่นี่ไม่เป็นความจริง
Rahil Wazir
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.