GNU/Linux >> Znalost Linux >  >> Panels >> OpenVPN

Nainstalujte a nastavte OpenVPN Server na Ubuntu 20.04

V této příručce se naučíme, jak nainstalovat a nastavit OpenVPN Server na Ubuntu 20.04. OpenVPN je robustní a vysoce flexibilní software VPN s otevřeným zdrojovým kódem, který využívá všechny funkce šifrování, ověřování a certifikace knihovny OpenSSL k bezpečnému tunelování sítí IP přes jediný port UDP nebo TCP.

Usnadňuje rozšiřování privátní sítě přes veřejnou síť, přístup ke vzdáleným lokalitám, vytváření bezpečných spojení typu point-to-point při zachování bezpečnosti, které by bylo dosaženo v privátní síti.

Instalace a nastavení serveru OpenVPN na Ubuntu 20.04

Spusťte aktualizaci systému

upgrade apt updateapt

Nainstalujte OpenVPN na Ubuntu 20.04

Balíček OpenVPN je k dispozici ve výchozím repozitáři Ubuntu 20.04. Instalace je tedy stejně jednoduchá jako spuštění příkazu níže;

apt install openvpn

Instalace Easy-RSA CA Utility na Ubuntu 20.04

Balíček Easy-RSA poskytuje nástroje pro generování párů klíčů SSL, které se používají k zabezpečení připojení VPN.

apt install easy-rsa

Vytvoření infrastruktury veřejného klíče OpenVPN

Jakmile nainstalujete easy-rsa, musíte inicializovat OpenVPN PKI. PKI se skládá z:

  • veřejný klíč a soukromý klíč pro server a každého klienta
  • hlavní certifikát a klíč certifikační autority (CA), který se používá k podepsání každého z certifikátů serveru a klienta.

Než budete moci pokračovat, zkopírujte konfigurační adresář easy-rsa na jiné místo, abyste zajistili, že budoucí aktualizace balíčku OpenVPN nepřepíší vaše úpravy.

cp -r /usr/share/easy-rsa /etc/ 

Dále inicializujte PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Jakmile je PKI inicializováno, /etc/easy-rsa/pki je vytvořen.

Vygenerujte certifikát a klíč certifikační autority (CA)

Dále vygenerujte certifikát CA a klíč pro podepisování serverových a klientských certifikátů OpenVPN.

cd /etc/easy-rsa/./easyrsa build-ca

Zobrazí se výzva k zadání přístupového hesla klíče CA a běžného názvu serveru.

Používání SSL:openssl OpenSSL 1.1.1f 31. března 2020Zadejte nové přístupové heslo klíče CA:ZADEJTE HESLO Znovu zadejte nové přístupové heslo CA:ZNOVU ZADEJTE HESLO Generování soukromého klíče RSA, 2048 bitů dlouhý modul (2 prvočísla)...................++++++............. .++++e je 65537 (0x010001)Nelze načíst /etc/easy-rsa/pki/.rnd do RNG139840045897024:error:2406F079:generátor náhodných čísel:RAND_load_file:Nelze otevřít soubor/rand:../crypto open file:.. /randfile.c:98:Filename=/etc/easy-rsa/pki/.rnd Budete požádáni o zadání informací, které budou začleněny do vaší žádosti o certifikát. To, co se chystáte zadat, je to, co se nazývá Distinguished Name nebo a DN. Existuje poměrně málo polí, ale můžete některá ponechat prázdná. Pro některá pole bude výchozí hodnota. Pokud zadáte '.', pole zůstane prázdné.-----Common Name (např.:váš uživatel , název hostitele nebo serveru) [Easy-RSA CA]:Kifarunix-demo 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/easy-rsa/pki/ca.crt

Certifikát CA je vygenerován a uložen na /etc/easy-rsa/pki/ca.crt .

Vygenerujte parametry Diffie Hellmana

Generujte klíče Diffie-Hellman používané pro výměnu klíčů během TLS handshake mezi serverem OpenVPN a připojujícími se klienty. Tento příkaz byl proveden v adresáři Easy-RSA;

./easyrsa gen-dh

DH parametry velikosti 2048 vytvořené na /etc/easy-rsa/pki/dh.pem .

Vygenerujte certifikát a klíč serveru OpenVPN

Chcete-li vygenerovat certifikát a soukromý klíč pro server OpenVPN, spusťte níže uvedený příkaz;

cd /etc/easy-rsa
./easyrsa build-server-full server nopass

Chcete-li vygenerovat certifikáty a klíče, zadejte výše vytvořenou přístupovou frázi klíče CA.

nopass zakáže použití přístupové fráze.

Vygenerování klíče ověřovacího kódu zprávy založeného na hash (HMAC)

Předsdílený ověřovací klíč TLS/SSL se používá jako dodatečný podpis HMAC na všech paketech handshake SSL/TLS, aby se zabránilo útoku DoS a zahlcení portů UDP. To lze vygenerovat pomocí příkazu;

openvpn --genkey --secret /etc/easy-rsa/pki/ta.key

Vygenerujte certifikát zneplatnění OpenVPN

Chcete-li zneplatnit dříve podepsaný certifikát, musíte vygenerovat certifikát o zrušení. Spusťte skript v adresáři Easy-RSA;

./easyrsa gen-crl

Certifikát zneplatnění je vygenerován a uložen na /etc/easy-rsa/pki/crl.pem .

Zkopírujte certifikáty a klíče serveru do adresáře konfigurace serveru

Zkopírujte všechny vygenerované certifikáty/klíče serveru do konfiguračního adresáře serveru OpenVPN.

cp -rp /etc/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} / etc/openvpn/server/

Generujte klientské certifikáty a klíče OpenVPN

