fedora20にVPNクライアント(pptp)をインストールする


前回はCentOS6にVPNクライアント(pptp、pptp-setup)をインストールしましたが、今回はfedora20にVPNクライアントをインストールしてみます。

■ PPTPクライアント インストール

PPTPクライアントはbaseリポジトリにあるので、yumでインストールすることにします。

$ sudo yum install pptp pptp-setup

 

■ iptables設定

fedora20はiptablesの設定をfirewalldが司っているため、firewall-cmdコマンドでgreトンネルの穴をあけてやります。

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
success
$ sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
success

firewall-cmdコマンドの引数に --permanent をつけると、設定は /etc/firewalld/direct.xml に書き込まれます。

$ sudo cat /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>
  <rule priority="0" table="filter" ipv="ipv4" chain="INPUT">-p gre -j ACCEPT</rule>
</direct>

 

■ PPTPクライアント初期設定

pptpsetupコマンドで以下のパラメーターを投入します。

識別名: SAKURA
VPNサーバー IPアドレス: 133.242.xxx.xxx
ユーザー名: nullpopopo
パスワード: P@sSw0rD

$ sudo pptpsetup --create "SAKURA" --server "133.242.xxx.xxx" --username "nullpopopo" --password "P@sSw0rD" --encrypt

 

■ VPN接続

VPN接続はpppdコマンドで行います。

$ sudo pppd call SAKURA updetach

 

■ ルーティング設定

VPNが繋がったら、最初にルーティングを行います。対向ルーターのプライベートIPアドレスを1hop目に設定します。まずはipコマンドを使ってppp0インターフェイスの確認です。

$ ip a show dev ppp0

対向ルーターのIPアドレスを取得する(IPアドレスのみ表示させるシェル芸)

$ ip a show dev ppp0 | grep inet | awk '{print $4}' | sed -e 's/\/[0-9]*//g'

 

それではルーティングの設定です。コマンド実行の順序を間違えないようにしましょう。

 

$ sudo ip route add default via 10.0.0.10
$ sudo ip route add 0.0.0.0 dev ppp0
$ sudo ip route del default via 192.168.0.254

■ VPN切断

VPN接続が終わったら、VPN切断を行います。ルーティング設定は勝手に元にもどってくれるようです。

$ sudo pkill -f "pppd call SAKURA updetach"

以上です。ね、簡単でしょう?

[amazonjs asin="4798042595" locale="JP" title="これならわかる!Linuxサーバー入門講座"]

 

※ 追伸

VPN接続時にモデムがハングアップしまくりでggりまくった結果、firewalldを止めてみたらうまく動いた→その後、greトンネルの通信が阻害されていたことが判明→firewall-cmdでどうやって設定するん?と悩んでいたら、Twitterでヒントをいただきました。

@roaring_dog さん、ありがとうございます。

※ 参考サイト

http://unix.stackexchange.com/questions/150837/redhat-centos-7-firewalld-best-practice-for-pptp-or-l2tp-ipsec-rules
http://www.vqiu.cn/?p=420