UbuntuサーバをPPTPサーバにしてみる

AndroidはVPNとしてPPTPをサポートしているので、家のUbuntu ServerをPPTPサーバにしてみたい所存。


■サーバ側設定
まずパッケージをインストール

aptitude install pptpd

で、/etc/pptpd.confを設定。あんまり設定するところはなくて、一番下のところを編集するくらい。

localip 192.168.1.1 # サーバのIPアドレス
remoteip 192.168.1.241-238,192.168.1.249 # PPTPで振り出すIPアドレス域

うちは192.168.1.1がサーバ、DHCPで192.168.1.129-192.168.1.140を割り振ってるので被らないようにその後のIPアドレスを9個ほど振ってみた。
パスワードの作成。パスワードは/etc/ppp/chap-secretsに平文で書くのでrootしかアクセスできないように注意。

ユーザ名 pptpd “パスワード” *

みたいな書式でおk。pptpdってとこはサーバ名を書く欄だけど、/etc/ppp/pptpd-optionsのname欄と合わせておく。Ubuntuのデフォルトはpptpdになってるけどそのままでいいんじゃないかな。
/etc/ppp/pptpd-optionsにはサーバ名(chap-secretsと合ってれば良い、デフォルトでおk)と、振り出すDNSサーバのアドレスを設定する……はずなんだけど、設定すると(Androidは指定されたDNSサーバを参照しに行くようになるのに)何故か名前が引けなくなる。

# ms-dns 192.168.1.1 # ←ここどうすればいいんだろう

この設定だと引けるが、名前をプロバイダ(携帯電話側)に問い合わせに行くことになるのでなんか微妙に気持ち悪いしあまり望ましくもない。
あとはpptpdをrestartする。
■Android側
無線とネットワーク→VPN設定→VPNの追加→PPTP VPNを追加
・VPN名
 適当
・VPNサーバの設定
 家鯖のホスト
・暗号化
 有効
・DNS 
 空欄
で、Menu→セーブ
あとは作った接続を選ぶとユーザ名とパスワードを聞かれるので、サーバに設定したのを入力すれば接続できる。
デフォルトルートがVPN側になるので、あらゆる通信がPPTP通って家鯖経由で行われる、はず。
接続確認はまぁ適当にローカルIPアドレスを使うような操作をしてみればいいかと。
例えば192.168.1.1のsambaに繋いでみるとか、ローカルIPアドレスでWebサーバに繋いでみるとか。
暗号化はたぶん出来てると思うけど、どうなんだろう
■まとめ
L2TPでやろうとして超めんどくさかったのに比べるとPPTPは超簡単で手軽。
DNSの設定だけが謎。
(追記)
DNSサーバのIPアドレスをグローバルアドレスにしたらいけた。名前解決はVPN側に飛んでいないってこと?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です