まず、firewalldファイアウォールは何ですか?
単独でfirewalld Linuxのファイアウォールホストは、我々は唯一のホストからの要求がある判定処理を行い、実際のツールです。あなたは範囲がfirewalldの管轄ではない何をしに来たとしてそれは、ちょうどそれの外にあります。良い判断要求メッセージはルールの範囲内ではない私たちの事前指定されたルールに従って、ネットワークとエッジfirewalldの仕事は、言葉では、ことができないが、シャットアウトし、これはfirewalldです。
第二に、そしてどのようなルールはそれを持ってfirewalld?ファイアウォールのルールを設定するには?
そこ規則そういえば?ルールは人によって設定されているためemmmm ......これは、言うのは難しいです、あなたが任意のルールを設定したい、ルールは(もちろん、機能の範囲内であり、それを可能にする)するものがあります。あなたは、プロトコル、ポート、アクセスルールを拒否するように設定し、パケットの種類、などを指定することができます(詳しくは両方とも少し違う、後者ます)DROP、REJECTを、もちろん、あなたはパケットがSetキーワードを通過できるように決定することができます、あなたが動作するために理解する必要があること。
操作の前に、あなたがルールを意味するものでfirewalldを追加することができる場所を知っている必要があり、それはそれは、4本のfirewalld表のVチェーンで、その後、チェーンがそのように、テーブルの4の5つが含まれているので、次の5つの連鎖で始まります私たちは、内側からそれを学び始めました。
Pentachain
1、PREROUTING
ルーティングテーブルに入る前に、パケットを(ターゲット・アドレス変換(DNAT)。)
2、INPUT
宛先ルーティングテーブルベースのマシンによって
3、FORWORD
ルーティングテーブルネイティブ先によって
4、 OUTPUTは、
ローカル、外側に転送することによって産生さ
5、POSTROUTING
インタフェースカードに送信する前に。(ソースアドレス変換(SNAT)の場合)
完全にこれが何であるかを知らない、上記チェーンの各役割が無知に見えることを余儀なくされていませんか?母は、心配、私はまた、無知見て強制的に見たていませんが、学校の後、私はこれはまさに地獄で、あなたを強制するためにも、より多くの無知なのですか?私は完全に設定された位置を理解し、実際の設定位置は、だから、同じではありませんので、私は完全に、ITの概念を覆す、emmmm、あなたはfirewalldルールセットを理解することを学ぶために、自分の主観的なアイデアが付属していない、または非常に難しいことを願っています。
ナナナ、5つのチェーンは最初、それはアイデアは、次の4つの表を見てみる、できることは何でもやる、仕上げ:
4つのテーブルの
テーブルは、異なる機能を実行するために、チェーンとされ、4つのデフォルトiptablesのテーブルがあり、デフォルトの鎖であって
1は、フィルタ:一般的な濾過
フィルターは、すべての操作ファイアウォールのデフォルトのテーブルを格納するために使用されます。
INPUT
、FORWARD
、OUTPUTの
フィルタテーブルには、2つの正規のモードを持っている
だけでINPUTとOUTPUTチェイン後、ネイティブのファイアウォールルールを開始し、送信先IP IPベースのマシンを。
送信先IP INPUTチェーン、FORWARDとOUTPUTチェーンを通じて、ネットワークファイアウォールルールを開始し、外部IPネットワークです。
2、NAT:のNAT機能(ポートマッピング、アドレスマッピングなど)
PREROUTING
INPUTに
出力
POSTROUTING
3、マングル:特定のパケットを修正するための
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
4、生:生は、一般的に配置されたときに最高レベルは、制限されているが順序でのパフォーマンス改善、iptablesのは、リンクのトラッキングパケット処理をさせないように
INPUT
OUTPUT
FORWARDを
あなたは、各テーブルには、対応するチェーンが含まれている、私たちがしなければならない見ることができますチェーンのオペレーションを実行するが、最初のチェーンはテーブルの上に動作していることを示す必要があり、各テーブルは、同じ機能ではありませんので、私たちがしなければならない徹底的に各テーブルには、どのような機能を持って理解しているのですか?何このテーブルのチェーン?順番にこれらの鎖は、最大動作することができ、徹底的に理解し、行動を必要とするかもしれません!
iptablesはホストすることは非常に熱心ではない上で動作していますか?NO!NO!NO!あなたはそれをやっているコマンドをiptablesのかわからないので、まだ、そう、ここでは、iptablesコマンドを見てみましょう。私たちは学ばなければならない理由(ええ、私はまだ、firewalld、今うんiptablesの言う方法を、実際には、これは非常に単純です、firewalldがネットワーク隔離ツールのカーネルに基づいており、iptablesのことで、そのルールが電話してセットアップすると言っていませんでした鍋に上や食べ物、あなたはボウル盛の理由を食べに使用します。)
iptablesのコマンドの
コマンドフォーマット:
[表-t] iptablesのコマンド・カテナのalberghiera [-m matchname [マッチ当たりオプション] [ターゲット[ターゲットごとの-オプション] -j
オプション意味
チェーン管理
-N:新しいカスタム新しいルールチェーン;
-X-は:、削除カスタムルールチェーンを削除し、次の3つの条件の両方をする必要が削除
1. 0の参照カウントがある
空のチェーンルールはありません2.
3.チェーンのカスタム
-P:ポリシーは、デフォルトポリシーを設定します。チェーンフィルタテーブルのために、デフォルトの戦略は:
ACCEPTは:受け入れ
DROPを:廃棄は
拒否:拒否
-E:カスタム・チェーンの名前を変更し、参照カウントが0にチェーンの名前を変更することはできません定義されていないが、することはできません削除;
参照
-Lを:リスト、指定されたチェーン上のすべてのルールを一覧表示し、ここでLは、変更のいくつかのオプションであり、
-n:;数値形式でNumberic、表示アドレスとポート番号
-v:冗長、詳細情報;
-x :正確に、結果は、カウンタの正確な値を示す図である。
-line-番号:ルール番号が表示され、
管理ルール
-Aを:追加、さらに。
-I:最初の上映が省略されている、位置を示すために、インサートを挿入し;
-D:;削除し、削除し
、(1)ルール番号で指定された
(2)ルール自体に指定され;
-R&LT:交換し、指定された鎖の置換を指定しますルール;
-F:フラッシュ、空に指定されたルール鎖;
:; -Zゼロ、ゼロ
各ルールのiptablesは、2つのカウンタを有している:
パケットの数(1)と一致する;
(2)に一致パケットおよびすべてのサイズ、
マッチング条件が
実質的条件に合致する:iptablesの/ netfilterのセルフによって提供される任意のモジュールをロードせずに
-s、--sourceアドレス[/マスク] [、...]: ソースIPパケットをチェック;指定されたアドレスまたは範囲かどうかをここで扱う
;チェックパケットの宛先IPアドレスは、ここで指定したアドレスまたは範囲を満たしている:[/マスク]対処--destination、-d [、...]
、-p --protocolプロトコルは、一般にTCP、UDP、ICMPと共に使用されるプロトコルを指定された
インターフェースデータパケット流れる。のみPREROUTINGに適用される、テキスト・データ・リンク・パケット・フローに適用することができる。--in-インタフェース名は、-i INPUTとFORWARD鎖;
-o、--out-インタフェース名:インタフェースデータパケットフローは、とすることができます データグラム流出へのリンクテキストのみ適用することができFORWARD、OUTPUTそしてPOSTROUTINGチェーン。
暗黙的な拡張は、
手動ローディング拡張モジュールを必要としない;それらは、プロトコルの拡張であるため、-pで指定されたプロトコルは、それが拡張するモジュールを意味することが示されたときはいつでもように; - TCP
--sourceポートは、--sportポート[:ポート];ポートの範囲とすることができるパケットの送信元ポートと一致する
宛先ポートは、パケットを一致、ポートの範囲であり得る; [:ポート] - DPORTポート--destinationポート、
--tcp flags- CoMPのマスクは、マスクがSYN、ACK、FIN、RSTとすることができるリストである、 COMPはリストマスクフラグが1に設定されなければならないです。例えば: " - TCP-フラグSYN、 ACK、FIN、RST SYN"はフラグをチェックするために、示しSYN、ACK、FIN、RST 4であり、SYN-1が0でなければならない残りされなければならない。
--syn 「--tcp-フラグSYN、ACKに対応しない、最初のハンドシェイクを一致させるために使用される 、FIN、RST SYN」
手動によるローディング拡張モジュールを、それらがプロトコルの拡張であるため、-p使用して、指定されたときはいつでも、そのよう契約、その拡張モジュールを示したことを意味する; - UDP
--sourceポート、--sportポート[:ポート]:パケットの送信元ポートと一致する、ポートの範囲とすることができる。
--destinationポート、 - DPORTポート[:ポート]:一致パケットの宛先ポートと、それがポートの範囲とすることができる。
なしマニュアルローディング拡張モジュール;それらは、プロトコルの拡張であるため、-pで指定されたプロトコルは、それが意味することが示されたときはいつでも、そのよう拡張モジュール; - ICMP
--icmp型{型[/コード] |}型名
明示的な拡張は、
拡張モジュールを呼び出すために-mオプションの拡張機構を指定する必要があり、
マルチ:離散または連続的最大15、複数のポートの一致条件を定義するために、本明細書にそのようなので、指定された20:25のように、15の最大値を意味します2つのポートを数える場合のみ。むしろより6つのポートを数えます。
iprange:IPアドレスへのアドレスの連続ブロック内に複数の一致条件を指定し、
--src-範囲[-to]から
[-to] --dstレンジから
時刻:timeパケットの時間範囲を指定到達マッチ、一般的に使用されるオプションは、
HHを--timestart:ミリメートル:[SS]
HH --timestop:ミリメートル[:SS]が
[...、日]日--weekdays
日--monthdays [、日...]
- YYYYのDateStart [-MM [-DD [THH〔:ミリメートル[:SS]]]]]
--datestop YYYY [-MM [-DD [THH〔:ミリメートル[:SS]]]]]
--kerneltz:カーネルむしろ、デフォルトのタイムゾーンUTCより構成;
--string:アプリケーション層データパケットが検出マッチング文字列パターンを行う
--algoが{BM | KMP}:文字列検出アルゴリズムをマッチング;
--stringパターン:検出します文字列パターン;
--hexストリングパターン:文字列パターンが検出される16進数形式;
connlimit:同時接続の一致の各クライアントIP番号に従って製造;
--connlimit-N点で最大:接続の数より少ないマッチN;
--connlimit上記-N:Nマッチ接続の数よりも大きい場合、
限界:ベーストランシーバWENは、一致率作ら
[| /分/秒--limitレート | | /時間/日] ## 最大レート
--limitバースト数は##要求の最大数を受け入れることができる表し
に「トラッキング機構を接続」状態接続の状態を確認し、
状態に--state
接続追跡メカニズム:リクエストとマシン上の応答の間のトレースの関係を、状態は以下の通りです:
-新規:新しい要求が、この接続のための情報入力を追跡するには接続テンプレートはありません最初の要求が発行されるため、それが認識されている;
-設立:NEW状態の後、接続状態を通信期間に行わエントリの故障の確立のためのトラッキングテンプレートまで;
-関連:関連する接続、FTPなど;接続の間のコマンドプロトコルとのデータ接続関係
無効な接続;:無効-
-追跡されていない:接続トラックが実行されない。
処理動作は
ACCEPT:受け付け
ドロップ:廃棄
REJECT 拒否した
RETURN:呼び出しチェーンを返すために、
REDIRECT:ポートリダイレクション
LOG:ロギング
MARKを:ファイアウォールマークを行う
DNATを:デスティネーション翻訳
SNAT:ソースアドレス変換
MASQUERADE:マスカレード
うわー、それはそんなに、上記のコマンドとオプションは、突然、私は見た、実際には大きな頭と二人の友人は、法外であるそんなに見ないのですか???私はそれで遊んでいましたか?どのように賢い私は、どのようにあまり覚えていないのですか???非常に多くのコマンドが80%以上が一般的に使用されていない実際には、ああ、あなたは選択の思い出と仕上げすることができ、全体のポイントは、コマンドの後に発生した、と私はそれが簡単に見つけた場合、私は、それが何を意味するか知っているので、ということです、ゴーストはむしろ突然、サービスの牛のバッチを書きます将来大物には、このコマンドを使用することを知っている、と私は知らないし、もっと恥ずかしいことではありません見つけることができませんか?彼はゴシップの多くは、以下の実用的な操作が少し始まりました!!(どのように私は???それについて少し興奮を感じます)
ケース実用的な操作
フィルタテーブル
のiptablesは、-f:クリアにすべてのポリシーを
iptablesの-X:空の定義チェイン(この工程の前に空にしてください)
のiptables -N old_forward:チェーンをカスタマイズする
のiptables -E old_forward new_forward:の自己定義されたチェーンの名前変更
iptablesの-P順方向電圧降下:ドロップラベルされたデフォルトのポリシー前方チェーンフィルター
のiptables -L -n-数--line:フィルタテーブルをチェックし、線や戦略の数を示して
iptablesのは、-D前方9をフィルタリング-t:フィルタテーブルforwardチェインを削除します物品9つのポリシー
のiptables -tフィルタ-A入力-s 0.0.0.0/0 -d 192.168.254.24 -p ICMP -j REJECT: 、PINGをすべてのホスト(0.0.0.0)を制限する宿主拒絶反応は
-tフィルタをiptablesの-A INPUT -d 192.168.254.24 -i ens33 -p ICMP -j REJECT: すべてのホスト(0.0.0.0)ホストカードpingの存在によって拒否ens33表示
実用的な動作を:
最初に、操作を開始する前に:iptablesの-tフィルタ-Fとiptables -tフィルタテーブルをクリアするために、すべてのルールを-Xフィルタ。(Firewalldは開いた状態ならばああ、あなたはまた、開封後は、デフォルトのルールを見ることができます:iptablesのは、-L -nをフィルタリング-t)
マシンはpingに禁止されている:フィルタ-A INPUTが(ポートをREJECT使用して表示されて接続されていない)REJECT -j 0.0.0.0/0 -d VM IP -p ICMPを-s -t iptablesの
iptablesの-tフィルタの-A INPUT -d VM IP -p ICMP -j DROP(表示要求タイムアウト)
あなたが直接パケットを破棄教えてくれません受信されていないと私はDROPを受け、あなたが、パケットが来て、私はそれを受け取っREJECTていることが分かるが、私はあなたに戻って取得することを拒否します。
natテーブルの
ファイアウォール経由192.168.250.0のIPアドレスの#ネットワークソースアドレスは192.168.31.100 IPアドレスに変換されます(SNAT:ソースアドレス変換)
のiptables -tのnat -A -s 192.168.250.0/24 POSTROUTINGは192.168を-d! .250.0 / 24 - J SNAT --to-ソース192.168.31.100
ターゲットアドレスにアクセスするには#が192.168.31.200このマシンで、192.168.250.1(DNATターゲットアドレス変換)に転送されたTCPプロトコルのポート80との
iptablesのNAT -t - PREROUTING -p TCPは--to-あなたが192.168.250.1:80たいです--dport 80 -j DNAT 192.168.31.200を-d
#はターゲットアドレスにアクセスすることが192.168.31.200で、マシンは192.168 TCPポート80に転送の両方のプロトコルです。 31.100 9999ポート番号(宛先ポートアドレス変換DNAT)
NAT -A PREROUTING -p TCPは、-d -t iptablesの192.168.31.200 --dport 80 -j DNAT --to-192.168.31.100:あなたが欲しいです9999
:実用的な操作を
操作を開始する前に最初:iptablesの-tのnat -F iptablesの-t NAT -X natテーブルのすべてのルールをクリアします。それぞれ、3台の仮想マシンを開く必要があり、S1、S2、S3、S1は、アクセス端末であり、S2はS3は、サーバで、エンドファイアウォールです。
s1が提供されます。IP 192.168.27.5/24ゲートウェイ:192.168.27.1ネットワークファイアウォールは、状態を閉じました。
S2の設定:ens33 IP 192.168.27.1/24 ens37 IP 112.112.112.1/24ゲートウェイがそう、ネットワークファイアウォールがオンになっています。(2枚のNIC)
S3の設定:IP 112.112.112.10/24 112.112.112.1ゲートウェイのファイアウォールは、状態を閉じました。httpdサービスをダウンロードし、index.htmlをファイルの内容を記述します。
この場合S2:オープンルーティング転送は1>の/ proc / SYS /エコー 、ネット/のIPv4 / ip_forwardをこの場合には、S1ピングS2にpingを実行することができます。
S1で持つ:112.112.112.10は、エンドS3で書かれたindex.htmlの内容を見ることができますカール:tailfは/ var / log / httpdの / access_logのは、 IP S1が正常にアクセスされて見ることができます。
iptablesの-tのnat -A POSTROUTING -s 192.168.27.5:バックS2元のアドレス変換ルールの追加 -d 112.112.112.10 -j SNAT --to-ソース112.112.112.1を
112.112.112.10カール指数で見ることができます。とS1でS3最後に書かれた.htmlのコンテンツ:tailfは/ var / log / httpdの / access_logのは112.112.112.1 IP成功した訪問を見ることができます。
ダウンロードhttpdサービスs1の終わりとのindex.htmlで/ var / www / htmlと設定ファイルを記述します。
宛先アドレス変換ルールs2を追加します。iptablesの-tのnat -A PREROUTING -s 112.112.112.10 -d 112.112.112.1 -j DNAT --to-先を192.168.27.5
S3のこの時点で:112.112.112.1カールS1を見つけるログが112.112.112.10成功した訪問で表示するのS1のindex.htmlの内容を見ることができます。
ポート変換規則S2を追加します。iptablesの-t NAT -I PREROUTING -d 112.112.112.1 -p tcpの80 -j DNAT --to-先112.112.112.10:80 --dport
S3でログを表示するには、この時間192.168が表示されます.27.5成功した訪問。(ポート前のステップは何か他の職業が存在しないに置き換えることができ、また、発効)
ああ!私は2つのテーブルにルールを設定するために発生していない状況を含め、小さすぎる、我々は実際のプロセスで動作し、生のテーブルとテーブルをマングルする機会を使用しているので、私はどのようにこれを勉強しませんでした2つの表は、ルールに設定し、そうある日、私は忙しいし、次の塗りつぶしハに戻って来てほしいです。また、私は、ハンズオンの仮想マシンで行われた実験だったホスト上でそれを行うことはしなかった、操作ミスの場合には、それは、「儀式謝罪」のものであるので、それを確認してください何の問題をしない、仮想マシン上の実験では、小さなパートナーことをお勧めしますその後、最初のホストを行い、安全性を取ります!
そんなに基本的に動作させる、のは、何か他のものを言わせて!
firewalld優先
ポリシー適用の優先順位:生、マングル、NAT、フィルター
戦略一般的に使用される優先順位:フィルタ、NAT、マングル、生
iptablesのパケット
1パケットは、ens33として、ネットワークインターフェースに到着します。
2.生のテーブルのPREROUTINGチェーン、このチェーンの効果はキャッチ接続を追跡する前にパケットを処理することです。
3.接続トラックの場合、このプロセスインチ
4. Goは、このようなTOSなどのデータパケットを、変更することができ、テーブルのPREROUTINGチェーンをめちゃくちゃにします。
natテーブルのPREROUTINGチェーンを入力します、これはDNATを行うことができますが、フィルタリングしません。
6.その経路を決定し、ローカルホストまたは他のホストに転送を参照することです。
えーえー、一見firewalld上で動作、私はそんなに、それに接触し、私は遅れていたと追加するコンテンツがある場合、私は小さなパートナーが経験した後見て、また、ウェルカムメッセージ交換を持っている願っています!!!