ここでは、2台のArmadillo-210をIPSecで通信させる手順を示します。
自動鍵処理を行なうためには、setkeyとracoonが必要となります。
『ipsec-toolsのコンパイル』を参照してビルドしてください。
1. 設定ファイルの生成スクリプト:racoon.setting
IPSecを動かすためには、鏡映的な設定ファイルが必要となります。
これを手入力で作成し、少しでもミスがあると動作しない可能性が十分にあるので、
ここではスクリプトによる自動生成を行なってみます。
*注意:このスクリプトは、Armadillo-210用です。PCでは使用しないで下さい。
- スクリプト: racoon.setting
2. Armadillo-210上での設定
ここでは、FTPを用いて必要なファイルをArmadillo-210に転送したこととします。
IPSecを実現するには、自分のIPアドレスと相手のIPアドレスが必要です。
[armadillo ~]# cd /home/ftp/pub [armadillo /home/ftp/pub]# chmod 0777 * [armadillo /home/ftp/pub]# ./racoon.setting [自分のIPアドレス] [相手のIPアドレス] [armadillo /home/ftp/pub]# ./racoon -f /etc/racoon/racoon.conf [armadillo /home/ftp/pub]# ./setkey -f ipsec.conf <span class="input">同様に相手側でも同じ手順を行なってください。</span> [armadillo ~]# ping [相手のIPアドレス]
pingが通ったら成功です。
ネットワークの経路上でethereal等のパケットキャプチャーソフトを使用すれば、
[IP][AH][ESP]のパケットが見えると思います。
スクリプト:racoon.setting
このスクリプトでは、racoon.confとipsec.confとpsk.txtを作成します。
#!/bin/sh SRC_IP=$1 shift DST_IP=$1 shift RACOON_CONF=/etc/racoon/racoon.conf IPSEC_CONF=./ipsec.conf PSK_TXT=/etc/racoon/psk.txt # # # debug_status(){ echo "### debug status ###" echo src_ipaddr=$SRC_IP echo dst_ipaddr=$DST_IP } # # init # initialize(){ iptables -F INPUT iptables -F OUTPUT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT #iptables -A INPUT -i eth0 -p udp -d 0/0 --dport 500 -j ACCEPT mkdir -p /etc/racoon } # # create psk.txt # create_psk_txt(){ echo "$DST_IP testipsec" > $PSK_TXT chmod 0600 $PSK_TXT } # # create racoon.conf # create_racoon_conf(){ cat > $RACOON_CONF <<EOF path pre_shared_key "/etc/racoon/psk.txt"; timer { counter 5; interval 10 sec; persend 5; phase1 600 sec; phase2 600 sec; } remote anonymous { exchange_mode aggressive,main; doi ipsec_doi; situation identity_only; my_identifier address; lifetime time 2 min; # sec,min,hour initial_contact on; proposal_check obey; # obey, strict or claim proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group 2; } } sainfo anonymous { pfs_group 1; lifetime time 2 min; encryption_algorithm 3des; authentication_algorithm hmac_sha1; compression_algorithm deflate; } EOF chmod 600 $RACOON_CONF } # # create ipsec.conf # create_ipsec_conf(){ cat > $IPSEC_CONF <<EOF #!/sbin/setkey -f flush; spdflush; spdadd $SRC_IP $DST_IP any -P out ipsec esp/transport//require ah/transport//require; spdadd $DST_IP $SRC_IP any -P in ipsec esp/transport//require ah/transport//require; EOF chmod 600 $IPSEC_CONF } # # main # debug_status initialize create_racoon_conf create_psk_txt create_ipsec_conf