iptablesのファイアウォールの、SNAT、DNAT

ファイアウォールは、単にネットワークの防御機構の役割から隔離されている簡単なファイアウォールは、それがソフトウェアファイアウォールおよびハードウェアファイアウォールに分かれています。どんなに仕事の種類は、ネットワークのエッジにありません。それでは、どのようにファイアウォールの分離、およびアイソレーションは何でしょうか?ファイアウォールは、一般的に、カーネル空間とユーザ空間のアプリケーションに分かれていますが、ユーザー空間です。クライアントアクセスの場合、カーネル空間へのアクセスは、ユーザー・スペースを入力してください。ホストファイアウォールの場合は、カーネル空間でのマッチングルールを設定する必要があります。クライアントホストへの一般的なアクセスは、入口を通って、カーネル空間に最初のパケット、パケットを送信し、ユーザ空間、ユーザースペース検出パケットは、再入力し、離れてコアの出口から、カーネル空間を、ファイアウォールを残して、クライアントに返さ入力します。FORWARDによって転送されたカーネル空間とカーネル空間に入口を介してメッセージを送信するためにネットワークファイアウォールクライアントの場合は、ネットワークへの輸出のアクセスを通じて、それはユーザ空間を渡しません。PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD:ファイアウォールの内側のチェックポイントの層がありますが、我々は、5つのチェーンに分かれています。生、マングル、NAT、フィルタされている私たちは4つのテーブルに分かれての機能に応じて。優先順位は、生、マングル、NAT、フィルタであり、我々は、NATが続く最も一般的に使用されるフィルタ、マングルした後、一般的に、生の使用ではありません。フィルタはINPUT、FORWARD、OUTPUTは、OUTPUTチェーンは、ルールを追加した時点を検討し、3チェーンのnat PREROUTING、INPUT、OUTPUT、POSTROUTINGチェーンマングル4のみ生チェーン全体のPREROUTINGをPOSTROUTING、PREROUTING、INPUT、FORWARD、OUTPUTを持っていました:(1そのチェーンに判断追加、iptablesのツールツールは、ファイアウォールチェーン管理コマンドを使用してユーザ空間に設けられている(これは次のとおりです。(2)路を流れるパケットを、テーブルに追加かを決定するために:)どのような機能を達成するためにすぐに効果的な)-P:iptablesの-P INPUTのDROPこれに:例えばONのデフォルトは/デフォルトではオフです|デフォルトポリシーを設定します(ドアをデフォルト設定が閉じているか開いている)は、デフォルトのポリシーは、一般的に2つだけのiptables -P INPUTある(ACCEPT DROP)デフォルトのルールを置くことを拒否しました。そして、何のアクションのない定義はありませんので、外部接続上のすべてのルールがXshell接続等を含む、リモート接続が拒否されます。-F:新しいサポートユーザは、チェーンのiptables -N inbound_tcp_webを作成:FLASH、空のチェーンルールはiptablesの-t NAT -F PREROUTING iptablesの-t NAT -F NATテーブルのすべてのチェーン-Nを空(各鎖上の管理者権限があることに注意してください) TCP接続テーブルには、ウェブを検査するために示しています。-Xは:-N同じで、ユーザー定義のメソッド空のチェインを削除するために使用されるが、チェーンの内側には、高価な-Eを空にする前に削除する必要があります。チェーンの名前を変更するには、主にユーザー定義チェインのために使用されていますリネーム-E OLDNAME NEWNAME -Z:空のチェーン、チェーンのデフォルトルールカウンタ(二カウンター、パケット数、バイト数に一致している)のiptables -Z:空のルール管理コマンド-A:現在のチェーン-I num個の終わりに新しいルールを追加します。挿入し、現在のルールでは、最初の数として挿入されています。-I 3:リプレイを置き換える/いくつかのルールの形式を変更します:iptablesの-R 3 ............ -D NUM:NUMは記事-R挿入され、削除、最初のいくつかのルールを明示的管理のCommand View「を削除し-L 「-n追加のサブコマンド:デジタルディスプレイIPが、それは-nない場合は、それをホスト名に解決したIPが逆になり、直接IPアドレスを表示します。-v:詳細情報を表示-vv -vvv:より詳細な-xは:全てのレベルの情報を表示:行番号ルール-t NATを表示:単位変換--line-番号をしない、カウンター上の正確な値を表示します詳細マッチ標準一般化試合:-sは、宛先アドレスの送信元アドレスと一致する:ソースアドレスのマッチングとして指定されたホスト名が指定することはできません、それはIP IPでなければなりません| IP / MASK | 0.0.0.0/0.0.0。加えて、プラスIPは、-dことを意味住所0と反転することができますが、「!」:プロトコルをマッチングするための(プロトコル通常3種類があり、TCP / UDP / ICMP)-i:マッチング宛先アドレス-pを示し、 eth0の:一般INPUTとPREROUTING -oはeth0に使用流入から流出このカードデータ:流出液は、典型的には、拡張一致する暗黙の出力とPOSTROUTING広がっこのカードデータから流れる:プロトコルの-p TCP拡張:TCP拡張プロトコル。XX-XX --dport三つの一般的拡張がある:ターゲットポートは、不連続なポートを複数指定することができない、単一のポートを指定することができ、そのような--dport 21または--dport 21-23(この時間は21,22,23を表現しました)--sport:フラグビットフラグ1をチェックしなければならない:TCPフラグ(SYN、ACK、FIN、PSH、RST、URG)は、一般的に2つのパラメータを保持するための:--tcp-fiags元ポートビットはSYN、ACK、フィン、RST、SYN = --syn 4つのチェック・ビットを表し、これらの4ビットは、他のゼロでなければならない、1シンなければならない--tcpflags。これは最初の3ウェイハンドシェイクパケットを検出するためのことを意味します。拡張UDPプロトコル--dport --sport -p ICMP:そのような特別なパケットが最初のSYNパケットが1で一致するため、--syn -p UDPと呼ばれる速記あるICMPパケットが拡張は - -icmp型:エコー要求(エコー要求)、一般的に0が明示的に(8拡散によって表されるエコー応答(応答パケット)に一致する一般--icmp型8エコー要求パケットを表され-m)様々なモジュールの拡大はマルチを-m:後、我々はそのような--dports 21,23を可能にすることができる有効マルチ拡張を発現します 80詳細-jのACTION共通ACTION:DROP:静か一般には私たちが身元を隠して、私たちのリストを非表示にするにはDROP多目的捨てREJECT:明示的に拒否ACCEPT:元アドレスはマスカレード:ステアリングチェーンDNAT SNATカスタムをMASQUERADE:custom_chainを受け入れることリダイレクト:リダイレクト:主にポートリダイレクトマークに使用:ファイアウォールマークを再生するリターン:カスタムチェーンを返すために、元のルールチェーンに戻るには、使用リターンを終えました。状態検出:セッションの検出との間の接続を明示的に拡張は、検出して我々は、状態検出であるものを達成するために、セッションの間で機能を拡張することができますか?全体TCPプロトコルが関係しているため、それはコネクションレス型プロトコル、スリーウェイハンドシェイクである通常のデータ送信である、ハンドシェイクが最初に、我々は、新たな接続と呼ばれ、次の第2のハンドシェイクから、ACKが1であります、及び第2の3ウェイハンドシェイクシーケンスのTCP接続(ESTABLISHED)状態のような、確立された、より奇妙が呼び出される:我々はであることを認識しないため、SYN​​ = 1 ACK = 1 RST = 1 INVALIDは認識されていないと呼ばれます。この古代の機能は持っている第四、FTPがあり、各ポートは、それらの間の関係があり、第21号と20号が戻ってポートで独立しており、我々はこの関係を呼び出しますRELATEDとして。だから、私たちの状態は、4の合計:NEW ESTABLISHED関連INVALIDので、私たちは今の演習は、状態検出を向上させることができます。例えば、入ってくる状態NEWとESTABLISHEDが入ってくるだけを許可し、唯一のより一般的なタイプのトロイの木馬ラリーは、良好な制御メカニズムを持っていてもよく、ESTABLISHED状態の外に行くことを許さを出て行きます。開発:出てくる、とだけESTABLISHEDしか出ESTABLISHED許可し出てくる許可してくることができるように拒否しました。デフォルトのルールを使用すると、iptablesの-L -n --line-番号を拒否:書き換え可能INPUTに位置表示前の行をルール-R INPUT 2 -s 172.16.0.0/16 -d 172.16.100をiptablesの。1つの-p TCPは22 -m状態--state NEWを--dportあなたは、この時間は、それを解放する方法を80ポートを開放したい場合は、-R OUTPUT 1 -m状態が確立--state ESTABLISHED -j ACCEPT iptablesのはACCEPT -j?iptables -A INPUT 1 -d 172.16.100.1 -p UDP --dport 53は拡張をACCEPT -j -R INPUT 172.16.100.1 -p TCPは80 -m状態--state NEWは、iptablesのACCEPT -j ESTABLISHED --dport -d: 127.0.0.1ではなく、特殊なために、我々は明らかに-s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptablesの-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -jは、NAT 1ニーズをACCEPT -A INPUTをiptablesのかを定義する必要があります3クライアント側の仮想マシンの静的NICの設定、IP 192.168.20.2;静的サーバー側のカード、IP 172.16.100.2;仮想マシンのファイアウォールが2つのNICを必要とする、NICの静的、IP 192.168.20.1と172.16.100.1。なお、仮想マシンがHTTPDになっているように、ポート80を確認する必要があり、クライアントとサーバーのファイアウォールがオフになって、ファイアウォールは、ファイアウォールを開く必要があり、それは最もシンプルにチェーンとテーブルを削除するのが最善です。図2に示すように、二種類のカーネルパラメータを変更する:1)、直接ようなエコー値のドキュメントへの追加の寄与を用いてエコー「1」>に/ proc / sysの/純/のIPv4 / tcp_syn_retriesが、装置の再起動のこの方法デフォルトに復帰した後iptablesの-t NAT -A POSTROUTING -s 192.168.20:値2)、次いで、パラメータを有効に-pのsysctlを実行/etc/sysctl.confにパラメータを追加するために、永久SNATは、ファイアウォール内に配置されました。

おすすめ

転載: www.cnblogs.com/1011cjk/p/11093174.html