LoginSignup
5
5

More than 5 years have passed since last update.

MacでPPTPサーバを建てる(CUI編)

Posted at

別の記事で、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です。
設定ファイルは以下になります。なかったら作ります。

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にユーザ情報を書きます。

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サーバが起動します。
色々と使い道はあると思うので試してみてください。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5