別の記事で、MacでL2TP over IPSecサーバを建てる(CUI編)について書きましたが、今回はそのPPTP版です。
内容はほぼ同じです。
PPTPのほうが早いと思いますが、暗号が少し弱いかと思います。
検証環境
- Mac
- OS X Yosemite(10.10.3)
- VPN
- PPTP
参考ページ
使い方
設定ファイルとしてplistを用意します。
設定ファイル
com.apple.RemoteAccessServers.plist
vpnd
の起動時に必要なplistの設定です。
設定ファイルのパスは/Library/Preferences/SystemConfiguration/com.apple.RemoteAccessServers.plist
です。
設定ファイルは以下になります。なかったら作ります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ActiveServers</key>
<array>
<string>com.apple.ppp.pptp</string>
</array>
<key>Servers</key>
<dict>
<key>com.apple.ppp.pptp</key>
<dict>
<key>DNS</key>
<dict>
<key>OfferedSearchDomains</key>
<array>
<string>Replace with DNS search domain(s) - remove if not needed</string>
</array>
<key>OfferedServerAddresses</key>
<array>
<string>8.8.8.8</string>
<string>8.8.4.4</string>
</array>
</dict>
<key>IPv4</key>
<dict>
<key>ConfigMethod</key>
<string>Manual</string>
<key>DestAddressRanges</key>
<array>
<string>192.168.1.10</string>
<string>192.168.1.100</string>
</array>
</dict>
<key>Interface</key>
<dict>
<key>SubType</key>
<string>PPTP</string>
<key>Type</key>
<string>PPP</string>
</dict>
<key>PPP</key>
<dict>
<key>AuthenticatorProtocol</key>
<array>
<string>MSCHAP2</string>
</array>
<key>CCPEnabled</key>
<integer>1</integer>
<key>CCPProtocols</key>
<array>
<string>MPPE</string>
</array>
<key>LCPEchoEnabled</key>
<integer>1</integer>
<key>LCPEchoFailure</key>
<integer>5</integer>
<key>LCPEchoInterval</key>
<integer>60</integer>
<key>Logfile</key>
<string>/var/log/ppp/vpnd.log</string>
<key>MPPEKeySize128</key>
<integer>1</integer>
<key>MPPEKeySize40</key>
<integer>0</integer>
<key>VerboseLogging</key>
<integer>1</integer>
</dict>
<key>Server</key>
<dict>
<key>Logfile</key>
<string>/var/log/ppp/vpnd.log</string>
<key>MaximumSessions</key>
<integer>128</integer>
<key>VerboseLogging</key>
<integer>1</integer>
</dict>
</dict>
</dict>
</dict>
</plist>
上記の設定ファイルで設定しているのは以下になります。
値は状況に応じて変えてください。
設定項目 | 値 |
---|---|
DNSサーバ(プライマリ) | 8.8.8.8 |
DNSサーバ(セカンダリ) | 8.8.4.4 |
DHCPサーバ アドレスレンジ(From) | 192.168.1.10 |
DHCPサーバ アドレスレンジ(To) | 192.168.1.100 |
logファイルのパス | /var/log/ppp/vpnd.log |
pppdの設定
man vpnd
すると書いてありますが、vpnd
はVPNで受け取ったデータをpppd
に流しているので、ユーザー情報などはpppd
の設定に書く必要があります。
pppd
の設定は/etc/ppp/
に書くらしいです。
参考サイトによるとMSCHAPv2認証の場合の設定方法のようですが、/etc/ppp/users.plist
にユーザ情報を書きます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Password</key>
<string>password</string>
<key>User</key>
<string>username</string>
</dict>
</plist>
上記ファイルでは認証を行うための情報を書いています。
設定項目は以下になります。値は状況に応じて変えてください。
設定項目 | 値 |
---|---|
ユーザ名 | username |
パスワード | password |
起動
起動方法ですが、
$ sudo vpnd
とするとActiveServers
に書かれているplistが読み込まれるみたいです。
なので、ActiveServers
に複数書いてある場合は、
$ sudo vpnd -i com.apple.ppp.pptp
のようにすると、明示的に起動できます。
確認
$ ps aux | grep vpnd
root 27055 0.0 0.0 2455448 804 ?? Ss 11:33AM 0:00.16 vpnd -i com.apple.ppp.pptp
vpnd
が見えていれば大丈夫です。
見えていない場合は設定がおかしいかもしれません。
停止
停止方法が見つかりませんでした。仕方ないのでkillall
しております。普通にプロセス指定してkill
しても良いですが。
良い方法を見つけた人がいたら教えて下さい。
$ sudo killall vpnd
まとめ
設定ファイルだけ最初に書けば、次回以降はコマンド一つでVPNサーバが起動します。
色々と使い道はあると思うので試してみてください。