Poptopによる VPN メンテナンス経路の確保
第5回 PPPD / PPTPD のコンフィグレーション

Linux-eden >> 第5回 PPPD / PPTPD のコンフィグレーション

 

  • PPP 関連モジュールの設定追加

     /etc/modules.conf ファイルをエディタで編集して、以下の内容を追加してください。

    alias char-major-108 ppp_generic
    alias tty-ldisc-3 ppp_async
    alias tty-ldisc-14 ppp_synctty
    alias ppp-compress-18 ppp_mppe
    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate

     保存したら、
    # depmod -a
     を実行してください。



  • 関連する設定ファイルについて

     PPTPD に関係する重要な設定ファイルとしては、以下のものが挙げられます。

    設定ファイルの場所

    役割
    /etc/pptpd.conf PPTPD が使用するオプションファイルの場所の指定や、デバッグフラグ、タイムアウト、払い出しIPアドレス範囲などの設定
    /etc/ppp/options.pptpd

    PPTPD の各種動作の設定
    mtuのサイズや、認証方式、接続相手に使わせる DNS のIPアドレス、WINSのアドレス、デバックフラグなどの設定

    /etc/ppp/chap-secret CHAP 認証で使用するユーザー名・パスワード・固定IP払い出しなどの設定

     ここで紹介した以外にも、/etc/ppp フォルダには、さまざまな設定ファイルが存在します。
     なお、設定ファイルの説明と使用例は、pptpd-1.1.3-20021009.tar.gz を解凍後の ./poptop/samples フォルダ内にありますので、興味のある方は一度覗いて見てはいかがでしょうか。


  • /etc/pptpd.conf の設定

     自動で生成されていない場合は、pptpd-1.1.3-20021009.tar.gz 解凍後の ./poptop/samples/pptpd.conf ファイルを /etc にコピーしてください。
     デフォルトでは、すべての行がコメントアウトしてありますが、

     option /etc/ppp/options.pptpd

     debug

     だけは、コメントを外しておいたほうがいいでしょう。
     debug に関しては、接続ができしだい再度コメントアウトしたほうがいいでしょう。
     また、

     localip

     には、ローカルネットワークで使用するIPアドレス、または、IPアドレスの範囲、またはその両方の組み合わせを設定し、

     remoteip

     には、PPTPクライアント(リモートマシン)達に払い出すIP、または、IPアドレスの範囲、またはそれらの組み合わせを指定します。
     PoPToPに付属のサンプルでは、例として以下のような書式が紹介されています。

    #localip 192.168.0.1
    #remoteip 192.168.0.234-238,192.168.0.245
    #or
    #localip 192.168.0.234-238,192.168.0.245
    #remoteip 192.168.1.234-238,192.168.1.245

     これを参考にして、記述するとよいでしょう。
     もちろん、コメントを表す先頭の # は外して記述しますし、localip / remoteip の表記が複数回にならないようにします。

     注意すべき点として、ここで指定するIPアドレスは、「MAX_CONNECTIONS」で指定された数だけ先頭から順に解釈され、それ以降のIPアドレスは認識されない。という事です。
     これは、PoPToP のドキュメントにあった説明を私がそのまま鵜呑みにしているだけで、私自身は、Poptopのソースコードまで探しましたが、実際に、この「MAX_CONNECTIONS」の設定を見つけることはできませんでしたし、挙動も確認できてはいません。
     どなたか分かる方がいれば、教えていただければ幸いです。



  • /etc/ppp/options.pptpd の設定

     これも、自動で生成されていない場合は、pptpd-1.1.3-20021009.tar.gz 解凍後の ./poptop/samples/options.pptpd を /etc/ppp にコピーしてください。

     ちなみに私の環境では、このファイルは以下のようにしています。
     必要に応じて変更して使って頂いても構いません。

    ## CHANGE TO SUIT YOUR SYSTEM
    lock

    ## turn pppd syslog debugging on
    #debug

    ## change 'pptpd' to whatever you specify as your server name in
    #chap-secrets
    name *

    mtu 1450
    mru 1450
    auth
    require-chap
    proxyarp
    -chap
    -chapms
    +chapms-v2
    ipcp-accept-local
    ipcp-accept-remote
    lcp-echo-failure 3
    lcp-echo-interval 5
    deflate 0
    mppe-128
    #mppe-40
    mppe-stateless
    #ms-wins your.server.here
    ms-dns myddns.server.name


     この設定ファイルでは、MSCHAP-V2 と MPPE128 bit のみ使用するようにしています。
     必要に応じて、このあたりの設定は変更してください。
     また、「 ms-dns 」には、PPTPクライアントに使用させるDNSサーバーのアドレスを指定します。これは、FQDN で入力すれば大丈夫です。

     余談ですが、私の場合、DHCP + BIND でダイナミックDNSを構築し、PPTPクライアントにもこのサーバーを使わせるようにしています。
     これにより、VPNをまたいだ状態でも、柔軟性を保った名前解決サービスが提供できます。

     少なくとも WindowsNT 以降ならUNC名に含まれるコンピュータ名をDNSで解決できますので、ActiveDirectory を使用していないのならば、名前解決はDNSに統合した方がいいと思います。
     WINS は、ここ数年の動向からすると obsolete な技術になってるのではないかと思いますが。


  • /etc/ppp/chap-secret の設定

     このファイルには、PPTPでの接続を許可するユーザー名とパスワードなどを設定します。
     Redhat8.0 のデフォルトでは、

    # Secrets for authentication using CHAP
    # client server secret IP addresses
    ####### redhat-config-network will overwrite this part!!! (begin) ##########
    ####### redhat-config-network will overwrite this part!!! (end) ############

     のようになっており、redhat-config-network うんぬんと書かれた行の間は、あるソフトが自動で読み書きする場所のようですので、手書きの設定は、これ以降かこれ以前に書かないといけないのでしょう。(未確認ですが)
     このような記述が無い場合は、特に気にすることはありません。

     さて、実際の書式は、

    username domain "password" FIXED_IP_ADDRESSES

     という形です。
     とりあえず動けばいいと言うのであれば、最低、

    username * "password" *
     
     という形式で書いてやれば動作します。
     また、ユーザーごとに固定のIPアドレスを払い出す場合は、「FIXED_IP_ADDRESSES」部分に、そのIPアドレスを記述し、以下のようにします。

    username * "password" 192.168.0.XXX

     もちろん、192.168.0.XXX の部分は、環境に合わせたアドレスに変えてください。
     

    注意:
     ここで指定する IP アドレスは、前述の /etc/pptp.conf ファイル内の remoteip で指定されている範囲内で、かつ「有効な」IPアドレスでなければなりません。
     /etc/pptp.conf 内で、MAX_CONNECTIONS の数以上のIPアドレスが指定されている場合、PoPToPは、MAX_CONNECTIONS の数をオーバーしている部分のIPアドレスを
    無効と解釈する点に注意してください。


     なお、このファイル変更後は、PPTPD を再起動・リロードしなくても設定が反映されます。(ただし、変更対象となったユーザーの現在のVPNセッションには影響しません。)

     以上で、Linux マシン側の設定はひとまず終了です。


  • PPTPDの起動

     以下のコマンドで、PPTPD の起動が可能です。(デバッグモードでの起動)

    /usr/local/sbin/pptpd -d

     今回のインストール手順では、Linux 起動時に自動では PPTPD が起動しませんので、PPTPD 起動コマンドを /etc/rc.d/rc.local にでも書いておくとよいでしょう。

     なお、pptpd の起動オプションは、

    /usr/local/sbin/pptpd --help

     で確認できます。
     あなたがインストールしたバージョンの pptpd でも同じかどうかは分かりませんが、利便性のため、私が使用している PoPToP version 1.1.3-20021009 で有効な起動オプションについて解説しておきます。

    オプション

    機能
    -c file
    --conf file
    デフォルト設定の読み込み先の指定
    (指定しない場合は、/etc/pptpd.conf)
    -d
    --debug

    syslog へのデバッグ出力をONにする
    (出力先は、/var/log/messages)

    -f
    --fg
    foreground として実行する
    -h
    --help
    ヘルプを表示

    -l x.x.x.x
    --listen x.x.x.x

    PPTPD が listen するローカルインターフェースのIPアドレスを指定する。
    マルチホームのマシンなどでセキュリティの観点から指定する
    -o file
    --option file
    PPP オプションファイルを指定する
    (指定しない場合は、/etc/ppp/options)
    -p file
    --pidfile file
    Process ID を出力するファイル名を指定する
    (指定しない場合は、/var/run/pptpd.pid)
    -s baud
    --speed baud
    PPPD へ接続ボー速度を指定する
    (指定しない場合は、115200 ボー)
    -v
    --version
    PoPToP のバージョン情報を表示



    続いて、PPTP による VPN を通すような iptables の設定について説明しましょう。


5/7


 

Linux-eden へ
戻る


ひろもの国へ戻る

このページは、現状ありのままの状態で提供させていただいております。本ページの情報はあくまでも自己責任の元にご利用ください。
お問い合わせなどは、meiweng2@yahoo.co.jpまでお願いいたします。