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-pkiJakmile 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-caZobrazí 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.crtCertifiká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-dhDH 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 nopassChcete-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.keyVygenerujte 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-crlCertifiká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