LoginSignup
8
8

More than 3 years have passed since last update.

Ubuntu Server 18.04 (CUI環境)でも簡単に L2TP over IPsec がしたい

Posted at

背景

L2TP over IPsecをするとき、ipsec.confやxl2tpd.confを書くのは大変です。
Ubuntu Desktopには、NetworkManagerでVPN設定ができるパッケージがあります。

apt install network-manager-l2tp-gnome

image.png

Ubuntu ServerのCLI環境でもでもこれを使いたかった。

設定方法

# ネットワーク管理をNetworkManagerに任せる
# UbuntuDesktopはデフォルトでNetworkManagerが使われる。UbuntuServerはデフォルトでnetworkdが使われる。
vim /etc/netplan/50-cloud-init.yaml
50-cloud-init.yaml
network:
    version: 2
    renderer: NetworkManager
#   ethernets:
#       ens33:
#           dhcp4: true
# 念のためサーバを再起動
reboot
# NetworkManager側でサーバのIPアドレス設定などをする
nmtui
# パッケージをインストールする
apt install network-manager-l2tp
systemctl restart NetworkManager

# L2TP over IPsecの設定をする
nmcli connection add connection.id <VPNName> con-name <ConnName> type VPN vpn-type l2tp ifname -- connection.autoconnect no ipv4.method auto vpn.data "gateway = <VPN_SERVER_IP>, ipsec-enabled = yes, ipsec-psk = <PSK>, ipsec-ike=<ProposalIKE>, ipsec-esp=aes256-sha1-modp2048, mru = 1400, mtu = 1400, password-flags = 0, refuse-chap = yes, refuse-mschap = yes, refuse-pap = yes, require-mppe = yes, user = <USER>" vpn.secrets password=<PASS>

<VPNName>: VPN接続ID.なんでもよい。
<ConnName>: コネクション名。後で使う。vpnなどにすると管理しやすい。
<VPN_SERVER_IP>:VPNサーバのIPアドレス OR FQDN
<PSK>:PreSharedKey。平文で入力
<ProposalIKE>:IKEのProposal。aes256-sha1-modp2048 などと入力
<ProposalESP>:ESPのProposal。aes256-sha1-modp2048 などと入力
<USER>:(多分PPPの)ユーザー名
<PASS>:(多分pppの)パスワード。平文で入力

ProposalIKE、ProposalESPの書き方は、次のURLを参照。
https://github.com/nm-l2tp/NetworkManager-l2tp#user-content-ipsec-ikev1-weak-legacy-algorithms-and-backwards-compatibility

# 生成されたファイルを確認
ls /etc/NetworkManager/system-connections/vpn

# なにか修正したい場合は直接編集して、リロードする
vim /etc/NetworkManager/system-connections/vpn
nmcli conn reload

接続します

nmcli conn up <ConnName>
 #=> Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
 #=> などと表示されたら成功

nmcli conn down <ConnName>
  #=> Connection 'vpn' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
  #=> などと表示されたら成功

ポイントは次。

  • NetworkManager-L2TPをインストールする
  • ネットワークの管理は、networkdをやめてNetworkManagerにする
  • 設定ファイルを頑張って生成する
    • ウィザードやtuiインタフェースは存在しない
  • nmcliコマンドを使う
  • ipsec.confやxl2tpd.confに相当するものは、次の場所に出力される
ls -l /run/nm-*
-rw------- 1 root root 230 Mar 14 10:13 nm-l2tp-ipsec-6c4228fa-a3b0-438c-b787-a6b6c7363ffa.conf
-rw-r--r-- 1 root root 268 Mar 14 10:13 nm-l2tp-ppp-options-6c4228fa-a3b0-438c-b787-a6b6c7363ffa
-rw-r--r-- 1 root root 288 Mar 14 10:13 nm-l2tp-xl2tpd-6c4228fa-a3b0-438c-b787-a6b6c7363ffa.conf

デバッグ方法

sudo killall -TERM nm-l2tp-service
sudo /usr/lib/NetworkManager/nm-l2tp-service --debug

参考:https://github.com/nm-l2tp/NetworkManager-l2tp

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8