IPsec: strongSwanのClient側のOpenWrtの設定(Site to Site)

パッケージをインストールします。

opkg update
opkg install strongswan-full strongswan-utils kmod-cypto-sha256
opkg remove ip
opkg install ip-full

Client鍵と証明書とCA証明書をインストールします。(証明書の作成方法 : IPsecによるVPNのセキュアな接続)

cp clientCert.pem /etc/ipsec.d/certs
cp clientKey.pem /etc/ipsec.d/private
cp caCert.pem /etc/ipsec.d/cacerts

strongSwanの設定例です。

/etc/ipsec.conf:

config setup

conn %default
 ikelifetime=60m
 keylife=20m
 rekeymargin=3m
 keyingtries=1
 keyexchange=ikev2

conn common
 left=%any
 leftcert=serverCert.pem
 leftid="C=JP, O=MyDomain, CN=router@xxxx.xxxdns.jp --san=router@xxxx.xxxdns.jp"
 leftid2=router@xxxx.xxxdns.jp
 leftauth=pubkey
 leftfirewall=yes
 leftsourceip=%config
 leftsubnet=192.168.10.0/24
 right=xxxxxx.vps.xxxxxx.jp
 rightid=@xxxxxx.vps.xxxxxx.jp
 rightauth=pubkey
 rightfirewall=yes
 ike=aes128-sha256-modp2048
 esp=aes128-sha256-modp2048
 auto=start

/etc/ipsec.secrets:

: RSA clientKey.pem

/etc/strongswan.conf:

charon {

load_modular = yes
   dns1 = 8.8.8.8
   dns2 = 8.8.4.4
 threads = 16
  plugins {
 include strongswan.d/charon/*.conf
 }
}

/etc/strongswan.d/charon/kernel-netlink.conf:

mtu = 1376

fwの設定

espプロトコル、500、4500ポートを通すようにします。次の例のように追加します。

/etc/config/firewall:

config rule 
        option src 'wan' 
        option proto 'esp' 
        option target 'ACCEPT' 
 
config rule 
        option src 'wan' 
        option proto 'udp' 
        option dest_port '500' 
        option target 'ACCEPT' 
 
config rule 
        option src 'wan' 
        option proto 'udp' 
        option dest_port '4500' 
        option target 'ACCEPT'

/etc/firewall.user

iptables -I INPUT -m policy --dir in --pol ipsec --proto esp -j ACCEPT 
iptables -I FORWARD -m policy --dir in --pol ipsec --proto esp -j ACCEPT
iptables -I FORWARD -m policy --dir out --pol ipsec --proto esp -j ACCEPT
iptables -I OUTPUT -m policy --dir out --pol ipsec --proto esp -j ACCEPT
iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT

追記:

IPsecのrouting方法

この1行を/etc/firewall.userに追加するとルーティングが可能になります。

iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT