iPhoneで自宅に接続したい。L2TPサーバはWHS2011に立てました。 | 徒労日記を書きながら考えていました。WHS2011っていつまで使うんだろうと。そして皮肉なことにWHS2011のL2TP活用記事を書き終える頃には気持ちはWindows10への乗り換えで決まってしまいました。
その文末でも引っかかっていた「5.クライアントのベアメタル(ドライブ丸ごとの復活可能な)バックアップ」ですが、Windows10でもWindows7から引き継いでいる「バックアップと復元」を使えばイメージ復元可能なバックアップがとれる事を思い出しました。
という事で後顧の憂いなく、Windows10に移行します。
・・・
いや、ちょっと寂しいけれど。
Window10作業メモ
自分メモなので読み飛ばしてもらってかまいません。
インストールしたのは有休ライセンスの英語版 Windows 7 Ultimate 64bit。
- データドライブを物理的に取り外し。怖いので。
- Windows7からクリーンインストール。Input methodのみJapaneseへ。
- ライセンス認証を確認。メディア作成ツールでUSB起動メディア作成。
- 作成したUSB起動メディアにてWindows10クリーンインストール(MethodはJpn,Windows7のライセンスキーでOK)
- Windows10が起動したらライセンス認証済みを確認。
- PC名変更。IPアドレス固定割当。
- リモートデスクトップを有効化。
- [Setting]-[TIME&LANGUAGE]-[Region&language]を選んで「日本語」の”Option”を選択。3つ追加パックを全部インストール。
- 嫁アカウントを作成([設定]-[アカウント]は使わずに[コンピューター]-[管理]-[ユーザーとグループ]から)
- UACを解除(スライダーを1番下へ)
- 接続したデータドライブを開いてWHS2011と同様の位置で共有(マウントポイント)を作成。コンテキストメニューの[共有]からではなく、[プロパティ]-[共有]タブから。<不明なコンタクト>が出てきたらWHS2011時代のなのでエントリから消す。
- RAMディスクとしてRAMDAインストール。Wドライブとして2GB確保(8GB実装中)。
- [システムのプロパティ]-[詳細設定]-[起動と回復]にて「システムエラー」にある「デバッグ情報の書き込み」を「(なし)」に。[パフォーマンス]から[詳細設定]タブで「バックグラウンドサービス」にチェック。
- [バックアップ設定]-[バックアップ]-[ファイル履歴を利用してバックアップ]-「その他のオプション」で「バックアップ対象のフォルダー」に今までCrashplanでとっていたServerFolderを追加。C:\Usersは下記で取るので削除。.TSの録画フォルダを除外。
- [バックアップ設定]-[バックアップと復元(Windows7)]にてC:\全ファイルとシステム情報を含めてバックアップ指定。WHS2011時代の”WindowsImageBackup”はリネームしておく。
一先ずここまでがシステム本体としての設定。ドライバ類は特に追加する必要なし。
ここから先は必要なアプリを追加していきます。
- Dropbox
- 7-Zip
- ESET ファミリー セキュリティ
- Plex Media Server
- 録画環境(Spinel テスト中)
- VMware Workstation Player
OneDriveはOS内包されてるし、音楽は付属のGrooveミュージックに、写真は「フォト」にまかせてしまおう。なるべくゴテゴテとアプリを入れないようにしたいんだ。本当はね・・・・
Softehter VPN on CentOS 7
WHS2011で構築したばかりでしたが、VMware上のCentOS7環境に乗り換えます。
Linux上でのL2TP実装はlibreswan+xl2tpdというのが古くから使われている様です。でもフォロワーさんから「Softether VPN ServerにCentOSで鯖立ててますが便利ですよ!」と教えていただいたのでSoftEther VPNに決定。ここ1年に絞って検索してみるとラズパイでの導入を含め利用者が増えているみたいですね。
インストールは簡単
基本的な導入は済んでいるCentOS7(VMPlayer上にCentOS 7とnginxでWordPressサーバを構築する | 徒労日記)へ導入します。
最新のSoftetherをダウンロード
wget http://jp.softether-download.com/files/softether/v4.21-9613-beta-2016.04.24-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz
展開&cdしてからmake
tar -zxvf softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz -C /usr/local/ cd /usr/local/vpnserver make
ライセンスの同意など質問が出たら1を数回押せばもうセットアップ完了。
ここからVPN設定を行いますが、Linux側で操作していません。Windows用のSoftetherをWindows10側にセットアップして「VPNサーバー管理マネージャ」だけをインストールして利用します。
このマネージャが通信できるよう、先にVMのファイアウォールを変更してhttpsアクセスを有効にしておきます。
# firewall-cmd --permanent --add-service="https" # firewall-cmd --reload
その後はマネージャのセットアップを進めるとウィザード形式で設定を聞かれるため、ユーザー作成、事前認証キーを入力していきます。
自動起動設定でハマる
CentOSはinit.dにスクリプトを置くわけではなく、unitファイルを書いてsystemctlにて組み込みます。で、それに合うvpnserver.serviceを書きました。(参考:Systemd入門(4) – serviceタイプUnitの設定ファイル – めもめも)
/etc/systemd/system/vpnserver.service
[Unit] Description=SoftEther VPN Server After=network.target [Service] Type=forking ExecStart=/usr/local/vpnserver/vpnserver start ExecReload=/bin/kill -HUP $MAINPID ExecStop=/usr/local/vpnserver/vpnserver stop [Install] WantedBy=multi-user.target
これであとは
# systemctl list-unit-files | grep vpn vpnserver.service disabled # systemctl enable vpnserver Created symlink from /etc/systemd/system/multi-user.target.wants/vpnserver.service to /etc/systemd/system/vpnserver.service. # systemctl start vpnserver
でOK。
・・・
なはずなのに最初動かず・・・
# systemctl start vpnserver Warning: vpnserver.service changed on disk. Run 'systemctl daemon-reload' to reload units. Job for vpnserver.service failed because the control process exited with error code. See "systemctl status vpnserver.service" and "journalctl -xe" for details. # systemctl status vpnserver -l ● vpnserver.service - Softether VPN Server Loaded: loaded (/etc/systemd/system/vpnserver.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since 日 2016-07-24 22:40:07 JST; 13s ago Process: 42327 ExecStart=/usr/local/vpnserver execsvc (code=exited, status=203/EXEC) 7月 24 22:40:07 localhost.localdomain systemd[1]: Starting Softether VPN Server... 7月 24 22:40:07 localhost.localdomain systemd[1]: vpnserver.service: control process exited, code=exited status=203 7月 24 22:40:07 localhost.localdomain systemd[1]: Failed to start Softether VPN Server. 7月 24 22:40:07 localhost.localdomain systemd[1]: Unit vpnserver.service entered failed state. 7月 24 22:40:07 localhost.localdomain systemd[1]: vpnserver.service failed. Warning: vpnserver.service changed on disk. Run 'systemctl daemon-reload' to reload units.
“Failed to start Softether VPN Server.”ってなんだー?といろいろ調べて居ましたが、1番下に書いてある’systemctl daemon-reload’を見逃していました。
# systemctl daemon-reload # systemctl start vpnserver # systemctl status vpnserver ● vpnserver.service - SoftEther VPN Server Loaded: loaded (/etc/systemd/system/vpnserver.service; enabled; vendor preset: disabled) Active: inactive (dead) since 日 2016-07-24 22:40:43 JST; 7min ago Process: 42361 ExecStop=/usr/local/vpnserver/vpnserver stop (code=exited, status=0/SUCCESS) Process: 42359 ExecStart=/usr/local/vpnserver/vpnserver start (code=exited, status=0/SUCCESS) 7月 24 22:40:41 localhost.localdomain systemd[1]: Starting SoftEther VPN Server... 7月 24 22:40:41 localhost.localdomain vpnserver[42359]: SoftEther VPN Server service.... 7月 24 22:40:41 localhost.localdomain vpnserver[42359]: Run the "vpnserver stop" com.... 7月 24 22:40:42 localhost.localdomain vpnserver[42361]: Stopping the SoftEther VPN S.... 7月 24 22:40:43 localhost.localdomain vpnserver[42361]: SoftEther VPN Server service.... 7月 24 22:40:43 localhost.localdomain systemd[1]: Started SoftEther VPN Server. Hint: Some lines were ellipsized, use -l to show in full.
.serviceファイルを編集した際はこのコマンドで反映させる必要がありそうです。
最後にファイアウォール
最後はfirewall-cmdコマンドを使ってfirewalldを変更します。iptablesではなく。また、
# firewall-cmd --list-all # # firewall-cmd --permanent --add-rich-rule='rule protocol value="esp" accept' # firewall-cmd --permanent --add-rich-rule='rule protocol value="ah" accept' # firewall-cmd --permanent --add-port=500/udp # firewall-cmd --permanent --add-port=4500/udp # firewall-cmd --permanent --add-service="ipsec" # firewall-cmd --permanent --add-masquerade # firewall-cmd --reload # # firewall-cmd --list-all
ESP (The Encrypted data Packets)をどう通すか不明でしたが、–add-rich-ruleで追加するようです。
あとはルータのポートフォワーディングをサーバのアドレスからVMに向けて完成。
今回のはまった事まとめ
- 接続できない!プロミスキャスモードにしてないから??
→ VMware Playerは気にする必要なし。ESXiは必要 - iPhoneだけ繋がらない
→ 古いVPNプロファイルを編集してもうまく変更されないので一度削除して作りなおす。 - systemctlでvpnserverが起動時エラーを吐く
→ systemctl daemon-reloadしましょう