GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit a nakonfigurovat VPN s OpenVPN na Ubuntu 18.04

VPN je virtuální privátní síť, která vám umožňuje přístup k internetu nebo určitým službám i z nedůvěryhodné sítě. V zásadě je to, jako byste byli fyzicky připojeni k privátní síti:můžete například přistupovat ke svému bankovnímu účtu nebo provádět platby, aniž byste se museli obávat, že někdo zachycuje provoz generovaný vaším zařízením.

OpenVPN je VPN založená na protokolech TLS (Transport Layer Security) a SSL (Secure Sockets Layer). OpenVPN používá některé certifikáty k šifrování provozu mezi serverem a klientem.

V tomto tutoriálu uvidíte, jak nakonfigurovat OpenVPN na serveru s Ubuntu 18.04.

K implementaci tohoto kurzu je potřeba server a další počítač fungující jako CA (Certifikační autorita), který bude hodnotit platnost certifikátů.

Budete se muset připojit k serveru a vaší certifikační autoritě prostřednictvím připojení SSH. Pokud jste tak ještě neučinili, doporučujeme postupovat podle našeho průvodce pro bezpečné připojení pomocí protokolu SSH.

Instalace OpenVPN

Přístup k serveru.

OpenVPN je již k dispozici v oficiálním úložišti Ubuntu Ubuntu, proto není třeba přidávat nic dalšího.

Typ:

sudo apt update
sudo apt install openvpn

V tomto okamžiku bude OpenVPN úspěšně nainstalována na váš server.

Instalace EasyRSA

Pokračujte stažením EasyRSA na váš server a do vaší CA zadáním na obou počítačích:

wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz

Nejnovější verzi lze stáhnout z https://github.com/OpenVPN/easy-rsa/releases

$ cd ~
$ sudo tar xvf EasyRSA-3.0.4.tgz

Název se může lišit v závislosti na stažené verzi

Konfigurace serveru

Konfiguraci serveru dokončete zadáním:

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
$ sudo gzip -d /etc/openvpn/server.conf.gz
$ sudo nano /etc/openvpn/server.conf
  • Najděte sekci, která odkazuje na HMAC ("tls-auth"). Pokud je řádek zakomentován, odstraňte znak „;“.

  • Vyhledejte sekci o šifrování ("šifra"). V případě komentáře odstraňte znak „;“. Přidejte nový řádek obsahující text „auth SHA256“ přímo pod .

  • Najděte sekci "dh" definující parametry Diffie-Hellman a odstraňte z názvu "2048" ( "dh dh.pem" by mělo být získané).

  • Najděte sekci „uživatel“ a „skupina“ a odstraňte „;“ odkomentování řádků.

Konfigurace EasyRSA na CA

Po instalaci EasyRSA byl na vašem CA vytvořen konfigurační soubor k definování proměnných pro vaši CA. Typ:

$ cd ~/EasyRSA-3.0.4/
$ cp vars.example vars
$ nano vars

Odstraňte znak „#“ podle pokynů na obrázku níže:

Spusťte skript "easyrsa" pro inicializaci infrastruktury veřejného klíče (PKI):

$ sudo ./easyrsa init-pki
$ sudo ./easyrsa build-ca nopass

pomocí tohoto příkazu se vytvoří dva soubory:

  • ca.crt:veřejný certifikát CA používaný servery a klienty k vzájemnému upozornění, že jsou součástí stejné důvěryhodné sítě.

  • ca.key:soukromý klíč, který počítač CA používá k podepisování klíčů a certifikátů pro servery a klienty. Tento soubor musí být uchováván pouze na počítači CA (který není přístupný třetím stranám), jinak může být ohroženo zabezpečení sítě.

Budete muset zadat jméno. Nechte jej prázdné a stiskněte Enter.

Žádost o certifikát serveru od CA

Nyní, když je počítač CA nakonfigurován, nechte server vygenerovat soukromý klíč a žádost o certifikát a odešle je do počítače CA k podpisu:

$ cd ~/EasyRSA-3.0.4
$ ./easyrsa init-pki
$ ./easyrsa gen-req server nopass

Pro zjednodušení ponechte jako název počítače "server", abyste se později vyhnuli provádění několika změn.

Právě jste vytvořili soukromý klíč pro server a žádost o certifikát s názvem "server.req":

$ sudo cp ~/EasyRSA-v3.0.6/pki/private/server.key /etc/openvpn/

Zkopírujte soubor server.req do počítače CA:

$ sudo scp ~/EasyRSA-3.0.4/pki/reqs/server.req [email protected]_CA_ip:/tmp

Generování a podepisování certifikátu

Ve své certifikační autoritě ve složce EasyRSA importujte soubor, který jste právě zkopírovali, a podepište jej:

$ cd ~/EasyRSA-3.0.4/
$ sudo ./easyrsa import-req /tmp/server.req server
$ sudo ./easyrsa sign-req server server

Napište „ano“ a stiskněte Enter.

Přeneste podepsaný certifikát a ca.crt na server VPN:

$ sudo scp pki/issued/server.crt [email protected]_server_ip:/tmp
$ sudo scp pki/ca.crt [email protected]_server_ip:/tmp

Potom na vašem serveru

zkopírujte přijaté soubory do příslušných adresářů:

$ sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/
$ cd ~/EasyRSA-3.0.4/

Vygenerujte silný výměnný klíč založený na Diffie-Hellman.

$ sudo ./easyrsa gen-dh
$ sudo openvpn --genkey --secret ta.key

Zkopírujte vygenerované soubory do složky "/ etc / openvpn /"

$ sudo cp ~/EasyRSA-3.0.4/ta.key /etc/openvpn/
$ sudo cp ~/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/

Konfigurace klienta

Vytvořte složku pro ukládání certifikátů a klíčů klienta (protože tato příručka představuje pouze jednoho klienta, nazývá se zde 'klient1', ale operaci je třeba opakovat pro každého klienta s použitím jiného denominace)

$ sudo mkdir -p ~/client-configs/keys
$ sudo chmod -R 700 ~/client-configs
$ cd ~/EasyRSA-3.0.4/
$ sudo ./easyrsa gen-req client1 nopass

Stisknutím klávesy Enter přijměte navrhovaný standardní název.

$ sudo cp pki/private/client1.key ~/client-configs/keys/

Zkopírujte klíč klienta do dříve vytvořené složky.

$ sudo scp pki/reqs/client1.req [email protected]_CA_IP:/tmp

Odešlete soubor client1.req do počítače CA.

Importujte žádost o certifikát do vaší CA:

$ cd ~/EasyRSA-3.0.4/
$ sudo ./easyrsa import-req /tmp/client1.req client1
$ sudo ./easyrsa sign-req client client1

Zadáním "ano" podpis autorizujte.

Nahrajte soubor client1.crt na svůj server:

scp pki/issued/client1.crt [email protected]_SERVER:/tmp

Na svém serveru zkopírujte následující soubory do příslušných složek.

$ sudo mkdir -p ~/client-configs/keys

$ sudo chmod -R 700 ~/client-configs

$ sudo cp /tmp/client1.crt ~/client-configs/keys/

$ sudo cp ~/EasyRSA-3.0.4/ta.key ~/client-configs/keys/

$ sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

Nyní byly vygenerovány certifikáty i klíče serveru a klienta.

Konfigurace směrování IP a brány firewall

Změňte pravidla pro předávání IP:

$ sudo nano /etc/sysctl.conf

Vyhledejte sekci "net.ipv4.ip_forward" a odeberte "#", aby se instrukce "nekomentovala".

Změňte některá pravidla brány firewall, abyste správně směrovali připojení klientů.

$ ip route | grep default

Uložte název za "dev" (na obrázku níže pojmenován "eth0"):

$ sudo nano /etc/ufw/before.rules

Přidejte příkazy jako na obrázku níže a nahraďte "eth0" názvem vašeho síťového rozhraní.

# START OPENVPN RULES

# NAT table rules

*nat

:POSTROUTING ACCEPT [0:0] 

# Allow traffic from OpenVPN client to eth0 

-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE

COMMIT

# END OPENVPN RULES

Uložte a ukončete. Nyní upravte konfigurační soubor UFW:

$ sudo nano /etc/default/ufw

Změňte hodnotu parametru "DEFAULT_FORWARD_POLICY" pomocí "ACCEPT".

$ sudo ufw allow 1194/udp

Přidejte port 1194 pro provoz UDP.

$ sudo ufw allow OpenSSH

Restartujte UFW:

$ sudo ufw disable

$ sudo ufw enable

Spusťte službu OpenVPN:

$ sudo systemctl start openvpn

Zkontrolujte stav služby:

$ sudo systemctl status openvpn

Nastavit službu při spuštění serveru.

$ sudo systemctl enable openvpn

Vytvořte konfigurační soubor pro klienta:

$ sudo mkdir -p ~/client-configs/files
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
$ sudo nano ~/client-configs/base.conf

Najděte sekci "vzdálené" a ujistěte se, že je v ní uvedeno "vzdálený IP_Server 1194"

  • IP_Server:napište IP adresu serveru

  • 1194:dříve vybraný port.

Najděte sekci "proto" a ujistěte se, že je server nastaven na UDP (naleznete řádek TCP s komentářem ";").

Najděte sekci "uživatel" a "skupina" a odstraňte znak ";" aby byly "bez komentáře".

Najděte sekce "ca.crt" - "client.crt" - "client.key" - "ta.key" a okomentujte je znakem "#" na začátku každého řádku.

Vyhledejte sekci "cipher" a přidejte příkaz "auth SHA256" pod příkaz "cipher AES-256-CBC".

Kdykoli přidejte instrukci "key-direction 1".

Tyto komentované řádky můžete kdykoli přidat. Pokud je klientem počítač se systémem Linux, uveďte „bez komentáře“.

# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf

Uložit a ukončit.

Generování konfigurace pro klienty

Na svém serveru vytvořte skript pro automatickou kompilaci konfigurace klienta.

nano ~/client-configs/make_config.sh

Zkopírujte a vložte text:

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/client-configs/keys

OUTPUT_DIR=~/client-configs/files

BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} \

    <(echo -e '<ca>') \

    ${KEY_DIR}/ca.crt \

    <(echo -e '</ca>\n<cert>') \

    ${KEY_DIR}/${1}.crt \

    <(echo -e '</cert>\n<key>') \

    ${KEY_DIR}/${1}.key \

    <(echo -e '</key>\n<tls-auth>') \

    ${KEY_DIR}/ta.key \

    <(echo -e '</tls-auth>') \

    > ${OUTPUT_DIR}/${1}.ovpn

Uložit a ukončit.

chmod 700 ~/client-configs/make_config.sh

Zkuste nyní vygenerovat "konfiguraci" klienta klienta

$ cd ~/client-configs
$ sudo ./make_config.sh client1

Vytvoří se soubor s názvem „client1.ovpn“.

Nyní přeneste tento soubor do zařízení, které chcete použít. K připojení jej použije software VPN.

Zrušení klientských certifikátů

$ cd EasyRSA-3.0.4/
$ sudo ./easyrsa revoke client1

klient1 je jméno klienta, kterému mají být odvolána oprávnění

Potvrďte zadáním „yes“.
Vygenerujte a nahrajte soubor crl.pem na svůj server:

$ sudo ./easyrsa gen-crl
$ sudo scp ~/EasyRSA-3.0.4/pki/crl.pem [email protected]_Server:/tmp

Aktualizujte konfiguraci svého serveru a ověřte odvolání.

$ sudo cp /tmp/crl.pem /etc/openvpn
$ sudo nano /etc/openvpn/server.conf

Na konec souboru přidejte "crl-verify crl.pem".

Uložit a ukončit.

$ sudo systemctl restart [email protected]

Restartujte server, abyste provedli změny.


Linux
  1. Jak nainstalovat a nakonfigurovat strongSwan VPN na Ubuntu 18.04

  2. Jak nastavit Apache pomocí události MPM a PHP-FPM na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat OpenVPN Server na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat Algo VPN Server na Ubuntu 20.04

  2. Jak nastavit a nakonfigurovat certifikační úřad na Ubuntu 22.04

  3. Jak nainstalovat a nakonfigurovat Elasticsearch na Ubuntu 18.04

  1. Jak nastavit server OpenVPN na Ubuntu 18.04

  2. Jak nastavit WireGuard VPN na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat Fail2ban na Ubuntu?