本日は、IPTablesをやります!!
因みに私は、経験が浅い為、浅い視点で概念を理解しているかもしれませんので、
ご指摘等頂けたら、嬉しいです。
くれぐれも罵詈雑言は、やめてください。 へこみます....
というわけで、
IPTablesって何ですか~~!と聞かれたときの為に、自分なりに理解した内容をまとめました。
※①概念編 ②実装編 というふうに2部に分けております。
私の理解では大雑把ですが、Linux内部に入力されたデータに対して、目的の処理を実現する役割が
IPTablesです。
そして、その目的というものが、
これから説明する4種類の"TABLE"に紐づいています。
※この後出てくるchainについては、
難しく考えず目的を果たすために "配置された存在" みたいに理解しておけばよい思います。
サッカーで言えば、点を取る為にフォワードがいて、守るためにディフェンスがいるみたいな。。。
サッカーやったことありませんが...
では、それぞれのテーブルの内容を見ていきましょう!!!!!
分かりやすく図も作りましたので、併せてご覧ください!!
TAbLE(目的)の内容--------------
・Filter
/*
パケットに対して、フィルターをかけ
①許可して通す ②拒否して通さない ③廃棄する
要するにF/Wみたいにセキュリティを掛けようって事です。
関わっているChainは、INPUT、OUTPUT、FORWARD です。
なぜ関わっているchainはここに配置されているのか????
INPUT:Linux内部のメインの処理に怪しいデータが届かないようにする為。
OUTPUT:メイン処理で生成されたデータが信頼できるか確認する為。
FORWARD:メイン処理を通らないデータに対して、怪しいデータかどうか確認する為。
です。
/
・Nat
/
Linux内部を隔離された領域にしたい!!って時に使います。
関わっているChainは、PREROUTING、POSTROUTING、OUTPUT です。
なぜ関わっているchainはここに配置されているのか????
PREROUTING / POSTROUTING :Linux内部を隔離された領域にする為、入口と出口で変換します。
OUTPUT:これは理解に苦しみますが、
認識としてメイン処理を通る_OUTPUT/通らない_POSTROUTING
で設定を分ければ運用コストがかからないで十分だと思います
/
・Mangle
/
パケットに優先順位付けをするぞ~~!!って時に使います。
関わっているchainは、全部です。
なぜ関わっているchainはここに配置されているのか????
考え方次第でバリエーションは豊かになりますので、各々の説明は割愛します。
例として、メイン処理を通る通信のみに優先順位付けしたい場合、INPUT。
Linux内部全体でTCP通信に優先順位付けをしたい場合は、PREROUTING
みたいな感じです
/
・Raw
/
!!
って時に使います。
関わっているChainは、PREROUTING、OUTPUT です。
なぜ関わっているchainはここに配置されているのか????
PREROUTING:***************
OUTPUT:***************
説明できません💦
理解が浅いので次回の実装編に持ち越したいと思います。
*/
では、IPTABLESの概念の説明は終了です。
つづいて、実装に入ります、と言いたい所ですが、2回に分けて投稿したいと思います。
初記事なので、長時間で疲れてしまったためです
実装編は、2月頭を予定しております。
宜しくお願いします。