raspberry piにVPNサーバーを構築する

タグ

Raspberry pi2にVPNサーバーを構築します。これで、ある程度、安心してホテル等の無料Wifiを使ったり、家の共有サーバーにある動画を見たりできます。

システムを最新にして、必要なソフトをインストールします。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install lsof openswan xl2tpd

カーネルパラメータを記述する設定ファイルを修正して、IPフォワードを有効にします。

sudo vi /etc/sysctl.conf

以下を追加。

##############################################################
# VPN
net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.eth0.send_redirects=0
net.ipv4.conf.eth0.accept_redirects=0
net.ipv4.conf.lo.send_redirects=0
net.ipv4.conf.lo.accept_redirects=0

有効にします。

sudo sysctl -p

IPsecを設定します。

sudo vi /etc/ipsec.conf

以下を追加。

conn L2TP
    keyingtries=0
    type=transport
    compress=yes
    authby=secret
    forceencaps=yes
    pfs=no
    auto=add
    ike=aes-sha1;modp3072
    phase2=esp
    phase2alg=aes-sha1;modp3072
    rekey=no
    salifetime=3h
    ikelifetime=1h
    left=192.168.X.XX # Raspberry PiのIPアドレスにする
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
sudo vi /etc/ipsec.secrets

以下を変更。192.168.X.XXはRaspberry PiのIPアドレス、SECRETはiPhoneのL2TPのシークレットに入力。

192.168.X.XX %any: PSK "SECRET"

有効にします。

sudo service ipsec restart

チェックします。

sudo ipsec verify

もしfailになるなら、一旦、再起動を行い、ipsecを起動します。

L2TPを設定します。

sudo vi /etc/xl2tpd/xl2tpd.conf

以下を追加。
ip range = 192.168.X.FROM - 192.168.X.TO は、外からの接続で、このIPが割り振られる。
local ip = 192.168.X.XX は、Raspberry PiのIPアドレスにする。

[global]
port = 1701

[lns default]
ip range = 192.168.X.FROM - 192.168.X.TO
local ip = 192.168.X.XX
length bit = yes
refuse chap = yes
require authentication = yes
pppoptfile = /etc/ppp/l2tpd.pppopt
sudo vi /etc/ppp/l2tpd.pppopt

以下を追加。

asyncmap 0
auth
crtscts
lock
modem
debug
proxyarp
lcp-echo-interval 180
lcp-echo-failure 3

refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2

ms-dns 8.8.8.8
sudo vi /etc/ppp/chap-secrets

以下を追加。UserNameはiPhoneのL2TPのアカウントに入力。Passwordはパスワードに入力。

UserName * Password *

有効にします。

sudo service xl2tpd restart

再起動時に実行できるようにします。

sudo insserv ipsec
sudo insserv xl2tpd