IPTABLES を使用して Linux サーバーを保護する方法
残念ながら、サーバーハッキングの事例は数多くあります。このため、ネットワークのセキュリティを強化するにはファイアウォールの利用が不可欠です。 Iptables を使用してファイアウォールを構成すると、サーバーの保護を強化できます。
iptables は、Linux ベースのオペレーティング システム用のファイアウォール ユーティリティであり、Rocky Linux や CentOS などの多くの Linux ディストリビューションにデフォルトで含まれています。
システム管理者で潜在的なサーバー セキュリティの脅威を防ぎたい場合でも、VPS を使用していて、たとえば VPS Rocky Linux が適切な保護でスムーズに実行されていることを確認したい場合でも、追加のサーバー保護に Iptables が役立つことは誰でもわかります。
この記事では、Iptables の詳細と、このツールを利用してサーバーを保護する方法について説明します。
IPtables ツールはどのように機能しますか?
iptables は、特定のルールに従ってネットワーク比較を実行するファイアウォール ユーティリティです。
基本的に、テーブルを通じてサーバーとの間で送受信されるトラフィックを監視します。テーブルにはチェーンと呼ばれる前述の一連のルールが含まれており、サーバーが受信および転送するデータのパケットをフィルタリングできます。チェーンは、パケットがチェックされる規則を暗示します。
Iptables 内には次のようなデフォルトのチェーンがあります。
- 入力 ルール。これらは、サーバーに向かうすべてのパケットを規制します。
- 出力 ルール。これらは、サーバーが生成するすべてのトラフィックを処理します。
- 転送 ルール。これらは、サーバー宛てではない受信パケットを処理します。
これらは事前定義されたチェーンですが、独自のチェーンを作成することもできます。
各チェーンには、ルールに準拠するパケットまたは準拠しないパケットに何が起こるかを決定するポリシーがあります。パケットは受け入れられることも拒否されることもできます。
Iptables でサーバーを保護する戦略は、受け入れる許可のないものをすべて拒否することにあります。
Iptables の使用を開始する
すぐにルールの構成に取り掛かりたいと思うかもしれませんが、その前にまず何かを行う必要があります。 Ubuntu、Debian、RHEL、Rocky Linux、または AlmaLinux をお持ちでない場合は、追加で Iptables をインストールする必要がある場合があります。さらに、Iptables がすでにインストールされていることを考慮して続行します。
デフォルトのチェーン動作を特定する
デフォルトのチェーン動作により、チェーンがどのように構成され、どのような変更を加える必要があるかがわかります。
デフォルトのチェーン設定を確認するには、次のコマンドを実行します。
$sudo iptables -L コマンド
たとえば、チェーンがすべてのトラフィックを受け入れるように構成されている場合がありますが、これはまさに必要なことです。一部のチェーンがトラフィックを拒否していることが判明した場合は、次のコマンドを実行します。
$sudo iptables —ポリシー INPUT ACCEPT
$sudo iptables —ポリシー出力許可
$sudo iptables —ポリシー 転送承認
これで、サーバーがすべての接続を受け入れるときに、何をブロックするかを正確に定義できるようになりました。機密データを扱っている場合は、接続を完全にブロックし、トラフィックの受信元となる IP アドレスのみを選択することをお勧めします。これを行うには、次のように入力します。
$sudo iptables —ポリシー INPUT DROP
$sudo iptables —ポリシー出力ドロップ
$sudo iptables —ポリシー フォワード ドロップ
これは、機密データを扱う場合にのみ有益です。それ以外の場合、この手順は必須ではありません。
個別の接続を構成する
個別の接続を設定するということは、特定の IP アドレスに関してどのように動作するかを Iptables に「指示」することを意味します。個別の接続を構成するには、accept、drop、reject の 3 つのコマンドがあります。
- Accept は、接続が受け入れられることを意味します。
- ドロップ は、接続がサーバーとの対話からブロックされることを意味します。
- 拒否 は、サーバーとの対話の試行をブロックし、それをエラー メッセージで通知することを意味します。
たとえば、特定の IP アドレスをブロックするには、次のコマンドを使用できます。
$sudo iptables -A INPUT -S (ブロックしたい IP アドレスを入力します) -j DROP
複数の接続をブロックするには、次を使用します。
$sudo iptables -A INPUT -s (IP アドレス 1)/(IP アドレス 2) /.0 -j ドロップ
特定のルールを削除することもできます。間違いを犯した場合、または特定のルールを削除したい場合は、-D コマンドと削除するルールの番号を組み合わせて実行できます。
$sudo iptables -D INPUT (ルール番号)
多数のルールを削除する場合は、-F コマンドを使用できます。
$sudo iptables -F
Iptable をクリーンアップします。
結論
Iptables は、望ましくないトラフィックからサーバーを保護するための非常に多用途のツールです。 Linux ユーザーは、このツールが IP アドレス、ポート、またはプロトコルに関するトラフィック フローを管理するのに効果的であることがわかります。
この記事では Iptables の機能のほんの一部を説明しますが、それでもお役に立てれば幸いです。サーバーの使用中のエクスペリエンスは、サーバーの効率的な管理とセキュリティの両方にとって非常に重要であり、Iptables はそのような取り組みにおいて最も役立つツールの 1 つです。