「Fail2ban」の版間の差分
(同期) |
(同期) |
||
| 13行目: | 13行目: | ||
== インストール == |
== インストール == |
||
| − | + | {{Pkg|fail2ban}} パッケージを[[インストール]]してください。 |
|
誰かが ban されたときに Fail2ban からメールを送信したい場合、[[SSMTP]] などをセットアップする必要があります。 |
誰かが ban されたときに Fail2ban からメールを送信したい場合、[[SSMTP]] などをセットアップする必要があります。 |
||
| 34行目: | 34行目: | ||
}} |
}} |
||
| − | 上の例では、{{ic|CAP_DAC_READ_SEARCH}} で fail2ban に完全な読み取りアクセスを許可し、{{ic|CAP_NET_ADMIN}} と {{ic|CAP_NET_RAW}} で [[iptables]] によるファイアウォールのルールの設定を許可しています。fail2ban の設定によっては、ケイパビリティを追加する必要があるでしょう。詳しくは {{ |
+ | 上の例では、{{ic|CAP_DAC_READ_SEARCH}} で fail2ban に完全な読み取りアクセスを許可し、{{ic|CAP_NET_ADMIN}} と {{ic|CAP_NET_RAW}} で [[iptables]] によるファイアウォールのルールの設定を許可しています。fail2ban の設定によっては、ケイパビリティを追加する必要があるでしょう。詳しくは {{man|7|capabilities}} を見て下さい。 |
=== ファイルシステムのアクセス === |
=== ファイルシステムのアクセス === |
||
| 56行目: | 56行目: | ||
=== パス === |
=== パス === |
||
| + | Arch Linux の基本設定を有効にするには、{{ic|jail.local}} ファイルに以下のセクションを追加・変更: |
||
| − | Arch Linux で最初から使える path は存在しませんが、Fedora のデフォルト設定を使うことができます: |
||
| − | # cp /etc/fail2ban/paths-fedora.conf /etc/fail2ban/paths-archlinux.conf |
||
| − | |||
| − | 設定を有効にするには、{{ic|jail.local}} ファイルに以下のセクションを追加・変更: |
||
[INCLUDES] |
[INCLUDES] |
||
| − | before = paths- |
+ | before = paths-arch.conf |
| − | {{ic|fail2ban.service}} を[[再起動]]して設定をテストしてください。fail2ban サービスが起動に失敗すると ''fail2ban-client'' から "file not found errors" が出力されます。{{ic|paths- |
+ | {{ic|fail2ban.service}} を[[再起動]]して設定をテストしてください。fail2ban サービスが起動に失敗すると ''fail2ban-client'' から "file not found errors" が出力されます。{{ic|paths-arch.conf}} や {{ic|jail.local}} を必要に応じて調整してください。デフォルトの jail は設定を変更しないと動作しない場合があります。 |
=== カスタム SSH jail === |
=== カスタム SSH jail === |
||
| 71行目: | 68行目: | ||
使っているファイアウォールが [[iptables]] の場合: |
使っているファイアウォールが [[iptables]] の場合: |
||
[DEFAULT] |
[DEFAULT] |
||
| − | bantime = |
+ | bantime = 1d |
ignoreip = 127.0.0.1/8 |
ignoreip = 127.0.0.1/8 |
||
| 81行目: | 78行目: | ||
backend = systemd |
backend = systemd |
||
maxretry = 5 |
maxretry = 5 |
||
| + | findtime = 1d |
||
| + | bantime = 2w |
||
| + | fail2ban はバージョン 0.10 から [[IPv6]] をサポートしています。使用しているファイアウォールに応じて、{{ic|ip6tables.service}} などを起動・有効化してください。 |
||
| − | Fail2Ban はバージョン 0.9 から {{ic|1=backend = systemd}} を設定することで systemd の journal から直接情報を読み取ることができるようになっています。 |
||
| − | |||
| − | 使っているファイアウォールが [[shorewall]] の場合: |
||
| − | [DEFAULT] |
||
| − | bantime = 864000 |
||
| − | ignoreip = 127.0.0.1/8 |
||
| − | |||
| − | [ssh-shorewall] |
||
| − | enabled = true |
||
| − | filter = sshd |
||
| − | action = shorewall |
||
| − | sendmail-whois[name=SSH, dest=your@mail.org, sender=fail2ban@mail.com] |
||
| − | backend = systemd |
||
| − | maxretry = 5 |
||
| − | {{Note|{{ic|/etc/shorewall/shorewall.conf}} |
+ | {{Note|ファイアウォールとして [[shorewall]] を使っている場合、{{ic|1=iptables[name=SSH, port=ssh, protocol=tcp]}} を {{ic|shorewall}} に置き換えてください。また、{{ic|/etc/shorewall/shorewall.conf}} の {{ic|BLACKLIST}} を {{ic|ALL}} に設定することができます。この設定を行わないと IP アドレスを ban するルールは新しい接続にしか適用されません。}} |
また、{{ic|/etc/ssh/sshd_config}} に次を追加/変更してください: |
また、{{ic|/etc/ssh/sshd_config}} に次を追加/変更してください: |
||
2017年11月4日 (土) 13:40時点における版
関連記事
Fail2ban は様々なテキストのログファイルをスキャンして、何度もパスワード認証を失敗している IP アドレスを拒否するようファイアウォールのルールを更新して ban します。Sshguard に似ています。
目次
インストール
誰かが ban されたときに Fail2ban からメールを送信したい場合、SSMTP などをセットアップする必要があります。
systemd
fail2ban.service ユニットを有効化してください。
ハードニング
現在、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 の設定によっては、ケイパビリティを追加する必要があるでしょう。詳しくは capabilities(7) を見て下さい。
ファイルシステムのアクセス
[Service] セクションで、ReadOnlyDirectories や ReadWriteDirectories を使うことで、ファイルシステムの読み書きアクセスを制限することができます。例えば:
ReadOnlyDirectories=/ ReadWriteDirectories=/var/run/fail2ban /var/lib/fail2ban /var/spool/postfix/maildrop /tmp /var/log/fail2ban
上の例では、pid やソケットファイルの /var/run/fail2ban と、postfix sendmail の /var/spool/postfix/maildrop を除いて、ファイルシステムを読み取り専用に制限しています。ケイパビリティと同じく、システム設定や fail2ban の設定によって変える必要が出てきます。fail2ban の動作の中には /tmp ディレクトリが必要になるものもあります。fail2ban の行動記録を保存して欲しい場合は /var/log/fail2ban を追加してください。全てのディレクトリが存在していることを確認してください。存在しない場合、サービスの起動時にエラーコード 226 が表示されます。また、/etc/fail2ban/fail2ban.conf の logtarget を修正してください:
logtarget = /var/log/fail2ban/fail2ban.log
設定
デフォルト jail
多数のサービスに対応しているデフォルトの jail は /etc/fail2ban/jail.conf に存在していますが、デフォルトでは有効になっていません。セクションヘッダーを適当な .local ファイルにコピーすることで有効にできます。
パス
Arch Linux の基本設定を有効にするには、jail.local ファイルに以下のセクションを追加・変更:
[INCLUDES] before = paths-arch.conf
fail2ban.service を再起動して設定をテストしてください。fail2ban サービスが起動に失敗すると fail2ban-client から "file not found errors" が出力されます。paths-arch.conf や jail.local を必要に応じて調整してください。デフォルトの jail は設定を変更しないと動作しない場合があります。
カスタム SSH jail
/etc/fail2ban/jail.d/jail.conf を編集して、以下のセクションを追加して信頼する IP アドレスのリストを更新します。
使っているファイアウォールが iptables の場合:
[DEFAULT]
bantime = 1d
ignoreip = 127.0.0.1/8
[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@mail.org, sender=fail2ban@mail.com]
backend = systemd
maxretry = 5
findtime = 1d
bantime = 2w
fail2ban はバージョン 0.10 から IPv6 をサポートしています。使用しているファイアウォールに応じて、ip6tables.service などを起動・有効化してください。
また、/etc/ssh/sshd_config に次を追加/変更してください:
LogLevel VERBOSE
そうしないとパスワード認証の失敗が正しく記録されません。