人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

iptables初心者です。

http://www.atmarkit.co.jp/flinux/rensai/buildlamp/lamp_03/03_1.html
こちらのサイトに、「図4 シンプルな遮断ルールを設定した/etc/sysconfig/iptablesファイル」「ここではルールをごくシンプルにしています。」というのが紹介されています。

私にとっては呪文の羅列にしか見えないのですが、本当にこれはシンプルなのでしょうか?
熟練したサーバエンジニアなら、この設定ファイルを何も見ずにさくっと記述できるのでしょうか?

よろしくお願いいたします。





●質問者: DQNEO
●カテゴリ:コンピュータ インターネット
✍キーワード:ETC iptables エンジニア サイト サーバ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● degucho
●34ポイント

実際はiptablesコマンドの引数が羅列されたもので

saveが実行されたときに保存されるものです。


シェル上で一行一行試してiptables -Lで確認しながら

動作を検証するとわかりやすいと思います。

基本はすべてDROPで使いたいものだけ穴を開けていく感じで。

よく使われるものはコピペで採用してもいいかと思います。


http://vine.1-max.net/iptables.html

http://linuxest.jugem.jp/?eid=62

http://www.nina.jp/server/redhat/iptables/iptables.html

http://cyberam.dip.jp/linux_security/iptables/iptables_main.html

◎質問者からの返答

ありがとうございます!

やってみます。


2 ● JULY
●33ポイント

私にとっては呪文の羅列にしか見えないのですが、

まぁ、呪文と思われても仕方ないです(^^;。


余談:

呪文と言えば、sendmail.cf にかなうものは無いと、個人的には思っています。


閑話休題。

熟練したサーバエンジニアなら、この設定ファイルを何も見ずにさくっと記述できるのでしょうか?

何も見ずにサクッとかけるとしたら、熟練したサーバエンジニア、というよりも、iptables の専門家、に近いと思います。ただ、内容をある程度理解できる人は少なくないと思います。


自分が iptables の設定をする場合、デフォルトで設定されている内容、もしくは、GUI やターミナルベースの GUI もどきの設定ツールを使って吐き出したものに対して編集していきます。


例の設定をちょっと解説してみます。


 *filter

iptables に「filter テーブル」と「nat テーブル」があって、「以下は filter テーブルに対する設定です」という宣言です。

:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

iptables でデフォルトで用意されている「INPUT チェーン」「FORWARD チェーン」「OUTPUT チェーン」に対するデフォルトの挙動を設定してます。後で「この条件に合致したパケットはこうする」というルールを記述しますが、どのルールにも合致しなければ、このデフォルトが適用されます。

「[0:0]」の部分は、サクっと無視して下さい。

-A INPUT -i lo -j ACCEPT

「-A」は指定したチェーンに対するルールの追加、「-i」はインタフェースの指定、「-j」は条件にマッチした時のアクションを指定します。で、上記の場合は、

という意味になります。

-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

「-p」はプロトコルを指定、「-m」はモジュールを指定します。この「-m」で指定できるものには色々なものがあって、ここでは「icmp」という、ICMP プロトコル専用のモジュールを使う事を宣言しています。「--icmp-type」というのは、その icmp モジュールを使った時に指定できるもので、ICMP パケットの種類を指定しています。

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

今度は「state」モジュールを使っています。state モジュールは、分かりやすい例だと、TCP の接続で、「接続を始めるパケット」「応答のパケット」といった状態を識別するものです。この行は、接続先から戻ってくるパケットを許可する常套句になっています。

-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp ! --syn -j DROP

今度は「tcp」モジュールを使っています。「!」は、その後ろに続く条件の否定になります。この行を訳すと、

という事になるのですが、SYN フラグが立っていないのに、state が NEW になるケース、というのが、具体的にはよく分からないですが、何らかの不正なパケットを落とす意図があるのは分かります。個人的には、この行の必要性に関しては、よく分からないです。

-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

「--dport」は tcp モジュールのオプションで(udp モジュールでも同様のオプションはあります)宛先ポート番号を指定しています。

COMMIT

ここまでの内容を、実際に適用するためのコマンドです。


本当にこれはシンプルなのでしょうか?

やっていることは、

なので、フィルタリングしている内容自体はシンプルだけど、それを iptabels の設定に落としこむと呪文の様になってしまう、といったところだと思います。

◎質問者からの返答

>何も見ずにサクッとかけるとしたら、熟練したサーバエンジニア、というよりも、iptables の専門家、に近いと思います。ただ、内容をある程度理解できる人は少なくないと思います。

なるほど。

それを聞いて安心しました。

ご丁寧な解説ありがとうございます!

これからじっくり読んでみます。


3 ● c4h6o5
●33ポイント

新人&FW構築研修(5日間)の人から見た感想です.

(FW構築では,Web3階層システムを構築しました.FWは専用機です.)


> 本当にこれはシンプルなのでしょうか?

・コマンドが何をやっているか何となく分かります.

・設定数は1/3くらいなので,少ない気がします.

そのため,新人にも何となく分かるかなりシンプルな例だと思います.


> 熟練したサーバエンジニアなら、この設定ファイルを何も見ずにさくっと記述できるのでしょうか?

研修ではGUIで設定ファイルを書きました.

そのGUIならば,より簡単に速く書けます.

つまり,熟練したサーバーエンジニアは,

ヘルプを参考にしながらGUIを駆使してさくっと設定し,,

どうしようも無いときだけ設定ファイルを直書きすると思います.

◎質問者からの返答

なるほどなるほど。

やはり基本はツールを使って生成して、部分的に編集するのですね。

私にはまだ暗号にしか見えないので勉強がんばります!

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