@GarethTheRedの この質問 への回答を使用して、リモートのCentOS 7サーバーにfail2banをインストールしています。私はtail -f /var/log/fail2ban.log
までのすべての手順を完了することができます。その時点で、彼が回答で得た結果とは異なる結果が得られます。
このステップで得られる結果は次のとおりです。
[[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'
最後の行の後、カーソルを取得しますが、Ctrl-C
と入力しない限り、コマンドプロンプトは表示されません。
systemctl status fail2ban
と入力すると、fail2ban
がアクティブであることを通知します。システムからログアウトして後で再びログインすると、sshd
は、前回のログイン以降、ログインに何度も失敗したことを示しています。したがって、fail2ban
ログがあるはずです。しかし、私はそれらを見つけることができないようです。
誰かがこれを設定してfail2ban
が追跡可能なログを生成するように設定する方法を教えてもらえますか?
[〜#〜] epel [〜#〜] からfail2ban
をインストールしてみてください。これはCentOS 7用にパッケージ化されており、リリースされるたびに更新されます。別のリポジトリからrpm
をインストールすると機能する場合があります(この場合は機能しました)が、最善の方法ではありません。
まず最初に、以下を(ルートとして)発行してEPELリポジトリをインストールします。
yum install epel-release
上記はEPELをインストールして 多くの新しいパッケージ へのアクセスを提供します。これらのパッケージの1つはfail2ban
であるため、次のコマンドを実行してインストールします。
yum install fail2ban
デフォルトでは、jailは設定されていないため、基本的なsshd
jailを設定するには、次のようにします。
ファイル/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
が再び機能しなくなるため、これが当てはまるかどうかがわかります。