何か決めなきゃ駄目ですか。



俺が決めたら、貴方はどうするんだい。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

racoon2+L2TP in LAN

racoon2の設定とかIKEv2の仕組みとか、イマイチ理解できん。

LAN内でWindows標準のL2TPでVPNしてるんだけど、でもXPはIKEv2使えない。
素敵!

というわけで、racoonをracoon2に焼き直しするよ。




LAN環境は単純で、DHCP配下に以下の2台。

Linux(Ubuntu8.04):192.168.1.100
Windows(XP SP3):192.168.1.3


標準的な実装をどこまで使いこなすか、というのがWindowsの面白いところなので、
L2TPクライアントはWANミニポート。
これの設定方法は・・・まぁ、アレだ。
テスト範囲外ってことで・・・。

racoon2のインストールに関しては、以前のUbuntu8.04+racoon2を見ることにする。
使用するバージョンもコレ。

インストール時と同様、以降はrootで作業する。

良く考えたらパスが通ってなかったので追加。

# echo "export PATH=$PATH:/usr/local/racoon2/sbin" >> /root/.profile

(この時、Ubuntuって.bash_profileじゃなくなったのを初めて意識した気がする)

私の場合はracoonが既に動いていてややこしい。
とりあえず消す。

# killall racoon
# setkey -F
# setkey -FP


さて。
racoon2の実装では、spmd→ikedという流れ。
racoonの実装で言うと、setkey→racoonと大体同じ。
spmdはikedと参照するファイルが同じってこともあるので、話を分けにくいので一緒くた。
(でも、きっとメンテナンスは楽なんだと考えながら作業を始めよう。)

移動。サンプルファイルが転がってるので、いらないものをsampleに投げる。

# cd /usr/local/racoon2/etc/racoon2
# mkdir sample
# mv *.sample sample/



参照すると楽になるので、以下をコピー。

# cp sample/racoon2.conf.sample ./racoon2.conf
# cp sample/vals.conf.sample ./vals.conf
# cp sample/default.conf.sample ./default.conf



racoon2.confが本流で、くっつけたり切り離したりします。
vals.confは、パスとか入ってます。C言語的に言えばヘッダファイル。
default.confは、以降の設定で上書き可能なデフォルト設定。
どちらも、そのまま置いておきます。

今回は、test.confを自分で作ってracoon2にくっつけて動かします。
なので、racoon2.confの変更点はこれだけ。

# sdiff -s racoon2.conf sample/racoon2.conf.sample
include "/usr/local/racoon2/etc/racoon2/test.conf"; <


test.confには、ikev1で動作させるための設定を書きます。
ここで書く設定は、spmdでポリシーを管理してもらうときにも読み込まれます。
管理が楽な時も有りますが、問題点を把握していない場合は混乱します。
私はしました。
まぁいいです。

とにかく、test.confを書きます。

...
......
............

はい、書き終わりました。
やったね。

あてにしたもの。
racoon2-20050625b_1.tbz.496706/share/doc/racoon2/config-usage.ja.txt.html
(FreeBSD6) racoon2 による IPsec の設定

# cat test.conf
remote test@192.168.1.3 {
acceptable_kmp { ikev1; };
ikev1 {
logmode normal;
kmp_sa_lifetime_time 28800 sec;
my_id ipaddr "192.168.1.100";
peers_ipaddr 192.168.1.3 port 500;
kmp_enc_alg { 3des_cbc; };
kmp_hash_alg { sha1; };
kmp_dh_group { modp2048;modp1024; };
kmp_auth_method { psk; };
pre_shared_key "${PSKDIR}/key_192.168.1.3.psk";
exchange_mode main;
need_pfs off;
};
};
selector 31 {
direction outbound;
src 192.168.1.100/32 port 1701;
dst 192.168.1.3/32 port 1701;
upper_layer_protocol "udp";
policy_index ip192.168.1.3;
};
selector 32 {
direction inbound;
dst 192.168.1.100/32 port 1701;
src 192.168.1.3/32 port 1701;
upper_layer_protocol "udp";
policy_index ip192.168.1.3;
};

policy ip192.168.1.3 {
action auto_ipsec;
remote_index test@192.168.1.3;
ipsec_mode transport;
ipsec_index { ipsec_esp; };
ipsec_level require;
my_sa_ipaddr 192.168.1.100;
peers_sa_ipaddr 192.168.1.3;
};

今回はPre-Shared-Keyを使うので、準備。

# mkdir psk
# echo "Pre-Shared-Key" > psk/key_192.168.1.3.psk
# chmod 600 psk/key_192.168.1.3.psk


※Phase1でこける原因。


あとはikedを起動して、話としては終わり。

# iked



WindowsからL2TP/IPsecで接続しましょう。
多分こけます。




上記の方法だと。

Phase1に失敗します。
 ikev1.c:2214:isakmp_parsewoh(): invalid length of payload
echoを使ってファイルに書き込むと、バイナリ的には0x05がくっつく。
ファイル全体をkeyを見るracoon2では、keyが合わずに失敗する。
結論としては、printfを使えという話。

# printf Pre-Shared-Key > psk/key_192.168.1.3.psk


再起動するのかね。

# killall iked
# killall spmd
# iked
# spmd


とにかく、とりあえず動くまでは

# iked -F -d


しましょう。
ヘルプは# iked -hで出るから安心するんだ。

とりあえずここまで。





追記。
Lifetimeとか一致させないと上手くいかないかも。ゴメン。
ikev1 {
の辺りに
kmp_sa_lifetime_time 28800 sec;
を追記とかで。

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。