L2TP/IPsecサーバの構築 (1/3) 環境編

SoftEther VPN のサーバーを導入してiPadやAndroidから接続できるようにします。

CLIだけで構築してみました。

環境

Ubuntu server上に構築します。

$ uname -a
Linux vpnsvr 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

ネットワークカードは2つ使います。

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:5a:89:88 brd ff:ff:ff:ff:ff:ff
3: ens10: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:f2:7e:d7 brd ff:ff:ff:ff:ff:ff

ens3ens10 として見えていますね。今回は ens10 の方をローカルブリッジ専用にします。 MACアドレスで分かるかもしれませんがQEMU/KVM上のマシンです。

インストールしているパッケージは build-essential のみ。次のコマンドでインストールしました。

$ sudo apt install build-essential

ネットワークの設定

ローカルブリッジ専用となるネットワークインターフェイスには"プロトコルスタックを使用しない"(公式サイトの3.6 ローカルブリッジ を参照)だそうです。なのでそのように設定します。Ubuntu 20.04 LTS では netplan でネットワークの設定をしています。 ens10 がIPアドレスを持たないように設定します。

/etc/netplan/00-installer-config.yaml の中身:

# This is the network config written by 'subiquity'
network:
ethernets:
    ens10:
    dhcp4: false
    dhcp6: false
    accept-ra: false
    link-local: [ ]
    ens3:
    addresses:
    - 172.20.1.160/12
    dhcp6: true
    gateway4: 172.20.250.250
    nameservers:
        addresses:
        - 9.9.9.9
        - 8.8.8.8
version: 2

ens3 の部分は運用するネットワークに合わせて設定します。L2TP/IPSecは500番と4500番のUDPポートを使用します。NATやファイアウォールを設定して ens3 にパケットが届くようにしておきます。

できたら netplan apply で設定を反映させます。

$ sudo netplan apply
$ ip addr show dev ens10
3: ens10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:f2:7e:d7 brd ff:ff:ff:ff:ff:ff

ens10 にはIPアドレスが振られなくなりました。

[つづく] →SoftEtherでL2TP IPSecのVPNサーバを構築 その2