Ubuntu 24.04
Sponsored Link

OpenVPN : VPN クライアントの設定 (Ubuntu)2024/07/19

 
OpenVPN クライアントの設定です。Ubuntu を例にします。
当例では以下のような環境で OpenVPN サーバーを設定しています。
設定により、サーバー/クライアント上の [tun] インターフェースは自動設定され、クライアントは VPN 接続後、VPN サーバーのローカルネットワーク宛てへアクセス可能となります。
下例の場合は、前提として、ルーター側で NAT の設定が必要です。
(WAN 側から x.x.x.x:1194 (udp) 宛にきたパケットを LAN 側の 10.0.0.30:1194 (udp) へフォワード)
  +----------------------+
  | [  OpenVPN Server  ] |172.16.100.1
  |    dlp.srv.world     +--------+
  |                      |tun     |
  +-----------+----------+        |
        enp1s0|10.0.0.30          |
              |                   |
              |  Local Network    |
      10.0.0.1|                   |
       +------+-----+             |
-------|   Router   |-------------|-----
       +------+-----+             |
              |                   |
              |  Internet         |
--------------+-------------------|-----
              |                   |
              |  Local Network    |
  192.168.0.31|                   |
  +-----------+----------+        |
  |                      |tun     |
  |      VPN Client      +--------+
  |                      |172.16.100.x
  +----------------------+

[1]
事前に、サーバー側で作成した [ca.crt], [client1.crt], [client1.key], [ta.key] を、設定するクライアントに転送しておきます。
[2] OpenVPN をインストールします。
root@client:~#
apt -y install openvpn
[3] OpenVPN クライアントの設定です。
# サンプル設定ファイル コピー

root@client:~#
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/
root@client:~#
vi /etc/openvpn/client/client.conf
# 36行目 : OpenVPN サーバーの設定ファイルで指定したプロトコル
;proto tcp
proto udp

# 42行目 : OpenVPN サーバーのグローバル IP とポート
remote 172.16.2.1 1194

# 54行目 : 名前解決を継続
resolv-retry infinite

# 58行目 : ローカルポートをバインドしない
nobind

# 65行目 : persist オプションを有効にする
persist-key
persist-tun

# 88行目 : サーバーから転送した証明書と鍵ファイルのパス
ca ca.crt
cert client1.crt
key client1.key

# 114行目 : サーバーから転送した TLS-Auth キーファイルのパス
tls-auth ta.key 1

# 124行目 : ログレベル
verb 3

# VPN インターフェース起動
# openvpn-client@(設定ファイルの拡張子 [.conf] を除いた名前)

root@client:~#
systemctl enable --now openvpn-client@client
root@client:~#
ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:25:f5:7e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.31/24 brd 192.168.0.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe25:f57e/64 scope link
       valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none
    inet 172.16.100.6 peer 172.16.100.5/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::b773:ac4a:760a:dd2/64 scope link stable-privacy
       valid_lft forever preferred_lft forever
[4] VPN 接続が確立できたら、クライアントからサーバー側のローカルネットワークにアクセスできるか確認しておくとよいでしょう。
root@client:~#
ping -c 3 10.0.0.30

PING 10.0.0.30 (10.0.0.30) 56(84) bytes of data.
64 bytes from 10.0.0.30: icmp_seq=1 ttl=64 time=1.29 ms
64 bytes from 10.0.0.30: icmp_seq=2 ttl=64 time=1.36 ms
64 bytes from 10.0.0.30: icmp_seq=3 ttl=64 time=1.35 ms

--- 10.0.0.30 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.287/1.331/1.361/0.031 ms

root@client:~#
ping -c 3 10.0.0.10

PING 10.0.0.10 (10.0.0.10) 56(84) bytes of data.
64 bytes from 10.0.0.10: icmp_seq=1 ttl=63 time=1.31 ms
64 bytes from 10.0.0.10: icmp_seq=2 ttl=63 time=1.57 ms
64 bytes from 10.0.0.10: icmp_seq=3 ttl=63 time=1.55 ms

--- 10.0.0.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.314/1.476/1.570/0.115 ms
関連コンテンツ