VPN je také známá jako „virtuální privátní síť“ je technologie, která vám umožňuje vytvořit zabezpečenou privátní síť přes veřejný internet. To vám pomůže zašifrovat váš internetový provoz a ochránit vaši online identitu. Primárně se používá k bezpečnému propojení dvou podnikových sítí přes internet a umožňuje vám připojit podnikovou síť z domova.
Jednoduše řečeno, VPN připojí váš mobil, počítač a tablet k jinému počítači (serveru) přes internet a umožní vám přístup k internetu pomocí internetu tohoto počítače a také přístup k místním síťovým zdrojům vzdáleným obcházením cenzury internetu.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat server OpenVPN na CentOS 8.
Krok 1 – Zakažte SELinux
Než začnete, je dobré zakázat SELinux ve vašem systému.
Chcete-li zakázat SELinux, otevřete soubor /etc/selinux/config:
nano /etc/selinux/config
Změňte následující řádek:
SELINUX=zakázáno
Po dokončení soubor uložte. Poté restartujte systém, aby se změny SELinuxu aplikovaly.
Krok 2 – Povolte přesměrování IP
Dále budete muset povolit předávání IP ve vašem systému. 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ě, pokud je cíl v jiné síti.
Chcete-li povolit předávání IP adres, upravte soubor /etc/sysctl.conf:
nano /etc/sysctl.conf
Přidejte následující řádek:
net.ipv4.ip_forward =1
Po dokončení soubor uložte. Potom spusťte následující příkaz a použijte změny:
sysctl -p
Krok 3 – Instalace serveru OpenVPN
Ve výchozím nastavení budete muset do svého systému nainstalovat úložiště EPEL, abyste mohli nainstalovat nejnovější verzi OpenVPN.
Spuštěním následujícího příkazu nainstalujte úložiště ELEP:
dnf install epel-release -y
Po instalaci spusťte následující příkaz k instalaci nejnovější verze OpenVPN:
dnf install openvpn -y
Po dokončení instalace si také budete muset stáhnout easy-rsa pro správu certifikátů SSL.
Spusťte následující příkaz ke stažení easy-rsa do adresáře /etc/openvpn.
cd /etc/openvpn wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz Dále spusťte následující příkaz pro extrahování stažený soubor:
tar -xvzf EasyRSA-unix-v3.0.6.tgz Dále přejmenujte extrahovaný adresář na easy-rsa:
mv EasyRSA-v3.0.6 easy-rsa Krok 4 – Nastavení certifikační autority
Easy RSA používá ke generování klíčů a certifikátů sadu skriptů. Nejprve budete muset nakonfigurovat certifikační autoritu ve vašem systému.
Chcete-li tak učinit, změňte adresář na /etc/openvpn/easy-rsa a vytvořte nový konfigurační soubor Easy RSA:
cd /etc/openvpn/easy-rsa nano vars Přidejte následující řádky včetně vaší země, města a preferované e-mailové adresy:
set_var EASYRSA "$ PWD" set_var EASYRSA_PKI "$ EASYRSA / PKI" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "INDIE" set_var EASYRSA_REQ_PROVINCE "Gujrat" set_var EASYRSA_REQ_CITY "Ahmedabad" set_var EASYRSA_REQ_ORG "Tecadmin certifikační autorita" set_var EASYRSA_REQ_EMAIL „[email protected ] "set_var EASYRSA_REQ_OU "Tecadmin EASY CA" set_var EASYRSA_KEY_SIZE 2048set_var EASYRSA_ALGO rsaset_var EASYRSA_CA_EXPIRE 7500set_var EASYRSA_CERT_EXPIRE 365set_var EASYRSA_NS_SUPPORT "ne" set_var EASYRSA_NS_COMMENT "Tecadmin certifikační autorita" set_var EASYRSA_EXT_DIR "$ EASYRSA / x509-types" set_var EASYRSA_SSL_CONF" $ EASYRSA / openssl-easyrsa.cnf "set_var EASYRSA_DIGEST "sha256"Až budete hotovi, uložte soubor.
Dále spusťte následující příkaz k zahájení adresáře PKI.
./easyrsa init-pki Výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsinit-pki complete; nyní můžete vytvořit CA nebo požadavky. Váš nově vytvořený adresář PKI je:/etc/openvpn/easy-rsa/pkiDále vytvořte certifikáty CA pomocí následujícího příkazu:
./easyrsa build-ca Měli byste získat následující výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsUsing SSL:openssl OpenSSL 1.1.1c FIPS 28. května 2019Zadejte nové přístupové heslo klíče CA:Znovu zadejte nové přístupové heslo klíče CA:Generování soukromého klíče RSA, modul dlouhý 2048 bitů (2 prvočísla) ................................................ ......................++++++ ........................ ................................................................... ................................................................... .............++++++e je 65537 (0x010001)Nelze načíst /etc/openvpn/easy-rsa/pki/.rnd do RNG140218549745472:error:2406F079:náhodné číslo generátor:RAND_load_file:Nelze otevřít soubor:crypto/rand/randfile.c:98:Filename=/etc/openvpn/easy-rsa/pki/.rnd Budete požádáni o zadání informací, které budou začleněny do vaší žádosti o certifikát. se chystáte zadat, je to, co se nazývá rozlišovací jméno nebo DN. Existuje poměrně málo polí, ale některá můžete nechat prázdná. U některých polí bude výchozí hodnota. Pokud zadáte '.', pole zůstane prázdné .-----Commo n Jméno (např.:název vašeho uživatele, hostitele nebo serveru) [Easy-RSA CA]:Vytvoření CA je dokončeno a nyní můžete importovat a podepisovat žádosti o certifikát. Váš nový soubor certifikátu CA pro publikování je na adrese:/etc/openvpn/easy -rsa/pki/ca.crtVýše uvedený příkaz vygeneruje dva soubory s názvem ca.key a ca.crt. Tyto certifikáty budou použity k podepsání certifikátů vašeho serveru a klientů.
Krok 5 – Vygenerování souborů certifikátu serveru
Dále budete muset vygenerovat klíčový pár a žádost o certifikát pro váš server.
Spuštěním následujícího příkazu vygenerujte klíč serveru s názvem tecadmin-server:
./easyrsa gen-req tecadmin-server nopass Měli byste získat následující výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsUsing SSL:openssl OpenSSL 1.1.1c FIPS 28. května 2019Generování soukromého klíče RSA................... .......++++++ ...................................... ................................................................... ................................................................... ................................................................... ................................................................... .................................................+ ++++ zápis nového soukromého klíče do '/etc/openvpn/easy-rsa/pki/private/tecadmin-server.key.kOlBTwtY6a'-----Budete požádáni o zadání informací, které budou začleněny do vašeho žádost o certifikát. To, co se chystáte zadat, je to, co se nazývá rozlišovací jméno nebo DN. Existuje poměrně málo polí, ale některá můžete nechat prázdná. U některých polí bude výchozí hodnota, pokud zadáte '.', pole bude ponecháno prázdné.-----Common Name (např.:jméno vašeho uživatele, hostitele nebo serveru) [tecadmin-server]:Požadavek na párování klíčů a certifikát byl dokončen. Vaše soubory jsou:req:/etc/openvpn/easy-rsa/pki/reqs/tecadmin-server.reqkey:/etc/openvpn/easy-rsa/pki/private/tecadmin-server.keyKrok 6 – Podepište klíč serveru pomocí CA
Dále budete muset podepsat klíč tecadmin-server pomocí certifikátu CA:
Spuštěním následujícího příkazu podepište klíč serveru:
./easyrsa sign-req server tecadmin-server Měli byste získat následující výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsUsing SSL:openssl OpenSSL 1.1.1c FIPS 28. května 2019Chystáte se podepsat následující certifikát. Zkontrolujte prosím podrobnosti uvedené níže kvůli přesnosti. Upozorňujeme, že tento požadavek nebyl kryptograficky ověřen. Ujistěte se prosím, že pochází z důvěryhodného zdroje nebo že jste u odesílatele ověřili kontrolní součet požadavku. Předmět požadavku, který má být podepsán jako certifikát serveru na 365 dní:subject=commonName =tecadmin-serverChcete-li pokračovat, zadejte slovo 'ano' nebo jakýkoli jiný vstup ke zrušení. Potvrďte podrobnosti požadavku:yesPoužitím konfigurace z /etc/openvpn/easy-rsa/pki/safessl-easyrsa.cnfZadejte heslo pro /etc/openvpn/easy-rsa/pki/private/ca.key:Zkontrolujte, zda se požadavek shoduje s podpisem ok Rozlišovací jméno subjektu je následujícícommonName :ASN.1 12:'tecadmin-server'Certifikát bude certifikován do 16. února 05:00:50 2021 GMT (365 dní)Zapište databázi s 1 novými položkamiDatabáze UpdatedCertificate vytvořen na:etc/openvpn/easy-rsa/pki/issued/tecadmin-server.crtDále ověřte vygenerovaný soubor certifikátu pomocí následujícího příkazu:
openssl ověřit -CAfile pki/ca.crt pki/issued/tecadmin-server.crt Pokud je vše v pořádku, měli byste získat následující výstup:
pki/issued/tecadmin-server.crt:OKDále spusťte následující příkaz a vygenerujte silný klíč Diffie-Hellman, který se použije pro výměnu klíčů:
./easyrsa gen-dh Měli byste získat následující výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsUsing SSL:openssl OpenSSL 1.1.1c FIPS 28. května 2019Generování DH parametrů, 2048 bit dlouhé bezpečné prvočíslo, generátor 2To bude trvat dlouho....+. ......................................+................................ ......................+.....++*++*++*++* DH parametry velikosti 2048 vytvořené v /etc/ openvpn/easy-rsa/pki/dh.pemPo vytvoření všech souborů certifikátů je zkopírujte do adresáře /etc/openvpn/server/:
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/tecadmin-server. klíč /etc/openvpn/server/ cp pki/issued/tecadmin-server.crt /etc/openvpn/server/ Krok 7 – Vygenerujte klientský certifikát a soubor klíče
Dále budete muset vygenerovat klíč a soubor certifikátu pro klienta.
Nejprve spusťte následující příkaz k vytvoření souboru klíče klienta:
./easyrsa gen-req klient nopass Měli byste vidět následující výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsUsing SSL:openssl OpenSSL 1.1.1c FIPS 28. května 2019Generování soukromého klíče RSA................... ...................................++++++...+++++zápis nového soukromého klíč k '/etc/openvpn/easy-rsa/pki/private/client.key.e38GUtzHie'-----Budete požádáni o zadání informací, které budou začleněny do vaší žádosti o certifikát. Co se chystáte zadat je to, čemu se říká rozlišující jméno nebo DN. Existuje poměrně málo polí, ale některá můžete nechat prázdná. U některých polí bude výchozí hodnota. Pokud zadáte '.', pole zůstane prázdné.---- -Běžný název (např.:název vašeho uživatele, hostitele nebo serveru) [klient]:Požadavek na párování klíčů a certifikát byl dokončen. Vaše soubory jsou:req:/etc/openvpn/easy-rsa/pki/reqs/client.reqkey:/etc/openvpn/easy-rsa/pki/private/client.keyDále podepište klientský klíč pomocí certifikátu CA:
./easyrsa klientský klient sign-req Měli byste získat následující výstup:
Poznámka:pomocí konfigurace Easy-RSA z:./varsUsing SSL:openssl OpenSSL 1.1.1c FIPS 28. května 2019Chystáte se podepsat následující certifikát. Zkontrolujte prosím podrobnosti uvedené níže kvůli přesnosti. Upozorňujeme, že tento požadavek nebyl kryptograficky ověřen. Ujistěte se prosím, že pochází z důvěryhodného zdroje nebo že jste u odesílatele ověřili kontrolní součet požadavku. Předmět požadavku, který má být podepsán jako klientský certifikát na 365 dní:subject=commonName =clientChcete-li pokračovat, zadejte slovo „ano“ nebo jakékoli jiné vstup k přerušení. Potvrďte podrobnosti požadavku:yesPoužitím konfigurace z /etc/openvpn/easy-rsa/pki/safessl-easyrsa.cnfZadejte heslo pro /etc/openvpn/easy-rsa/pki/private/ca.key:Zkontrolujte, zda se požadavek shoduje s podpisem okRozlišující jméno subjektu je následujícícommonName :ASN.1 12:'client'Certificate má být certifikován do 16. února 05:11:19 2021 GMT (365 dní)Zapište databázi s 1 novými položkamiDatabáze AktualizovanýCertificate vytvořen na:/etc/ openvpn/easy-rsa/pki/issued/client.crtDále zkopírujte všechny klientské certifikáty a soubory klíčů do adresáře /etc/openvpn/client/:
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/client.crt /etc/openvpn/client/ cp pki/private/client. klíč /etc/openvpn/client/ Krok 8 – Konfigurace serveru OpenVPN
Dále vytvořte nový konfigurační soubor OpenVPN v adresáři /etc/openvpn/client/:
nano /etc/openvpn/server/server.conf Přidejte následující řádky:
port 1194proto udpdev tunca /etc/openvpn/server/ca.crtcert /etc/openvpn/server/tecadmin-server.crtkey /etc/openvpn/server/tecadmin-server.keydh /etc/openvpn/server/dh. pemserver 10.8.0.0 255.255.255.0push "přesměrování-brána def1"push "dhcp-option DNS 208.67.222.222"push "dhcp-option-volba DNS 208.67.220.220"Amin220.220"duplikát-1BCtlncipherESDuplicate-1BCtlspher 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-SHA256auth SHA512auth-nocachekeepalive 20 60persist-keypersist-tuncompress lz4daemonuser Nobodygroup Nobodylog-append /var/log/openvpn.logverb 3Až budete hotovi, uložte soubor.
Krok 9 – Spusťte službu OpenVPN
OpenVPN je nyní nainstalováno a nakonfigurováno. Nyní můžete spustit službu OpenVPN a povolit její spuštění po restartu systému pomocí následujícího příkazu:
spuštění systemctl [chráněno e-mailem] povolit systemctl [chráněno e-mailem] Spuštěním následujícího příkazu ověřte stav služby OpenVPN:
stav systemctl [e-mail chráněn] Měli byste získat následující výstup:
● [chráněno e-mailem] – Služba OpenVPN pro server Načteno:načteno (/usr/lib/systemd/system/[chráněno e-mailem]; povoleno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běžící) od Po 2020-02- 17 00:29:26 EST; Před 39 minutami Dokumenty:muž:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Hlavní PID:32405 (openvpn) Stav:" Inicializační sekvence dokončena" Úkoly:1 (limit:12552) Paměť:1,9M CGroup:/system.slice/system-openvpn\x2dserver.slice/[e-mail chráněný] └─32405 /usr/sbin/openvpn --status /run/ openvpn-server/status-server.log --status-version 2 --suppress-timestamps --cipher AES-256->Feb 17 00:29:26 centos8 systemd[1]:Spouštění služby OpenVPN pro server...Feb 17 00:29:26 centos8 systemd[1]:Spuštěna služba OpenVPN pro server.Jakmile se služba OpenVPN úspěšně spustí, vytvoří nové síťové rozhraní s názvem tun0. Můžete to zkontrolovat pomocí následujícího příkazu:
ifconfig Nové rozhraní tun0 byste měli získat v následujícím výstupu:
eth0:flags=4163mtu 1500 inet 104.245.36.127 síťová maska 255.255.255.0 vysílání 104.245.36.255 inet6 04ff 0:06 04 ff 80:05 0407 0480:05 :68:f5:24:7f txqueuelen 1000 (Ethernet) RX pakety 1926738 bajtů 314886412 (300,2 MiB) Chyby RX 0 zahozené 0 přetečení 0 rámec 0 TX pakety 174907 TXs kolize 174907 bajtů TX1 překročení 20B2 chyby přenašeče 2008 zahozené 0lo:flags=73 mtu 65536 inet 127.0.0.1 maska sítě 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX pakety 216 bajtů 40041 (39,1 KiB) Chyby RX 0 zahozené 0 přetečení 0 rámec 0 TX pakety 216 bajtů 40041 (39,1 KiB) Chyby TX:0 zahozené kolize 0 přetečení 0 příznaků 0 =4305 mtu 1500 inet 10.8.0.1 síťová maska 255.255.255.255 cíl 10.8.0.2 inet6 fe80::4152:a673:2600 unspec-id-0 -00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX pakety 0 bajtů 0 (0,0 B) Chyby RX 0 zahozené 0 přetečení 0 rámec 0 TX pakety 4 bajtů 304 (304,0 B) chyby TX 0 zahozené 0 překročení 0 nosná 0 kolize 0 Krok 10 – Vygenerování konfiguračního souboru klienta
Dále vytvořte nový konfigurační soubor klienta OpenVPN s názvem client.ovpn. Tento soubor budete potřebovat pro připojení vašeho OpenVPN serveru z klientského systému.
nano /etc/openvpn/client/client.ovpn Přidejte následující řádky:
clientdev tunproto udpremote vpn-server-ip 1194ca ca.crtcert client.crtkey client.keycipher AES-256-CBCauth SHA512auth-nocachetls-version-min 1.2tls-cipher TLS-DHE-RSA-CMESA-256GTH-A -SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256resolv -retry infinitecompress lz4nobindpersist-keypersist-tunmute-replay-warningsverb 3Až budete hotovi, uložte soubor.
Krok 11 – Konfigurace směrování pomocí brány firewall
Nejprve budete muset povolit službu OpenVPN prostřednictvím brány firewall.
Chcete-li tak učinit, přidejte službu OpenVPN a rozhraní tun0 do zóny důvěryhodné brány firewall:
firewall-cmd --permanent --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-service=openvpn firewall-cmd - -permanent --zone=trusted --add-interface=tun0 Dále přidejte MASQUERADE do výchozí zóny:
firewall-cmd --add-masquerade firewall-cmd --permanent --add-masquerade Dále spusťte následující příkaz k maskování internetového provozu přicházejícího ze sítě VPN (10.8.0.0/24) na systémové místní síťové rozhraní (eth0).
tecadmin=$(ip route získat 8.8.8.8 | awk 'NR==1 {print $(NF-2)}') firewall-cmd --permanent --direct -- passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $tecadmin -j MASQUERADE Nakonec spusťte následující příkaz k implementaci změn:
firewall-cmd --reload Krok 12 – Připojte OpenVPN od klientů
Nejprve se přihlaste ke klientskému počítači a nainstalujte balíček OpenVPN pomocí následujícího příkazu:
dnf install epel-release -y dnf install openvpn -y Dále si budete muset stáhnout konfigurační soubory klienta OpenVPN ze serveru OpenVPN do klientského počítače.
Na klientském počítači spusťte následující příkaz ke stažení celého konfiguračního souboru klienta:
scp -r [chráněno e-mailem]:/etc/openvpn/client . Po stažení změňte adresář na klienta a spusťte následující příkaz pro připojení k serveru OpenVPN:
cd klient openvpn --config client.ovpn Měli byste vidět následující výstup:
Po 17. únor 00:54:17 2020 OVĚŘTE OK:hloubka=0, CN=tecadmin-serverPon 17. únor 00:54:17 2020 Řídicí kanál:TLSv1.3, šifra TLSv1.3 TLS_AES_256_GBCM,156_GCM_1 00:54:17 2020 [tecadmin-server] Peer připojení zahájeno pomocí [AF_INET]104.245.36.127:1194 Po 17. únor 00:54:18 2020 ODESLAT KONTROLA [tecadmin-server]:'PUSHonstat Feb=REQUEST1' (PUSHonstat Feb=REQUEST1M 00:54:18 2020 PUSH:Přijatá kontrolní zpráva:'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,ping8route 20.10.restartology 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'Po 17. únor 00:54:18 2020 MOŽNOSTI IMPORTU:časovače a/nebo časové limity upraveny Po 17. únor 00:20208 OPPORT. :--ifconfig/up options upraveno Po 17. únor 00:54:18 IMPORT VOLEB 2020:možnosti tras upraveny Po 17. únor 00:54:18 IMPORT VOLEB 2020:--ip-win32 a/nebo --dhcp-option options upraveny Po 17. únor 00:54:18 IMPORT OPTIONS 2020:peer-id setPo 17. únor 00:54:18 2020 OPTIONS IMP ORT:úprava link_mtu na 1625Pon Feb 17 00:54:18 2020 MOŽNOSTI IMPORT:Možnosti šifrování datového kanálu upraveny Po Feb 17 00:54:18 2020 Datový kanál:pomocí vyjednané šifry 'AES-256-GCM'Mon Feb:500 18 2020 Odchozí datový kanál:Šifra 'AES-256-GCM' inicializována 256bitovým klíčem Po 17. únor 00:54:18 2020 Příchozí datový kanál:Šifra 'AES-256-GCM' inicializována 256bitovým klíčem Po 17. únor:547:00 18 2020 ROUTE_GATEWAY 45.58.38.1/255.255.255.0 IFACE=eth0 HWADDR=00:00:2d:3a:26:d9Po 17. únor 00:54:18 2020 TUN/255.255.00 zařízení TUN/TAP8 otevřeno Délka fronty TAP TX nastavena na 100 Po 17. únor 00:54:18 2020 /sbin/ip link set dev tun0 up mtu 1500 Po 17. únor 00:54:18 2020 /sbin/ip addr add dev tun0 local 10.8.00 65.8.00Po úspěšném připojení OpenVPN přidělí vašemu systému IP adresu. Můžete to zkontrolovat pomocí následujícího příkazu:
ifconfig tun0 Výstup:
tun0:flags=4305mtu 1500 inet 10.8.0.6 síťová maska 255.255.255.255 cíl 10.8.0.5 inet6 fe80::42ex:2 rozsah 06 0fix 04ex:2 04 -00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX pakety 0 bajtů 0 (0,0 B) Chyby RX 0 zahozené 0 přetečení 0 rámec 0 pakety TX 2 bajty 96 (96,0 B) chyby TX 0 zahozené 0 přetečení 0 přenašeč 0 Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali OpenVPN Server a klienta na serveru CentOS 8.
Cent OS