PPTP を Cent OS 5.x にインストールする ~N-06C の VPN 事情

»設定

予め ppp が VPS にインストールされている必要があります。さくらのVPS などは最初からインストール済みですが、必要に応じて

# yum -y install ppp

として、pppパッケージをインストールしておいてください。

  1. サンプルをコピーする
    # cp samples/pptpd.conf /etc/
    # cp samples/options.pptpd /etc/ppp/
  2. /etc/pptpd.conf を編集する
    # vi /etc/pptpd.conf
    
    localip 172.16.2.1
    remoteip 172.16.2.2-10
    • localip にサーバ自身に割り当てるIPアドレスを指定します。
    • remoteip には N-06C に IPCP で割り当てる IPアドレス範囲を指定します。
      この例だと .2 から .10 まで割り当て可能ですが、N-06C 一台しか PPTP 接続しないのであれば、172.16.2.2 などと書いても構いません。
  3. options.pptpd を編集する
    # vi /etc/ppp/options.pptpd
    
    ms-dns  8.8.8.8
    ms-dns  8.8.4.4
    ##proxyarp
    mtu 1300
    • ms-dns にはお使いの VPS の DNSサーバの IPアドレスを指定します。/etc/resolv.conf を見れば分かりますが、上記のままでも使えることは使えます。GoogleのパブリックDNS です。
    • proxyarp は今回のように ppp インターフェースと eth0 等の他のインターフェースとはセグメントが異なっているので、不要ですので、# でコメントアウトします。
    • mtu については、調整が必要なパラメータです。詳細については後述します。
    • サンプルをコピーした場合は、PAP や CHAP、MS-CHAPv1 は認証プロトコルとして使えません。MS-CHAPv2 のみになります。
    • また、PPPフレームは MPPE で暗号化されます。(128ビット版)
  4. /etc/ppp/chap-secrets を編集する
    # vi /etc/ppp/chap-secrets
    
    user3 pptpd           hogehoge    *
    • L2TP/IPsec も認証には PPP 認証を用いているので、設定ファイルは同一です。
      この例では、user3 がユーザ名となります。hogehoge がパスワードで、* は接続できるIPアドレスに制限無しを意味します。
    • pptpd は /etc/ppp/options.pptpd の中の name に指定されている文字列と合わせます。デフォルトは pptpd です。

 

/etc/ppp/options.pptpd の mtuについて

mtu を指定しなかったり、L2TP/IPsec のデフォルト時のように mtu 1410 などと指定しても、pptp接続した後データ通信を開始すると、

GRE: read(fd=7,buffer=6087c0,len=8260) from network failed: status = -1 error = Message too long

といったエラーが syslog(/var/log/message)に記録されて、pptpセッションが切断されてしまいました。

そこで、私は、mtu 1300 と小さめの値を設定したところ、上記のエラーにより pptpセッションが切断されることはなくなったので、例として載せています。もし mtu 1300 に設定しも pptpセッションが切断されるようなら、mtu の値をもう少し小さくして試してみてください。

なお、mru については、特に指定しなくてもデフォルト値で動作するようですが、mtu と数値を合わせたりしても構いません。

 

»自動起動設定

最初の tarボールを解凍したディレクトリに戻って、以下のコマンドを実行します。

# cp pptpd.init /etc/init.d/pptpd
# chmod 755 /etc/init.d/pptpd
# chkconfig --add pptpd
# chkconfig pptpd on

configure の時に prefix を変更していない限り、pptpd などは /usr/local/sbin に、必要なライブラリは /usr/local/lib/pptpd の中にインストールされます。

ソース tarボールの中に用意されている自動起動スクリプトは /usr/sbin/pptpd を想定しているため、シンボリックリンクを作成します。また、ライブラリである pptpd-logwtmp.so も /usr/lib/pptpd/ にあることが前提となっているため、同様にシンボリックリンクを作成します。

# ln -s /usr/local/sbin/pptpd /usr/sbin/pptpd
# mkdir /usr/lib/pptpd/; ln -s /usr/local/lib/pptpd/pptpd-logwtmp.so  /usr/lib/pptpd/

ライブラリについては、シンボリックリンクを作成しない場合に pptpセッションを張ろうとすると、syslog に以下のようなエラーが吐かれ、失敗します。

pppd[24194]: /usr/lib/pptpd/pptpd-logwtmp.so: cannot open shared object file: No such file or directory
pppd[24194]: Couldn’t load plugin /usr/lib/pptpd/pptpd-logwtmp.so

次回は、Squid を用いて透過型プロキシを設定します。 続きを見る

 


前のページ

 

関連するコンテンツ


コメントを残す


メモ - 以下の HTML タグと属性が利用できます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください