Linuxサーバーは、その柔軟性、コスト効率、強力なパフォーマンスにより、企業や個人の間で絶大な人気を得ています。しかし、これらのサーバーのセキュリティを確保することは最も重要です。

この記事では、CSF(ConfigServer Security & Firewall)または類似のソフトウェアを使用してLinuxサーバーを保護する方法を探り、サーバーを強化するためのリンクと例を提供します。

CSFとは?

CSFは、Linuxサーバー向けに特別に設計された強力なステートフルファイアウォールです。使いやすいインターフェースと包括的なセキュリティ機能を提供し、システム管理者の間で人気のある選択肢となっています。

CSFは単なるファイアウォールではなく、悪意のある活動を積極的に監視およびブロックする侵入検知システムでもあります。

CSFとその機能についての詳細は公式ウェブサイトをご覧ください:ConfigServer Security & Firewall

なぜCSFを選ぶのか?

Linuxサーバーに他のファイアウォールソリューションではなくCSFを選ぶ理由はいくつかあります:

  • 簡単なインストールと設定
  • 定期的なアップデートと活発なコミュニティサポート
  • ほとんどのLinuxディストリビューションとコントロールパネルとの互換性
  • 侵入検知やログイン失敗の追跡を含む包括的なセキュリティ機能
  • カスタマイズ可能な設定オプション

CSFのインストールと設定方法

CSFをインストールする前に、サーバー上の他のファイアウォールを削除または無効にすることが重要です。以下の手順に従ってCSFをインストールおよび設定してください:

  1. SSHを介してrootユーザーとしてサーバーにログインします。
  2. 以下のコマンドでCSFの最新バージョンをダウンロードします:
1wget https://download.configserver.com/csf.tgz
  1. ダウンロードしたアーカイブを展開します:
1tar -xzf csf.tgz
  1. 展開されたディレクトリに移動し、インストールスクリプトを実行します:
1cd csf
2sh install.sh
  1. /etc/csf/csf.confにある設定ファイルをお好みのテキストエディタ(例:nanoやvim)で開きます。セキュリティ要件に合わせて設定をカスタマイズします。
  2. CSFの設定後、以下を実行してサーバーの互換性をテストします:
1perl /usr/local/csf/bin/csftest.pl
  1. テストが成功したら、設定ファイルのTESTING設定を0に変更してCSFを有効にします。
  2. 変更を適用するためにCSFを再起動します:
1csf -r

より詳細な手順と設定オプションについては、CSF公式ドキュメント を参照してください。

セキュリティ強化のための最適なCSF設定

Linuxサーバーのセキュリティを向上させるための最適なCSF設定の推奨事項をいくつか紹介します。

これらの設定はすべてのサーバー環境に適しているわけではないため、特定のニーズに合わせてカスタマイズすることが重要です。本番サーバーに適用する前に必ず変更をテストしてください。

  1. 受信および送信接続の制限

TCP_INTCP_OUTUDP_INUDP_OUTセクションで、受信および送信接続を必要なポートのみに制限します。例:

1TCP_IN = "22,80,443"
2TCP_OUT = "22,80,443,53"
3UDP_IN = "53"
4UDP_OUT = "53"
  1. ログイン失敗検知の有効化

設定ファイルのLF_*オプションを有効にして、CSFがログイン失敗を追跡するようにします:

1LF_TRIGGER = "5"
2LF_SSHD = "5"
3LF_FTPD = "10"
4LF_SMTPAUTH = "5"
5LF_POP3D = "10"
6LF_IMAPD = "10"

この例では、SSH、FTP、SMTP、POP3、IMAPについて、指定された期間内に5回のログイン失敗後に一時的なブロックを設定します。

  1. プロセス追跡の有効化

プロセス追跡を有効にして、サーバープロセスの不審な活動を監視します:

1PT_LIMIT = "60"
2PT_USERMEM = "200"
3PT_USERTIME = "1800"
4PT_USERKILL = "1"

この例では、プロセス追跡の間隔を60秒、メモリ使用制限を200MB、最大プロセス時間を1800秒に設定し、制限を超えるプロセスを終了する機能を有効にします。

  1. 設定ファイルを変更した後、CSFを再起動することを忘れないでください:
1csf -r

セキュリティ強化のためのCSFプロファイルの使用

