OpenVPN : Configure VPN Client (Ubuntu)2024/07/19 |
Configure VPN Client. This example is on Ubuntu.
This example is based on the environment like follows.
By settings of OpenVPN Server/Client, [tun] interface will be configured automatically and when connecting with VPN from Client to Server, Client can access to the the local network of the Server.
On this example, it needs to set IP Masquerading on Router, too.
+----------------------+ | [ 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] |
Transfer the [ca.crt], [client1.crt], [client1.key], and [ta.key] created on the server side in advance to the client to be configured.
|
[2] | Install OpenVPN. |
root@client:~# apt -y install openvpn
|
[3] | Configure OpenVPN client. |
# copy sample configuration root@dlp:~# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/
root@dlp:~#
vi /etc/openvpn/client/client.conf # line 36 : protocol which you specified in the server's config ;proto tcp proto udp # line 42 : OpenVPN server's global IP and port (replace to your own environment) remote 172.16.2.1 1194 # line 54 : retry resolving resolv-retry infinite # line 58 : no bind for local port nobind # line 65 : enable persist options persist-key persist-tun # line 88 : path to certificates you copied from server ca ca.crt cert client1.crt key client1.key # line 114 : path to TLS-Auth key you copied from server tls-auth ta.key 1 # line 124 : log level verb 3 # start VPN interface # * openvpn-client@(name of the configuration file without the [.conf] extension) root@client:~# systemctl enable --now openvpn-client@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] | Once the VPN connection is established, try to check whether the client can access the local network on the server side. |
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 msroot@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 |
Sponsored Link |