OpenWrtでIPSec VPN(8)『StrongSwanの設定』

「OpenWrtでIPSec VPN(8)『StrongSwanの設定』」の編集履歴(バックアップ)一覧に戻る

OpenWrtでIPSec VPN(8)『StrongSwanの設定』 - (2020/03/14 (土) 23:10:44) のソース

 色々前準備を整えてきましたが、ようやくIPSec VPNのの設定に入ります。

*参考情報
この記事を書くにあたって引き続き以下の情報を参考にしています
OpenWRTの公式サイトのDocument:[[『install/configure strongswan for IPhone/IPad』>>http://wiki.openwrt.org/inbox/strongswan.howto]]
StrongSwan公式サイトのDocument: [[『iOS (Apple iPhone, iPad...) and Mac OS X』>>http://wiki.strongswan.org/projects/strongswan/wiki/IOS_%28Apple%29]]


*編集方法
SSHでCLIログインしてviで編集します。
OpenWrtのvi は初期インストールのBusybox版・追加可能なvim 7.0ともに
デフォルトで autoindent が有効になっているため、
Terminalからcopy and paste で貼付けすると、自動インデント機能により桁ががずれてしまします。
こんな風に。
 1行名
         2行名
                 3行目
                         4行名
自動インデント機能を抑止するため、[ESC]押した後のコマンドモードから
「:」を押し、続けて「set noautoindent」または省略形の「set noai」を実行してください。
 :set noautoindent
なお、viの現在の設定は「:set」で確認できます。

*/etc/ipsec.conf の作成
IPSecの動作を ipsec.conf に記述します。端末種類ごとにセクションを分けて記述できます。
各パラメータの詳細は[[StrongSwan公式ドキュメント>>http://wiki.strongswan.org/projects/strongswan/wiki/IpsecConf]]を参照してください。
 vi /etc/ipsec.conf
**共通部分
 config setup
 conn %default
 	left=%any
 	leftsubnet=0.0.0.0/0
 	leftfirewall=yes
 	leftcert=serverCert.pem
 	right=%any
 	rightsubnet=192.168.1.0/24
 	rightsourceip=%dhcp

leftsubnet=0.0.0.0/0 の箇所はインターネット側のアドレスになります。この例では どんなIPでも受け付けます。(このためLAN内からでもIPSec接続できてしまいます。)
rightsubnet=192.168.1.0/24 の箇所はOpenWRTのLAN側IPアドレスのNWセグメントを指定してください。

**Apple iOS対応部分
以下を ipsec.conf に追記します。
 conn ios
 	keyexchange=ikev1
 	authby=xauthrsasig
 	xauth=server
 	rightcert=iPhoneCert.pem
 	forceencaps=yes
 	auto=add

// 	rightcert=clientCert.pem <--ios用部分だからclientCert.pemじゃないですよね。ので該当部分直しました。(2014/11/02追記)

//**Android 対応部分
//以下を ipsec.confに追記します。

*/etc/ipsec.secrets の設定
IPSec接続後のユーザ認証用のIDとパスワードを設定します。
各パラメータの詳細は[[StrongSwan公式ドキュメント>>http://wiki.strongswan.org/projects/strongswan/wiki/IpsecSecrets]]を参照してください。

 # vi /etc/ipsec.secrets

 # /etc/ipsec.secrets - strongSwan IPsec secrets file
 
 : RSA serverKey.pem
 iPhone_user : XAUTH "iPhone_password"

OpenWrtルータ用のServer証明書「serverKey.pem」を指定しています。
次の行からはIPSec 接続時に使用するユーザ名とパスワードを指定します。
ユーザ名とパスワードは任意です。

*/etc/strongswan.conf の設定
strongswa.conf を設定します。
 # vi /etc/strongswan.conf
各パラメータの詳細は[[StrongSwan公式ドキュメント>>http://wiki.strongswan.org/projects/strongswan/wiki/StrongswanConf]]を参照してください。
 # strongswan.conf - strongSwan configuration file
 
 charon {
 	dns1 = 192.168.1.1
 	#dns1 = 8.8.8.8
 	#dns2 = 8.8.8.4
 	#dns1にルータのIPを指定してダメだったらgoogleのDNSを指定してみましょう。
 	threads = 16
 	plugins {
 		dhcp {
 			server = 192.168.1.1
 		}
 	}
 }
 
 pluto {
 }
 
 libstrongswan {
    #  set to no, the DH exponent size is optimized
    #  dh_exponent_ansi_x9_42 = no
 }

dns1 と dhcp は実際の環境に合わせて適切なIPを設定してください。
ここではDNSもDHCPサーバもOpenWrtルータ 192.168.1.1 (初期値) を指定しています。

*/etc/init.d/ipsecの作成
何故かStrongSwan用の自動起動スクリプトが用意されていないので、新規に作成します。
以下を /etc/init.d/ 以下に ipsec として保存します。

 #!/bin/sh /etc/rc.common
 # ipsec init script
 
 START=46
 STOP=01
 
 start() {
 ipsec start
 }
 
 stop() {
 ipsec stop
 }
 
 restart() {
 ipsec restart
 }
 
 reload() {
 ipsec update
 }

保存したら、スクリプトに実行権限をつけておきます。
 # chmod 755 /etc/init.d/ipsec

*strongswan daemon の起動確認
ここまで出来たら、CLI上でstrongswan のdaemonを起動してみます。

 # /etc/init.d/ipsec start

設定ファイルに不備がなければ以下のメッセージがコンソールに表示されます。
 Starting strongSwan 5.0.0 IPsec [starter]...


*WebUI上での確認と自動起動設定
LuCIのWebUIで 『ipsec』が管理できるかどうかを確認します。

「System」タブ→「Startup」タブを開いて
Start priority 46番(/etc/init.d/ipsec のSTARTで設定した値)に ipsec の行が追加されていることを確認します。
最初は Enable/Disable が Disableになっているはずなので、自動起動できるように
ボタンをクリックして Enabled にします。