「OpenWrtでIPSec VPN(8)『StrongSwanの設定』」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
色々前準備を整えてきましたが、ようやく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 にします。
色々前準備を整えてきましたが、ようやく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 にします。