インターリンクISPの「マイIP」VPNサービスをサーバー運用に利用しているのですが、12月6日にファイヤーウォールログの画面に目をやると、ログの記録が停止していることに気が付きました。
そういえば、先日インターリンクからアナウンスメールが届いていました。(以下)
WindowsとAndroid に必要な設定変更の案内はメールに示されていたのですが、我が家はFreeBSDを運用しており、WindowsやAndroidのようにチェックボックス一つで変更できないようだったので、仕様変更が起きた後に対策しようと考えていました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ マイIPサービス(PPTP版) セキュリティ強化を目的としたサーバーメンテナンスについて ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 平素よりインターリンクのサービスをご利用いただき誠にありがとうございます。 このたび、「マイIP(PPTP版)サービス」のサーバーにおきまして、 セキュリティ強化を目的としたサーバーメンテナンスを行う運びとなりました。 PPTP接続では「データの暗号化」など、一部設定変更が必要となります。 詳細につきましては下記をご確認くださいますようお願いいたします。 なお、新サーバーの仕様は、「PPTPおよびL2TP」両対応となりますので、 L2TPにてiOSやmacOSなど幅広い機器でご利用いただけるようになります。 メンテナンス時間内は、サービスが一時停止する等、お客さまには大変ご迷惑を お掛けいたしますが、何卒ご理解いただきますようお願い申し上げます。 記 【概要】 ご利用のサービスをアップグレードされたOSの新サーバーに移管します。 メンテナンス後はPPTP接続に加え、L2TP接続もご利用できるようになります。 【ご契約サービス】 マイIP(PPTP版)から マイIP(PPTP/L2TP版)へ変更となります。 【メンテナンスの日程】 2019年12月05日(木) 08:00〜09:00(24時間表記) <略> 【PPTP接続における設定変更のお願い】 PPTP接続につきましては、新サーバーでは暗号化の設定が必須となります。 暗号化を「無効」でご利用の方は認証エラーとなりますので、以下マニュアルを ご参考いただきまして、メンテナンス後に設定変更をお願いいたします。
そしてそのまま忘れてました。
PPTPコネクションが切断されているのを確認したので、設定を変えずに再接続しようとしましたが接続できませんでした。これは分かっていたことなので、ここで初めて届いていたメールを読みました。
メール内には、WindowsとAndriod OSについてだけ書かれていましたが、マイIPのサポートURLを見てみますと、FreeBSDに関する記述がちゃんとありました。
https://faq.interlink.or.jp/faq2/View/wcDisplayContent.aspx?id=663
実際には、更にリンク先の、下記リンクに必要な情報がありました。
https://faq.interlink.or.jp/faq2/View/wcDisplayContent.aspx?id=501
PPTPパッケージはインストールしてあるので、何かオプションを付加するだけで済むのでは?と軽く考えていたのですが、全然違っていました。
新しい、mpd5 というNetgraph multi-link ppp daemon パッケージを使うように変更になっていました。pptpclient は引退となる模様。
情報としてはちゃんとあるのですが、Unix系OSの設定方法がひとまとめに書いてあるので見づらいということと、間違いというか、特定条件下で動作しない記述になっていました。Unix系OSでPPPoEを使うユーザーなら自分で解決出来る程度の問題ですが。
PPTPツールのダウンロード
まず、インターリンクのWebサイトから、myiptools.tar.gz をダウンロードする必要があります。
私は、”wget https://www.interlink.or.jp/support/vpn/myip/myiptools/myiptools.tar.gz” でダウンロード。
これをリストを取って解凍すると、
# tar ztvf myiptools.tar.gz drwxr-xr-x 0 root root 0 4月 1 2018 myip/ -rw------- 0 root root 139 4月 1 2018 myip/myip.conf.sample -r-------- 0 root root 1180 4月 1 2018 myip/myip-func -r-x------ 0 root root 2476 4月 1 2018 myip/myip-up -r-x------ 0 root root 146 4月 1 2018 myip/myip-ipfw -r-x------ 0 root root 2976 4月 1 2018 myip/myip-setup -rw------- 0 root root 139 4月 1 2018 myip/myip.conf -r-x------ 0 root root 1455 4月 1 2018 myip/myip-down -r-x------ 0 root root 244 4月 1 2018 myip/myip-iptables # tar zxvf myiptools.tar.gz x myip/ x myip/myip.conf.sample x myip/myip-func x myip/myip-up x myip/myip-ipfw x myip/myip-setup x myip/myip.conf x myip/myip-down x myip/myip-iptables
となり結構たくさんのファイルが含まれていました。全てテキストファイル。Linux, FreeBSD共通です。
このフォルダーをまるごと /etc に移動します。
# mv myip /etc
設定ファイルのカスタマイズ
/etc/myip に移動。
myip.conf ファイル内の赤文字の部分を自分用のパラメーターに変更。これは、インターリンクから提示されているデータを見るしかありませんが、旧設定ファイル pptp の設定ファイルに情報はあるので、古いデータを引っ張り出す必要はありません。
# cat myip.conf MYIP_SERVER="0.0.0.0" ID="miXXXXX" PASSWORD="password" IPADDR="1.1.1.1" DNS1="203.141.128.34" DNS2="203.141.128.35" CLIENT_GLOBALIP="AUTO"
セットアップの実行
# ./myip-setup
とセットアップコマンドを実行すると、myip-setupスクリプトにより mpd5 がインストールされます。
Dec 7 16:29:43 client pkg: mpd5-5.8_10 installed
最初、これは一体何?と思いました、mpd5がmd5に見えちゃったんでね。multi-link ppp daemon の頭文字らしい。
PPTPの起動
では、起動してみましょう。
# /etc/myip/myip-up /etc/myip # ./myip-up add net 203.141.xx.xx: gateway 192.168.xx.xx del net default add net default: gateway 120.143.10.1 private IP mode. done.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
groups: lo
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1346
inet 120.143.10.79 --> 120.143.10.1 netmask 0xffffffff
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
手順どおりに進めれば、簡単にマイIP PPTP接続が復活です。
ただし、PPTPインタフェースが、tun0から、ng0 に変わっていました。これは、ファイヤーウォールの設定に影響するので、あとで修正することにします。
ここまでは、ドキュメントをちゃんと読めば書いてあること。私はちょっと手間取りましたが無事にたどり着きました。
サーバー再起動で自動的にPPTPを立ち上げる
サーバーなんで、PC再起動で自動的にPPTP接続してくれないと困ります。
pptpclient ツールは、/etc/rc.local で起動するようにしていました。この時もスクリプトをどう書くかで苦労しましたけど、今回も少しトラブルが発生しました。
pptpclient は、rc.local の中に以下のように書いていました。
/etc/ppp/startpptp.sh
なので、そこを、
/etc/myip/myip-up
と置き換えました。
そうしたら、PC再起動でmpd5 のPPTPが自動起動しないのですよ。console.log を見るとエラーが記録されていました。
Dec 7 20:27:09 client kernel: Starting local daemons: Dec 7 20:27:19 client kernel: ERROR: Failed to connect. Dec 7 20:27:19 client kernel: Retrying... Dec 7 20:27:24 client kernel: /etc/myip/myip-up: mpd5: not found Dec 7 20:27:24 client kernel: ERROR: Failed to connect. Dec 7 20:27:24 client kernel: Retrying... Dec 7 20:27:29 client kernel: /etc/myip/myip-up: mpd5: not found Dec 7 20:27:29 client kernel: ERROR: Failed to connect. Dec 7 20:27:29 client kernel: Retrying... Dec 7 20:27:34 client kernel: /etc/myip/myip-up: mpd5: not found Dec 7 20:27:34 client kernel: ERROR: Failed to connect. Dec 7 20:27:34 client kernel: Retrying... Dec 7 20:27:39 client kernel: /etc/myip/myip-up: mpd5: not found Dec 7 20:27:39 client kernel: ERROR: Failed to connect. Dec 7 20:27:39 client kernel: Retrying...
mpd5 が見つからない?それとも mpd5 コマンドのパラメータで引数にしているものが見つからない?どうも前者のようです。
# which mpd5 /usr/local/sbin/mpd5
/etc/rc.local を通る時に、/usr/local/sbin にPATHが通っていない模様。この場合、/etc/rc.local 全体に /usr/local/sbin を参照するようにサーチパスを登録するか、myip-up コマンドを編集するかの選択になります。
私は、myip-up スクリプトを編集することにしました。
<オリジナル>
41 if [ "${PKG_TYPE}" = "pkg" ]; then 42 mpd5 -p /var/run/mpd5.pid -b -d ${CONFIG_DIR} 43 RET=$? 44 else
<編集後>
42 /usr/local/sbin/mpd5 -p /var/run/mpd5.pid -b -d ${CONFIG_DIR}
このようにmyip-up を編集して再起動したところ、PPTPが無事に自動起動するようになりました。OSごとに mpd5 がインストールされるパスが異なるのでしょう。サーチPATHをどこで吸収すべきなのかは難しいところです。
以上でPPTP VPNの暗号化設定完了。
さて、新しい pptp のパフォーマンスは?
良くないようです。PPTPですからね。ダウンロード方向で、1MB/sec は出ません。800kB/sec くらいです。もともとPPTPでパフォーマンスが良くないところに、データの暗号化まで行う訳なので通信サイズが増えて、当然パフォーマンスは低下方向。
問題は安定動作。これは長期間使ってみないと分かりません。前のpptpclientによるサービスは時々接続が切れていたので、mpd5 pptp ではどうなのか?って思っています。
接続だけは大事にならず復活できて良かったです。