GNU/Linux >> Znalost Linux >  >> Debian

Jak nastavit server OpenVPN na Debianu 10

Virtuální privátní síť (VPN) je zabezpečené a šifrované spojení mezi dvěma sítěmi a jednotlivými uživateli, které chrání vaše internetové připojení a soukromí online. OpenVPN je bezplatný protokol VPN s otevřeným zdrojovým kódem, který implementuje techniky k vytvoření zabezpečeného point-to-point v směrovaných konfiguracích. Je multiplatformní a kompatibilní se všemi hlavními operačními systémy.

V tomto tutoriálu vám ukážeme, jak nainstalovat a nastavit OpenVPN na serveru Debian 10.

Předpoklady

  • Debian 10 VPS (budeme používat náš plán NVMe 2 VPS)
  • Přístup k uživatelskému účtu root (nebo přístup k účtu správce s oprávněními root)

Krok 1:Přihlaste se k serveru a aktualizujte balíčky operačního systému serveru

Nejprve se přihlaste ke svému serveru Debian 10 přes SSH jako uživatel root:

ssh root@IP_Address -p Port_number

„IP_Address“ a „Port_number“ budete muset nahradit příslušnou IP adresou vašeho serveru a číslem portu SSH. V případě potřeby navíc nahraďte „root“ uživatelským jménem účtu správce.

Než začnete, musíte se ujistit, že všechny balíčky operačního systému Debian nainstalované na serveru jsou aktuální. Můžete to provést spuštěním následujících příkazů:

apt-get update -y
apt-get upgrade -y

Krok 2:Instalace OpenVPN a EasyRSA

Ve výchozím nastavení je OpenVPN součástí výchozího úložiště Debianu. Můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install openvpn -y

Jakmile bude balíček OpenVPN nainstalován, budete si muset stáhnout EasyRSA do vašeho systému.

EasyRSA je nástroj příkazového řádku pro vytváření a správu PKI CA. Umožňuje generovat více typů certifikátů.
Používá se k vytvoření kořenové certifikační autority a vyžádání a podepsání certifikátů pro OpenVPN.

Nejnovější verzi EasyRSA si můžete stáhnout z úložiště Git pomocí následujícího příkazu:

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz

Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:

tar -xvzf EasyRSA-3.0.8.tgz

Dále zkopírujte extrahovaný adresář do adresáře OpenVPN:

cp -r EasyRSA-3.0.8 /etc/openvpn/easy-rsa

V tomto okamžiku jsou na vašem serveru nainstalovány OpenVPN a EasyRSA.

Krok 3:Vytvoření certifikační autority

Dále budete muset vytvořit certifikační autoritu (CA) pro OpenVPN.

Nejprve změňte adresář na EasyRSA pomocí následujícího příkazu:

cd /etc/openvpn/easy-rsa

Dále budete muset uvnitř tohoto vytvořit soubor vars. Soubor vars je jednoduchý soubor, který Easy-RSA vytvoří pro konfiguraci.

Můžete jej vytvořit pomocí následujícího příkazu:

nano vars

Přidejte následující řádky podle svých potřeb:

set_var EASYRSA                 "$PWD"
set_var EASYRSA_PKI             "$EASYRSA/pki"
set_var EASYRSA_DN              "cn_only"
set_var EASYRSA_REQ_COUNTRY     "USA"
set_var EASYRSA_REQ_PROVINCE    "Newyork"
set_var EASYRSA_REQ_CITY        "Newyork"
set_var EASYRSA_REQ_ORG         "ROSE CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL    "[email protected]"
set_var EASYRSA_REQ_OU          "ROSE EASY CA"
set_var EASYRSA_KEY_SIZE        2048
set_var EASYRSA_ALGO            rsa
set_var EASYRSA_CA_EXPIRE    7500
set_var EASYRSA_CERT_EXPIRE     365
set_var EASYRSA_NS_SUPPORT    "no"
set_var EASYRSA_NS_COMMENT    "ROSE CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR         "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF        "$EASYRSA/openssl-easyrsa.cnf"
set_var EASYRSA_DIGEST          "sha256"

Po dokončení uložte a zavřete soubor.

Dále spusťte infrastrukturu veřejného klíče pomocí následujícího příkazu:

./easyrsa init-pki

Měli byste získat následující výstup:

Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/easy-rsa/pki

Dále budete muset spustit příkaz build-ca k vytvoření souboru ca.crt a ca.key. Můžete jej spustit pomocí následujícího příkazu:

./easyrsa build-ca nopass

Budete požádáni o několik otázek, jak je uvedeno níže:

Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020

Enter New CA Key Passphrase: 
Re-Enter New CA Key Passphrase: 
Generating RSA private key, 2048 bit long modulus (2 primes)
...+++++
......................................................................+++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:vpnserver

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/easy-rsa/pki/ca.crt

Krok 4:Generování certifikátu serveru a souborů klíčů

Dále budete muset pro vygenerování klíče serveru použít příkaz gen-req následovaný společným názvem.

./easyrsa gen-req vpnserver nopass

Měli byste vidět následující výstup:

Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating a RSA private key
.......................................................+++++
....+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1428.Angtmh/tmp.C9prw4'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [vpnserver]:

Keypair and certificate request completed. Your files are:
req: /etc/openvpn/easy-rsa/pki/reqs/vpnserver.req
key: /etc/openvpn/easy-rsa/pki/private/vpnserver.key

Dále budete muset podepsat klíč vpnserver pomocí certifikátu CA. Můžete to udělat pomocí následujícího příkazu:

./easyrsa sign-req server vpnserver

