Ssh

在 CentOS 7 上安裝 fail2ban

  • October 14, 2015

我正在使用@GarethTheRed 對這個問題的回答在遠端 CentOS 7 伺服器上安裝 fail2ban。我能夠完成所有步驟,直到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生成我可以跟踪的日誌嗎?

嘗試fail2banEPEL安裝。它是為 CentOS 7 打包的,您將在它們發佈時獲得更新。安裝rpm另一個 repo 的表單可能會起作用(在這種情況下確實如此),但不是最好的做事方式。

首先,通過發出以下命令(以 root 身份)安裝 EPEL 儲存庫:

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

您甚至可能不得不重複上述過程,直到日誌中不再出現錯誤消息。

如果您的伺服器在 Internet 上,則監視 fail2ban-client status sshd. 如果您發現了所有 SELinux 問題,它將很快開始顯示失敗和禁止計數。

請注意,您必須密切關注您的 SELinux 政策更新。如果出現selinux-policy包更新,它可能會覆蓋上述內容,您可能需要再次執行上述命令。你會知道是否是這種情況,因為它fail2ban會再次停止工作!

引用自:https://unix.stackexchange.com/questions/171567