警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : IPSecを使用する:手動鍵処理

対象製品: Armadillo-210

ここでは、2台のArmadillo-210をIPSecで通信させる手順を示します。

手動鍵処理を行なうためには、setkeyが必要となります。
ipsec-toolsのコンパイル』を参照してビルドしてください。

1. 設定ファイルの生成スクリプト:setkey.setting

IPSecを動かすためには、鏡映的な設定ファイルが必要となります。
これを手入力で作成し、少しでもミスがあると動作しない可能性が十分にあるので、
ここではスクリプトによる自動生成を行なってみます。
*注意:このスクリプトは、Armadillo-210用です。PCでは使用しないで下さい。

スクリプト:setkey.setting

2. Armadillo-210上での設定

ここでは、FTPを用いて必要なファイルをArmadillo-210に転送したこととします。
IPSecを実現するには、自分(HOST-A)のIPアドレスと相手(HOST-B)のIPアドレスが必要です。


HOST-A側。
[armadillo ~]# cd /home/ftp/pub
[armadillo /home/ftp/pub]# chmod 0777 *
[armadillo /home/ftp/pub]# ./setkey.setting [自分のIPアドレス] [相手のIPアドレス] a
[armadillo /home/ftp/pub]# ./setkey -f ipsec.conf
HOST-B側。
[armadillo ~]# cd /home/ftp/pub
[armadillo /home/ftp/pub]# chmod 0777 *
[armadillo /home/ftp/pub]# ./setkey.setting [自分のIPアドレス] [相手のIPアドレス] b
[armadillo /home/ftp/pub]# ./setkey -f ipsec.conf
[armadillo /home/ftp/pub]# ping [相手のIPアドレス]

pingが通ったら成功です。
ネットワークの経路上でethereal等のパケットキャプチャーソフトを使用すれば、
[IP][AH][ESP]のパケットが見えると思います。

スクリプト:setkey.setting

このスクリプトでは、ipsec.confを作成します。


#!/bin/sh

SRC_IP=$1
shift
DST_IP=$1
shift
SELECT=$1

if [ "$SELECT" = "a" ] ; then
        SELECT=HOST-A
        HOSTA_IP=$SRC_IP
        HOSTB_IP=$DST_IP
else
        SELECT=HOST-B
        HOSTA_IP=$DST_IP
        HOSTB_IP=$SRC_IP
fi

IPSEC_CONF=./ipsec.conf

debug_status(){
        echo "### debug status ###"
        echo src_ipaddr=$SRC_IP
        echo dst_ipaddr=$DST_IP
        echo host-a=$HOSTA_IP
        echo host-b=$HOSTB_IP
        echo select=$SELECT
}

#
# init
#
initialize(){
        iptables -F INPUT
        iptables -F OUTPUT
        iptables -P INPUT ACCEPT
        iptables -P OUTPUT ACCEPT
        #iptables -A INPUT -p 50 -j ACCEPT
        #iptables -A INPUT -p 51 -j ACCEPT
}

#
# create ipsec.conf
#
create_ipsec_conf(){
        cat > $IPSEC_CONF <<EOF
#!/sbin/setkey -f
flush;
spdflush;

#AH
add $HOSTA_IP $HOSTB_IP ah 15700 -A hmac-md5 "1234567890123456";
add $HOSTB_IP $HOSTA_IP ah 24500 -A hmac-md5 "1234567890123456";

#ESP
add $HOSTA_IP $HOSTB_IP esp 15701 -E 3des-cbc "123456789012345678901234";
add $HOSTB_IP $HOSTA_IP esp 24501 -E 3des-cbc "123456789012345678901234";
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
}

#
# main
#
debug_status
initialize
create_ipsec_conf