Měli byste získat následující výstup:

Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'vpnserver'
Certificate is to be certified until Feb  6 14:38:52 2022 GMT (365 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /etc/openvpn/easy-rsa/pki/issued/vpnserver.crt

Dále budete muset vygenerovat silný klíč Diffie-Hellman, který použijete pro výměnu klíčů. Můžete jej vygenerovat pomocí následujícího příkazu:

./easyrsa gen-dh

Krok 5:Zkopírujte všechny soubory certifikátu a klíče

Dále budete muset zkopírovat všechny soubory certifikátů a klíčů do adresáře /etc/openvpn/server/. Můžete zkopírovat pomocí následujícího příkazu:

cp pki/ca.crt /etc/openvpn/server/
cp pki/dh.pem /etc/openvpn/server/
cp pki/private/vpnserver.key /etc/openvpn/server/
cp pki/issued/vpnserver.crt /etc/openvpn/server/

Krok 6:Vytvoření klientského certifikátu a souboru klíče

Dále budete muset vygenerovat soubor certifikátu a klíče pro klientský systém.

Můžete jej vytvořit pomocí následujícího příkazu:

./easyrsa gen-req vpnclient nopass

Měli byste získat následující výstup:

Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating a RSA private key
....+++++
.................................+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-1563.TeOf5v/tmp.i4YxLz'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [vpnclient]:

Keypair and certificate request completed. Your files are:
req: /etc/openvpn/easy-rsa/pki/reqs/vpnclient.req
key: /etc/openvpn/easy-rsa/pki/private/vpnclient.key

Dále podepište klientský klíč následujícím příkazem:

./easyrsa sign-req client vpnclient

Měli byste získat následující výstup:

Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'vpnclient'
Certificate is to be certified until Feb  6 14:43:18 2022 GMT (365 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /etc/openvpn/easy-rsa/pki/issued/vpnclient.crt

Dále zkopírujte všechny klientské certifikáty a klíče do adresáře /etc/openvpn/client/.

cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/vpnclient.crt /etc/openvpn/client/
cp pki/private/vpnclient.key /etc/openvpn/client/

Krok 7:Konfigurace serveru OpenVPN

V tomto okamžiku jsou připraveny serverový i klientský certifikát a klíč. Nyní budete muset vytvořit konfigurační soubor OpenVPN a definovat všechny certifikáty a klíče.

nano /etc/openvpn/server.conf

Přidejte následující řádky:

port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpnserver.crt
key /etc/openvpn/server/vpnserver.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
duplicate-cn
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
auth SHA512
auth-nocache
keepalive 20 60
persist-key
persist-tun
compress lz4
daemon
user nobody
group nogroup
log-append /var/log/openvpn.log
verb 3

Uložte a zavřete soubor, poté spusťte službu OpenVPN a povolte její spuštění při restartu systému:

systemctl start openvpn@server
systemctl enable openvpn@server

Pokud je vše v pořádku, vytvoří se nové rozhraní. Můžete to zkontrolovat pomocí následujícího příkazu:

ip a show tun0

Měli byste získat následující výstup:

4: tun0:  mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::153d:f29:39a2:571a/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Krok 8:Povolte přesměrování IP

Přesměrování IP umožňuje vašemu operačnímu systému přijímat příchozí síťové pakety a předávat je do jiné sítě. Můžete jej povolit pomocí následujícího příkazu:

nano /etc/sysctl.conf

Odkomentujte nebo přidejte následující řádek:

net.ipv4.ip_forward = 1

Uložte soubor a aplikujte změny konfigurace pomocí následujícího příkazu:

sysctl -p

Krok 9:Instalace a konfigurace klienta OpenVPN

Dále budete muset nainstalovat klienta OpenVPN na jiný systém a připojit se k serveru OpenVPN.

Nejprve nainstalujte OpenVPN pomocí následujícího příkazu:

apt-get install openvpn -y

Po instalaci zkopírujte všechny klientské certifikáty a klíče ze serveru OpenVPN do klientského počítače. Můžete to udělat pomocí následujícího příkazu:

scp -r root@vpn-server-ip:/etc/openvpn/client .

Dále změňte adresář na client a vytvořte konfigurační soubor klienta:

cd client
nano client.ovpn

Přidejte následující řádky:

client
dev tun
proto udp
remote vpn-server-ip 1194
ca ca.crt
cert vpnclient.crt
key vpnclient.key
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
resolv-retry infinite
compress lz4
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3

Uložte a zavřete soubor a poté se připojte k serveru OpenVPN pomocí následujícího příkazu:

openvpn --config client.ovpn

Po navázání spojení byste měli získat následující výstup:

Sat Feb  6 14:53:50 2021 SENT CONTROL [vpnserver]: 'PUSH_REQUEST' (status=1)
Sat Feb  6 14:53:50 2021 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 20,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'
Sat Feb  6 14:53:50 2021 OPTIONS IMPORT: timers and/or timeouts modified
Sat Feb  6 14:53:50 2021 OPTIONS IMPORT: --ifconfig/up options modified
Sat Feb  6 14:53:50 2021 OPTIONS IMPORT: route options modified

Rozhraní OpenVPN na klientském počítači můžete ověřit pomocí následujícího příkazu:

ip a show tun0

Měli byste získat následující výstup:

4: tun0:  mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::9206:94d7:8fb2:6b21/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Samozřejmě nemusíte instalovat OpenVPN, pokud používáte některou z našich služeb Managed OpenVPN Hosting, v takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby vám to nainstalovali. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.

PS . Pokud se vám tento příspěvek o tom, jak nainstalovat OpenVPN na Ubuntu, líbil, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.


Debian
  1. Jak nainstalovat a nakonfigurovat OpenVPN Server na Debian 10

  2. Nastavit statickou IP na Debianu 11 – Jak na to?

  3. Jak nastavit SFTP server na Debian 11 Server

  1. Jak nastavit server Samba na Debian 10 Buster

  2. Jak nastavit server LAMP na Debian 10 Buster

  3. Jak nastavit server NFS na Debian 10 Buster

  1. Jak nastavit LEMP server na Debian 10 Buster

  2. Jak nastavit server OpenVPN na Ubuntu 18.04

  3. Jak nastavit server OpenVPN na CentOS 7