Klientské certifikáty a soukromé klíče OpenVPN lze vygenerovat následovně

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass
  • kde koromicha je jméno klienta, pro kterého jsou generovány certifikáty a klíče.
  • Vždy používejte jedinečný společný název pro každého klienta, pro kterého generujete certifikát a klíče.

Chcete-li vygenerovat pro druhého klienta,

./easyrsa build-client-full janedoe nopass

Můžete se podívat, jak používat easyrsa příkaz s ./easyrsa --help .

Zkopírujte klientské certifikáty a klíče do adresáře klientů

Vytvořte adresáře klientů OpenVPN. Například jsme vygenerovali certifikáty a soubory klíčů pro dva klienty, koromicha a janedoe, a proto vytváříme adresáře jako;

mkdir /etc/openvpn/client/{koromicha,janedoe}

Poté zkopírujte klientem vygenerované certifikáty/klíče a certifikát CA serveru do konfiguračního adresáře klienta OpenVPN. Můžete

cp -rp /etc/easy-rsa/pki/{ca.crt,issued/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

Nakonfigurujte OpenVPN Server na Ubuntu 20.04

Dalším krokem je konfigurace serveru OpenVPN. Zkopírujte ukázkovou konfiguraci serveru OpenVPN do /etc/openvpn/server adresář, jak je znázorněno níže;

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/

Extrahujte konfiguraci a upravte ji tak, aby vyhovovala vašim potřebám;

cd /etc/openvpn/server/gunzip server.conf.gz
vim /etc/openvpn/server/server.conf

Takto vypadají naše ukázkové konfigurace bez komentáře. Konfigurace je vysoce komentovaná, aby vám pomohla pochopit různé možnosti použití.

port 1194
proto udp
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 192.168.2.11"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512 

Po dokončení úprav uložte a ukončete konfiguraci.

Konfigurace OpenVPN IP Forwarding

Abyste zajistili, že provoz z klienta bude směrován přes IP adresu OpenVPN serveru (pomáhá maskovat IP adresu klienta), musíte na OpenVPN serveru povolit přesměrování IP.

Odkomentujte řádek, net.ipv4.ip_forward=1 , na /etc/sysctl.conf pro povolení předávání paketů pro IPv4

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

Aplikujte změny bez restartování serveru.

sysctl --system

Povolit port služby OpenVPN přes firewall;

ufw povolit 1194/udp

Nakonfigurujte maskování IP na UFW

Najděte své výchozí rozhraní, přes které se odesílají pakety.

ip route get 8.8.8.8
8.8.8.8 přes 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0

Dále aktualizujte pravidla UFW;

vim /etc/ufw/before.rules

Přidejte následující zvýrazněné řádky těsně před *filter nastavení tabulky. Všimněte si, že použité rozhraní by mělo odpovídat názvu rozhraní výše.

...*nat:POSTROUTING ACCEPT [0:0]-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADECOMMIT # Tyto požadované řádky nemažte, jinak se objeví chyby*filtr...

Uložte a ukončete konfiguraci.

Povolit předávání paketů UFW;

sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

Reload UFW;

ufw reload

Spuštění serveru OpenVPN na Ubuntu 20.04

Spusťte a povolte spuštění serveru OpenVPN při spouštění systému;

systemctl enable --now [email protected]

Kontrola stavu;

systemctl status [email protected]
[email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-01 16:07:33 UTC; 3s ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 11980 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 2281)
     Memory: 1.0M
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─11980 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

May 01 16:07:33 vpn.kifarunix-demo.com systemd[1]: Starting OpenVPN service for server...
May 01 16:07:33 vpn.kifarunix-demo.com systemd[1]: Started OpenVPN service for server. 

Když služba OpenVPN běží, vytvoří tunelové rozhraní, tun0;

ip add s
...
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::1989:2bf2:1e7f:7415/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever 

Nezapomeňte také zkontrolovat protokoly;

tail /var/log/openvpn/openvpn.log
/sbin/ip link set dev tun0 up mtu 1500/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255Nelze určit protokol IPv4/IPv6. Použití vyrovnávací paměti AF_INETSocket:R=[212992->212992] S=[212992->212992]Odkaz UDPv4 místní (vázaný):[AF_INET][undef]:1194Odkaz UDPv4 vzdálený:[AF_UNSPEC]MULTI:voláno multi_256, vr =256IFCONFIG POOL:base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LISTInicializační sekvence dokončena 

Velkolepý. Server OpenVPN je nyní připraven. To znamená konec našeho průvodce, jak nainstalovat OpenVPN Server na Ubuntu 20.04.

Nyní můžete podle toho nakonfigurovat své klienty.

Související výukové programy

Nainstalujte a nakonfigurujte klienta OpenVPN na CentOS 8/Ubuntu 18.04

Nakonfigurujte OpenVPN LDAP Based Authentication

Nakonfigurujte IPSEC VPN pomocí StrongSwan na Ubuntu 18.04

Nakonfigurujte klienta strongSwan VPN na Ubuntu 18.04/CentOS 8

Připojte se k Cisco VPN pomocí souboru PCF na Ubuntu

OpenVPN
  1. Jak nainstalovat a nastavit Universal Media Server v Ubuntu 20.04

  2. Nastavte OpenVPN Server na Rocky Linux 8

  3. Nastavte OpenVPN Server na CentOS 8

  1. Nainstalujte a nakonfigurujte OpenVPN Server FreeBSD 12

  2. Nainstalujte a nastavte OpenVPN Server na Fedora 29/CentOS 7

  3. Jak nainstalovat OpenVPN na Ubuntu 18.04

  1. Jak nastavit server OpenVPN na Ubuntu 20.04

  2. Počáteční nastavení serveru s Ubuntu 14.04

  3. Jak nainstalovat a nakonfigurovat OpenVPN Server na Ubuntu 20.04