RasPi から SEIL に
L2TP/IPSec接続
ෙතොමිනග මිචියと み な が み ち や
ෙතොමිනග මිචිය 2
・前提知識
・L2TP/IPSec は、
「エルツーティーピー・オーバー・アイピーセック」と読みます
・L2TP/IPSecは、VPN接続の一種
・VPN接続とは、暗号化して安全に通信をする方法
Ex. 本店と支店を安く安全にインターネット経由で接続
・RasPiを使ったインターネットを経由したVPN接続の事例発表
★VPNができる機器(ルータ等)はとても高価
(安いVPN関連機器はセキュリティ的にNG)
★安価なRasPiで代替できたらすごい!
★RasPiで冗長化(二重化)できたらすごい!!
ෙතොමිනග මිචිය 3
・前提知識
・SEIL(ザイル)とは、IIJ製の高機能ルータです
・一番安いSEIL→ SEIL/B1 98,000円(税別)
ぷらっとオンラインだと、 76,200円(税込)
↑ ↑ ↑
結構、お高い!
(SEIL/x86 (ソフトウェアルータ)であればもっと安い)
・SEILはSEILとの接続しか確認・推奨していない
http://www.seil.jp/support/faq/vpn/faq-81.html
→やってみなけれりゃ、わからない!
ෙතොමිනග මිචිය 4
・前提知識
• VPN接続例
• PPTP 昨年(2012年)、脆弱性が発見され。。。
• L2TP/IPSec これができる安価なルータがない
• MS-SSTP Microsoft独自のやつ
• SSL-VPN Webブラウザ経由で接続(みたいなの)
• OpenSSL なんか難しそう。。。
実はこれら全部、SoftEther VPN だけでできちゃうんです。。。
http://www.softether.org/
SoftEther VPN は Raspberry Pi でも動くんです。。。
→ ARM EABI (32bit) というやつ
RasPi から SEIL に接続する意味あるの???
→ Big Raspberry JAM の会場がIIJですから、意味あります!!
ෙතොමිනග මිචිය 5
・前提知識
・RasPiをルータ化するので、LANの口がもう1つ必要!
→ BUFFALO LUA3-U2-ATX を採用!
→ 内蔵LAN: eth0 USB-LANアダプタ: eth1
それぞれ、こんな具合に設定
/etc/network/interfaces の一部
iface eth0 inet static
address 192.168.100.199
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
iface eth1 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
ෙතොමිනග මිචිය 6
・前提知識
・RasPiをルータ化するには、IPv4転送の設定が必要!
sudo su
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
これを忘れるとハマります!
・SEILにはこんな設定がしてあったとします
ユーザ名: tominaga パスワード: michiya 事前共通鍵: raspberry
↓ ↓ ↓
# authentication realm add REALM1 type local
# authentication local REALM1 user add tominaga password michiya
# pppac pool add dynamicpool address 172.23.0.0/16
# pppac ipcp-configuration add ipcp0 pool dynamicpool
# pppac protocol l2tp add l2tp0 accept-interface any l2tp-keepalive-interval 10
l2tp-keepalive-timeout 10
# ipsec anonymous-l2tp-transport enable
# ipsec anonymous-l2tp-transport preshared-key "raspberry"
# interface pppac0 ipcp-configuration ipcp0
# interface pppac0 bind-tunnel-protocol l2tp0
# interface pppac0 bind-realm REALM1
# interface pppac0 tunnel-end-address 172.23.255.254
ෙතොමිනග මිචිය 7
ෙතොමිනග මිචිය 8
・RasPiでやったこと
• sudo apt-get update
• sudo apt-get upgrade
• sudo apt-get install l2tp-ipsec-vpn
※ 私の場合はX.509証明書ではなく共通鍵を使うので「いいえ」
ここまでの手順で、L2TP/IPSec接続するための基本的なもののインストールは完了。
ෙතොමිනග මිචිය 9
・RasPiでやったこと
前ページまでの手順を終え、GUIを起動すると、右下にこんなのが
現れるようになります。
ここで、[Edit Connections …] から L2TP/IPSec接続の設定ができ、
実際に L2TP/IPSec接続できるサーバもあります。
が、SEIL に対しての L2TP/IPSec は×。。。
ෙතොමිනග මිචිය 10
・RasPiでやったこと
SEILとのL2TP/IPSec接続だとこんなエラーが出てしまうのです
・SEIL側のログ
763 Feb 20 11:11:55 notice pppac npppd: l2tpd ctrl=40302
call=54207 AVP (RX_CONNECT_SPEED/38) is not supported, but
it's mandatory
764 Feb 20 11:11:55 debug pppac npppd: l2tpd ctrl=40302
call=54207 SendCDN result=ERROR_CODE/2
error=UNKNOWN_MANDATORY_AVP/8 messsage=none
・RasPi側のログ
2月 20 11:11:55.947 xl2tpd[13510]: start_pppd: I‘m running:
(中略)
2月 20 11:11:56.010 xl2tpd[13510]: control_finish: Connection
closed to XXX.XXX.XXX.XXX, serial 1 ()
2月 20 11:11:56.059 xl2tpd[13510]: Terminating pppd: sending
TERM signal to pid 13765
ෙතොමිනග මිචිය 11
・RasPiでやったこと
・xl2tpd-1.3.1でのエラー
・ AVPが必須となっているからエラー
・調べてみたら、2012年7月にパッチが出ていた模様!
・githubから最新版をダウンロード
wget https://github.com/xelerance/xl2tpd/archive/master.zip
・解凍して必要なものを入手してmakeして使えるようにする
unzip master.zip
cd xl2tpd-master
sudo apt-get install libpcap-dev
sudo make
sudo make install
sudo mv /usr/local/sbin/xl2tpd /usr/sbin
・VPN接続時のuser/passwordを設定
/etc/ppp/<VPN_Connection_name>.options.xl2tpd に追記
name “VPN-NAME”
password “VPN-PASSWORD”
ෙතොමිනග මිචිය 12
以上の手順で、
Raspberry Pi から SEIL への L2TP/IPSec接続ができました。
電源投入後、自動でVPN接続しに行ったり、接続が切れても自動で
再接続しに行くようにしたりもしましたが、そのあたりは割愛します。
■今後やってみたいこと
・Raspberry Pi をVPNルータ機能付き無線APにしてみたい
・今回のノウハウに Pi Point 的なものを組み合わせれば
できそうな気がしています。
http://www.pi-point.co.uk/
ありがとうございました。

RasPiからSEILにL2TP/IPSec接続