「Fail2ban」の版間の差分
細 (1版 をインポートしました) |
|||
| 2行目: | 2行目: | ||
[[en:Fail2ban]] |
[[en:Fail2ban]] |
||
[[ro:Fail2ban]] |
[[ro:Fail2ban]] |
||
| + | [[ru:Fail2ban]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|Sshguard}} |
{{Related|Sshguard}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
| − | {{warning|IP ブラックリストを使えば取るに足らない攻撃を防ぐことはできますが、別にデーモンを使う必要がありログは残ります (特に攻撃者が何度もサーバーにアタックした場合 {{ic|/var}} を含むパーティションが一杯になってしまう可能性もあります)。さらに、攻撃者が IP アドレスを知っている場合、ソースヘッダーを偽装したパケットを送りつけてサーバーからロックアウトさせるよう仕向けてくるかもしれません。[[SSH |
+ | {{warning|IP ブラックリストを使えば取るに足らない攻撃を防ぐことはできますが、別にデーモンを使う必要がありログは残ります (特に攻撃者が何度もサーバーにアタックした場合 {{ic|/var}} を含むパーティションが一杯になってしまう可能性もあります)。さらに、攻撃者が IP アドレスを知っている場合、ソースヘッダーを偽装したパケットを送りつけてサーバーからロックアウトさせるよう仕向けてくるかもしれません。[[SSH 鍵]]はこれらの問題に煩わされることなくブルートフォースの問題を解決する方法を提供します。}} |
| − | [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] は様々なテキストのログファイルをスキャンして、何度もパスワード認証を失敗している IP アドレスを拒否するようファイアウォールのルールを更新して ban します。[[ |
+ | [http://www.fail2ban.org/wiki/index.php/Main_Page Fail2ban] は様々なテキストのログファイルをスキャンして、何度もパスワード認証を失敗している IP アドレスを拒否するようファイアウォールのルールを更新して ban します。[[Sshguard]] に似ています。 |
{{Warning|正しく機能させるためにログの IP アドレスを正確にパースさせることが重要です。保護したいアプリケーションごとにログフィルターがちゃんと動くかどうかテストするようにしてください。}} |
{{Warning|正しく機能させるためにログの IP アドレスを正確にパースさせることが重要です。保護したいアプリケーションごとにログフィルターがちゃんと動くかどうかテストするようにしてください。}} |
||
| 18行目: | 19行目: | ||
=== systemd === |
=== systemd === |
||
| − | {{ic|fail2ban.service}} サービスユニットを使って下さい。使い方は [[ |
+ | {{ic|fail2ban.service}} サービスユニットを使って下さい。使い方は [[systemd]] を参照。 |
== ハードニング == |
== ハードニング == |
||
| 33行目: | 34行目: | ||
}} |
}} |
||
| − | 上の例では、{{ic|CAP_DAC_READ_SEARCH}} で fail2ban に完全な読み取りアクセスを許可し、{{ic|CAP_NET_ADMIN}} と {{ic|CAP_NET_RAW}} で [[ |
+ | 上の例では、{{ic|CAP_DAC_READ_SEARCH}} で fail2ban に完全な読み取りアクセスを許可し、{{ic|CAP_NET_ADMIN}} と {{ic|CAP_NET_RAW}} で [[iptables]] によるファイアウォールのルールの設定を許可しています。fail2ban の設定によっては、ケイパビリティを追加する必要があるでしょう。詳しくは {{ic|man capabilities}} を見て下さい。 |
=== ファイルシステムのアクセス === |
=== ファイルシステムのアクセス === |
||
2015年11月13日 (金) 18:14時点における版
関連記事
Fail2ban は様々なテキストのログファイルをスキャンして、何度もパスワード認証を失敗している IP アドレスを拒否するようファイアウォールのルールを更新して ban します。Sshguard に似ています。
インストール
公式リポジトリから fail2ban をインストールしてください。
誰かが ban されたときに Fail2ban にメールを送って欲しいときは、SSMTP (など) をセットアップする必要があります。
systemd
fail2ban.service サービスユニットを使って下さい。使い方は systemd を参照。
ハードニング
現在、fail2ban は root で実行する必要があり、systemd でプロセスをハードニングする余地があります。参照: systemd for Administrators, Part XII
ケイパビリティ
セキュリティを強化するために既存の fail2ban.service のドロップイン設定ファイルで CapabilityBoundingSet を指定することで fail2ban のケイパビリティを制限できます:
/etc/systemd/system/fail2ban.service.d/capabilities.conf
[Service] CapabilityBoundingSet=CAP_DAC_READ_SEARCH CAP_NET_ADMIN CAP_NET_RAW
上の例では、CAP_DAC_READ_SEARCH で fail2ban に完全な読み取りアクセスを許可し、CAP_NET_ADMIN と CAP_NET_RAW で iptables によるファイアウォールのルールの設定を許可しています。fail2ban の設定によっては、ケイパビリティを追加する必要があるでしょう。詳しくは man capabilities を見て下さい。
ファイルシステムのアクセス
[Service] セクションで、ReadOnlyDirectories や ReadWriteDirectories を使うことで、ファイルシステムの読み書きアクセスを制限することができます。例えば:
ReadOnlyDirectories=/ ReadWriteDirectories=/var/run/fail2ban /var/lib/fail2ban /var/spool/postfix/maildrop /tmp
上の例では、pid やソケットファイルの /var/run/fail2ban と、postfix sendmail の /var/spool/postfix/maildrop を除いて、ファイルシステムを読み取り専用に制限しています。ケイパビリティと同じく、システム設定や fail2ban の設定によって変える必要が出てきます。fail2ban の動作の中には /tmp ディレクトリが必要になるものもあります。fail2ban の行動記録を保存して欲しい場合は /var/log を追加してください。
SSH jail
/etc/fail2ban/jail.conf を編集して ssh-iptables セクションを修正して ssh-iptables を有効化してアクションを設定します。
使っているファイアウォールが iptables の場合:
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@mail.org, sender=fail2ban@mail.com]
logpath = /var/log/auth.log
maxretry = 5
Fail2Ban はバージョン 0.9 から backend = systemd を設定することで systemd の journal から直接読み取ることができるようになっています。
使っているファイアウォールが shorewall の場合:
[ssh-shorewall]
enabled = true
filter = sshd
action = shorewall
sendmail-whois[name=SSH, dest=your@mail.org, sender=fail2ban@mail.com]
logpath = /var/log/auth.log
maxretry = 5
また、/etc/ssh/sshd_config に次を追加/変更してください:
LogLevel VERBOSE
そうしないとパスワード認証の失敗が正しく記録されません。