VPNを構築する場合、Linuxではその使い易さからよくpptp形式のVPNを利用します。
そこで用いられるのがPoptopというpptpサーバです。VPNサーバでも構築しやすく、ユーザも利用がしやすい方式です。
今回はそのインストールと基本的な構築に関してとなります。
pptpdのインストール
パッケージでインストール可能です。
http://poptop.sourceforge.net/yum/beta/packages/
こちらから最適なパッケージを選びましょう。
uname -a コマンド等で自分のマシンを確認し、合うrpmを選択します。
今回はこちらを選択。
[html]# wget http://poptop.sourceforge.net/yum/beta/packages/pptpd-1.4.0-1.rhel5.i386.rpm[/html]
インストール。
[html]# rpm -Uvh pptpd-1.4.0-1.rhel5.i386.rpm
警告: pptpd-1.4.0-1.rhel5.i386.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 862acc42
準備中… ########################################### [100%]
1:pptpd ########################################### [100%]
[/html]
pptpdの設定
以下が設定ファイルです。
/etc/pptpd.conf
/etc/ppp/options.pptpd
/etc/ppp/chap-secrets
/etc/sysctl.conf
/etc/pptpd.conf
[html]#vi /etc/pptpd.conf
connections 10
localip 111.111.111.111
remoteip 192.168.1.150-155
[/html]
・connections 最大接続数。remoteipのipの数でも最大接続数は絞れます
・localip このVPNサーバのIPを指定
・remoteip VPNクライアント用に割り振りたいIPを設定
/etc/ppp/options.pptpd
[html]#vi /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
mtu 1400
[/html]
こちらの設定はデフォルトでOKですが、上記のように、DNSとmtuの設定をしておきましょう。
dnsは、8.8.8.8などでOKですし、mtuは、1400でandroidやPCからの接続に問題ありませんでした。
/etc/ppp/chap-secrets
[html]#vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
# UN
hogehoge * hogehogehoge *
[/html]
こちらではユーザの設定をします。
clientユーザ名 宛先サーバ パスワード IP addresses の順番で書きます。
※ 実際はユーザもPWも相当長くて複雑に設定してしまうのが良いです。今回は事前にFWで絞っていること前提なので、サーバもIPも全開です。
/etc/sysctl.conf
ipv4転送許可をします。
[html]# vi /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1[/html]
1に変更。
確認。
[html]# /sbin/sysctl -p
net.ipv4.ip_forward = 1
[/html]
その他懸念事項
・SELinuxを無効にしましょう。
確認
[html]# /usr/sbin/getenforce
Enforcing
# /usr/sbin/setenforce 0
# /usr/sbin/getenforce
Permissive
# vi /etc/selinux/config
SELINUX=disabled[/html]
動的にOFFになっているだけなので、再起動してdisabledにしましょう。
・ログを出す。
ログを使って接続等を確認したければ、/etc/pptpd.confのdebugを有効にします。
[html]#vi /etc/pptpd.conf
# TAG: debug
# Turns on (more) debugging to syslog
#
debug
[/html]
rsyslog.conf(syslog.conf)に”debug”を追記します。
[html]#vi /etc/rsyslog.conf
*.=debug;\
news.none;mail.none -/var/log/pptpd
[/html]
反映
pptpdの再起動で反映させます。
[html]# /etc/init.d/pptpd restart
Shutting down pptpd: [ OK ]
Starting pptpd: [ OK ]
Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results. Use restart-kill to
destroy existing connections during a restart.
[/html]
FWやルーターの設定で、通しておく事を忘れずに。
接続環境
[html]# /sbin/ifconfig[/html]
これで、ppp0をみると接続状態が確認できる。
[amazonjs asin=”4798005231″ locale=”JP” title=”図解・標準 最新VPNハンドブック―Encyclopedia Virtual Private Network ネットワークの基礎知識から、VPN、広域イーサネットまで (図解・標準Encyclopedia)”]
[amazonjs asin=”4899771673″ locale=”JP” title=”OpenVPNで構築する超簡単VPN入門―Windows/Mac OS X/Linux対応”]
参考
以下を参考にさせて頂きました。
CentOS 6.4でPPTP VPNサーバーを構築 – DRY(日本やアメリカで働くエンジニア日記)
http://d.hatena.ne.jp/ke-16/20130329/1364579787