Debian /UbuntuにConfigServerFirewall(CSF)をインストールする方法


ConfigServerおよびセキュリティファイアウォール(CSFと略記)は、Linuxシステム用に設計されたオープンソースの高度なファイアウォールです。ファイアウォールの基本機能を提供するだけでなく、ログイン/侵入検知、エクスプロイトチェック、死亡防止のpingなどのさまざまなアドオン機能も提供します。

[あなたも好きかもしれません:Linuxシステムのための10の便利なオープンソースセキュリティファイアウォール]

さらに、ConfigServerの公式WebサイトのUI統合も提供します。

このガイドでは、DebianおよびUbuntuでのConfigServer Security&Firewall(CSF)のインストールと構成について説明します。

ステップ1:DebianとUbuntuにCSFファイアウォールをインストールする

まず、CSFファイアウォールのインストールを開始する前に、いくつかの依存関係をインストールする必要があります。端末で、パッケージインデックスを更新します。

$ sudo apt update

次に、次のように依存関係をインストールします。

$ sudo apt install wget libio-socket-ssl-perl git perl iptables libnet-libidn-perl libcrypt-ssleay-perl  libio-socket-inet6-perl libsocket6-perl sendmail dnsutils unzip

これで、次のステップに進むことができます。

CSFはデフォルトのDebianおよびUbuntuリポジトリに含まれていないため、手動でインストールする必要があります。続行するには、次のwgetコマンドを使用して、すべてのインストールファイルを含むCSFtarballファイルをダウンロードします。

$ wget http://download.configserver.com/csf.tgz

これにより、csf.tgzという圧縮ファイルがダウンロードされます。

次に、圧縮ファイルを抽出します。

$ tar -xvzf csf.tgz

これにより、csfというフォルダーが作成されます。

$ ls -l

次に、csfフォルダーに移動します。

$ cd csf

次に、示されているインストールスクリプトを実行して、CSFファイアウォールをインストールします。

$ sudo bash install.sh

すべてがうまくいった場合は、次のような出力が得られるはずです。

この時点で、CSFがインストールされます。ただし、必要なiptablesがロードされていることを確認する必要があります。これを実現するには、次のコマンドを実行します。

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

ステップ2:DebianとUbuntuでCSFファイアウォールを構成する

いくつかの追加構成が必要です次に、CSFを有効にするためにいくつかの設定を変更する必要があります。したがって、csf.conf構成ファイルに移動します。

$ sudo nano /etc/csf/csf.conf

以下に示すように、TESTINGディレクティブを「1」から「0」に編集します。

TESTING = "0"

次に、RESTRICT_SYSLOGディレクティブを「3」に設定して、rsyslog/syslogアクセスをRESTRICT_SYSLOG_GROUPのメンバーのみに制限します。

RESTRICT_SYSLOG = "3"

次に、TCP_IN、TCP_OUT、UDP_IN、およびUDP_OUTディレクティブを見つけることにより、TCPおよびUDPポートを開くことができます。

デフォルトでは、次のポートが開いています。

TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

UDP_IN = "20,21,53,80,443"

UDP_OUT = "20,21,53,113,123"

これらのポートをすべて開く必要はない可能性があります。サーバーのベストプラクティスでは、使用しているポートのみを開く必要があります。不要なポートをすべて削除し、システムで実行されているサービスで使用されているポートをそのままにしておくことをお勧めします。

必要なポートの指定が完了したら、図のようにCSFをリロードします。

$ sudo csf -r

サーバーで定義されているすべてのIPテーブルルールを一覧表示するには、次のコマンドを実行します。

$ sudo csf -l

次のように、起動時にCSFファイアウォールを起動して有効にすることができます。

$ sudo systemctl start csf
$ sudo systemctl enable csf

次に、ファイアウォールが実際に実行されていることを確認します。

$ sudo systemctl status csf

ステップ3:CSFファイアウォールでのIPアドレスのブロックと許可

ファイアウォールの重要な機能の1つは、IPアドレスによるサーバーへのアクセスを許可またはブロックする機能です。 CSFを使用すると、次の構成ファイルを変更することにより、IPアドレスをホワイトリスト(許可)、ブラックリスト(拒否)、または無視できます。

  • csf.allow
  • csf.deny
  • csf.ignore

IPアドレスをブロックするには、csf.deny構成ファイルにアクセスするだけです。

$ sudo nano /etc/csf/csf.deny

次に、ブロックするIPアドレスを指定します。次のように、IPアドレスを1行ずつ指定できます。

192.168.100.50
192.168.100.120

または、CIDR表記を使用して、サブネット全体をブロックできます。

192.168.100.0/24

Iptablesを介してIPアドレスを許可し、それをすべてのフィルターまたはブロックから除外するには、csf.allow構成ファイルを編集します。

$ sudo nano /etc/csf/csf.allow

行ごとにIPアドレスを一覧表示するか、IPをブロックするときに前に示したようにCIDRアドレス指定を使用できます。

注:IPアドレスは、csf.deny構成ファイルで明示的に定義されている場合でも許可されます。 IPアドレスがブロックまたはブラックリストに登録されていることを確認するには、IPアドレスがcsf.allowファイルにリストされていないことを確認してください。

さらに、CSFは、IPテーブルまたはフィルターからIPアドレスを除外する機能を提供します。 csf.ignoreファイル内のIPアドレスは、iptablesフィルターから除外されます。 csf.denyファイルで指定されている場合にのみブロックできます。

フィルタからIPアドレスを除外するには、csf.ignoreファイルにアクセスします。

$ sudo nano /etc/csf/csf.ignore

ここでも、IPを行ごとに一覧表示するか、CIDR表記を使用できます。

これで、今日のガイドは終わりです。 CSFファイアウォールを問題なくインストールして構成できるようになったことを願っています。