2010-03-15

実装 : 事前共有鍵認証 トンネルモード (ipcomp + esp)

 
◆ 構成


             ┌────────┐
 192.168.0.1 │                │ 192.168.0.2
           ┌┴┐            ┌┴┐
           │ │============│ │
           └┬┘            └┬┘
             │                │



◆ 192.168.0.1 の設定


# IEK 設定用ファイルの設定
#vi /home/racoon/sample1/racoon.conf
-----
path include  "/usr/local/sbin/racoon";
path pre_shared_key "/home/racoon/sample1/psk.txt";
log notify;
listen {
  isakmp 192.168.0.1 [500];
}
remote anonymous {
  exchange_mode aggressive;
  lifetime time 8 hour;
  passive on;
  proposal {
    encryption_algorithm aes;
    hash_algorithm sha1;
    authentication_method pre_shared_key;
    dh_group 2;
  }
}
sainfo anonymous {
  pfs_group 2;
  lifetime time 8 hour;
  encryption_algorithm aes;
  authentication_algorithm hmac_sha1;
  compression_algorithm deflate;
}
-----


# セキュリティポリシー設定ファイルの設定
#vi /home/racoon/sample1/ipsec.conf
-----
flush;
spdflush;

spdadd 192.168.0.1 192.168.0.2 any -P out ipsec ipcomp/tunnel/192.168.0.1-192.168.0.2/use esp/tunnel/192.168.0.1-192.168.0.2/require;
spdadd 192.168.0.2 192.168.0.1 any -P in ipsec ipcomp/tunnel/192.168.0.2-192.168.0.1/use esp/tunnel/192.168.0.2-192.168.0.1/require;
-----


# 事前共有鍵の設定
#vi /home/racoon/sample1/psk.txt
-----
192.168.0.2 abcdefg1234567890
-----
#chmod 0400 /home/racoon/sample1/psk.txt


# iptables の設定
#iptables -A INPUT -s 192.168.0.2 -p esp -j ACCEPT
#iptables -A INPUT -s 192.168.0.2 -p udp -m udp --dport 500 -j ACCEPT
※ その他諸々いるかもしれない



◆ 192.168.0.2 の設定


# IEK 設定用ファイルの設定
#vi /home/racoon/sample1/racoon.conf
-----
path include  "/usr/local/sbin/racoon";
path pre_shared_key "/home/racoon/sample1/psk.txt";
log notify;
listen {
  isakmp 192.168.0.2 [500];
}
remote 192.168.0.1 {
  exchange_mode aggressive;
  lifetime time 8 hour;
  proposal {
    encryption_algorithm aes;
    hash_algorithm sha1;
    authentication_method pre_shared_key;
    dh_group 2;
  }
}
sainfo anonymous {
  pfs_group 2;
  lifetime time 8 hour;
  encryption_algorithm aes;
  authentication_algorithm hmac_sha1;
  compression_algorithm deflate;
}
-----


# セキュリティポリシー設定ファイルの設定
#vi /home/racoon/sample1/ipsec.conf
-----
flush;
spdflush;

spdadd 192.168.0.2 192.168.0.1 any -P out ipsec ipcomp/tunnel/192.168.0.2-192.168.0.1/use esp/tunnel/192.168.0.2-192.168.0.1/require;
spdadd 192.168.0.1 192.168.0.2 any -P in ipsec ipcomp/tunnel/192.168.0.1-192.168.0.2/use esp/tunnel/192.168.0.1-192.168.0.2/require;
-----


# 事前共有鍵の設定
#vi /home/racoon/sample1/psk.txt
-----
192.168.0.1 abcdefg1234567890
-----
#chmod 0400 /home/racoon/sample1/psk.txt



◆ 実行


/usr/local/sbin/setkey -F
/usr/local/sbin/setkey -FP
/usr/local/sbin/setkey -f /home/racoon/sample1/ipsec.conf
/usr/local/sbin/racoon -f /home/racoon/sample1/racoon.conf



◆ 接続


# 192.168.0.2
#ping 192.168.0.1


# 192.168.0.1 - log
-----

※ log 未取得
※ ipsec-tools のバージョンを 0.6.5 から 0.7.2 にあげてみたら log モードの出力のされ方かわった?


◇ 環境


Fedora release 11 (Leonidas) + kernel 2.6.29
ipsec-tools 0.7.2



◇ その他 - 1


CentOS release 5.4 (Final) + kernel 2.6.18
ipsec-tools 0.6.5 or ipsec-tools 0.7.2

だと、IPCOMP/Tunnel が最終的には確立できずに無理だった。

#/usr/local/sbin/setkey -c
add 192.168.0.1 192.168.0.2 ipcomp 0x1001 -m tunnel -C deflate;
Invalid argument.
add 192.168.0.2 192.168.0.1 ipcomp 0x1002 -m tunnel -C deflate;
Invalid argument.

手動で SAD を登録しようとしたら「引数が無効」とな。
kernal の問題かとか思いながら、もういい。



◇ その他 - 2


なので、kernel のバージョンあげて実行すべく、Fedora へ。

Fedora release 10 (Cambridge) + kernel 2.6.27
ipsec-tools 0.8-alpha20090903

だと、なんかエラー出た。

#/usr/local/sbin/setkey -f /home/racoon/sample1/ipsec.conf
setkey: invalid keymsg length
setkey: invalid keymsg length

SPD の「protocol/mode/src-dst/level」な箇所が複数記述できないやう。
ぐぐったら kernel bug とか引っかかったので、もういい。
 

0 件のコメント:

コメントを投稿