iptablesのテーブルとチェーン構造
-
ルールチェーン
- ルールの役割:データパケットのフィルタリングまたは処理
- チェーンの役割:さまざまなファイアウォールルールに対応する
- チェーンの分類基準:データパケットの処理の異なるタイミング
-
5種類のルールチェーンがデフォルトで含まれています
- 入力:受信パケットを処理します
- 出力:送信パケットを処理します
- FORWARD:転送パケットの処理
- POSTROUTINGチェーン:ルーティング後にデータパケットを処理する
- PREROUTINGチェーン:ルーティング前のデータパケットの処理
-
ルールテーブル
- テーブルの役割:さまざまなルールチェーンに対応する
- テーブルの分割の基礎:ファイアウォールルールの役割は類似しています
-
デフォルトで含まれる4つのルールテーブル
- rawテーブル:パケットのステータスを追跡するかどうかを決定します
- マングルテーブル:パケットにフラグを設定
- NATテーブル:データパケットの送信元、宛先IPアドレス、またはポートを変更します
- フィルターテーブル:データパケットを許可するかどうかを決定(フィルター)
-
デフォルトのテーブルとチェーン構造の概略図
パケットフィルタリングのマッチングプロセス
-
ルールテーブル間の順序
- raw->マングル> nat>フィルター
-
ルールチェーン間の順序
- インバウンド:PREROUTING→INPUT
- アウトバウンド:OUTPUT→POSTROUTING
- 转发:プレルーティング>フォワード>ポストルーティング
-
ルールチェーン内の順序に一致
- 順番に確認し、一致したら停止します(LOG戦略を除く)
- 一致するルールが見つからない場合、チェーンのデフォルトの戦略に従って処理されます
マッチングプロセスの模式図
**注:** CentOS 7はデフォルトでファイアウォールファイアウォールを使用します。iptablesファイアウォールを使用する場合は、最初にファイアウォールファイアウォールをオフにする必要があります
iptablesのインストール
- Firewalld Firewallをオフにする
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
- iptablesファイアウォールをインストールする
[root@localhost ~]# yum -y install iptables iptables-services
- 起動時に開始するようにiptablesを設定する
[root@localhost ~]# systemctl start iptables.service
[root@localhost ~]# systemctl enable iptables.service
iptablesの基本的な構文
- 文法構成
- iptables -tテーブル名オプションチェーン名条件-j制御タイプ
[root@localhost ~]# iptables -t filter -I INPUT -p icmp-j REJECT
-
予防
- テーブル名が指定されていない場合、デフォルトではフィルターテーブルを参照します
- チェーン名が指定されていない場合、デフォルトではテーブル内のすべてのチェーンを参照します
- チェーンのデフォルトポリシーが設定されていない限り、一致条件を指定する必要があります
- オプション、チェーン名、コントロールタイプには大文字を使用し、残りは小文字にする
-
データパケットの一般的な制御タイプ
- ACCEPT:合格を許可
- DROP:応答せずに直接ドロップ
- 拒否:合格を拒否し、必要に応じてメッセージを表示します
- LOG:ログ情報を記録し、次のルールに渡して照合を続行します
-
一般的な管理オプションの概要
カテゴリー | オプション | 使用する |
---|---|---|
新しいルールを追加 | -A | チェーンの最後にルールを追加する |
新しいルールを追加 | -私 | チェーンの先頭にルールを挿入(またはシーケンス番号を指定) |
ルールのリストを表示する | -L | すべてのルールエントリを一覧表示する |
ルールのリストを表示する | -n | アドレス、ポート、その他の情報をデジタル形式で表示 |
ルールのリストを表示する | -v | ルール情報をより詳細に表示する |
ルールのリストを表示する | –行番号 | ルールを表示するときに、ルールのシリアル番号を表示します |
ルールを削除してクリアする | -D | チェーン内の指定されたシーケンス番号(またはコンテンツ)を持つルールを削除します |
ルールを削除してクリアする | -F | すべてのルールを削除 |
デフォルトのポリシーを設定する | -P | 指定したチェーンのデフォルトルールを設定する |
ルール一致条件
一般的な一般的な一致条件
- プロトコルの一致:-pプロトコル名
- アドレスの一致:-s送信元アドレス-d宛先アドレス
- インターフェースの一致:-i受信ネットワークカード-o送信ネットワークカード
一般的に使用される暗黙の一致条件
- ポートの一致:--sport source port --dport destination port
- ICMPタイプの一致:--icmp-type ICMPタイプ
例:
iptables -I INPURT -p icmp -j DROP
iptables -A INPUT -i ens33 -s 192.168.0.0/16 -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
注:8:リクエスト、0:エコー、3:到達不能
一般的な表示一致条件
マルチポートマッチング:
- -m multiport --sportsソースポートリスト
- -m multiport --dports宛先ポートリスト
IP範囲の一致:
- -m iprange --src-range IP範囲
MACアドレスの一致:
- -m mac -mac-source MACアドレス
ステータス一致:
- -m state --state接続状態
例
iptable -A INPUT -p tcp -m multiport --dports 25,80,110 -j ACCEPT
iptable -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT
iptable -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j ACCEPT
iptable -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
一般的な接続ステータス:
新規------------
ESTABLISHED はどの接続にも関連していません------------要求または確立された接続
に応答して関連しています----------- -FTPデータ接続などの既存の接続に関連
概要:
iptablesファイアウォールには、デフォルトで4つのテーブルと5つのチェーンが含まれています
iptablesの基本的な構文
iptablesの一般的な管理オプション
- A、I、L、n、v、--line-numbers、D、F、P
iptablesルールの一致条件
- 一般一致、暗黙的一致、明示的一致