Linux サーバーをファイアウォールで保護することは、サーバーとネットワークを安全に保つために非常に重要です。しかし、どのようにファイアウォールをセットアップしますか? Linux サーバーを保護するための信頼できる効率的な方法を探している場合は、構成サーバー ファイアウォール (CSF ファイアウォール) のインストールを検討してください。
CSF ファイアウォールは、Linux サーバー向けの機能豊富なオプションです。このチュートリアルでは、CSF ファイアウォールをインストールして構成する方法を学び、それがどのように機能するかを直接確認します。
読んで、悪意のあるエンティティをサーバーから締め出してください!
前提条件
このチュートリアルの例に従うには、次のものが必要です:
- Linux マシン – このデモでは Ubuntu 20.04 を使用していますが、どの Linux ディストリビューションでも動作します。
- sudo 権限または root アカウントへのアクセス
CSF ファイアウォールのインストール
CSF ファイアウォールを設定する前に、まずサーバーにインストールする必要があります。ただし、その前に、サーバー上の他のファイアウォールを停止して無効にしてください。
2 つのファイアウォールを実行すると、セキュリティ上のリスクが生じます。なんで?両方のファイアウォールが何かをブロックしている場合、どちらがブロックしているのかわかりません。また、ファイアウォールはデフォルトでは互換性がなく、複数あるとサーバーがクラッシュする可能性があります.
1. 次のコマンドを実行して、サーバーにあるデフォルトのファイアウォールを無効にします。
# Stop the firewalld firewall
sudo systemctl stop firewalld
# Disable the firewalld firewall
sudo systemctl disable firewalld
# Disable the UFW firewall
sudo ufw disable
2. 次に、apt update
を実行します 以下のコマンドを実行して、利用可能なパッケージのインデックスを更新します。
このコマンドを実行すると、ローカル コンピューターがインターネットに接続し、/etc/apt/sources.list で定義された新しいリポジトリまたはアーカイブごとに更新メッセージをダウンロードする場合があります。 ファイル。
sudo apt update -y
以下の出力は、進行状況に関するリアルタイムのフィードバックを提供する、ローカル パッケージ ファイルの更新を示しています。
CSF パッケージは現在 Ubuntu リポジトリで利用できないため、パッケージを手動でダウンロードする必要があります (ステップ 3)。
3. wget
を実行します 以下のコマンドで csf.tgz
をダウンロードします 現在のディレクトリにパッケージ化します。
csf.tgz
package はメインの CSF パッケージです。このパッケージには、サーバーを保護するために必要なすべてのルールと変更が含まれています。
sudo wget http://download.configserver.com/csf.tgz
4. tar
を実行します。 以下のコマンドを実行して、ダウンロードした CSF パッケージを抽出します。コマンドが完了すると、csf という新しいディレクトリが作成されます。 すべての CSF ファイアウォールの構成ファイルを含む
- 以下のフラグは
tar
に伝えます 抽出中のコマンドの動作: x
フラグはtar
を示します ファイルを抽出します。z
フラグはtar
を示します GZIP を使用して、指定したファイルを解凍します。 GZIP は、Lempel-Ziv コーディング (LZ77) を使用してファイルを圧縮するファイル圧縮プログラムです。f
フラグはtar
を示します 抽出するファイル
sudo tar -xzf csf.tgz
5. ls
を実行します 以下のコマンドで csf ディレクトリが存在します。
ls -la
csf を含む、ホーム ディレクトリ内のすべてのファイルとディレクトリが表示されます。 以下に示すように、ディレクトリ。 csf が表示されない場合 ディレクトリ、sudo tar -xzf csf.tgz
を再実行します コマンド。
6. 次に、次のコマンドを実行して csf
に移動します。 ディレクトリを開き、シェル スクリプトを実行します (install.sh
) をクリックして、サーバーに CSF をインストールします。プロンプトに従い、インストール中に必要に応じて「Y」を入力します。
cd csf
sudo sh install.sh
シェル スクリプトは、CSF デーモン用の CSF 起動スクリプトを作成し、/etc/csf/ などの適切なディレクトリに構成ファイルを追加します。 、/etc/logrotate.d/ 、 等々。このように、すべての構成ファイルとディレクトリを自分で作成することについて心配する必要はありません。
7. 以下のコマンドを実行して、CSF ファイアウォールが正しくインストールされているかどうかを確認します。このコマンドは、サーバーにインストールされている CSF ファイアウォールのバージョンをチェックして出力します。 sudo csf -v
sudo csf -v
CSF ファイアウォールが正しくインストールされている場合は、以下に示すように、CSF ファイアウォールのバージョン番号が表示されます。このデモでは、インストールされているバージョンは v14.5 (ジェネリック) です 、しかしあなたのものは異なるかもしれません。
今のところ、TESTING モードが有効ですは無視してかまいません。 警告メッセージ。テスト モードを無効にする方法については、後で説明します。
8. 最後に、perl
を実行します。 以下のコマンドを実行して、すべての CSF モジュールを確認します (/usr/local/csf/bin/csftest.pl
)。
csftest.pl
ファイルは、CSF パッケージの Perl スクリプトの 1 つです。この Perl スクリプトを使用すると、CSF ファイアウォール モジュールをテストして、有効にする前に正しく機能することを確認できます。
perl /usr/local/csf/bin/csftest.pl
ファイアウォール モジュールが正しく機能している場合は、OK が表示されます 下のスクリーンショットに示すように、ステータス。 すべての CSF モジュールを確認しています
CSF ファイアウォールの設定
CSF がインストールされたので、/etc/csf/csf.conf を変更して、システムで動作するように構成できます。 CSF ファイアウォールの構成ファイル。このファイルには、セキュリティ、ロギング、および保護のために選択できるさまざまなパラメーター/ディレクティブが含まれています。
システム要件に従って、これらのパラメータを変更します。ただし、自分が何をしているのかわからない限り、それらを変更しないでください。このファイルを何らかの方法で変更すると、ファイアウォールが機能しなくなったり、サーバーのセキュリティが破壊されたりする可能性があります。
構成ファイル内のコメントは最小限ですが、CSF 構成に慣れていない場合は、これらのディレクティブの背後にあるファイル構造と考え方を理解しておくと役立ちます。自信がついたら、より複雑な構成を作成してください。
1. /etc/csf/csf.conf を開きます ファイルを任意のエディターで開き、TESTING を変更します。 ディレクティブ値を 0 に 1 の代わりに 、以下に示すように。 テスト ディレクティブはテスト目的で使用されます。
構成ファイルを変更するには、sudo アクセスが必要であることを忘れないでください。
TESTING を設定した場合 ディレクティブ値を 1 に 、サーバーはファイアウォール ルールを適用しません。ただし、SSH などの保護が必要なアクティブな運用サービスを実行している場合 (たとえば)、TESTING を変更します。 ディレクティブ値を 0 に .そうすることで、サービスを中断することなく保護を有効にすることができます。
2. 次に、TCP_IN を使用して、CSF ファイアウォールに追加の TCP および UDP ポートを定義します。 、TCP_OUT 、UDP_IN 、および UDP_OUT ディレクティブ。
インストール時に生成されるポートのデフォルト リストを以下に示します。リストには、一般的に使用されるすべての TCP が含まれています とUDP ポート。
開くポートが少ないほど、システムの安全性が向上することに注意してください。ただし、サーバー/サービスは、HTTP/HTTPS トラフィック用にポート 80 および 443、DNS 用に 53、SSH ログイン用に 22 などを介してユーザーと対話するため、すべてのポートを閉じることはできません。
何をしているのか、またはリストを削除する特別な理由がない限り、デフォルトのポート リストを削除しないでください。
3. ICMP_IN を変更します 1 へのディレクティブ サーバーへの着信 ping を許可して、サーバーが動作してオンラインであるかどうかのテストに使用できるようにします。
選択した CSF のアクションと、ファイアウォールがアクションを実行するまでに許可される試行回数を次のように定義し、変更を保存します。
CSF は、失敗したログイン試行のログを定期的に監視し、ほとんどの不正なアクセス試行を検出できます。この機能は、ログイン試行が一定回数失敗した後にソース IP をブロックすることで、ブルート フォース攻撃からサービスを保護するのに役立ちます。
- CONNLIMIT を変更する ディレクティブの値を 22;3;80;50 に変更 . CONNLIMIT ディレクティブを使用すると、特定のポートでサーバーへの同時接続を許可する数を指定できます。
22;3;80;500 値は 50 まで可能です ポート 80 での同時接続 (http)、およびポート 22 での別の 3 つの同時接続 (ssh).
- PORTFLOOD を変更する ディレクティブの値を 22;tcp;3;3600 に変更 . PORTFLOOD ディレクティブは、時間間隔ごとの IP アドレスごとの接続数を制限します。
以下、22;tcp;3;3600 この値は、TCP プロトコルを使用してポート 22 で 3 つ以上の接続が確立されている場合、IP を 1 時間 (3600 秒) 制限します。最後のログイン試行後、3600 秒の時間枠が経過すると、CSF はブロックされた IP を解放します。
- 次に、DENY_IP_LIMIT を設定します ディレクティブの値を 10 に .このディレクティブは、CSF がメモリに保持するブロックされた IP アドレスの数を制御します。制限 (10) に達すると、IP はローテーションされます。最も古いエントリが削除され、最新のエントリがカウントとともに挿入されます。
変更を保存し、構成に問題がなければエディターを終了します。
不正な IP のブロックが多すぎると、サーバーの速度が低下する可能性があります。したがって、DENY_IP_LIMIT を維持することをお勧めします。 扱いやすい数で。
5. 次に、以下のコマンドを実行して CSF ファイアウォール構成をリロードし、変更を適用します。
csf -r
6. 最後に、以下のコマンドを実行して、CSF ファイアウォールが実行されていることを確認します。
sudo systemctl status csf
設定が正しく機能すると、アクティブ が表示されます 状態。このステータスは、ファイアウォールが新しいルールを読み込み、終了したことを示します .この動作は、ワンショット サービスでは一般的です。
この時点で、限られた数の IP アドレスをブロックするように CSF ファイアウォールを構成しました。
CSF ファイアウォールを使用した IP アドレスのブロックと許可
CSF 構成ファイルを構成したので、サーバーを保護するための次のステップは、IP アドレスをブロックまたは許可することです。
以下の 3 つの構成ファイルを変更します。
- /etc/csf/csf.allow
- /etc/csf/csf.deny
- /etc/csf/csf.ignore
サーバーを保護する最も一般的な方法は、IP アドレスをブロックすることです。そのため、/etc/csf/csf.deny を変更することから始めます。
1. IP アドレスをブロックするには、/etc/csf/csf.deny を開きます 以下に示すように、任意のエディターでファイルを開き、ブロックする IP アドレス (1 行に 1 つ) を入力します。 IP アドレスを追加したら、変更を保存してエディターを閉じます。
この時点で、CSF は追加した IP アドレスからのすべてのトラフィックをブロックします。
すべてのドメイン名エントリが無視されるため、IP アドレスのみを追加し、ドメイン名は追加しないでください。
2. 次に、/etc/csf/csf.allow を開きます ファイルを使用して、すべてのファイアウォール ルールから IP アドレスを除外できるようにします。以下に示すように、ファイアウォール ルールから除外する IP アドレス (1 行に 1 つ) を追加し、変更を保存してエディターを閉じます。
以下のスクリーンショットは、このデモがサーバーに SSH 接続して CSF をアップグレードするために使用するローカル IP アドレスです。
3. 最後に、/etc/csf/csf.ignore を開きます。 ファイルに追加し、ファイアウォール ルールで許可する IP アドレス (1 行に 1 つ) を追加します。 csf.allow とは異なります ファイル、csf.ignore の IP アドレス ファイアウォール ルールをバイパスしますが、csf.deny にリストされている場合はブロックされます ファイル。
結論
この記事では、CSF ファイアウォールを Ubuntu マシンにインストールして構成する方法を学習しました。さらに、ファイアウォールで IP アドレスをブロック、許可、無視することでサーバーを保護することについても触れました。
この時点で、サーバーへの接続を許可する IP アドレスを制限してサーバーを保護する方法について十分な知識が得られています。この新たに発見された知識を使用して、CSF WHM/cPanel パネルを保護するように CSF ファイアウォールを構成してみませんか?