androidでipsec xauth vpn接続
目的はDNSだけは自宅サブネットにおいてあるものを使いたい。
メモ書きでまとまってない
いるもの
/usr/ports/security/strongsSwan(xauthを有効)
再構築したカーネル
オプション
options IPSEC options IPSEC_NAT_T device crypto
ネットワーク
VPN鯖 192.168.1.1/24 サーバのIPアドレス(re0) 10.10.10.3/24 VPNで使うサービス用サブネット(alias) 10.10.20.3/24 VPN鯖のアドレス DNS鯖 10.10.10.1/24
rc.conf
strongswan_enable="YES" gateway_enable="YES" pf_enable="YES" pf_rules="/etc/pf.conf"
パケット転送の有効化とNATのためにPFを使う
pf.conf
ext_if="re0" jails_subnet="10.10.20.0/24" nat on $ext_if from $jails_subnet to ! $jails_subnet -> ($ext_if)
どっかで見つけてきたJAILを使うサンプルをコピー
10.10.20.xxから来たらnatして出ていく。
ipsec.conf
config setup conn %default leftsubnet=10.10.0.0/16 auto=add rightsourceip=10.10.20.10/32 rightdns=10.10.10.1 dpdaction=clear conn XAuth leftauth=psk rightauth=psk rightauth2=xauth
クライアントは10.10.20.10を割り振る
leftsubnetがあんまり意味がわからない。いらないのか?
rightdnsがクライアントに渡される
ipsec.secret
# ipsec.secrets - strongSwan IPsec secrets file : PSK "共有フレーズ" user : XAUTH "password"
共有フレーズとuser,passwordを設定しておく
Android側はIPSec Xauth PSKを選んで
共有フレーズとuser,passwordを設定する。
ルーティングに10.10.0.0/16を指定。
これでそれっぽくいってそう。
ローカルLANなので外側LANからは今度試す。