[ネットワークセキュリティラーニング記事31]:Linuxファイアウォールiptablesのフィルター(パケットフィルターファイアウォール)とnat(ルート変換)の詳細な説明

 

ディレクトリ

 

ファイアウォールiptables

フィルタ

フィルターの3つのチェーン

フィルタールール書き込み

iptablesの基本的な構文

注意が必要な事項:

データパケットの基本制御タイプ

ルールを書く

新しいルールを追加する

ルールリストを表示

ルールを削除、クリア

一致条件

バックアップルールのエクスポート

nat

SNATモード(送信元アドレス変換)

DNATモード(ターゲットアドレス変換)


ファイアウォールiptables

iptablesツール

4つの機能(表):

  1. rawは構成されないことが多い
  2. マングルはあまり設定されていません
  3. nat
  4. フィルター

フィルタ

パケットフィルタリングファイアウォール

フィルターの詳細なルールを表示

  • 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の基本的な構文

注意が必要な事項:

  1. テーブル名が指定されていない場合、デフォルトでフィルターテーブルを指します。
  2. チェーン名が指定されていない場合、デフォルトテーブルのすべてのチェーン
  3. チェーンのデフォルトポリシーが設定されていない限り、一致条件を指定する必要があります
  4. オプション、チェーン名、コントロールタイプには小文字と大文字を使用し、残りは小文字にする

データパケットの基本制御タイプ

  • 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

公開された58件の元の記事 気に入りました28 訪問3713

おすすめ

転載: blog.csdn.net/weixin_43252204/article/details/105546187