2010-03-16

racoon の IKE 設定用ファイル(racoon.conf)について

 
* めためた

  • number : means a hexadecimal or a decimal number. The former must be prefixed with `0x'.
  • string
  • path
  • file : means any string enclosed in `"' (double quotes).
  • address : means IPv6 and/or IPv4 address.
  • port : means a TCP/UDP port number. The port number is always enclosed by `[' and `]'.
  • timeunit : is one of following: sec, secs, second, seconds, min, mins, minute, minutes, hour, hours.



* パスの仕様

  • path include path;
    他の設定ファイルをインクルードする
  • path pre_shared_key file;
    事前共有鍵のファイルを指定する
  • path certificate path;
    証明書と秘密鍵のパスを指定する



* フェーズ 1

  • remote (address | anonymous) [[port]] { ... }
    IKE フェーズ 1 を設定する
    • default port : 500

** フェーズ 1 -> remote パラメータの設定
  • exchange_mode (main | agressive | base);
    認証モードを指定する(カンマ区切りで複数指定が可能)
    • main : ID を保護 (ID に address しか使えなくなる)
    • aggressive :
    • base :
  • lifetime time number timeunit;
    ISAKMP SA (IKE SA)の有効時間
  • passive (on | off);
    ネゴシエートしない
    (※ サーバ用に便利)
    • default : off
  • generate_policy (on | off);
    ポリシーの自動生成をする
    (※ IPアドレスが動的に割り当てられているクライアントとネゴシエートするのに便利)
    • default : off
  • nat_traversal (on | off | force);
    NAT-Traversal を利用する
    • default : off
    • on :
    • off :
    • force :
  • ike_frag (on | off | force);
    IKE フラグメンテーションを利用する
    • default : off
  • esp_frag fraglen;
    ESP フラグメンテーションを利用する
    トンネルモードで NAT-Traversal を利用するときのみ有効
  • proposal { ... }
    IKE-SA のパラメータを設定する

*** フェーズ 1 -> remote パラメータ -> IKE-SA のパラメータの設定
  • encryption_algorithm algorithm;
    暗号化アルゴリズム
    • algorithm : des, 3des, blowfish, cast128, aes, camellia
  • hash_algorithm algorithm;
    ハッシュアルゴリズム
    • algorithm : md5, sha1, sha256, sha384, sha512
  • authentication_method type;
    認証方式
    • type : pre_shared_key, rsasig (for plain RSA authentication), gssapi_krb, hybrid_rsa_server, hybrid_rsa_client, xauth_rsa_server, xauth_rsa_client, xauth_psk_server, xauth_psk_client
  • dh_group group;
    Diffie-Hellman グループ
    • group : modp768, modp1024, modp1536, modp2048, modp3072, modp4096, modp6144, modp8192 or 1, 2, 5, 14, 15, 16, 17, 18



* フェーズ 2

  • sainfo (source_id destination_id | anonymous) [from idtype [string]] { ... }
    IKE フェーズ 2(IPsec-SA 確立) を設定する

** フェーズ 2 -> sainfo パラメータの設定
  • pfs_group group;
    Diffie-Hellman グループ
    • group : modp768, modp1024, modp1536, modp2048, modp3072, modp4096, modp6144, modp8192 or 1, 2, 5, 14, 15, 16, 17, 18
  • lifetime time number timeunit;
    IPsec SA の有効時間
  • encryption_algorithm algorithms;
    暗号化アルゴリズム
    • des, 3des, des_iv64, des_iv32, rc5, rc4, idea, 3idea, cast128, blowfish, null_enc, twofish, rijndael, aes, camellia (used with ESP)
  • authentication_algorithm algorithms;
    認証アルゴリズム
    • des, 3des, des_iv64, des_iv32, hmac_md5, hmac_sha1, hmac_sha256, hmac_sha384, hmac_sha512, non_auth (used with ESP authentication and AH)
  • compression_algorithm algorithms;
    圧縮アルゴリズム
    • dflate




* 詳細

man racoon.conf

もしくは




* 環境

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

racoon の起動・初期化・確認の方法

 
* 起動


setkey [-f $SPD 設定ファイル]
racoon [-F] [-f $IKE 設定ファイル]




* 初期化


** SAD の初期化

setkey -F


** SPD の初期化

setkey -FP




** 確認


** SAD の表示

setkey -D

ip xfrm state