CSFプロファイルは、特定のユースケースやセキュリティレベルに合わせた事前定義された設定です。個々の設定を手動で変更することなく、異なる設定間をすばやく切り替えることができます。

これは、より厳格なセキュリティ対策を適用したり、一時的に制限を緩和したりする必要がある場合に特に便利です。このセクションでは、プロファイルとは何か、その使用方法、適用時の考慮事項について説明します。

CSFプロファイルとは?

CSFプロファイルは基本的に、異なるシナリオに対する特定の設定を含む設定ファイルです。これらのプロファイルは単一のコマンドで適用でき、異なるセキュリティ設定間の切り替えが容易になります。

CSFには、Webサーバーやメールサーバーなど、特定の目的のために設計された複数のデフォルトプロファイルが付属しています。

CSFプロファイルの使用方法

  1. まず、CSFプロファイルディレクトリに移動します:
1cd /usr/local/csf/profiles
  1. 利用可能なプロファイルを一覧表示します:
1ls

webserver.confmailserver.confdefault.confなどのデフォルトプロファイルの一覧が表示されるはずです。

  1. プロファイルを適用するには、以下のコマンドを使用します:
1csf --profile <profile_name>
  1. 例えば、webserver.confプロファイルを適用するには:
1csf --profile webserver
  1. カスタムプロファイルを作成したい場合は、既存の設定ファイルをプロファイルディレクトリにコピーします:
1cp /etc/csf/csf.conf /usr/local/csf/profiles/my_custom_profile.conf

次に、お好みのテキストエディタでmy_custom_profile.confファイルを編集し、ニーズに合わせて設定を調整します。変更を行った後、前述のコマンドを使用してカスタムプロファイルを適用できます。

CSFプロファイル使用時の考慮事項

  1. 新しいプロファイルを適用する前に、現在の設定をバックアップしてください。これにより、必要に応じて以前の設定に簡単に戻すことができます。
  2. 本番サーバーに適用する前に、非本番環境で新しいプロファイルをテストしてください。これにより、潜在的な問題や競合を特定できます。
  3. カスタムプロファイルを作成する際は、Linuxサーバーの保護に関するベストプラクティスに従い、特定のユースケースと環境を考慮してください。
  4. 最新のセキュリティ推奨事項とベストプラクティスに対応するため、プロファイルを定期的に確認し更新してください。
  5. 新しいプロファイルを適用すると現在の設定が上書きされることに注意してください。特にカスタムプロファイルを使用している場合やデフォルトプロファイルに変更を加えている場合は、適用前にプロファイルの内容を確認してください。

CSFプロファイルを理解し活用することで、Linuxサーバー上のさまざまなセキュリティ設定を効果的に管理し切り替えることができます。これにより時間を節約できるだけでなく、さまざまな状況下でサーバーが保護された状態を維持できます。

CSFユーザーインターフェースの設定

CSFは、ファイアウォールの管理と設定のためのWebベースのユーザーインターフェース(UI)を提供しています。このグラフィカルインターフェースは、コマンドラインツールに慣れていない方や、ビジュアルな管理を好む方に特に便利です。

このセクションでは、CSF UIの設定手順を説明し、使用時の考慮事項について議論します。

CSF UIの設定

CSF UIは、cPanel、DirectAdmin、Webminなどの一般的なコントロールパネルではデフォルトで利用可能です。これらのいずれかを使用している場合、CSF UIはすでにパネルに統合されているはずです。

他のコントロールパネルやコントロールパネルのないサーバーの場合は、以下の手順でCSF UIを設定できます:

  1. 必要な依存関係がサーバーにインストールされていることを確認します:
  • Perl
  • LWP(libwww-perl)モジュール
  • GD(libgd)モジュール
  • GD::Graphモジュール

これらの依存関係はパッケージマネージャーを使用してインストールできます。例えば、Ubuntuの場合:

1sudo apt-get install perl libwww-perl libgd-dev libgd-perl libgd-graph-perl
  1. /etc/csf/csf.confにあるCSF設定ファイルをお好みのテキストエディタ(例:nanoやvim)で開きます。
  2. 以下の設定を見つけ、次のように変更します:
1UI = "1"
2UI_PORT = "<your_desired_port>"
3UI_USER = "<your_username>"
4UI_PASS = "<your_password>"

