前回、VyOSで簡単にVPNルーターを構築してみましたが、ルーター兼自社社員専用グループウェアをインストールしたWEBサーバーを構築したい場合は、CentOSで構築するという手もあります。ネットワーク構成は前回と一緒で、eth0にグローバルIPアドレスが付与され、eth1にプライベートIPアドレスを自分で付与することにします。
eth1へのIPアドレス付与は、 /etc/sysconfig/network-scripts/ifcfg-eth1 を直接作成して編集します。
$ cat << _EOL_ | sudo tee /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 NETMASK=255.0.0.0 IPADDR=10.0.0.10 _EOL_
■ PPTPサーバー インストール
pptpdパッケージをインストールします。CentOSでは、このパッケージはepelリポジトリにありますので、epelリポジトリがない場合は、あらかじめインストールしておいてください。さくらのクラウドやさくらのVPSではepelリポジトリが最初からインストールされ、有効化されているので、次のようにいきなりインストールしてしまいましょう。
$ sudo yum install pptpd
■ PPTPサーバー 設定
・ /etc/pptpd.conf 編集
自分自身のIPアドレスと、VPNクライアントに配布するIPアドレスの範囲を指定します。
$ sudo cp -p /etc/pptpd.conf{,.orig} $ cat << _EOL_ | sudo tee -a /etc/pptpd.conf localip 10.0.0.10 remoteip 10.0.0.231-240 _EOL_
・ /etc/ppp/chap-secrets 編集
VPNクライアントが使うアカウントを、以下のパラメーターで設定します。
アカウント名: nullpopopo
パスワード: P@sSw0rD
$ sudo cp -p /etc/ppp/chap-secrets{,.orig} $ echo "nullpopopo pptpd P@sSw0rD *" | \ awk '{print $1"\t"$2"\t"$3"\t"$4}' | \ sudo tee -a /etc/ppp/chap-secrets
・ /etc/ppp/options.pptpd 編集
ms-dns 133.242.0.3 ms-dns 133.242.0.4
の2行を、以下のコマンドで追記します。
$ sudo cp -p /etc/ppp/options.pptpd{,.orig} $ echo 133.242.0.{3,4} | sed -e 's/[[:space:]]/\n/g' | \ sed -e 's/^/ms-dns /g' | sudo tee -a /etc/ppp/options.pptpd
■ pptpd起動
以下のコマンドでpptpdを起動します。
$ sudo chkconfig pptpd on $ sudo service pptpd start
■ パケット転送許可
CentOSのカーネルパラメーターは、デフォルトでパケット転送を拒否しています。以下のコマンドで値が0になっています。
$ sudo sysctl -a | grep net.ipv4.ip_forward net.ipv4.ip_forward = 0
このままでは、次の手順 NAT設定を行ってもうまく通信できないので、sysctl.confを編集してパケット転送を許可してあげることにします。
$ sudo cp -p /etc/sysctl.conf{,.orig} $ sudo vi /etc/sysctl.conf
# Controls IP packet forwarding net.ipv4.ip_forward = 0
を
# Controls IP packet forwarding net.ipv4.ip_forward = 1
にします。
vimを使わず、sedで編集する場合は、以下のコマンドです。
$ sudo sed -i 's/net.ipv4.ip_forward[[:space:]]*=[[:space:]]*0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf
ここまで終わったら、sysctlコマンドで反映し、確認してみましょう。
$ sudo sysctl -p $ sudo sysctl -a | grep net.ipv4.ip_forward net.ipv4.ip_forward = 1
上記のように「net.ipv4.ip_forward = 1」と表示されていればOKです。
■ iptablesのNATルール作成
iptablesの設定ファイルをあらかじめ保存しておきます。
$ sudo service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
それではルールを作成しましょう。
$ sudo cp -p /etc/sysconfig/iptables /etc/sysconfig/iptables.orig $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE $ sudo iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE $ sudo iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT $ sudo iptables --append FORWARD --in-interface eth0 -j ACCEPT $ sudo service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
PPTPサーバー側の設定は以上です。
■ PPTPクライアント (CentOS6)から接続してみる
・ pptpクライアントインストール
$ sudo yum install pptp pptp-setup
・ VPN接続先初期設定
$ sudo pptpsetup --create "SAKURA" --server "133.242.xxx.xxx" --username "nullpopopo" --password "P@sSw0rD" --encrypt
・ VPN接続
以下のコマンドでVPN接続します。
$ sudo pppd call SAKURA updetach Using interface ppp0 Connect: ppp0 <--> /dev/pts/1 CHAP authentication succeeded MPPE 128-bit stateless compression enabled local IP address 10.0.0.231 remote IP address 10.0.0.2
VPNがつながったらルーティング設定をしましょう。 (先にVPN経由のルーティングを設定してからeth0のデフォルトゲートウェイを削除する。順番を間違えないこと。)
$ sudo route add -net 10.0.0.0 gw 10.0.0.10 netmask 255.0.0.0 dev ppp0 $ sudo route delete default $ sudo route add default gw 10.0.0.10
あとは、VPNサーバー 10.0.0.10 や同じネットワークにある他のノードにpingが飛ぶこと、VPNサーバーを経由してインターネットに出られることが確認できればOKです。
■ VPN切断
以下のコマンドでVPNを切断し、ブロードバンドルーターへのルーティングを追加します。
$ sudo pkill -f "pppd call SAKURA updetach" $ sudo route add default gw 192.168.0.254
以上です。ね、簡単でしょう?
[amazonjs asin="4798121770" locale="JP" title="DVD付 CentOS徹底入門 第3版"]