IPsec、だいぶ使いやすくなってます。 それでも設定が膨大。 使い方のメモを作ったので置いときます。
apt-get install ipsec-tools racoon openssl/etc/ssl/openssl.conf をかきかえておくとあとがらくです。
default_days = 365 → 1095 countryName_default → JP stateOrProvinceName_default → Tokyo localityName → Meguro-ku 0.organizationName_default → Solar Company Ltd.
cd /etc/racoon/certs /usr/lib/ssl/misc/CA.pl -newca
パスフレーズを聞かれるので、CA パスフレーズを入力...
このキーとこのパスワードがあればだれでも IPsec できるようになるので慎重に。
commonName に認証局名 (見てわかりやすい名前) を入れる ("earth")。
あとは改行でOK、後半でもう一回聞かれるので同じパスワード入力。
chmod 600 demoCA/private/cakey.pem
オレオレ認証局が作成され demoCA/ 下に必要なファイルが配置されます。 ちなみに CA の期限も3年なので、3年後には cacert.pem を作り直して全マシンに配る必要があります。
cd /etc/racoon/certs mkdir earth; cd earth; ln -s ../demoCA . /usr/lib/ssl/misc/CA.pl -newreq-nodesCountry とかは飛ばしていいが、Common Name のところだけマシン名 (earth)
/usr/lib/ssl/misc/CA.pl -sign
CA passphrase を入力
[Sign the certificate?] ときかれるので y
[commit?] ときかれるので y
CA と別のマシン (mars) でもできる。-newreq だけ mars で実行し、
newreq.pem を earth にもっていって -sign する。そのあと newcert.pem, demoCA/cacert.pem を mars にもってかえる。
具体的な暗号化の通信方式とかのやりとりをするデーモン racoon の設定ファイル /etc/racoon/racoon.conf を書き換えます。 earth の場合は以下のように。
log notify; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; remote anonymous { exchange_mode base,main,aggressive; my_identifier asn1dn; peers_identifier asn1dn; certificate_type x509 "earth/newcert.pem" "earth/newkey.pem"; ca_type x509 "cacert.pem"; verify_cert on; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method rsasig; dh_group modp1024; } } sainfo anonymous { encryption_algorithm rijndael,3des,aes; authentication_algorithm hmac_sha1, hmac_md5; compression_algorithm deflate; }mars のばあいも earth/... を mars/... にかきかえれば ok
earth の場合は以下の通り
# サブネット内部の通信では IPsec 禁止 spdadd 2001:db8:eaea::/64 2001:db8:eaea::/64 any -P in none; spdadd 2001:db8:eaea::/64 2001:db8:eaea::/64 any -P out none; # CIFS では IPsec 強制 spdadd ::/0 ::/0[445] any -P in ipsec esp/transport//require; spdadd ::/0[445] ::/0 any -P out ipsec esp/transport//require; # それ以外では IPsec 使用可 spdadd ::/0 ::/0 any -P in ipsec esp/transport//use; spdadd ::/0 ::/0 any -P out ipsec esp/transport//use;
mars の場合 (earth との NFS だけ暗号化する)
spdadd 2001:db8:eaea::1 ::/0 any -P in ipsec esp/transport//require; spdadd ::/0 2001:db8:eaea::1 any -P out ipsec esp/transport//require;
require になってるので通信が通れば成功しているはずです。mars から
ping 2001:db8:eaea::1
で返事があれば OK
これで、つぎからスタートメニューの管理ツールから [IPSec 設定] を選ぶと IPSec 設定の管理コンソールが開けるようになる。
cd /etc/racoon/certs mkdir venus; cd venus; ln -s ../demoCA . cp ~/venus.req ./newreq.pem /usr/lib/ssl/misc/CA.pl -sign
CAパスフレーズを入力、[Sign the certificate?] ときかれるので y、[commit?] ときかれるので y。 できた newcert.pem と demoCA/cacert.pem を venus にもっていく。
require になってるので通信が通れば成功しているはずです。mars から
ping 2001:db8:eaea::1で返事があれば OK
mv newkey.pem newkey.encrypted.pem openssl rsa -in newkey.encrypted.pem -out newkey.pemキーを作って暗号化したときのパスワードを入力する必要があります。
/etc/init.d/setkey restart /etc/init.d/racoon reload