Linux/CentOS Stream8でサーバ構築/その他編

その他、セキュリティ関連のパッケージ(2022-03-11)


前回の Webサーバ編 に引き続き、セキュリティ関連のパッケージを入れます。
引き続き、CentOS Stream8での作業となります。*1


fail2banのインストール

ログを追跡して不正アクセス等を見つけた場合に、自動的にbanする仕組みです。

$ dnf --enablerepo=epel install fail2ban

とにかくもう、ssh の不正ログインを防ぐだけでも価値があります。
前手順で /etc/ssh/sshd_config を更新して ssh(=22)のポート番号を変えているので、それを反映します。

/etc/fail2ban/jail.conf

[sshd]
port    = ssh,xxxxx   # xxxxx は自分で変更したポート番号

もちろんsshdポートを変更せずに22番のまま fail2banしても問題ありません。
その場合はたぶん後日 /var/log/fail2ban.log でログイン失敗&banの動作確認(?)がいっぱいできることでしょう。


他、自分で作ったフィルターを足したり、既存のフィルターを「enabled = true」にして有効化したり bantimeを伸ばしたりする場合は jail.d/local.conf などを作って設定を追記します。

jail.d/local.conf の例

[postfix-sasl]  # /etc/fail2ban/jail.conf にある postfix-sasl を上書きする
enabled = true  # 有効化する
port     = smtp,465,587  # 自分で足したポート(submissionポートなど)も追加する
logpath = /var/log/maillog tail
#
# findtime 秒の間に、maxretry 回のアクセスが来たら ban します。bantime 秒後に解除
# 各パラメータについては「man jail.conf」を参照
#
maxretry = 1         # 一発でアウト
findtime = 60
bantime = 180000     # 少なくとも二日以上は banしてやれば良い
backend = pyinotify

これで起動します。

$ systemctl enable fail2ban
$ systemctl start  fail2ban

ただ、これを導入した後に自分でログイン失敗しまくったりメール設定を間違えまくったりした場合には、もちろん自分もbanされます(と、ここに書いている私も経験済みです)。
何かの検証前には一旦 fail2ban を止めるか解除方法を確認するか、あらかじめ準備しておきましょう*2

tripwire のインストール

ファイルやディレクトリの更新を検知します。

$ dnf --enablerepo=epel install tripwire

設定方法などの詳細は tripwireメモのほう で書きます。
初期設定こそ面倒ながらも地味に便利なツールで、変更箇所の把握でとても役立っています。


またCentOS Stream10 が出るころには色々と変わるかもしれませんが、ひとまずこれで。

みなさんの環境でもうまく動いていることを祈ります。



*1 お手持ちのOSバージョンは「cat /etc/redhat-release」で確認できます。
*2 解除コマンドの例は「fail2ban-client set ジェイル名 unbanip IPアドレス」。ジェイル名は /var/log/fail2ban.log でBanされた時に書いてあるやつです。