- PR -

iptablesとpingとの関係

投稿者投稿内容
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-11 15:38
初めまして。
iptablesでファイアウォールサーバのルーティング設定をしている初心者です。
初歩的な質問でお恥ずかしいのですが、教えて戴きたく思います。

[PC1]192.168.1.221
 |
eth0:192.168.1.220
[サーバ]
eth1:192.168.10.2
 |
[PC2]192.168.10.3

iptablesを設定し、PC1より"ping 192.168.1.220"は通るんですが、
"eth1:192.168.10.2"だとTime Out.します。
サーバはDNSを立ち上げてません。

<iptables>
☆初期化としてINPUT,OUTPUT,FORWARDをすべてDROP
 :
 :
iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.1.221 -d 192.168.1.220 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s 192.168.1.220 -d 192.168.1.221 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.1.220 -d 192.168.1.221 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s 192.168.1.221 -d 192.168.1.220 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.1.221 -d 192.168.10.2 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s 192.168.10.2 -d 192.168.1.221 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.10.2 -d 192.168.1.221 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s 192.168.1.221 -d 192.168.10.2 -j ACCEPT
 :
 :

ifconfigではeth0、eth1共に認識しており、upしてます。

■質問
pingでの導通確認にはDNSでの名前解決は必要なのですか?
IPアドレス指定であればDNSがなくてもpingは通ると思ってます。
すいません。
情報を得られず、私の推測です。


イマイチiptablesのことが分かってないみたいです。。。
ご存知の方がおりましたらご教授下さい。
宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2008-11-11 17:15
こんばんは.
引用:

美那さんの書き込み (2008-11-11 15:38) より:

iptablesでファイアウォールサーバのルーティング設定をしている初心者です。


まず,iptables では routing できません.
それはあくまでも firewall としての機能です.
引用:

iptablesを設定し、PC1より"ping 192.168.1.220"は通るんですが、
"eth1:192.168.10.2"だとTime Out.します。


その PC1 で routing していないからでは?
default gateway は設定していますか?
引用:

pingでの導通確認にはDNSでの名前解決は必要なのですか?
IPアドレス指定であればDNSがなくてもpingは通ると思ってます。


icmp の通信と DNS による名前解決は別の仕組みですので,
ご認識の通り ping での通信に名前解決は必ずしも必要ありません.
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-11 17:56
kazさん、お返事有難う御座います。

>icmp の通信と DNS による名前解決は別の仕組みですので,
>ご認識の通り ping での通信に名前解決は必ずしも必要ありません.
有難う御座います。

----------------------------------------------------------------
あと、なんか私がやろうとしていることが若干違ってたみたいです。

[PC1]192.168.1.221
 |
eth0:192.168.1.220
[サーバ]
(仮想IP:192.168.1.232)
eth1:192.168.10.2
 |
(仮想IP:192.168.1.233)
[PC2]192.168.10.3




でした…(滝汗)

サーバ上で仮想IPを登録することができ、PC1から"ping 192.168.1.220"、"ping 192.168.1.232"は導通することができました。
iptablesに反映してないので、"ping 192.168.10.2"は通ってません。

でも、iptablesに以下のような設定をするんですよね?
D-Address192.168.1.232のとき192.168.10.2に変換(INPUT)
S-Address192.168.10.2のとき192.168.1.232に変換(OUTPUT)

まだ勉強中ですからいいですが、プロジェクトが始まったらどうしよう〜…
はぁ〜…

※※※
 ちなみに"引用:"みたいなのはどーやると付くんですか?


忙しい中、お返事有難う御座いました。

[ メッセージ編集済み 編集者: 美那 編集日時 2008-11-11 17:58 ]
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-11 20:10
すみませ〜ん。
新しいスレッド立てるのもアレなんで、さらに追記で質問させて下さい。

[PC1]192.168.1.221
 |
eth0:192.168.1.220
[サーバ]
(仮想IP:192.168.1.232)
eth1:192.168.10.2
 |
(仮想IP:192.168.1.233)
[PC2]192.168.10.3

