トップ   編集 編集(GUI) 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

PPTPサーバ(OpenVZContainer)

Last-modified: 2015-01-25 (日) 02:57:04 (1547d)
Top / PPTPサーバ(OpenVZContainer)

PPTP サーバ(OpenVZContainer)

OpenVZのゲストサーバ上に、PPTPdのインストールが成功したのでメモしておく。

自宅のサーバはOpenVZを利用し、各コンテナで管理を行っているが、

PPTPdサーバを設定するには、ホストOSにインストールする必要があった。

これを回避しコンテナにインストールする事で、ホストOSに依存しない環境を作成する。

無論、下の情報は自己責任という事で。(OpenVZ&CentOS5)

インストール

カーネルはovzkernel-2.6.18-128.1.1.el5.028stab062.3を使っていたが、

このバージョンではGREthroughは非対応との事。

又、/dev/pppのインストールを試みるも、今までは失敗に終わっていた。

kernelのアップデート

PPTPdを動作させるには、/dev/ppp が必要だ。

OpenVZのコンテナを/dev/ppp に対応させる為には、

stab064.4以上のカーネルと最新のvzctlコマンドが必要との事。

→ http://wiki.openvz.org/PPP_in_container

又、stab064.4はGREプロトコルのサポート行えるようになっている事から、

カーネルとコマンドのアップデートを行う事にした。

→ http://wiki.openvz.org/Download/kernel/rhel5/028stab064.4

New features (require vzctl >= 3.0.24 (not yet released)):
   * TSO support for venet and veth
   * ipgre (GRE over IP) support in containers
   * ppp support in containers (OpenVZ Bug #268) 

各rpmのupdateは、HostOS側で以下の通りに実行する。

[Host]# wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab064.4/ovzkernel-2.6.18-128.2.1.el5.028stab064.4.i686.rpm
[Host]# rpm -ivh ovzkernel-2.6.18-128.2.1.el5.028stab064.4.i686.rpm
[Host]# yum update vzctl

コマンド実行後OS再起動を行い、updateを適用する。

pptp用のコンテナを作成

今回VPN受け専用のpptpdコンテナを作成した(コンテナNoは今回105とした)

HostOS側

[Host]# vzctl create 105 --ostemplate centos-5-i386-minimal-5.2-20090103 --config vps.basic
[Host]# vzctl set 105 --onboot yes --save
[Host]# vzctl set 105 --hostname pptpdserver --save
(その他必要なコンテナ環境設定を行う)

コンテナ側(PPTPdパッケージインストール)

以前行ったPPTPdを参考に ppp dkms pptpdをインストールし設定を行う。

→ PPTPサーバ

作成したコンテナ上で、パッケージ作成以外は上記手順を全て行う必要がある。

(ただし、pptpdの起動だけはしないでおく)

コンテナに /dev/ppp をインストール

まずはホスト側で以下のコマンドを実行する

HostOS側

[Host]# modprobe ppp_async  ←PPPに使用する為
[Host]# modprobe ppp_deflate  ←PPPに使用する為
[Host]# modprobe ppp_mppe  ←PPTPdに使用する為
[Host]# vzctl stop 105
[Host]# vzctl set 105 --features ppp:on --save
[Host]# vzctl start 105
[Host]# vzctl set 105 --devices c:108:0:rw --save

次にコンテナにログインし、以下のコマンドを実行する

コンテナ側

[Host]# vzctl enter 105
[CT105]# mknod /dev/ppp c 108 0
[CT105]# chmod 600 /dev/ppp
[CT105]# /etc/init.d/pptpd start

これで準備が整った(はず)。 実際にPPTP接続を行い、接続が成功した例を記載しておく。

Jul  1 04:16:29 pptpdserver pppd[1885]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Jul  1 04:16:29 pptpdserver pppd[1885]: pppd 2.4.4 started by root, uid 0
Jul  1 04:16:29 pptpdserver pppd[1885]: Using interface ppp0
Jul  1 04:16:29 pptpdserver pppd[1885]: Connect: ppp0 <--> /dev/pts/1
Jul  1 04:16:32 pptpdserver pptpd[1884]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Jul  1 04:16:32 pptpdserver pppd[1885]: MPPE 128-bit stateless compression enabled
Jul  1 04:16:34 pptpdserver pppd[1885]: found interface eth0 for proxy arp
Jul  1 04:16:34 pptpdserver pppd[1885]: local  IP address xxx.xxx.xxx.xxx
Jul  1 04:16:34 pptpdserver pppd[1885]: remote IP address xxx.xxx.xxx.xxx
Jul  1 04:17:57 pptpdserver pppd[1885]: LCP terminated by peer (%M-^QwM-#^@<M-Mt^@^@^@^@)
Jul  1 04:17:57 pptpdserver pppd[1885]: Connect time 1.4 minutes.
Jul  1 04:17:57 pptpdserver pppd[1885]: Sent 168 bytes, received 2539 bytes.
Jul  1 04:17:57 pptpdserver pppd[1885]: Modem hangup
Jul  1 04:17:57 pptpdserver pppd[1885]: Connection terminated.
Jul  1 04:17:57 pptpdserver pppd[1885]: Exit