<your_desired_port>を未使用のポート番号(例:8080)に、<your_username>を選択したユーザー名に、<your_password>を強力でユニークなパスワードに置き換えてください。

  1. 設定ファイルを保存して閉じます。
  2. 変更を適用するためにCSFを再起動します:
1csf -r

ブラウザでhttp://サーバーIP:<指定ポート>を開き、設定ファイルで指定したユーザー名とパスワードでログインしてCSF UIにアクセスします。

CSF UIのHTTPS設定

ログイン資格情報とデータ送信のセキュリティを確保するために、CSF UIをHTTPSで保護することが不可欠です。特にインターネット経由でUIにアクセスする場合、HTTPSの使用が強く推奨されます。

このセクションでは、Let’s Encrypt、ACME、またはCertbotを使用してCSF UIにHTTPSを設定する方法と、CSFが読み取れるように生成された証明書を配置する場所を紹介します。

CertbotによるHTTPS

  1. サーバーにCertbotがインストールされていることを確認します。お使いのディストリビューション固有の手順はCertbotウェブサイト で確認できます。
  2. Certbotを使用してドメインの証明書を生成します:
1sudo certbot certonly --standalone -d example.com

example.comをご自身のドメインに置き換えてください。ドメインがサーバーのIPアドレスを指していることを確認してください。

  1. 証明書が生成されると、証明書ファイルは/etc/letsencrypt/live/example.com/ディレクトリにあります。必要なファイルは:fullchain.pem(証明書)とprivkey.pem(秘密鍵)です。
  2. CSFが読み取れる場所に証明書ファイルをコピーします:
1sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /etc/csf/ui/ssl/cert.pem
2sudo cp /etc/letsencrypt/live/example.com/privkey.pem /etc/csf/ui/ssl/key.pem
  1. /etc/csf/csf.confにあるCSF設定ファイルをお好みのテキストエディタ(例:nanoやvim)で開きます。
  2. 以下の設定を変更します:
1UI_SSL = "1"
2UI_CERT = "/etc/csf/ui/ssl/cert.pem"
3UI_KEY = "/etc/csf/ui/ssl/key.pem"
  1. 設定ファイルを保存して閉じます。
  2. 変更を適用するためにCSFを再起動します:
1csf -r

これで、ブラウザでhttps://example.com:<指定ポート>を開いて、HTTPS経由でCSF UIに安全にアクセスできます。

Let’s Encrypt証明書は有効期間が短いため、90日ごとに更新することを忘れないでください。このプロセスはcronジョブで自動化できます。

HTTPSはCSF UIのセキュリティを確保するために必要であり、強く推奨されることを覚えておいてください。これらの手順に従うことで、ログイン資格情報とデータ送信が潜在的な脅威から保護されます。

CSF UI使用時の考慮事項

  1. 不正アクセスを防ぐために、CSF UIに強力でユニークなパスワードを選択してください。パスワードを定期的に更新し、他のサービスと同じパスワードの使用を避けてください。
  2. 特定のIPアドレスのみが接続できるようにして、CSF UIへのアクセスを制限してください。CSF設定ファイルのUI_ALLOW設定を変更することでこれを行えます:
1UI_ALLOW = "192.168.1.1,192.168.1.2"

例のIPアドレスをCSF UIへのアクセスを許可したいIPアドレスに置き換えてください。

  1. CSF UIに選択したポートが他のサービスで使用されていないことを確認してください。また、自動化された攻撃の可能性を減らすために、非標準ポートを使用することをお勧めします。
  2. 既知の脆弱性やセキュリティ問題から保護するために、CSF UIとその依存関係を定期的に更新してください。
  3. 不審な活動や不正なログイン試行を特定するために、アクセスログを監視してください。CSFのログは/var/log/lfd.logにあります。

CSF UIを設定し使用することで、使いやすいグラフィカルインターフェースを通じてファイアウォール設定を効果的に管理および設定できます。

安全で信頼性の高い環境を維持するために、ベストプラクティスに従い、上記の考慮事項を念頭に置いてください。

DDoS攻撃に対するCSF保護

CSFは、さまざまな設定とセキュリティ対策を適用することで、分散型サービス拒否(DDoS)攻撃からサーバーを保護するのに役立ちます。

このセクションでは、CSFがDDoS攻撃からどのように保護できるかを紹介し、設定例と推奨事項を提供します。

SYNフラッド保護

