CentOS 7にfail2banをインストールする


15

この質問に対する@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 fail2banfail2banアクティブであることがわかります。システムからログアウトし、後で再度sshdログインすると、前回のログイン以降にログイン試行が何度も失敗したことがわかります。したがって、fail2banログがあるはずです。しかし、私はそれらを見つけることができないようです。

誰かがこの設定を取得してfail2ban追跡可能なログを生成する方法を教えてもらえますか?


ファイルの許可を確認しましたか?許可が問題であることを見つけるためだけに何度も時間を無駄にしました。
codewaggle 14

1
fail2ban現在EPELリポジトリにあります。そこからインストールしてみてください。現在のバージョンをアンインストールし、構成ファイルなどが残っていないことを確認します。次にEPELからインストールします。CentOS 7マシンで問題なく実行できました。
garethTheRed 14

私は最後のコメントで小さな嘘をついた-私はしばらく前にそれを修正しなければならなかったことを忘れていた。下の長い答え...
garethTheRed

回答:


32

EPELfail2banからインストールしてみてください。CentOS 7用にパッケージ化されており、リリース時にアップデートが提供されます。別のリポジトリをフォームにインストールすることもできますが(この場合は実行されます)、物事を行う最善の方法ではありません。rpm

まず、以下を(ルートとして)発行してEPELリポジトリをインストールします。

yum install epel-release

上記でEPELがインストールされ、多くの新しいパッケージにアクセスできるようになります。これらのパッケージの1つはですfail2ban。したがって、次を実行してインストールします。

yum install fail2ban

デフォルトでは、jailは設定されていないため、基本的なsshdjail を設定するには:

ファイル/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 14

まずFedora 20からバージョンをアンインストールし、ディレクトリ/etc/fail2banが削除されていることを確認します。
garethTheRed 14

そのenabled = true部分は機能しました。sshがデフォルトで設定および有効化されていることをどこでも読みましたが、これは正しくありませんでした。
ラヒルワジール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.