■質問
PC1から"ping 192.168.10.2"を通せるようにしたいのですが、iptablesにはどのように
記載すればよいのでしょうか?
<iptables>
☆初期化でINPUT、FORWARD、OUTPUTをすべてDROP
 :
 :
iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.232 -j DNAT --to 192.168.10.2(☆)
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.2 -j SNAT --to 192.168.1.232(☆)

iptables -A INPUT -p icmp -i eth0 -s 192.168.1.221 -j ACCEPT(※1)
iptables -A OUTPUT -p icmp -o eth0 -d 192.168.1.221 -j ACCEPT(※2)
 :
 :

eth1(サーバ)に対するpingなので、INPUT(※1)/OUTPUT(※2)を記載しました。
仮想IPとの変換は☆でやってるつもりです(だと思ってます)。
"ping 192.168.1.220"、"ping 192.168.1.232"は通るんですが…
NAT変換されてないってことなんでしょうか?


有識者の方、お時間があるようでしたら、お返事戴けると助かります。
(ちなみに私の会社にはネットワーク有識者はおりません。)
なので、愚問なのは自分でも分かっているのですが、ご教授願えたらと思います。


宜しくお願い致します。
すけ
会議室デビュー日: 2008/02/12
投稿数: 13
投稿日時: 2008-11-11 20:33
iptablesのforwardチェーン(?)を使えばいけそうに思います。
この辺を参考にどうぞ。
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/security-guide/s1-firewall-ipt-fwd.html
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2008-11-11 21:40
まず,iptables で実現したいことが何なのかを明確にしましょう.
引用:

※※※
 ちなみに"引用:"みたいなのはどーやると付くんですか?


※[] で quote を囲った内容から [] で /quote を囲った内容が
※「引用」の内容と見なされます.

192.168.1.0/24 の network と 192.168.10.0/24 の network とで
通信をさせたいのですよね?
つまり,仮想化しているサーバを router と見立てて,
PC1 と PC2 とを相互に通信させたいという認識でよろしいですか?
その場合は iptables は使いません.
必要なのは iptables でも NAT でもなく,routing table です.
引用:

美那さんの書き込み (2008-11-11 20:10) より:

[PC1]192.168.1.221
 |
eth0:192.168.1.220
[サーバ]
(仮想IP:192.168.1.232)
eth1:192.168.10.2
 |
(仮想IP:192.168.1.233)
[PC2]192.168.10.3


ここで,PC1 はサーバの eth0 へ,PC2 は 仮想 IP:192.168.1.233 へ
それぞれ default gateway を設定する必要があります,たぶん.
※構成がよくわからないので「たぶん」と書かざるを得ません.

(仮想IP:192.168.1.232) と eth1:192.168.10.2 は必要ないように感じます.
ややこしいのですけど,そもそも「仮想化」はどのように実現していますか?
まずは「何をしたいか?」と「実際の構成はどうなっているか?」がわからないと
お話は進まないと思います.
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-12 10:35
kazさん、お返事有難う御座います。

引用:

kazさんの書き込み (2008-11-11 21:40) より:
まず,iptables で実現したいことが何なのかを明確にしましょう.


最終形態のネットワーク構想は簡単ですけども、以下のようになります。

///WAN///
  |
210.xxx.xxx.xxx
[ルータ]
192.168.1.220
  |
  |(WAN)            (公開サーバ)
  |                IP:192.168.10.3
eth0:192.168.1.220          (仮想IP:192.168.1.232)
[サーバ]----eth1:192.168.10.2------------[サーバA]…(DMZ)
(FireWall)   (仮想IP:192.168.1.232)
eth2:192.168.20.2
(仮想IP:192.168.1.242)
  |
  |(LAN)
  |-----------------------------+(内部サーバ)
  | クライアント        |
[PC2]             [サーバ]192.168.20.3

■目的
1. ルータより内部はすべてプライベートIPでの管理(公開サーバは仮想IPでの管理)
→その為に仮想IPを使用すると言う方向