SYNフラッド攻撃は、攻撃者がサーバーに大量のSYNパケットを送信し、接続を確立しようとする間にリソースを枯渇させるタイプのDDoS攻撃です。

CSFでSYNフラッド保護を有効にするには、/etc/csf/csf.confの以下の設定を変更します:

1SYNFLOOD = "1"
2SYNFLOOD_RATE = "100/s"
3SYNFLOOD_BURST = "150"

これらの設定により、SYNフラッド保護が有効になり、受信接続のレートおよびバースト制限が設定されます。

接続数制限保護

サーバーへの同時接続数を制限することで、特定のサービスを標的としたDDoS攻撃を軽減できます。

接続数制限保護を有効にするには、CONNLIMIT設定を構成します:

1CONNLIMIT = "22;5,80;50,443;50"

この例では、SSH(22)の接続を5、HTTP(80)を50、HTTPS(443)を50に制限します。

ポートフラッド保護

ポートフラッド保護は、サーバーの特定のポートを標的としたDDoS攻撃から保護するのに役立ちます。

ポートフラッド保護を有効にするには、PORTFLOOD設定を構成します:

1PORTFLOOD = "22;tcp;5;300,80;tcp;30;5,443;tcp;30;5"

この例では、SSH(22)の新しい接続レートを300秒あたり5、HTTP(80)とHTTPS(443)を5秒あたり30に制限します。

ブロックリスト

CSFはさまざまなIPブロックリストと統合して、既知の悪意のあるIPアドレスがサーバーにアクセスするのを防ぐことができます。

ブロックリスト統合を有効にするには、CSF設定ファイルのBLOCKLIST_*設定を構成します:

1BLOCKLIST_DE = "1"
2BLOCKLIST_6DE = "1"
3BLOCKLIST_DE_URL = "https://lists.blocklist.de/lists/all.txt"
4BLOCKLIST_6DE_URL = "https://lists.blocklist.de/lists/ipv6/all.txt"

この例では、IPv4とIPv6アドレスの両方についてblocklist.deブロックリストとの統合を有効にします。

国レベルのブロック

CSFでは、CC_DENYCC_ALLOW_FILTER設定を使用して、特定の国からのアクセスをブロックできます。この方法はすべての状況に適しているわけではありませんが、DDoS攻撃の発信元として知られる国からのアクセスを制限したい場合に便利です。

1CC_DENY = "CN,IR,RU"
2CC_ALLOW_FILTER = "US,CA,GB"

この例では、中国(CN)、イラン(IR)、ロシア(RU)からのアクセスをブロックし、米国(US)、カナダ(CA)、英国(GB)からの受信接続のみを許可します。

設定ファイルを変更した後、CSFを再起動することを忘れないでください:

1csf -r

これらの設定と推奨事項を適用することで、サーバーのDDoS攻撃に対する保護を大幅に強化できます。

完全に安全なセキュリティ対策は存在しないため、潜在的な脅威に対してサーバーを定期的に監視し、それに応じてCSF設定を適応させることが不可欠であることを覚えておいてください。

代替セキュリティソリューション

CSFはLinuxサーバーセキュリティの優れた選択肢ですが、同様の機能を提供する代替ソリューションの検討も価値があります:

  • UFW (Uncomplicated Firewall) :Ubuntuベースのシステム向けのユーザーフレンドリーなファイアウォール。
  • Firewalld :systemdを使用するLinuxディストリビューション向けのファイアウォール管理ツール。
  • IPTables :Linux上のパケットフィルタリングとネットワークアドレス変換のための強力なコマンドラインツール。

まとめ

Linuxサーバーの保護は、データを守りサーバーの整合性を維持するために不可欠です。CSFは、この目標を達成するための強力でユーザーフレンドリーなソリューションを提供します。

この記事で説明した手順に従うことで、LinuxサーバーにCSFを簡単にインストールおよび設定できます。追加のオプションをお探しの場合は、UFW、Firewalld、IPTablesなどの代替セキュリティソリューションも探索してみてください。

この記事がLinuxサーバーをCSFで保護するために役立つ情報満載であったことを願っています。この記事が気に入り、価値があると感じた場合は、他の方にもぜひ共有してください。ご感想やご質問があればコメントを残していただければ、喜んでお手伝いいたします。😊

2023年以降も警戒を怠らず、サーバーを安全に保ちましょう!