すべてのシステムにとって、ファイアウォールはセキュリティのためになくてはならないものです。 Linuxシステムでは、ファイアウォールはiptablesコマンドラインユーティリティを使用して実装できます。これは、セキュリティを強化するためのファイアウォールルールを設定するのに非常に強力です。内部的には、iptablesは、Netfilter(http://www.netfilter.org/)フレームワークと呼ばれるカーネルのネットワークスタックのパケットフィルタリングフックと相互作用します。パケットフィルタリングとNATルールを管理できます。
注:実際には、iptablesはIPv4ルールを処理し、ip6tableshttp://linux.die.net/man/8/ip6tablesはIPv6ルールを処理します。
iptables入門
iptablesユーティリティは、テーブルの概念を使用してファイアウォールルールを整理します。次に、テーブルにはチェーンのセットが含まれます。また、チェーンには一連のルールが含まれています。
テーブルには4つのタイプがあります。
1.フィルターテーブル
2。 NATテーブル
3。マングルテーブル
4。生のテーブル
5。セキュリティテーブル
これはデフォルトのiptableです。このテーブルは、パケットが宛先に許可されるかどうかを決定します。フィルタテーブルに到達した一般的なパケットは、次の3つのチェーンのいずれかを通過します。
1.入力チェーン–パケットがサーバーに送信される場合、入力チェーンを通過します。
2。出力–パケットソースがサーバーの場合、出力チェーンを通過します。
3。転送–送信元も宛先もサーバーに属していないパケットの場合、転送チェーンを通過します。これは、サーバーの別のNICからのパケットがルーティングされていることを意味します。これは通常、Linuxシステムがルーターとして機能する場合に発生します。
次のコマンドを使用して、システムのフィルターテーブルを表示できます。
sudo iptables -t filter --list
NATテーブルには次のチェーンが含まれています。
1. PREROUTINGチェーン–このチェーンは主にDNAT(宛先NAT)用です
2. POSTROUTINGチェーン–このチェーンは主にSNAT(ソースNAT)用です
注:ここの例を使用して、DNATとSNATについてお読みください。
3. OUTPUTチェーン–パケットがローカルに配信される場合、このチェーンが使用されます。
次のコマンドを使用してNATテーブルを表示できます。
sudo iptables -t filter --list
このテーブルは、主にIPヘッダーを変更するために使用されます。次のチェーンがあります。
1.事前ルーティング
2。出力
3。フォワード
4。入力
5。ポストルーティング
次のコマンドを使用して、マングルテーブルのリストを表示します。
sudo iptables -t mangle --list
このテーブルは、接続追跡をオプトアウトするためにパケットをマークするメカニズムを提供します。 http://people.netfilter.org/pablo/docs/login.pdf
マングルテーブルには次のチェーンがあります
1.事前ルーティング
2。出力チェーン
次のコマンドを使用して、生のテーブルリストを表示します。
sudo iptables -t raw --list
このテーブルはSELINUXに関連しています。パケットにSELINUXコンテキストを設定します。具体的には、強制アクセス制御https://en.wikipedia.org/wiki/Mandatory_access_control
に使用されます。次のコマンドを使用して、セキュリティテーブルリストを表示します。
sudo iptables -t security --list