2. kazさんの言うとおりWAN、DMZ、LANのnetwork通信させるのが目的
→とりあえず以下の環境で仮想IPで実現できるのかプロトコルicmpを使用し、
 各端末からpingできるようにiptablesを駆使し、同通させてみる。

>[PC1]192.168.1.221
> |
>eth0:192.168.1.220
>[サーバ]
>(仮想IP:192.168.1.232)
>eth1:192.168.10.2
> |
>(仮想IP:192.168.1.233)
>[PC2]192.168.10.3

今はそういう方向で進めています。
なので、今質問している環境は仮想IPでの管理をiptablesで可能かの検証と言えば
よろしいのですかね。



引用:

192.168.1.0/24 の network と 192.168.10.0/24 の network とで
通信をさせたいのですよね?
つまり,仮想化しているサーバを router と見立てて,
PC1 と PC2 とを相互に通信させたいという認識でよろしいですか?


認識はあってると思ってます。


引用:

その場合は iptables は使いません.
必要なのは iptables でも NAT でもなく,routing table です.

>[PC1]192.168.1.221
> |
>eth0:192.168.1.220
>[サーバ]
>(仮想IP:192.168.1.232)
>eth1:192.168.10.2
> |
>(仮想IP:192.168.1.233)
>[PC2]192.168.10.3

ここで,PC1 はサーバの eth0 へ,PC2 は 仮想 IP:192.168.1.233 へ
それぞれ default gateway を設定する必要があります,たぶん.
※構成がよくわからないので「たぶん」と書かざるを得ません.

(仮想IP:192.168.1.232) と eth1:192.168.10.2 は必要ないように感じます.
ややこしいのですけど,そもそも「仮想化」はどのように実現していますか?
まずは「何をしたいか?」と「実際の構成はどうなっているか?」がわからないと
お話は進まないと思います.


スタンドアローン環境なので、defauly gatewayはすべて192.168.1.1にしています。
kazさんが構成を知るにはどの情報を展開すればよろしいのでしょうか?

仮想化は/etc/sysconfig/network-script/配下に"ifcfg-eth0:1"ファイルを作成し、
内容は以下のようにしております。
-------------------------------------------
DEVICE=eth0:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.232
NETMASK=255.255.255.0
-------------------------------------------

サーバでは"ifconfig -a"の結果は以下のようになってます。(簡略で記載します。)
-------------------------------------------
eth0 -> 192.168.1.220 up
eth0:1 -> 192.168.1.232 up
eth1 -> 192.168.10.2 up
lo -> 127.0.0.1 up
-------------------------------------------

これで仮想化は実現できてると思っているのですが、これだけではIP:192.168.10.2と
IP:192.168.1.232はリンクしませんか?


また、routing tableというのを初めて聞きました。
私のイメージではiptablesのFORWORDチェーンと同様だと感じました。
少し調べてみます。


※※※
 いずれPC2はクライアントですが、(DMZ)公開サーバに変更されます。
 さらにNIC1枚増やして、その配下には内部サーバ&クライアントPCが置かれるような
 感じになります。


すみません。
知識不足な上、色々と手探りな状態での質問ですので、ご足労かけてしまい申し訳け
ありません。
うまいこと質問に対する回答もままなっていないのだろうとも思っております。

ぢつは社内にネットワークに詳しい人もいなくって…
(実際には辞めちゃって、何も知らない私に作業を振られたってことなんですが…)

また、何でもいいのでお時間のあるときにお返事を戴ければと思います。



以上、宜しくお願い致します。

[ メッセージ編集済み 編集者: 美那 編集日時 2008-11-12 10:37 ]

[ メッセージ編集済み 編集者: 美那 編集日時 2008-11-12 10:39 ]
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-12 10:43
すけさん、情報有難う御座います。

引用:

iptablesのforwardチェーン(?)を使えばいけそうに思います。
この辺を参考にどうぞ。
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/security-guide/s1-firewall-ipt-fwd.html


これから参考にさせてもらいます。


以上、宜しくお願い致します。

スキルアップ/キャリアアップ(JOB@IT)