ディレクトリ
ファイアウォールiptables
iptablesツール
4つの機能(表):
- rawは構成されないことが多い
- マングルはあまり設定されていません
- nat
- フィルター
フィルタ
パケットフィルタリングファイアウォール
フィルターの詳細なルールを表示
- iptables -tフィルター-nvL
フィルターの3つのチェーン
各テーブルには、ルール(チェーン)を記述する場所があります
INPUTインバウンドチェーン
注:ルールは、上から下へ1つずつ照合することです。
FORWARD転送ルールチェーン
(送信元アドレス192.168.1.1および宛先アドレス172.16.1.20がローカルでない場合)
iptables -t filter -nvlの場合
- 監視-n1 iptables -tフィルター-nvl
アウトバウンドチェーンの出力
フィルタールール書き込み
フォーマット
- iptables -t filter -I INPUT -p tcp --dport 90 -j ACCEPT
フィルタールールテーブルを表示します。
このようにして、このサーバーのWebサイトに外部からアクセスできます。
iptablesの基本的な構文
注意が必要な事項:
- テーブル名が指定されていない場合、デフォルトでフィルターテーブルを指します。
- チェーン名が指定されていない場合、デフォルトテーブルのすべてのチェーン
- チェーンのデフォルトポリシーが設定されていない限り、一致条件を指定する必要があります
- オプション、チェーン名、コントロールタイプには小文字と大文字を使用し、残りは小文字にする
データパケットの基本制御タイプ
- ACCEPTは合格できます
- DOROPはプロンプトを出さずに直接ドロップします
- REJECTは合格を拒否し、必要に応じてプロンプトを出します
- LOGはログ情報を記録し、次のルールに渡して照合を続行します
実際に操作して(icmp protocol PING)DOROP REJECTの違いを確認できます
拒否
ルールを書く
- iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j DROP
落とす
注:同じルールが上部で有効になります
新しいルールを追加する
- -チェーンの最後にルールを追加する
- -Iチェーンの先頭にルールを挿入(またはシリアル番号を指定)
たとえば、次のとおりです。
ルールリストを表示
- -Lすべてのルールエントリを一覧表示します
- -n番号の形式でアドレスおよびポート情報を表示します
- -vより詳細な方法でルール情報を表示します
- -line-numberルールを表示するときに、ルール番号を表示します
ルールを削除、クリア
- -Dチェーン内の指定されたシーケンス番号(またはコンテンツ)を持つルールを削除します
- -Fすべてのルールをクリアします
EORWARDチェーンのシーケンス番号2に対応するルールを削除します
- iptables -Dフォワード2
FORFARDチェーンのすべてのルールをクリアする
- iptables -F FORWARD
空にするとルールは消えたの?
ファイアウォールはデフォルトで元の構成を保存します。iptablesファイアウォールのサービスが再起動されている限り、以前のルールが適用されます
- サービスiptablesの再起動
デフォルトのポリシーを指定する
- -P
注:デフォルトの戦略の唯一の選択は、DROPとACCEPTです。
FORWARDのデフォルト戦略をDROPに変更します
iptables -Pフォワードドロップ
一致条件
一般的なユニバーサルマッチング条件
- プロトコル一致-p [プロトコル名]
- アドレスの一致-s [送信元アドレス] -d [宛先アドレス]
- インターフェイスの一致-i [受信ネットワークカード]、-o [送信ネットワークカード]
一般的な暗黙の一致条件
- --sport [送信元ポート]、-dport [宛先ポート]に一致するポート
- TCPフラグポート--tcp-flags [チェック範囲] [フラグセット]
- ICMPタイプの照合--icmp-type [ICMPタイプ]
たとえば、次のとおりです。
ICMPタイプ:8リクエスト0エコー3到達不能
一般的な表示一致条件
- マルチポートマッチング-m multiport-sport [送信元ポートリスト]、-m multiport-sport [宛先ポートリスト]
- IP範囲の一致-m iprange --src-range [IP範囲]
- MACアドレスの一致-m mac --mac-source [MACアドレス]
バックアップルールのエクスポート
- iptables-saveツール
- リダイレクトされた出力と組み合わせて、指定したファイルに保存できます
現在の状態をデスクトップファイルに保存する
エクスポート:
- iptables-save> /root/Desktop/ipt.txt
インポート:
- iptables-restore </root/Desktop/ipt.txt
現在の状態をデフォルトのルールとして保存
- サービスiptables保存
何度再起動しても、常に存在します
nat
ネットワークアドレス変換
NATブリッジの詳細については、私のブログを参照してください。
[Network Security Learning 19]:NAT、動的ルーティングおよび実験(Qianfeng Network Security Video Note 19日)
SNATモード(送信元アドレス変換)
実験
Linuxゲートウェイサーバー
NATテーブルを表示
- iptables -t nat -nvL
- iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 12.34.56.78
成功した
FORWARDを構成する
FORWARDをクリアするだけ
- iptables -F FORWARD
PCアクセス成功
LinuxゲートウェイサーバーのIPアドレスが変更された場合、
ここでは、PCにアクセスできないことがわかります。
新しいルールを書く
- iptables -t nat -A POSTROUTING -p tcp -o eth1 -s 192.168.1.0/24 -j MASQUERADE
成功した
-Aここでは効果がないことがわかります
上のルールを削除して有効にします
- iptables -t nat -D POSTROUTING 1
PCに正常にアクセスできる
DNATモード(ターゲットアドレス変換)
実験
実験原理:
外部ネットワーク上のPCが80ポートにアクセスすることを確認します
そうでない場合は、フィルターテーブルのINPUTチェーンにスローします。
注:優先順位があります。natテーブルのチェーンの優先度は、filterlテーブルのチェーンよりも高くなっています。
Linuxゲートウェイサーバー
事前ルーティングルールを設定する
- iptables -t nat -A PREROUTONG -i eth1 -d 12.34.56.80 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8080
前の実験で構成したルーティング後のルールと組み合わせる
外部PCは、ポート80を介して内部サーバーのポート8080に正常にアクセスします。
参照:
Qianfengネットワークセキュリティビデオノート:https ://www.bilibili.com/video/BV1i7411G7vm?p=152