Win2k(192.168.2.102)
|
eth0(192.168.2.2)
RedHat9
ppp0
|
ADSLモデム
|(↑事務所側)
|
WAN
|
|(↓自宅側)
ADSLモデム
|
ppp0
RedHat9
eth0(192.168.0.1)
|
Win2k(192.168.0.89)
として双方のRH9でVPNを同設定で構築しています。
[root@home.ddyn.dns.net]# grep -v ^# /etc/ipsec.conf
version 2.0 # conforms to second version of ipsec.conf specification
config setup
interfaces="ipsec0=ppp0"
klipsdebug=none
plutodebug=none
conn %default
type=tunnel
keyingtries=10
authby=rsasig
keylife=1h
pfs=yes
conn hh-to-oo
left=hhh.hhh.hhh.hhh
leftsubnet=192.168.0.0/24
leftid=@home.ddyn.dns.net
leftrsasigkey=0sA…9VU9
leftnexthop=aaa.aaa.aaa.aaa
right=ooo.ooo.ooo.ooo
rightsubnet=192.168.2.0/24
rightid=@office.ddyn.dns.com
rightrsasigkey=0sAQN…6IXIn
rightnexthop=bbb.bbb.bbb.bbb
auto=add
conn block
auto=ignore
conn private
auto=ignore
conn private-or-clear
auto=ignore
conn clear-or-private
auto=ignore
conn clear
auto=ignore
conn packetdefault
auto=ignore
[root@home.ddyn.dns.net]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
aaa.aaa.aaa.aaa 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
aaa.aaa.aaa.aaa 0.0.0.0 255.255.255.255 UH 0 0 0 ipsec0
192.168.2.0 aaa.aaa.aaa.aaa 255.255.255.0 UG 0 0 0 ipsec0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
[root@home.ddyn.dns.net]# ipsec look
home.ddyn.dns.net Thu Jan 15 00:48:07 JST 2004
192.168.0.0/24 -> 192.168.2.0/24 => tun0x1002@ooo.ooo.ooo.ooo esp0xc6be1a28@ooo.ooo.ooo.ooo (67)
ipsec0->ppp0 mtu=16260(1397)->1454
esp0x2d2efe09@hhh.hhh.hhh.hhh ESP_3DES_HMAC_MD5: dir=in src=ooo.ooo.ooo.ooo iv_bits=64bits iv=0x460ea92149284a35 ooowin=64 seq=57 bit=0x1ffffffffffffff alen=128 aklen=128 eklen=192 life(c,s,h)=bytes(13804,0,0)addtime(63,0,0)usetime(30,0,0)packets(57,0,0) idle=21 refcount=61 ref=7
esp0xc6be1a28@ooo.ooo.ooo.ooo ESP_3DES_HMAC_MD5: dir=out src=hhh.hhh.hhh.hhh iv_bits=64bits iv=0xb863a626640aae36 ooowin=64 seq=67 alen=128 aklen=128 eklen=192 life(c,s,h)=bytes(11648,0,0)addtime(63,0,0)usetime(30,0,0)packets(67,0,0) idle=21 refcount=4 ref=12
tun0x1001@hhh.hhh.hhh.hhh IPIP: dir=in src=ooo.ooo.ooo.ooo policy=192.168.2.0/24->192.168.0.0/24 flags=0x8<> life(c,s,h)=bytes(13804,0,0)addtime(63,0,0)usetime(30,0,0)packets(57,0,0) idle=21 refcount=4 ref=8
tun0x1002@ooo.ooo.ooo.ooo IPIP: dir=out src=hhh.hhh.hhh.hhh life(c,s,h)=bytes(9305,0,0)addtime(63,0,0)usetime(30,0,0)packets(67,0,0) idle=21 refcount=4 ref=13
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
192.168.2.0 aaa.aaa.aaa.aaa 255.255.255.0 UG 0 0 0 ipsec0
aaa.aaa.aaa.aaa 0.0.0.0 255.255.255.255 UH 0 0 0 ipsec0
aaa.aaa.aaa.aaa 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
[root@home.ddyn.dns.net]# ipsec auto --status
000 interface ipsec0/ppp0 hhh.hhh.hhh.hhh
000
000 debug none
000
000 "hh-to-oo": 192.168.0.0/24===hhh.hhh.hhh.hhh[@home.ddyn.dns.net]---aaa.aaa.aaa.aaa...bbb.bbb.bbb.bbb---ooo.ooo.ooo.ooo[@office.ddyn.dns.com]===192.168.2.0/24
000 "hh-to-oo": ike_life: 3600s; ipsec_life: 3600s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 10
000 "hh-to-oo": policy: RSASIG+ENCRYPT+TUNNEL+PFS+UP; interface: ppp0; erouted
000 "hh-to-oo": newest ISAKMP SA: #1; newest IPsec SA: #2; eroute owner: #2
000
000 #2: "hh-to-oo" STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 2596s; newest IPSEC; eroute owner
000 #2: "hh-to-oo" esp.c6be1a28@ooo.ooo.ooo.ooo esp.2d2efe09@hhh.hhh.hhh.hhh tun.1002@ooo.ooo.ooo.ooo tun.1001@hhh.hhh.hhh.hhh
000 #1: "hh-to-oo" STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 2525s; newest ISAKMP
000
双方のWin2kからはVPN先にping出来ます。
ゲートウェイになっているこの192.168.0.1から192.168.2.2、192.168.2.2へpingを飛ばしたいのですが
それにはどうすればいいのでしょうか?
パケットフィルタリングにはiptablesを使用しています。
いろいろ書いていただきましたが、原理的に無理な気がします。そもそも、RH9から相手のRH9に通信する場合、ipsecのトンネルを通るわけではなく、インターネットのグローバルな空間でIP通信しているだけ。(ipsecのトンネルを掘っているの同じ動作)
従って、相互にWAN側のグローバルアドレスには打てるでしょうが、相手のeth0等に打つことはできません。相互に独立したネットワーク空間ですから。
敢えてやるなら、普通のNATルータとしてiptablesでnatしてeth0宛だけのフィルタでicmpだけ通せばいけるような気がしますが、もともとpingを通したい意味を達成しているのかが疑問です。ipsecも含めた相互通信の確立を監視するなら、エンド端末間でやるしかないのではないでしょうか。
お世話様です。
今晩は。
> いろいろ書いていただきましたが、原理的に無理な気がします。そもそも、RH9から
> 相手のRH9に通信する場合、ipsecのトンネルを通るわけではなく、インターネットの
> グローバルな空間でIP通信しているだけ。(ipsecのトンネルを掘っているの同じ動
> 作)
つまり、ipsec0の方ではなく、ppp0の方に行っちゃうんという事ですか?
そうだとしますと
[root@home.ddyn.dns.net]# route -n
:
192.168.2.0 aaa.aaa.aaa.aaa 255.255.255.0 UG 0 0 0
ipsec0
:
はWin2k(192.168.0.89)で発生したパケットに関してipsec0を通ってaaa.aaa.aaa.aaaに向けて送出されるのであって、
RH9で発生したパケットは
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
の方に回されるのですね。
そうすると、WAN側に送信先がプライベートアドレスであるパケットが流出してしまう訳なのですね。
> 敢えてやるなら、普通のNATルータとしてiptablesでnatしてeth0宛だけのフィルタ
> でicmpだけ通せばいけるような気がしますが、
うーん、難しそうですね。
でも、その前にルーティングテーブルを書換えないといけませんよね?
(今のままじゃ送信先アドレスが192.168.2.0のままでWAN側(ppp0から)に出て行ってしまいますからね)
> もともとpingを通したい意味を達成し
> ているのかが疑問です。
ゆくゆくはoffice.ddyn.dns.comでのSWATやSambaサーバやNFSサーバにアクセス出来るようにしたいと思いまして。。。
手始めにpingが飛ぶようにしたかったのです。