Debian 13 trixie

OpenVPN : VPN クライアントの設定 (Debian)2025/10/08

 

OpenVPN クライアントの設定です。Debian を例にします。

当例では以下のような環境で 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

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

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

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

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 fq_codel state UP group default qlen 1000
    link/ether 52:54:00:54:51:f0 brd ff:ff:ff:ff:ff:ff
    altname enx5254005451f0
    inet 192.168.0.30/24 brd 192.168.0.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe54:51f0/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none
    inet 172.16.100.2/24 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::f93d:3c86:89e7:fe1b/64 scope link stable-privacy proto kernel_ll
       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 2003ms
rtt min/avg/max/mdev = 1.147/1.245/1.304/0.069 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.36 ms
64 bytes from 10.0.0.10: icmp_seq=2 ttl=63 time=1.40 ms
64 bytes from 10.0.0.10: icmp_seq=3 ttl=63 time=1.29 ms

--- 10.0.0.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.286/1.349/1.398/0.046 ms
関連コンテンツ