** SPD の表示

setkey -DP

ip xfrm policy




* 環境

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

racoon のセキュリティポリシー設定ファイル(ipsec.conf)について

 
flush;
SAD の初期化(setkey -F と同等)


spdflush;
SPD の初期化(setkey -FP と同等)


spdadd src_range dst_range upperspec policy;
SPD の追加
  • src_range
    ローカルの IP アドレス
    書式
    • address
    • address/prefixlen
    • address[port]
    • address/prefixlen[port]
  • dst_range
    リモートの IP アドレス
    書式は src_range と同様
  • upperspec
    /etc/protocols のプロトコル | any
  • policy
    -P direction (discard | none | ipsec) protocol/mode/src-dst/level [...]
    • direction
      in | out | fwd
    • protocol
      ah | esp | ipcomp
    • mode
      transport | tunnel
    • src-dst
      mode : tunnnel の場合のみ指定可能
    • level
      default | use | require | unique




ex. ipsec.conf

  • xxx.xxx.xxx.xxx -> yyy.yyy.yyy.yyy
  • プロトコル : esp
  • 接続方法 : transport
flush;
spdflush;

spdadd xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy any -P out ipsec esp/transport//require;
spdadd yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx any -P in ipsec esp/transport//require;




* 詳細

man setkey

または




* 環境

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

実装 : 事前共有鍵認証 トランスポートモード(esp + nat-t)

 
◆ 構成


              ┌────┴────┐
              │                  │ 
 192.168.0.1┌┴┐         [NAT]┌┴┐1.1.1.1
            │ │              └┬┘
            └┬┘                │
              │                ┌┴┐10.0.0.1
                                │ │
                                └┬┘
                                  │



