Fail2ban - ssh のセキュリティ対策をまとめてみた
先日投稿した「ssh のセキュリティ対策をまとめてみた」の続きです。Alma Linux 9.3 のホストの ssh のセキュリティ対策として Fail2ban[1] を導入します。今回もいくつかのサイトを巡って Fail2ban のインストールや設定方法をまとめてみました。
Fail2ban
Fail2ban は「ホストに対して一定期間に、何かに一定回数のちょっかいを掛けてきた相手を、一定期間 BAN する」機能を持ったソフトウェアです。「何かに」は Apache であったり Postfix でであったりします。今回は ssh になります。「ちょっかいを掛けてきた」かどうかはログを監視して判断します。
インストール
EPEL のインストール
いきなり Fail2ban をインストールしようとしてもできません。
[opadmin@node1 ~]$ sudo dnf -y install fail2ban
Last metadata expiration check: 0:12:22 ago on Sat May 11 09:37:04 2024.
No match for argument: fail2ban
Error: Unable to find a match: fail2ban
[opadmin@node1 ~]$
先に EPEL(Extra Packages for Enterprise Linux)[2] をインストールします。
sudo dnf config-manager --set-enabled crb
sudo dnf -y install epel-release
[opadmin@node1 ~]$ sudo dnf config-manager --set-enabled crb
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo dnf -y install epel-release
AlmaLinux 9 - CRB 1.7 MB/s | 2.4 MB 00:01
Last metadata expiration check: 0:00:01 ago on Sat May 11 09:56:30 2024.
Dependencies resolved.
============================================================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================================================
Installing:
epel-release noarch 9-5.el9 extras 18 k
Transaction Summary
============================================================================================================================================================
Install 1 Package
※※※ 途中省略 ※※※
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : epel-release-9-5.el9.noarch 1/1
Running scriptlet: epel-release-9-5.el9.noarch 1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.
Verifying : epel-release-9-5.el9.noarch 1/1
Installed:
epel-release-9-5.el9.noarch
Complete!
[opadmin@node1 ~]$
Fail2ban のインストール
EPEL のインストールが終了したら、次に Fail2ban をインストールします。
sudo dnf -y install fail2ban
[opadmin@node1 ~]$ sudo dnf -y install fail2ban
Extra Packages for Enterprise Linux 9 - x86_64 3.1 MB/s | 21 MB 00:06
Last metadata expiration check: 0:00:15 ago on Sat May 11 09:57:37 2024.
Dependencies resolved.
============================================================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================================================
Installing:
fail2ban noarch 1.0.2-12.el9 epel 8.8 k
Upgrading:
audit x86_64 3.1.2-2.el9 baseos 253 k
audit-libs x86_64 3.1.2-2.el9 baseos 117 k
libselinux x86_64 3.6-1.el9 baseos 85 k
libselinux-utils x86_64 3.6-1.el9 baseos 161 k
libsemanage x86_64 3.6-1.el9 baseos 117 k
libsepol x86_64 3.6-1.el9 baseos 329 k
policycoreutils x86_64 3.6-2.1.el9 baseos 208 k
python3-libselinux x86_64 3.6-1.el9 appstream 186 k
※※※ 途中省略 ※※※
Verifying : selinux-policy-38.1.23-1.el9.noarch 34/36
Verifying : selinux-policy-targeted-38.1.35-2.el9_4.noarch 35/36
Verifying : selinux-policy-targeted-38.1.23-1.el9.noarch 36/36
Upgraded:
audit-3.1.2-2.el9.x86_64 audit-libs-3.1.2-2.el9.x86_64 libselinux-3.6-1.el9.x86_64
libselinux-utils-3.6-1.el9.x86_64 libsemanage-3.6-1.el9.x86_64 libsepol-3.6-1.el9.x86_64
policycoreutils-3.6-2.1.el9.x86_64 python3-libselinux-3.6-1.el9.x86_64 selinux-policy-38.1.35-2.el9_4.noarch
selinux-policy-targeted-38.1.35-2.el9_4.noarch
Installed:
checkpolicy-3.6-1.el9.x86_64 esmtp-1.2-19.el9.x86_64 fail2ban-1.0.2-12.el9.noarch
fail2ban-firewalld-1.0.2-12.el9.noarch fail2ban-selinux-1.0.2-12.el9.noarch fail2ban-sendmail-1.0.2-12.el9.noarch
fail2ban-server-1.0.2-12.el9.noarch libesmtp-1.0.6-24.el9.x86_64 liblockfile-1.14-10.el9.x86_64
policycoreutils-python-utils-3.6-2.1.el9.noarch python3-audit-3.1.2-2.el9.x86_64 python3-distro-1.5.0-7.el9.noarch
python3-libsemanage-3.6-1.el9.x86_64 python3-policycoreutils-3.6-2.1.el9.noarch python3-setools-4.4.4-1.el9.x86_64
python3-setuptools-53.0.0-12.el9.noarch
Complete!
[opadmin@node1 ~]$
確認
バージョン
インストールした Fail2ban のバージョンを確認します。
fail2ban-server --version
fail2ban-client --version
fail2ban-regex --version
fail2ban-python --version
[opadmin@node1 ~]$ fail2ban-server --version
Fail2Ban v1.0.2
[opadmin@node1 ~]$
[opadmin@node1 ~]$ fail2ban-client --version
Fail2Ban v1.0.2
[opadmin@node1 ~]$
[opadmin@node1 ~]$ fail2ban-regex --version
fail2ban-regex 1.0.2
[opadmin@node1 ~]$
[opadmin@node1 ~]$ fail2ban-python --version
Python 3.9.18
[opadmin@node1 ~]$
設定ファイル
設定ファイルは /etc/fail2ban/ ディレクトリーにインストールされました。
ls -l /etc/fail2ban/
[opadmin@node1 ~]$ ls -l /etc/fail2ban/
total 56
drwxr-xr-x. 2 root root 4096 May 11 09:58 action.d
-rw-r--r--. 1 root root 3017 Feb 24 05:51 fail2ban.conf
drwxr-xr-x. 2 root root 6 Feb 24 05:51 fail2ban.d
drwxr-xr-x. 3 root root 4096 May 11 09:58 filter.d
-rw-r--r--. 1 root root 25607 Feb 24 05:51 jail.conf
drwxr-xr-x. 2 root root 31 May 11 09:58 jail.d
-rw-r--r--. 1 root root 2728 Feb 24 05:51 paths-common.conf
-rw-r--r--. 1 root root 930 Feb 24 05:51 paths-fedora.conf
[opadmin@node1 ~]$
fai2ban.conf と jail.conf の先頭部分のコメント
fail2ban.conf
fail2ban.conf の先頭部分のコメントです。
# Fail2Ban main configuration file
#
# Comments: use '#' for comment lines and ';' (following a space) for inline comments
#
# Changes: in most of the cases you should not modify this
# file, but provide customizations in fail2ban.local file, e.g.:
#
# [DEFAULT]
# loglevel = DEBUG
#
要約すると次のようなことと記述例が書かれています。
- このファイル( fail2ban.conf )は変更しないこと
- 変更する場合は fail2ban.local ファイルを作成し、その中に変更内容を記述すること
jail.conf
jail.conf の先頭部分のコメントです。
#
# WARNING: heavily refactored in 0.9.0 release. Please review and
# customize settings for your setup.
#
# Changes: in most of the cases you should not modify this
# file, but provide customizations in jail.local file,
# or separate .conf files under jail.d/ directory, e.g.:
#
# HOW TO ACTIVATE JAILS:
#
# YOU SHOULD NOT MODIFY THIS FILE.
#
# It will probably be overwritten or improved in a distribution update.
#
# Provide customizations in a jail.local file or a jail.d/customisation.local.
# For example to change the default bantime for all jails and to enable the
# ssh-iptables jail the following (uncommented) would appear in the .local file.
# See man 5 jail.conf for details.
#
# [DEFAULT]
# bantime = 1h
#
# [sshd]
# enabled = true
#
# See jail.conf(5) man page for more information
要約すると次のようなことと記述例が書かれています。
- このファイル( jail.conf )は変更しないこと
- 変更する場合は jail.local ファイルを作成するか、/etc/fail2ban/jail.d/ ディレクトリー内に変更用の .local ファイルを作成し、その中に変更内容を記述すること
/etc/fail2ban/jail.d/ ディレクトリー内は以下のとおりです。.conf ファイルが 1 つ登録されているだけで、.local ファイルは登録されていません。
[opadmin@node1 ~]$ ls -l /etc/fail2ban/jail.d/
total 4
-rw-r--r--. 1 root root 319 Feb 24 05:51 00-firewalld.conf
[opadmin@node1 ~]$
[opadmin@node1 ~]$ cat /etc/fail2ban/jail.d/00-firewalld.conf
# This file is part of the fail2ban-firewalld package to configure the use of
# the firewalld actions as the default actions. You can remove this package
# (along with the empty fail2ban meta-package) if you do not use firewalld
[DEFAULT]
banaction = firewallcmd-rich-rules
banaction_allports = firewallcmd-rich-rules
[opadmin@node1 ~]$
内容確認
最初に書いた「ホストに対して一定期間に、何かに一定回数のちょっかいを掛けてきた相手を、一定期間 BAN する」のでフォルト設定は /etc/fail2ban/jail.conf ファイルに記述されています。説明のコメント込みで 1000 行ほどのあるので、一部を抜粋して見ていきます。なお、すべての設定は「無効」になっています。
DEFAULT セクション
全体に関わる設定を記述します。特に把握が必要(= 基本的な)なパラメーターを抜粋しました。
[DEFAULT]
※※※ 途中省略 ※※※
# "bantime" is the number of seconds that a host is banned.
bantime = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5
※※※ 途中省略 ※※※
# "backend" specifies the backend used to get files modification.
# Available options are "pyinotify", "gamin", "polling", "systemd" and "auto".
# This option can be overridden in each jail as well.
#
# pyinotify: requires pyinotify (a file alteration monitor) to be installed.
# If pyinotify is not installed, Fail2ban will use auto.
# gamin: requires Gamin (a file alteration monitor) to be installed.
# If Gamin is not installed, Fail2ban will use auto.
# polling: uses a polling algorithm which does not require external libraries.
# systemd: uses systemd python library to access the systemd journal.
# Specifying "logpath" is not valid for this backend.
# See "journalmatch" in the jails associated filter config
# auto: will try to use the following backends, in order:
# pyinotify, gamin, polling.
#
# Note: if systemd backend is chosen as the default but you enable a jail
# for which logs are present only in its own log files, specify some other
# backend for that jail (e.g. polling) and provide empty value for
# journalmatch. See https://github.com/fail2ban/fail2ban/issues/959#issuecomment-74901200
backend = auto
※※※ 途中省略 ※※※
# "enabled" enables the jails.
# By default all jails are disabled, and it should stay this way.
# Enable only relevant to your setup jails in your .local or jail.d/*.conf
#
# true: jail will be enabled and log files will get monitored for changes
# false: jail is not enabled
enabled = false
※※※ 以下省略 ※※※
「一定期間」は findtime
、「一定回数」は maxretry
、「一定期間 BAN 」の「一定期間」は bantime
で設定します。上記(デフォルト)場合、「ホストに対して 10 分以内に、何かを 5 回失敗したら、10 分間 BAN する」設定です。ただし、enabled
が false
なので、設定は無効になっています。これが、すべての「何か」に適用されます。
パラメーター | 設定する値 |
---|---|
bantime | ホストから BAN (接続禁止)される時間 |
findtime | 失敗回数をカウントする時間 |
maxretry | findtime で指定した時間のホストから BAN されるまで失敗回数 |
backend | ログファイルの変更を検出するバックエンド auto ・"polling "の前に "pyinotify", "gamin", "systemd "を試す polling ・外部ライブラリを必要としないポーリングアルゴリズムを使用する pyinotify ・pyinotify Python ライブラリを持つ Linux システムでのみ有効 ・pyinotify がインストールされていない場合は auto を使用する gamin ・gamin ライブラリが必要 ・gamin がインストールされていない場合は auto を使用する systemd ・systemd Python ライブラリを使用して systemd ジャーナルにアクセスする ・ backend にこの値を指定した場合 logpath パラメーターを無視する |
enabled | 設定を有効 / 無効にする true 設定を有効にし、ログファイルを監視する false 設定を無効にする |
bantime / findtime の単位
デフォルトは単位なしで「秒」で指定します。数値 + 単位でより長期間を指定できます。
単位 | 意味 | 例 |
---|---|---|
指定しない | 秒 | 10 → 10 秒 |
m | 分 | 10m → 10 分 |
h | 時間 | 10h → 10 時間 |
d | 日 | 10d → 10 日 |
mo | 月 | 10mo → 10 ヶ月 |
y | 年 | 10y → 10 年 |
単位は複数組み合わせて使用できます。例えば、 1y6mo や 1d12h30m のような指定が可能です。
個別の設定の始まりのマーキング
DEFAULT セクションの後に、以下のコメントが現れます。これは「ホストに対して一定期間に、何かに一定回数のちょっかいを掛けてきた相手を、一定期間 BAN する」の「何かに」の部分の定義の始まりです。このコメント以降に「何か」ごとの定義が記述されています。
#
# JAILS
#
sshd セクション
SSH Server に関する記述の中から ssh 部分の抜粋です。
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
recidive セクション
BAN されたのに再度ちょっかいを掛けてきて BAN されたときの対応を定義します。通常よりも長い期間 BAN されるよう設定されています。
# Jail for more extended banning of persistent abusers
# !!! WARNINGS !!!
# 1. Make sure that your loglevel specified in fail2ban.conf/.local
# is not at DEBUG level -- which might then cause fail2ban to fall into
# an infinite loop constantly feeding itself with non-informative lines
# 2. Increase dbpurgeage defined in fail2ban.conf to e.g. 648000 (7.5 days)
# to maintain entries for failed logins for sufficient amount of time
[recidive]
logpath = /var/log/fail2ban.log
banaction = %(banaction_allports)s
bantime = 1w
findtime = 1d
設定
設定は /etc/fail2ban/jail.local ファイルを作成するか /etc/fail2ban/jail.d/ ディレクトリー内に .local ファイルを作成し、その中に記述します。
設定上の注意
- /etc/fai2ban/jail.conf 等の .conf ファイルは Fail2ban が配布するファイルであり、将来変更される可能性があるので編集しない
- .local ファイルを用意し、変更する内容を記述する
- /etc/fail2ban/jail.local
- /etc/fail2ban/jail.d/*.local
- /etc/fail2ban/filter.d/*.local
- /etc/fail2ban/action.d/*.local
適用順序
jail 関係のファイルを次の順序で適用します。ファイルは異なるが同一 jail (セクション)内で同一パラメーターが使用されている場合、後から出現したものを優先します。
- /etc/fail2ban/jail.conf
- /etc/fail2ban/jail.d/*.conf
- /etc/fail2ban/jail.local
- /etc/fail2ban/jail.d/*.local
/etc/jail2ban/jail.d/ ディレクトリ内のファイルはアルファベット順に適用します。
セクション
[
と ]
で括って、セクションを定義します。以下はセクションの一例です。
[DEFAULT]
[sshd]
/etc/fail2ban/jail.conf 内を確認すると多数のセクションが定義されているのを確認できます。今回インストールした Fail2ban は全部で 92 のセクションが定義されています。このセクションのことを Fail2ban では jail と表現します。
定義
各 jail 内でパラメーターを使用して監視するログファイルを指定したり、BAN するまで失敗回数を指定したりします。DEFAULT の jail と個別の jail で同じパラメーターを設定した場合、個別の jail で設定したものを優先します(DEFAULT の設定内容を個別設定で上書きします)。
パラメーター名 = 設定する値
パラメーター
パラメーター | 設定する値 |
---|---|
enabled | 個別のセクションの設定を有効 / 無効にする true 設定を有効にし、ログファイルを監視する false 設定を無効にする |
bantime | ホストから BAN (接続禁止)される時間 |
findtime | 失敗回数をカウントする時間 |
maxretry | findtime で指定した時間のホストから BAN されるまで失敗回数 |
backend | ログファイルの変更を検出するバックエンド auto ・"polling "の前に "pyinotify", "gamin", "systemd" を試す polling ・外部ライブラリを必要としないポーリングアルゴリズムを使用する pyinotify ・pyinotify Python ライブラリを持つ Linux システムでのみ有効 ・pyinotify がインストールされていない場合は auto を使用する gamin ・gamin ライブラリが必要 ・gamin がインストールされていない場合は auto を使用する systemd ・systemd Python ライブラリを使用して systemd ジャーナルにアクセスする ・ backend にこの値を指定した場合 logpath パラメーターを無視する |
port | 監視対象のポートをポート番号または ssh などのニーモニックで指定する |
ignoreself | 自 IP アドレスを BAN 対象から除外する true ← default 除外する false 除外しない |
ignoreip | BAN 対象から除外するホストの IP アドレス、CIDR 形式のネットワークアドレ ス、ホスト名(名前解決ができる場合) |
logpath | 監視するログファイルの path |
filter | ・ログファイルをフィルタリングするときに使用するフィルタ ・フィルターは /etc/fail2ban/filter.d/ ディレクトリ内に定義済みの物を使用 する ・ .local ファイルを作成してフィルターを編集する |
banaction | ・BAN するときのアクションを指定する ・アクションは /etc/fai2ban/action.d/ ディレクトリ内に定義済みのものを使 用する ・ .local ファイルを作成してアクションを編集する |
設定例
ssh でちょっかいを掛けてきた相手を BAN する定義の例です。 3 分間に 2 回 ssh に失敗したら 5 分間 BAN します。
sudo vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
ignoreself = true
findtime = 3m
maxretry = 2
bantime = 5m
コマンド
初期状態の確認
インストール直後の Fail2ban の状態を確認します。
sudo systemctl status fail2ban.service
sudo systemctl is-enabled fail2ban.service
確認結果です。fail2ban.service は起動しておらず、自動起動は設定されていません。
[opadmin@node1 ~]$ sudo systemctl status fail2ban.service
○ fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; preset: disabled)
Active: inactive (dead)
Docs: man:fail2ban(1)
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo systemctl is-enabled fail2ban.service
disabled
[opadmin@node1 ~]$
サービスの起動
fail2ban.service を起動し、自動起動を有効にします。
sudo systemctl start fail2ban.service
sudo systemctl enable fail2ban.service
sudo systemctl status fail2ban.service
sudo systemctl is-enabled fail2ban.service
[opadmin@node1 ~]$ sudo systemctl start fail2ban.service
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo systemctl enable fail2ban.service
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /usr/lib/systemd/system/fail2ban.service.
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo systemctl status fail2ban.service
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; preset: disabled)
Active: active (running) since Sun 2024-05-12 14:05:06 JST; 14s ago
Docs: man:fail2ban(1)
Main PID: 1093 (fail2ban-server)
Tasks: 3 (limit: 50285)
Memory: 12.8M
CPU: 118ms
CGroup: /system.slice/fail2ban.service
└─1093 /usr/bin/python3 -s /usr/bin/fail2ban-server -xf start
May 12 14:05:06 node1.example.jp systemd[1]: Starting Fail2Ban Service...
May 12 14:05:06 node1.example.jp systemd[1]: Started Fail2Ban Service.
May 12 14:05:06 node1.example.jp fail2ban-server[1093]: Server ready
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo systemctl is-enabled fail2ban.service
enabled
[opadmin@node1 ~]$
サービスの再起動
新たに .local ファイルを作成した場合は fail2ban.service を再起動して設定を反映します。
sudo systemctl restart fail2ban.service
[opadmin@node1 ~]$ sudo systemctl restart fail2ban.service
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo systemctl status fail2ban.service
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; preset: disabled)
Active: active (running) since Sun 2024-05-12 18:19:23 JST; 10s ago
Docs: man:fail2ban(1)
Process: 980 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
Main PID: 981 (fail2ban-server)
Tasks: 5 (limit: 50285)
Memory: 11.4M
CPU: 153ms
CGroup: /system.slice/fail2ban.service
└─981 /usr/bin/python3 -s /usr/bin/fail2ban-server -xf start
May 12 18:19:23 node1.example.jp systemd[1]: Starting Fail2Ban Service...
May 12 18:19:23 node1.example.jp systemd[1]: Started Fail2Ban Service.
May 12 18:19:23 node1.example.jp fail2ban-server[981]: Server ready
[opadmin@node1 ~]$
jail ルール
.local ファイルを作成したり、更新したりして jail ルールを更新した後は jail ルールをリロードします。
ロード済みのすべての jail ルールのステータスの確認
sudo fail2ban-client status
sshd jail がロード済みのときの出力例です。
[opadmin@node1 ~]$ sudo fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
[opadmin@node1 ~]$
ロード済みの jail ルールを指定してステータスの確認
sudo fail2ban-client status <jail名>
sshd jail の出力例です。ssh 接続に失敗した回数やBAN 中の IP アドレス、トータルの BAN 回数などが確認できます。
[opadmin@node1 ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 4
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 1
|- Total banned: 2
`- Banned IP list: 192.168.0.133
[opadmin@node1 ~]$
sshd jail がロードされていない場合、以下のようにエラーになります。
[opadmin@node1 ~]$ sudo fail2ban-client status sshd
2024-05-12 15:11:13,217 fail2ban [1277]: ERROR NOK: ('sshd',)
Sorry but the jail 'sshd' does not exist
[opadmin@node1 ~]$
BAN
BAN 中の状態は firewall-cmd コマンドでも確認できます。
sudo firewall-cmd --list-all
[opadmin@node1 ~]$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.0.133" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"
[opadmin@node1 ~]$
すべての jail ルールのリロード
sudo fail2ban-client reload --all
[opadmin@node1 ~]$ sudo fail2ban-client reload --all
OK
[opadmin@node1 ~]$
ロード済みの jail ルールを指定してリロード
sudo fail2ban-client reload <jail名>
sshd jail をリロードした場合です。
[opadmin@node1 ~]$ sudo fail2ban-client reload sshd
OK
[opadmin@node1 ~]$
sshd jail がロードされていない場合、以下のようにエラーになります。
[opadmin@node1 ~]$ sudo fail2ban-client reload sshd
2024-05-12 15:11:24,243 fail2ban [1280]: ERROR NOK: ('sshd',)
Sorry but the jail 'sshd' does not exist
[opadmin@node1 ~]$
すべての BAN の解除
sudo fail2ban-client unban --all
[opadmin@node1 ~]$ sudo fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 4
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 1
|- Total banned: 2
`- Banned IP list: 192.168.0.133
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo fail2ban-client unban --all
1
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 4
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 2
`- Banned IP list:
[opadmin@node1 ~]$
特定の IP アドレスの BAN の解除
sudo fail2ban-client set <jail名> unbanip <IPアドレス>
[opadmin@node1 ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 6
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 192.168.0.133
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo fail2ban-client set sshd unbanip 192.168.0.133
1
[opadmin@node1 ~]$
[opadmin@node1 ~]$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 6
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 3
`- Banned IP list:
[opadmin@node1 ~]$
Discussion