[FreeBSD] mpd5でPPTPサーバ

vyattaのpptpdが落ちてたので泣く泣く別のサーバにPPTP上げるまでの作業メモ。
せっかくだから、FreeBSDならではのnetgraph使えるmpd5使ってみた。

とりあえずmpd5いれる。

% sudo pkg_add -r mpd5

設定

% cd /usr/local/etc/mpd5
% sudo cp mpd.conf.sample mpd.conf
% sudo vi mpd.conf

mpd.confの中身はこんな感じ。

startup:
        # configure mpd users
        set user adminuser adminpassword admin
        # configure the console
        set console self 127.0.0.1 5005
        set console open

default:
        load pptp_server

pptp_server:
        set ippool add pool1 192.168.201.201 192.168.201.205 (プライベートアドレスのプール)

# Create clonable bundle template named B3
        create bundle template B3
        set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.
        set ipcp ranges 192.168.201.201/32 ippool pool1 (実際に割り当てるプライベートアドレス)
        set ipcp dns 192.168.200.3
        #set ipcp nbns 192.168.200.3
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e128
        set mppc yes stateless

# Create clonable link template named L
        create link template L3 pptp
# Set bundle template to use
        set link action bundle B3
# Multilink adds some overhead, but gives full 1500 MTU.
        set link enable multilink
        set link yes acfcomp protocomp
        set link no pap chap eap
        set link enable chap-msv2 chap
# We can use use RADIUS authentication/accounting by including
# another config section with label 'radius'.
#       load radius
        set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation.
        set link mtu 1396
# Configure PPTP
        set pptp self 192.0.2.1(サーバの公開IPアドレス)
# Allow to accept calls
        set link enable incoming

まだよくわかってないので、不要な項目があるかも。

認証設定

% sudo vi mpd.secret

1行1ユーザを「ユーザ名(空白)パスワード(空白)割り当てIPアドレス」の形式で書く。

mpd起動

% sudo vi /etc/rc.conf
(mpd_enable=YESを追記)
% sudo /usr/local/etc/rc.d/mpd5 start

PPTPで接続してみる

Windowsからなら、なにもかんがえずにサーバ名いれて認証ユーザとパスワード入れて、プロパティからログオンドメインのチェック外したら入れた。

状況確認

% telnet localhost 5005
Multi-link PPP daemon for FreeBSD

Username: adminuser
Password: (adminpassword)

Welcome!
Mpd pid 4871, version 5.5 (root@freebsd.org 03:11 28-May-2010)
[] show sessions
ng0     192.168.200.201 B3-1    4357045-B3-1    L3-1    1       4357045-L3-1     user    ***.***.***.****

マスクしたけどだいたいこんな感じで見られるようだ。なんか色々見られるっぽいけど、まだあまりいじってない。