はじめに
先日の以下のようなstrongSwanを使った記事を書きましたが、最近はstrongSwanはswanctlというものを実装し、こちらのほうがipsecのconfが記述しやすくなっています。手元の環境もswanctlに置き換えてみました。
公式ドキュメントなど
公式のドキュメントは以下にあります。
swanctl Tool :: strongSwan Documentation
charon(今までの)で設定したipsec.conf
をswanctl.conf
には今の所自動的に変換したりするものはありません。一応公式にドキュメントが用意されています。ipsec.conf
のパラメータがswanctl.conf
のどのパラメータに対応しているか表もあるのでだいぶ楽だと思います。
Migration from ipsec.conf to swanctl.conf - strongSwan
Redmine
設定してみた
swanctl.conf
先日の自分の環境の場合は以下のようなconfになります。
connections {
mikrotik-to-linux {
version = 2
proposals = 3des-sha1-modp3072!
proposals = aes256-sha2_256-modp3072,default
encap = yes
mobike = yes
keyingtries = 0
reauth_time = 10800
rekey_time = 170m
over_time=10m
dpd_delay=0s
dpd_timeout=0s
fragmentation=yes
unique=no
local_addrs = <接続元IP>
remote_addrs = <接続先IP>
local {
auth = psk
id = <接続元IP>
}
remote {
auth = psk
id = <接続先IP>
revocation=relaxed
}
children {
net-net {
local_ts = 10.15.0.0/16
remote_ts = 192.168.88.0/24
updown = /etc/strongswan.d/iptables.updown iptables
rekey_time = 5400
rekey_bytes = 500000000
rekey_packets = 1000000
esp_proposals = 3des-sha1-modp3072!
esp_proposals = aes256-sha2_256-modp3072,default
dpd_action=clear
start_action = start
close_action=start
ipcomp=no
policies=yes
mode = tunnel
}
}
}
}
secrets {
ike-1 {
secret = "<共通鍵>"
id-1 = <接続元IP>
}
}
だいぶ見やすくなっていると思います。接続元、接続先もわかりやすいので、ipsec.conf
よりも混乱しにくいかと思います。
charon.conf
で、このままではstrongSwanはswanctlを使用しないので、以下のように書き換えます。
charon {
...
start-scripts {
swanctl = /usr/sbin/swanctl -q
}
...
}
接続確認してみた
swanctlはswanctlコマンドが用意されているので、こちらでSAの情報やlogなどを確認することが出来るようになります。
$ sudo swanctl --log
06[NET] received packet: from 111.xxx.xxx.xxx[4500] to 206.xxx.xxx.xxx[4500] (160 bytes)
06[ENC] parsed INFORMATIONAL request 53 [ ]
06[ENC] generating INFORMATIONAL response 53 [ ]
06[NET] sending packet: from 206.xxx.xxx.xxx[4500] to 111.xxx.xxx.xxx[4500] (80 bytes)
$ sudo swanctl --list-sas
mikrotik-to-linux: #7, ESTABLISHED, IKEv2, 0651ebcad3c905b4_i* a6377a80fcc29676_r
local '206.xxx.xxx.xxx' @ 206.xxx.xxx.xxx[4500]
remote '111.xxx.xxx.xxx' @ 111.xxx.xxx.xxx[4500]
AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_3072
established 6696s ago, rekeying in 3176s, reauth in 3917s
net-net: #10, reqid 4, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128/MODP_3072
installed 1573s ago, rekeying in 3383s, expires in 4368s
in c74554b4, 156804 bytes, 2621 packets, 0s ago
out 0a4c45af, 82800 bytes, 1380 packets, 0s ago
local 10.15.0.0/16
remote 192.168.88.0/24
設定で問題がなくなったら、以下のコマンドを実行し、設定ファイルを読み込むと接続の確立が行われ、問題がない場合は接続状態が表示されます。
$ sudo swanctl --load-all
loaded ike secret 'ike-1'
no authorities found, 0 unloaded
no pools found, 0 unloaded
loaded connection 'mikrotik-to-linux'
successfully loaded 1 connections, 0 unloaded
$ sudo swanctl --list-conns
mikrotik-to-linux: IKEv2, reauthentication every 10800s, rekeying every 10200s
local: 206.xxx.xxx.xxx
remote: 111.xxx.xxx.xxx
local pre-shared key authentication:
id: 206.xxx.xxx.xxx
remote pre-shared key authentication:
id: 111.xxx.xxx.xxx
net-net: TUNNEL, rekeying every 5400s or 500000000 bytes or 1000000 packets
local: 10.15.0.0/16
remote: 192.168.88.0/24