◆ 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];
  isakmp_natt 192.168.0.1 [4500];
}
remote anonymous {
  exchange_mode aggressive;
  lifetime time 8 hour;
  nat_traversal force;
  generate_policy on;
  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 1.1.1.1 any -P out ipsec esp/transport//require;
spdadd 1.1.1.1 192.168.0.1 any -P in ipsec esp/transport//require;
-----


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


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



◆ 10.0.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 10.0.0.1 [500];
  isakmp_natt 10.0.0.1 [4500];
}
remote 192.168.0.1 {
  exchange_mode aggressive;
  lifetime time 8 hour;
  nat_traversal force;
  generate_policy 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 10.0.0.1 192.168.0.1 any -P out ipsec esp/transport//require;
spdadd 192.168.0.1 10.0.0.1 any -P in ipsec esp/transport//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



◆ 接続


# 10.0.0.1
#ping 192.168.0.1


# 192.168.0.1 - log
INFO: respond new phase 1 negotiation: 192.168.0.1[500]<=>1.1.1.1[500]
INFO: begin Aggressive mode.
INFO: received broken Microsoft ID: FRAGMENTATION
INFO: received Vendor ID: RFC 3947
INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-00
INFO: received Vendor ID: DPD
INFO: Selected NAT-T version: RFC 3947
NOTIFY: couldn't find the proper pskey, try to get one by the peer's address.
INFO: Adding remote and local NAT-D payloads.
INFO: Hashing 1.1.1.1[500] with algo #2 (NAT-T forced)
INFO: Hashing 192.168.0.1[500] with algo #2 (NAT-T forced)
INFO: NAT-T: ports changed to: 1.1.1.1[4500]<->192.168.0.1[4500]
INFO: NAT-D payload #0 doesn't match
INFO: NAT-D payload #1 doesn't match
INFO: NAT detected: ME PEER
INFO: ISAKMP-SA established 192.168.0.1[4500]-1.1.1.1[4500] spi:fe0819ec74a31b8d:e84869765f89625a
INFO: respond new phase 2 negotiation: 192.168.0.1[4500]<=>1.1.1.1[4500]
INFO: no policy found, try to generate the policy : 10.0.0.1/32[0] 192.168.0.1/32[0] proto=any dir=in
INFO: Adjusting my encmode UDP-Transport->Transport
INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
INFO: IPsec-SA established: ESP/Transport 1.1.1.1[4500]->192.168.0.1[4500] spi=62640834(0x3bbd2c2)
INFO: IPsec-SA established: ESP/Transport 192.168.0.1[4500]->1.1.1.1[4500] spi=213371505(0xcb7ca71)
ERROR: such policy does not already exist: "10.0.0.1/32[0] 192.168.0.1/32[0] proto=any dir=in"
ERROR: such policy does not already exist: "192.168.0.1/32[0] 10.0.0.1/32[0] proto=any dir=out"
※ 最後に ERROR が出ているけれども SPD の自動生成は行われたよう



◇ 環境


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



◇ その他


racoon.conf
  • nat_traversal を force に設定しているけれども on で十分な気がする(ログが force に設定したときのログ)
  • generate_policy を on にすると登録されていない SPD でも接続できてしまう。ので、NAT 配下の IP アドレスがわかるなら先に SPD を追加したい
  • てか、 NAT 配下に 2 台以上あると generate_policy では無理だと思う
 

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 とか引っかかったので、もういい。
 

実装 : 事前共有鍵認証 トンネルモード(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 esp/tunnel/192.168.0.1-192.168.0.2/require;
spdadd 192.168.0.2 192.168.0.1 any -P in ipsec 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 esp/tunnel/192.168.0.2-192.168.0.1/require;
spdadd 192.168.0.1 192.168.0.2 any -P in ipsec 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
INFO: respond new phase 1 negotiation: 192.168.0.1[500]<=>192.168.0.2[500]
INFO: begin Aggressive mode.
INFO: received Vendor ID: DPD
NOTIFY: couldn't find the proper pskey, try to get one by the peer's address.
INFO: ISAKMP-SA established 192.168.0.1[500]-192.168.0.2[500] spi:b426a0c6d8d77478:0175a0c2f99a39e2
INFO: respond new phase 2 negotiation: 192.168.0.1[500]<=>192.168.0.2[500]
INFO: IPsec-SA established: ESP/Tunnel 192.168.0.2[500]->192.168.0.1[500] spi=171417387(0xa379f2b)
INFO: IPsec-SA established: ESP/Tunnel 192.168.0.1[500]->192.168.0.2[500] spi=193833491(0xb8daa13)



◇ 環境


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

実装 : 事前共有鍵認証 トランスポートモード(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/transport//use esp/transport//require;
spdadd 192.168.0.2 192.168.0.1 any -P in ipsec ipcomp/transport//use esp/transport//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/transport//use esp/transport//require;
spdadd 192.168.0.1 192.168.0.2 any -P in ipsec ipcomp/transport//use esp/transport//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
INFO: respond new phase 1 negotiation: 192.168.0.1[500]<=>192.168.0.2[500]
INFO: begin Aggressive mode.
INFO: received Vendor ID: RFC 3947
INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-00
INFO: received Vendor ID: DPD
INFO: Selected NAT-T version: RFC 3947
NOTIFY: couldn't find the proper pskey, try to get one by the peer's address.
INFO: Adding remote and local NAT-D payloads.
INFO: Hashing 192.168.0.2[500] with algo #2
INFO: Hashing 192.168.0.1[500] with algo #2
INFO: Hashing 192.168.0.1[500] with algo #2
INFO: NAT-D payload #0 verified
INFO: Hashing 192.168.0.2[500] with algo #2
INFO: NAT-D payload #1 verified
INFO: NAT not detected
INFO: ISAKMP-SA established 192.168.0.1[500]-192.168.0.2[500] spi:174237a9a3178169:c4ebac56f9847803
INFO: respond new phase 2 negotiation: 192.168.0.1[500]<=>192.168.0.2[500]
INFO: Update the generated policy : 192.168.0.2/32[500] 192.168.0.1/32[500] proto=any dir=in
INFO: IPsec-SA established: ESP/Transport 192.168.0.2[500]->192.168.0.1[500] spi=58330792(0x37a0ea8)
INFO: IPsec-SA established: IPCOMP/Transport 192.168.0.2[500]->192.168.0.1[500] spi=63472(0xf7f0)
INFO: IPsec-SA established: ESP/Transport 192.168.0.1[500]->192.168.0.2[500] spi=25991933(0x18c9afd)
INFO: IPsec-SA established: IPCOMP/Transport 192.168.0.1[500]->192.168.0.2[500] spi=18948(0x4a04)
ERROR: pfkey X_SPDUPDATE failed: Invalid argument
ERROR: pfkey X_SPDUPDATE failed: Invalid argument

※ もしかしたら NAT-Traversal : on にしていたのかもしれないとかなんとか



◇ 環境


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