CSF は Linux サーバー向けの強力で扱いやすいファイアウォール

ConfigServer Security & Firewall、通称 CSF は、Linux サーバーで最も広く使われているファイアウォールツールの一つです。開発元は ConfigServer Services で、iptables を賢く管理するレイヤーとして動作し、さらに LFD によるログイン侵入検知機能も備えています。

CSF を使うと、単にポートを開閉するだけでなく、SSH のブルートフォース攻撃、スパム送信、不自然に多い接続数など、不審な挙動を示す IP アドレスを自動的にブロックできます。

以下では、CSF のインストールから利用方法までを、実際のコマンド付きで順を追って解説します。

ステップ 1: CSF インストール前のシステム準備

まず SSH で root ユーザーとしてサーバーにログインします。

システムを最新状態に更新します。

yum update -y

CSF に必要なパッケージをインストールします。

yum install perl-libwww-perl perl-Time-HiRes -y

AlmaLinux や Rocky Linux でも同様に yum または dnf を使用できます。

ステップ 2: CSF のダウンロードとインストール

ソース用ディレクトリへ移動します。

cd /usr/src

公式サイトから CSF をダウンロードします。

wget https://download.configserver.com/csf.tgz

解凍します。

tar -xzf csf.tgz
cd csf

インストールスクリプトを実行します。

sh install.sh

インストール後、iptables との互換性をチェックします。

perl /usr/local/csf/bin/csftest.pl

ほとんどのテストが OK と表示されれば、CSF はその環境で問題なく動作できます。

ステップ 3: 有効化前の基本設定

メイン設定ファイルの場所は次の通りです。

nano /etc/csf/csf.conf

以下の行を探します。

TESTING = "1"

最初はこのままにしておきます。これはテストモードで、実際にはブロックせずログのみ記録します。

SSH ポートを開放する

次の行を探します。

TCP_IN =

SSH ポートを追加します。デフォルトは 22 です。

TCP_IN = "22,80,443"

80 と 443 は Web 用ポートです。ほかのサービスがある場合は後で追加します。

送信側も同様に設定します。

TCP_OUT = "22,80,443"

保存して終了します。

ステップ 4: テストモードで CSF を起動

次のコマンドを実行します。

csf -r

これはファイアウォールルールを再読み込みします。

CSF の状態を確認します。

csf -l

この時点では TESTING モードなので、ログは記録されますがブロックはされません。

ステップ 5: 本番保護モードを有効にする

SSH で問題なく接続できることを確認したら、再び設定ファイルを開きます。

nano /etc/csf/csf.conf

次の値を変更します。

TESTING = "0"

保存して再読み込みします。

csf -r

これ以降、CSF は実際に IP をブロックし始めます。

ステップ 6: ブロックされた IP の確認と管理

特定の IP を検索します。

csf -g 1.2.3.4

1.2.3.4 を確認したい IP に置き換えます。

一時的にブロックされている IP 一覧を表示します。

csf -t

手動で IP をブロックします。

csf -d 1.2.3.4 "Manual block"

ブロックを解除します。

csf -dr 1.2.3.4

ステップ 7: 攻撃ログの監視

LFD のログは次の場所にあります。

tail -f /var/log/lfd.log

SSH ログイン失敗、ポートスキャン、不審なメール送信などで IP がブロックされた記録が表示されます。

CSF 関連のシステムログは次で確認できます。

tail -f /var/log/messages

または環境によっては

tail -f /var/log/syslog

ステップ 8: 管理用 IP をホワイトリストに追加

許可リストファイルを開きます。

nano /etc/csf/csf.allow

自分の IP を追加します。

1.2.3.4 # My office IP

保存して再読み込みします。

csf -r

ステップ 9: LFD が動作しているか確認

LFD は自動攻撃検知を担当します。

プロセス確認。

ps aux | grep lfd

systemd での確認。

systemctl status lfd

動いていない場合は起動します。

systemctl start lfd
systemctl enable lfd

ステップ 10: 攻撃をシミュレーションして動作確認

別のマシンから SSH に何度も間違ったパスワードでログインを試みます。設定回数を超えると、その IP はブロックされます。

ログを監視します。

tail -f /var/log/lfd.log

テスト用 IP がブロックされれば、CSF が正しくサーバーを保護していることが確認できます。

CSFは非常に実用的なツールです

CSF は、複雑な iptables ルールを手動で書かなくても、OS レベルで強力な保護を実現できる非常に実用的なツールです。数ステップのインストールと基本調整だけで、ブルートフォース攻撃、ポートスキャン、不審なアクセスの大部分を防ぐことができます。

さらに、CSF と LFD のログを日々確認することで、自分のサーバーがどのような攻撃を受けているかをリアルに把握できます。この知識は、長期的に VPS や Linux サーバーを運用する上で非常に大きな価値を持ちます。