strongSwanでAndroidとIPSec IKEv2通信をする方法

strongSwanでAndroid12以降対応しているIKEv2を使用する方法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
/etc/ipsec.conf

conn %default
    auto=add

conn ikev2-psk
    auto=add
    keyexchange=ikev2
    authby=secret
    type=tunnel
    left=%any
    leftid=公開するサーバーのドメイン名またはIPアドレス
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightsourceip=10.10.10.0/24
    ike=aes256-sha256-modp2048
    esp=aes256-sha256
    compress=no
    dpdaction=clear
    fragmentation=yes
    forceencaps=yes
1
2
3
/etc/ipsec.secrets

ホスト名またはIPアドレス %any : PSK "共通のパスワード"

IPフォワードを有効にする

1
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward

恒久的に有効にする

1
echo 1 | sudo tee -a /etc/sysctl.conf

IPマスカレードによるアドレス変換

1
2
3
--firewall--
sudo firewall-cmd --direct --get-all-rules
sudo firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 1 -o 変換対象のインタフェース(eth0など) -s 10.10.10.0/24 -j MASQUERADE

必要に応じてフォワードするパケットをフィルタリング

1
2
3
sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 1 -s 10.10.10.0/24 -d ローカルのネットワークアドレス -j ACCEPT
sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 2 -m state --state ESTABLISHED,RELATED  -j ACCEPT
sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 3 -j DROP