
VyOSでVPNの設定をしようとしたら、載っているサイトの情報が古くなってしまっていました。1.3だと内容が変わっているとこがあるので1.3向けにちょっと設定を直してみました
環境
まずはVPNをするための環境とベンダーなどを載せていきます
ベンダー&スペック
- さくらのVPS
- OS:Vyos1.3
- メモリ:1GB
- CPU:2コア
接続情報
- VPN-IP:160.16.xxx.xxx
- VPN-GW:160.16.xxx.1
- VPN-イーサーネット:eth0
- VPN-clientIP:192.168.30.0/24
- 認証方法:事前共有キー(testtest)
- ユーザー名:user001
- パスワード:user001
とします。インストール方法は過去の記事をみてください。
過去記事
VyOSの設定が終わっていて、SSHで接続できるという前提でいきます
現在の状態
- OSのインストールは済み
- ping 8.8.8.8などすると返ってくる(外からアクセス可能)
- ping google.comなどいれても反応はなし
- SSHでリモート接続できる(ユーザー名:vyos、パスワード:vyos)
- ファイアウォール:無設定
- パケットフィルタリング:無し
という状態になります。とうわけで色々設定をしていきます
DNSの設定をする
とりあえず、ドメイン名を入れても返ってくるようにします
1 | vyos@vyos# set system name-server 8.8.8.8 |
2 | vyos@vyos# set system name-server 8.8.4.4 |
ここはさくらのVPSで用意されているDNSを使っても、GoogleのパブリックDNSを使ってもどちらでもよいと思います。
これでpingが返ってきます
IPSecの設定
今度はIPSecの設定をしていきます。基本的にグローバルIPのあるポート(ここではeth0)で接続するのでそこに設定をいれていきます
IPSecの許可、インターフェースの設定
1 | vyos@vyos# set vpn ipsec ipsec-interface interface eth0 |
2 | vyos@vyos# set vpn ipsec nat-networks allowed-network 192.168.30.0/24 |
3 | vyos@vyos# set vpn ipsec nat-traversal enable |
アドレス設定
クライアントに割り振られるアドレスを設定します
1 | vyos@vyos# set vpn l2tp remote-access client-ip-pool start 192.168.30.100 |
2 | vyos@vyos# set vpn l2tp remote-access client-ip-pool stop 192.168.30.110 |
ここでは、VPNで接続した端末は192.168.30.100から始まり、110で終わるようになっています。10台接続ができる設定です。この数値は変えてもらえれば台数増やしたりできます
1 | vyos@vyos# set vpn l2tp remote-access outside-address 160.16.xxx.xxx |
グローバルIPアドレスを指定します。VPNのゲートウェイの設定もします
1 | vyos@vyos# set vpn l2tp remote-access outside-nexthop 160.16.xxx.1 |
エラーになると思います。VyOSではoutside-nexthopというのがありません。正しくは↓になります
1 | vyos@vyos# set vpn l2tp remote-access gateway-address 160.16.xxx.1 |
これでゲートウェイの設定ができました
認証設定
IPSecは事前の共有キーを使います。事前共有キーの設定をします(testtest)
1 | vyos@vyos# set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret |
2 | vyos@vyos# set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret testtest |
ユーザー設定
ユーザー名とパスワードの設定をします
1 | vyos@vyos# set vpn l2tp remote-access authentication mode local |
2 | vyos@vyos# set vpn l2tp remote-access authentication local-users username user001 password user001 |
これでユーザー名とパスワードの設定も終わりました
フィルタリングの設定
さくらのVPSではパケットフィルタリングというのがあるので、そっちを使う場合はVPNのポートを許可してください
- UDP:500
- UDP:4500
- UDP:1701
firewall の場合も同じように許可してください
01 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 40 protocol 'esp' |
02 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 41 action 'accept' |
03 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 41 destination port '500' |
04 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 41 protocol 'udp' |
05 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 42 action 'accept' |
06 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 42 destination port '4500' |
07 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 42 protocol 'udp' |
08 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 43 action 'accept' |
09 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 43 destination port '1701' |
10 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 43 ipsec 'match-ipsec' |
11 | vyos@vyos# set firewall name OUTSIDE-LOCAL rule 43 protocol 'udp' |
↑firewallの設定になります
NATの設定
1 | vyos@vyos# set nat source rule 110 outbound-interface 'eth0' |
2 | vyos@vyos# set nat source rule 110 source address '192.168.30.0/24' |
3 | vyos@vyos# set nat source rule 110 translation address masquerade |
NATもこれで完了です。
接続してみる
端末を接続してみてください。接続方法はVyattaとクライアントマシンをVPN接続するを見てください
トラフィックをVPN経由にすると接続できなくなる
VPNの接続はできても、トラフィックをVPN経由にするとネットに接続できません。。。えーとなります
DNSの設定をしなければいけない
上でDNSの設定をしていますが、VPNのクライアントのほうではしていないので接続できません。ということでしていきます
1 | vyos@vyos# set vpn l2tp remote-access name-server 8.8.8.8 |
2 | vyos@vyos# set vpn l2tp remote-access name-server 8.8.4.4 |
これでOKです。ここはさくらのDNSをいれてもパブリックDNSをいれても問題ないと思います。これで接続できるようになります
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS