GNU/Linux >> Linux の 問題 >  >> Panels >> OpenVPN

LinuxでOpenVPNサーバーをインストールおよび構成する最も簡単な方法

このガイドでは、RPMおよびDEBベースのシステムにOpenVPNサーバーをインストールして構成する方法について説明します。このガイドでは、 openvpn-installというスクリプトを使用します これにより、OpenVPNサーバーのインストールと構成プロセス全体が自動化されます。このスクリプトは、OpenVPNを以前に使用したことがない場合でも、数分で独自のVPNサーバーをセットアップするのに役立ちます。

始めましょう。

LinuxでのOpenVPNサーバーのインストールと構成

このガイドの目的のために、CentOS764ビット版で実行されている2つのシステムを使用します。 1つはOpenVPNサーバーとして機能し、もう1つはopenVPNクライアントとして機能します。以下は私のテストボックスの詳細です。

OpenVPNサーバー:

  • OS :CentOS764ビット最小版
  • IP :192.168.43.150/24
  • ホスト名 :vpnserver.ostechnix.local

OpenVPNクライアント:

  • OS :CentOS764ビット最小版
  • IP :192.168.43.199 / 24

まず、サーバー側の構成を確認します。

OpenVPNサーバーのインストールと構成

GitHubページからopenvpn-installスクリプトをダウンロードします。

wget https://git.io/vpn -O openvpn-install.sh

次に、rootユーザーとして次のコマンドを使用してスクリプトを実行します。

bash openvpn-install.sh

一連の質問に答えるように求められます。それに応じて答えてください。

VPNサーバーのIPアドレスが正しいことを確認してください。複数のIPアドレスを使用する場合は、OpenVPNがリッスンするネットワークインターフェースのIPを入力します。

Welcome to this quick OpenVPN "road warrior" installer

I need to ask you a few questions before starting the setup
 You can leave the default options and just press enter if you are ok with them

First I need to know the IPv4 address of the network interface you want OpenVPN
 listening to.
 IP address: 192.168.43.150

使用するプロトコルを選択します。 tcpポートを使用したいので、2番を選択しました。

Which protocol do you want for OpenVPN connections?
 1) UDP (recommended)
 2) TCP
Protocol [1-2]: 2

ポート番号を入力します。

What port do you want OpenVPN listening to?
Port: 1194

VPNで使用するDNSサーバーの詳細を入力します。 Google DNSリゾルバーを使用したいので、オプション2を選択しました。

Which DNS do you want to use with the VPN?
 1) Current system resolvers
 2) Google
 3) OpenDNS
 4) NTT
 5) Hurricane Electric
 6) Verisign
DNS [1-6]: 2

最終段階に到達しました。クライアント証明書名を入力します。名前は1語で、特殊文字を含めないでください。

Finally, tell me your name for the client certificate
Please, use one word only, no special characters
Client name: client

ENTERキーを押して、OPENVPNサーバーのインストールを開始します。

Okay, that was all I needed. We are ready to setup your OpenVPN server now
Press any key to continue...

Npw、このスクリプトは、OpenVPNサーバーをセットアップするために必要なすべてのパッケージのインストールを開始します。 Anslo、VPNクライアントで認証するために必要なすべてのキーと証明書を作成します。これには数分かかります。

最後に、スクリプトは外部IPアドレスがあるかどうかを尋ねます。ない場合は、空白のままにして無視し、Enterキーを押してください。

If your server is NATed (e.g. LowEndSpirit), I need to know the external IP
If that's not the case, just ignore this and leave the next field blank
External IP: 

Finished!

Your client configuration is available at /root/client.ovpn
If you want to add more clients, you simply need to run this script again!

OpenVPNサーバーのインストールと構成が完了しました。最後の出力でわかるように、クライアント構成の詳細はファイル /root/client.ovpnに保存されます 。このファイルをすべてのVPNクライアントシステムにコピーする必要があります。

client.ovpnファイルをVPNクライアントにコピーしました

scp client.ovpn [email protected]:/etc/openvpn/

次に、OpenVPNクライアントを構成する必要があります。

ダウンロード -無料ビデオ:「侵入テスト方法論トレーニングコース(99ドル相当!)無料」

OpenVPNクライアントの構成

VPNサーバーシステムからclient.ovpnファイルをコピーしたことを確認してください。このファイルはすでにVPNクライアントシステムの/etc/openvpn/ディレクトリにコピーしています。

配布パッケージマネージャーを使用してOpenVPNパッケージをインストールします。

yum install openvpn

次に、次のコマンドを実行して、VPNサーバーとの安全な接続を確立します。

openvpn --config /etc/openvpn/client.ovpn

出力例:

Wed Apr 5 18:50:44 2017 Unrecognized option or missing parameter(s) in /etc/openvpn/client.ovpn:14: block-outside-dns (2.3.14)
Wed Apr 5 18:50:44 2017 OpenVPN 2.3.14 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec 7 2016
Wed Apr 5 18:50:44 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Wed Apr 5 18:50:44 2017 Control Channel Authentication: tls-auth using INLINE static key file
Wed Apr 5 18:50:44 2017 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Socket Buffers: R=[87380->87380] S=[16384->16384]
Wed Apr 5 18:50:44 2017 Attempting to establish TCP connection with [AF_INET]192.168.43.150:1194 [nonblock]
Wed Apr 5 18:50:45 2017 TCP connection established with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link local: [undef]
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link remote: [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TLS: Initial packet from [AF_INET]192.168.43.150:1194, sid=c6fb554e 362eb192
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=1, CN=ChangeMe
Wed Apr 5 18:50:45 2017 Validating certificate key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has key usage 00a0, expects 00a0
Wed Apr 5 18:50:45 2017 VERIFY KU OK
Wed Apr 5 18:50:45 2017 Validating certificate extended key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Wed Apr 5 18:50:45 2017 VERIFY EKU OK
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=0, CN=server
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Wed Apr 5 18:50:45 2017 [server] Peer Connection Initiated with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:48 2017 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Apr 5 18:50:48 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0'
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: timers and/or timeouts modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ifconfig/up options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route-related options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Apr 5 18:50:48 2017 ROUTE_GATEWAY 192.168.43.1/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:28:98:6b
Wed Apr 5 18:50:48 2017 TUN/TAP device tun0 opened
Wed Apr 5 18:50:48 2017 TUN/TAP TX queue length set to 100
Wed Apr 5 18:50:48 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Apr 5 18:50:48 2017 /usr/sbin/ip link set dev tun0 up mtu 1500
Wed Apr 5 18:50:48 2017 /usr/sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 192.168.43.150/32 dev enp0s3
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 Initialization Sequence Completed

次に、 tun0かどうかを確認します (VPNインターフェース)が作成され、「ipaddr」コマンドを使用してVPNインターフェースのIPアドレスを確認します。

ip addr

出力例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 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 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:28:98:6b brd ff:ff:ff:ff:ff:ff
 inet 192.168.43.199/24 brd 192.168.43.255 scope global dynamic enp0s3
 valid_lft 42359sec preferred_lft 42359sec
 inet6 fe80::a00:27ff:fe28:986b/64 scope link 
 valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
 link/none 
 inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
 valid_lft forever preferred_lft forever

上記の出力からわかるように、VPNサーバーは自動的にIPアドレス10.8.0.2をVPNクライアントに割り当てました。

次に、VPNクライアントシステムからVPNサーバーにpingを実行してみます。

ping -c3 10.8.0.1

出力例:

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=1.05 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=1.94 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=2.49 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 1.057/1.832/2.495/0.594 ms

おめでとう!これで、CentOSにOpenVPNサーバーとクライアントが正常にインストールおよび構成されました。この方法は、UbuntuやLinuxMintなどのDEBベースのシステムでも同じです。手動インストールとは異なり、このスクリプトを使用すると、openvpnのインストールと構成がはるかに簡単になります。

乾杯!


OpenVPN
  1. LinuxでOpenVPNサーバーを構成する

  2. LinuxPCにOpenVPNをインストールします

  3. Debian10にOpenVPNサーバーをインストールして設定する方法

  1. RockyLinux8にOpenVPNクライアントをインストールして構成する

  2. Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

  3. Linux NTP サーバーとクライアントをインストールして構成する方法

  1. OpenVPNアクセスサーバーをインストールして構成する方法

  2. RHEL 8 / CentOS8LinuxにHAProxyをインストールして構成する

  3. OpenVPNサーバーFreeBSD12のインストールと設定