GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit server OpenVPN na CentOS 7

Ať už chcete přistupovat k internetu bezpečně a bezpečně, když jste připojeni k nedůvěryhodné veřejné síti Wi-Fi, obejít obsah s geografickým omezením nebo umožnit svým spolupracovníkům, aby se při práci na dálku bezpečně připojili k vaší firemní síti, nejlepším řešením je použití VPN.

Síť VPN vám umožňuje připojit se ke vzdáleným serverům VPN, díky čemuž je vaše připojení šifrované a zabezpečené a můžete anonymně procházet web tím, že vaše data o provozu uchová v soukromí.

Existuje mnoho komerčních poskytovatelů VPN, ze kterých si můžete vybrat, ale nikdy si nemůžete být skutečně jisti, že poskytovatel vaši aktivitu nezaznamenává. Nejbezpečnější možností je nastavit si vlastní VPN server.

Tento tutoriál se bude zabývat procesem nastavení vašeho vlastního serveru VPN instalací a konfigurací OpenVPN. Ukážeme si také, jak generovat klientské certifikáty a vytvářet konfigurační soubory

OpenVPN je plně funkční řešení VPN s otevřeným zdrojovým kódem Secure Socket Layer (SSL). Implementuje zabezpečené síťové rozšíření OSI vrstvy 2 nebo 3 pomocí protokolu SSL/TLS.

Předpoklady #

K dokončení tohoto kurzu budete potřebovat:

  • Sudo přístup k serveru CentOS 7 k hostování vaší instance OpenVPN.
  • Server by měl mít nakonfigurovanou bránu firewall.
  • Samostatný vyhrazený počítač, který bude sloužit jako vaše CA (certifikační autorita). Pokud nechcete pro svůj CA používat vyhrazený počítač, můžete si vytvořit CA na svém OpenVPN serveru nebo na místním počítači. Jakmile dokončíte vytváření CA, doporučujeme přesunout adresář CA někam do zabezpečeného prostředí nebo offline.

Tento kurz předpokládá, že CA je na samostatném počítači se systémem Linux. Stejné kroky (s malými úpravami) budou platit, pokud svůj server používáte jako CA.

Důvodem, proč používáme samostatný počítač CA, je zabránit útočníkům proniknout na server. Pokud se útočníkovi podaří získat přístup k soukromému klíči CA, mohl by jej použít k podepsání nových certifikátů, které mu umožní přístup k serveru VPN.

Budování CA s EasyRSA #

Při nastavování nového serveru OpenVPN je prvním krokem vytvoření infrastruktury veřejného klíče (PKI). K tomu budeme muset vytvořit následující:

  • Certifikát certifikační autority (CA) a soukromý klíč.
  • Samostatný pár certifikátu a soukromého klíče pro server vydaný naším CA.
  • Samostatný pár certifikátu a soukromého klíče pro každého klienta vydaný naším CA.

Jak je uvedeno v předpokladech z bezpečnostních důvodů, vybudujeme CA na samostatném počítači.

K vytvoření CA, žádostí o certifikáty a podepisování certifikátů použijeme nástroj CLI s názvem EasyRSA.

Na svém počítači CA proveďte následující kroky .

  1. Začněte stažením nejnovější verze EasyRSA z repozitáře projektu Github pomocí následujícího wgetcommand:

    cd && wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/EasyRSA-nix-3.0.5.tgz
  2. Po dokončení stahování rozbalte archiv zadáním:

    tar xzf EasyRSA-nix-3.0.5.tgz
  3. Přejděte do adresáře EasyRSA a vytvořte konfigurační soubor s názvem vars zkopírováním vars.example soubor:

    cd ~/EasyRSA-3.0.5/cp vars.example vars
  4. Otevřete soubor a odkomentujte a aktualizujte následující položky, aby odpovídaly vašim informacím.

    nano ~/EasyRSA-3.0.5/vars
    ~/EasyRSA-3.0.5/vars
    set_var EASYRSA_REQ_COUNTRY    "US"
    set_var EASYRSA_REQ_PROVINCE   "Pennsylvania"
    set_var EASYRSA_REQ_CITY       "Pittsburgh"
    set_var EASYRSA_REQ_ORG        "Linuxize"
    set_var EASYRSA_REQ_EMAIL      "[email protected]"
    set_var EASYRSA_REQ_OU         "Community"

    Uložte a zavřete soubor.

  5. Před vygenerováním páru klíčů CA musíme nejprve inicializovat nové PKI pomocí:

    ./easyrsa init-pki
    init-pki complete; you may now create a CA or requests.
    Your newly created PKI dir is: /home/causer/EasyRSA-3.0.5/pki
  6. Dalším krokem je sestavení CA:

    ./easyrsa build-ca

    Pokud nechcete být vyzváni k zadání hesla při každém podepisování certifikátů, spusťte build-ca pomocí příkazu nopass možnost:./easyrsa build-ca nopass .

    ...
    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    -----
    ...
    -----
    Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
    
    CA creation complete and you may now import and sign cert requests.
    Your new CA certificate file for publishing is at:
    /home/causer/EasyRSA-3.0.5/pki/ca.crt

    Budete požádáni o nastavení hesla pro klíč CA a zadání běžného názvu vaší CA.

    Po dokončení skript vytvoří dva soubory — veřejný certifikát CA ca.crt a soukromý klíč CA ca.key .

    Nyní, když je vytvořena certifikační autorita (CA), můžete ji použít k podepisování žádostí o certifikát pro jeden nebo více serverů a klientů OpenVPN.

Instalace OpenVPN a EasyRSA #

Naším dalším krokem je instalace balíčku OpenVPN, který je dostupný v repozitářích EPEL, a stažení nejnovější verze EasyRSA.

Následující kroky se provádějí na serveru OpenVPN .

  1. Povolte úložiště EPEL zadáním:

    sudo yum install epel-release
  2. Jakmile je úložiště povoleno, nainstalujte OpenVPN pomocí následujícího příkazu:

    sudo yum install openvpn
  3. Stáhněte si nejnovější verzi EasyRSA:

    cd && wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/EasyRSA-nix-3.0.5.tgz

    Po dokončení stahování zadejte následující příkaz pro rozbalení archivu:

    tar xzf EasyRSA-nix-3.0.5.tgz

    Přestože jsme již inicializovali PKI na počítači CA, musíme také vytvořit nové PKI na serveru OpenVPN. Chcete-li to provést, použijte stejné příkazy jako dříve:

    cd ~/EasyRSA-3.0.5/./easyrsa init-pki

    Pokud se stále divíte, proč potřebujeme dvě instalace EasyRSA, je to proto, že tuto instanci EasyRSA použijeme ke generování požadavků na certifikát, které budou podepsány pomocí instance EasyRSA na počítači CA .

    Může to znít složitě a trochu matoucí, ale jakmile si přečtete celý tutoriál, uvidíte, že to opravdu není složité.

Vytváření klíčů Diffie-Hellman a HMAC #

V této části vygenerujeme silný klíč Diffie-Hellman, který bude použit během výměny klíčů, a soubor podpisu HMAC pro přidání další vrstvy zabezpečení do připojení.

  1. Přejděte do adresáře EasyRSA na vašem serveru OpenVPN anf vygenerovat klíč Diffie-Hellman:.

    cd ~/EasyRSA-3.0.5/./easyrsa gen-dh

    Skript vygeneruje 2048bitové parametry DH. To může nějakou dobu trvat, zvláště na serverech s malými prostředky. Po dokončení se na obrazovce vytiskne následující zpráva:

    DH parameters of size 2048 created at /home/serveruser/EasyRSA-3.0.5/pki/dh.pem

    Zkopírujte soubor dh.pem soubor do /etc/openvpn adresář:

    sudo cp ~/EasyRSA-3.0.5/pki/dh.pem /etc/openvpn/
  2. Dále vygenerujte podpis HMAC pomocí openvpn binární:

    openvpn --genkey --secret ta.key

    Po dokončení zkopírujte ta.key soubor do /etc/openvpn adresář:

    sudo cp ~/EasyRSA-3.0.5/ta.key /etc/openvpn/

Vytváření certifikátu serveru a soukromého klíče #

Tato část popisuje, jak vygenerovat soukromý klíč a žádost o certifikát pro server OpenVPN.

  1. Přejděte do adresáře EasyRSA na vašem serveru OpenVPN a vygenerujte nový soukromý klíč pro server a soubor žádosti o certifikát:

    cd ~/EasyRSA-3.0.5/./easyrsa gen-req server1 nopass

    Používáme nopass argument, protože chceme spustit server OpenVPN bez zadání hesla. Také v tomto příkladu používáme server1 jako identifikátor názvu serveru (entity). Pokud pro svůj server zvolíte jiný název, nezapomeňte upravit níže uvedené pokyny, kde se název serveru používá.

    Příkaz vytvoří dva soubory, soukromý klíč (server1.key ) a soubor žádosti o certifikát (server1.req ).

    -----
    Common Name (eg: your user, host, or server name) [server1]:
    
    Keypair and certificate request completed. Your files are:
    req: /home/serveruser/EasyRSA-3.0.5/pki/reqs/server1.req
    key: /home/serveruser/EasyRSA-3.0.5/pki/private/server1.key
  2. Zkopírujte soukromý klíč do /etc/openvpn adresář:

    sudo cp ~/EasyRSA-3.0.5/pki/private/server1.key /etc/openvpn/
  3. Přeneste soubor žádosti o certifikát do počítače CA:

    scp ~/EasyRSA-3.0.5/pki/reqs/server1.req causer@your_ca_ip:/tmp

    V tomto příkladu používáme scp k přenosu souboru můžete také použít rsync přes ssh nebo jinou zabezpečenou metodu.

  4. Přihlaste se ke svému počítači CA , přepněte do adresáře EasyRSA a importujte soubor žádosti o certifikát:

    cd ~/EasyRSA-3.0.5./easyrsa import-req /tmp/server1.req server1

    První argument je cesta k souboru žádosti o certifikát a druhý je krátký název serveru (entity). V našem případě je název serveru server1 .

    The request has been successfully imported with a short name of: server1
    You may now use this name to perform signing operations on this request.

    Tento příkaz pouze zkopíruje soubor požadavku do pki/reqs adresář.

  5. Ještě v adresáři EasyRSA na počítači CA spusťte následující příkaz k podepsání požadavku:

    cd ~/EasyRSA-3.0.5./easyrsa sign-req server server1

    První argument může být buď server nebo client a druhý je krátký název serveru (entity).

    Budete vyzváni k ověření, že požadavek pochází z důvěryhodného zdroje. Zadejte yes a stiskněte Enter pro potvrzení:

    You are about to sign the following certificate.
    Please check over the details shown below for accuracy. Note that this request
    has not been cryptographically verified. Please be sure it came from a trusted
    source or that you have verified the request checksum with the sender.
    
    Request subject, to be signed as a server certificate for 1080 days:
    
    subject=
        commonName                = server1
    
    
    Type the word 'yes' to continue, or any other input to abort.
    Confirm request details: yes
    ...

    Pokud je váš klíč CA chráněn heslem, budete vyzváni k zadání hesla. Po ověření skript vygeneruje certifikát SSL a vytiskne k němu úplnou cestu.

    ...
    Certificate is to be certified until Sep 17 10:54:48 2021 GMT (1080 days)
    
    Write out database with 1 new entries
    Data Base Updated
    
    Certificate created at: /home/causer/EasyRSA-3.0.5/pki/issued/server1.crt
  6. Dalším krokem je přenos podepsaného certifikátu server1.crt a ca.crt soubory zpět na váš server OpenVPN. Opět můžete použít scp , rsync nebo jakoukoli jinou zabezpečenou metodou:

    scp ~/EasyRSA-3.0.5/pki/issued/server1.crt serveruser@your_server_ip:/tmpscp ~/EasyRSA-3.0.5/pki/ca.crt serveruser@your_server_ip:/tmp
  7. Přihlaste se ke svému serveru OpenVPN a přesuňte soubor server1.crt a ca.crt soubory do /etc/openvpn/ adresář:

    sudo mv /tmp/{server1,ca}.crt /etc/openvpn/

Po dokončení kroků uvedených v této části byste měli mít na svém serveru OpenVPN následující nové soubory :

  • /etc/openvpn/ca.crt
  • /etc/openvpn/dh.pem
  • /etc/openvpn/ta.key
  • /etc/openvpn/server1.crt
  • /etc/openvpn/server1.key

Konfigurace služby OpenVPN #

Nyní, když máte certifikát serveru podepsaný vaší CA a přenesený na váš server OpenVPN , je čas nakonfigurovat službu OpenVPN.

Jako výchozí bod použijeme vzorový konfigurační soubor dodaný s instalačním balíčkem OpenVPN a poté do něj přidáme vlastní možnosti konfigurace.

Začněte rozbalením konfiguračního souboru do /etc/openvpn/ adresář:

sudo cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/server1.conf

Otevřete soubor pomocí svého oblíbeného textového editoru:

sudo nano /etc/openvpn/server1.conf
  • Najděte direktivy Certificate, Key a DH parametrů a změňte názvy souborů:

    /etc/openvpn/server1.conf
    cert server1.crt
    key server1.key 
    
    dh dh.pem
  • Chcete-li přesměrovat klientský provoz přes VPN, vyhledejte redirect-gateway a odkomentujte jej a dhcp-option možnosti:

    /etc/openvpn/server1.conf
    push "redirect-gateway def1 bypass-dhcp"
    
    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.220.220"

    Ve výchozím nastavení se používají překladače OpenDNS. Můžete to změnit a použít CloudFlare, Google nebo jakýkoli jiný překladač DNS, který chcete.

  • Najděte user a group direktivy a odkomentujte tato nastavení odstraněním „; ” na začátku každého řádku:

    /etc/openvpn/server1.conf
    user nobody
    group nogroup
  • Připojte následující řádek na konec souboru. Tato direktiva změní algoritmus ověřování zpráv (HMAC) z SHA1 na SHA256

    /etc/openvpn/server1.conf
    auth SHA256

Jakmile budete hotovi, konfigurační soubor serveru (bez komentářů) by měl vypadat nějak takto:

/etc/openvpn/server1.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server1.crt
key server1.key  # This file should be kept secret
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
auth SHA256

Spouštění služby OpenVPN #

V tomto tutoriálu jsme použili server1.conf jako konfigurační soubor. Chcete-li spustit službu OpenVPN s touto konfigurací, musíme zadat název konfiguračního souboru za názvem souboru jednotky systemd:

Na vašem serveru OpenVPN spusťte následující příkaz pro spuštění služby OpenVPN:

sudo systemctl start openvpn@server1

Ověřte, zda byla služba úspěšně spuštěna zadáním:

sudo systemctl status openvpn@server1

Pokud je služba aktivní a běží, výstup bude vypadat nějak takto:

[email protected] - OpenVPN Robust And Highly Flexible Tunneling Application On server1
   Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-11-06 10:07:35 UTC; 7s ago
 Main PID: 19912 (openvpn)
   Status: "Initialization Sequence Completed"
   CGroup: /system.slice/system-openvpn.slice/[email protected]
           └─19912 /usr/sbin/openvpn --cd /etc/openvpn/ --config server1.conf

Povolte automatické spouštění služby při spouštění pomocí:

sudo systemctl enable openvpn@server1
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /lib/systemd/system/[email protected].
Pokud se nepodaří spustit službu OpenVPN, zkontrolujte protokoly pomocí sudo journalctl -u openvpn@server1

Při spuštění OpenVPN Server vytvoří tunové zařízení tun0 . Chcete-li zkontrolovat, zda je zařízení dostupné, zadejte následující příkaz ip:

ip a show tun0

Výstup by měl vypadat nějak takto:

4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 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::f421:f382:3158:138f/64 scope link flags 800 
       valid_lft forever preferred_lft forever

V tomto okamžiku je váš server OpenVPN nakonfigurován a běží správně.

Konfigurace brány firewall a sítě serveru #

Abychom mohli správně předávat síťové pakety, musíme povolit předávání IP.

Následující kroky se provádějí na serveru OpenVPN .

Otevřete /etc/sysctl.conf soubor a přidejte následující řádek:

sudo nano /etc/sysctl.conf
/etc/sysctl.conf
net.ipv4.ip_forward = 1

Až budete hotovi, uložte a zavřete soubor.

Použijte nová nastavení spuštěním následujícího sysctl příkaz:

sudo sysctl -p
net.ipv4.ip_forward = 1

Pokud jste dodrželi předpoklady, měli byste již mít na svém serveru spuštěný firewall.

Nyní musíme přidat pravidla brány firewall, otevřít port OpenVPN a povolit maskování.

Začněte přidáním tun0 rozhraní na trusted zóna:

sudo firewall-cmd --permanent --zone=trusted --add-interface=tun0

Otevřete výchozí port openvpn 1194 přidáním služby openvpn do seznamu služeb povolených firewallem:

sudo firewall-cmd --permanent --add-service openvpn

Nastavte maskování IP na trusted zóna:

sudo firewall-cmd --permanent --zone=trusted --add-masquerade 

Před přidáním pravidla nat musíte znát veřejné síťové rozhraní vašeho CentOS OpenVPN Serveru. Rozhraní můžete snadno najít spuštěním následujícího příkazu:

ip -o -4 route show to default | awk '{print $5}'

V našem případě se rozhraní jmenuje eth0 jak je znázorněno na výstupu níže. Vaše rozhraní může mít jiný název.

eth0

Následující příkaz umožní provozu opustit VPN a poskytne vašim klientům VPN přístup k internetu. Nezapomeňte nahradit eth0 aby odpovídal názvu veřejného síťového rozhraní, které jste našli v předchozím příkazu.

sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s  10.8.0.0/24 -o eth0 -j MASQUERADE

Nakonec znovu načtěte pravidla brány firewall, aby se změny projevily:

sudo firewall-cmd --reload

Vytvoření klientské konfigurační infrastruktury #

V tomto tutoriálu vytvoříme samostatný certifikát SSL a vygenerujeme jiný konfigurační soubor pro každého klienta VPN.

Klientský soukromý klíč a žádost o certifikát lze vygenerovat na klientském počítači nebo na serveru. Pro jednoduchost vygenerujeme žádost o certifikát na serveru a poté ji odešleme CA k podpisu.

Celý proces generování klientského certifikátu a konfiguračního souboru je následující:

  1. Vygenerujte soukromý klíč a žádost o certifikát na serveru OpenVPN.
  2. Odešlete požadavek na počítač CA, který má být podepsán.
  3. Zkopírujte podepsaný certifikát SSL na server OpenVPN a vygenerujte konfigurační soubor.
  4. Odešlete konfigurační soubor do počítače klienta VPN.

Začněte vytvořením sady adresářů pro uložení souborů klientů:

mkdir -p ~/openvpn-clients/{configs,base,files}
  • base adresář bude ukládat základní soubory a konfiguraci, které budou sdíleny mezi všemi klientskými soubory.
  • configs adresář bude ukládat vygenerovanou konfiguraci klienta.
  • files adresář bude uchovávat pár certifikát/klíč specifický pro klienta.

Zkopírujte soubor ca.crt a ta.key soubory do ~/openvpn-clients/base adresář:

cp ~/EasyRSA-3.0.5/ta.key ~/openvpn-clients/base/cp /etc/openvpn/ca.crt ~/openvpn-clients/base/

Poté zkopírujte ukázkový konfigurační soubor klienta VPN do souboru client-~/openvpn-clients/base adresář. Tento soubor použijeme jako základní konfiguraci:

sudo cp /usr/share/doc/openvpn-*/sample/sample-config-files/client.conf ~/openvpn-clients/base/

Nyní musíme soubor upravit tak, aby odpovídal nastavení a konfiguraci našeho serveru. Otevřete konfigurační soubor pomocí textového editoru:

nano ~/openvpn-clients/base/client.conf
  • Najděte vzdálenou direktivu a změňte výchozí zástupný symbol s veřejnou IP adresou vašeho OpenVPN serveru:

    ~/openvpn-clients/base/client.conf
    # The hostname/IP and port of the server.
    # You can have multiple remote entries
    # to load balance between the servers.
    remote YOUR_SERVER_IP 1194
  • Najděte a okomentujte ca , cert a key směrnice. Certifikáty a klíče budou přidány do konfiguračního souboru:

    ~/openvpn-clients/base/client.conf
    # SSL/TLS parms.
    # See the server config file for more
    # description.  It's best to use
    # a separate .crt/.key file pair
    # for each client.  A single ca
    # file can be used for all clients.
    # ca ca.crt
    # cert client.crt
    # key client.key
  • Na konec souboru připojte následující řádky, aby odpovídaly nastavení serveru:

    ~/openvpn-clients/base/client.conf
    auth SHA256
    key-direction 1

Jakmile budete hotovi, konfigurační soubor serveru by měl vypadat nějak takto:

~/openvpn-clients/base/client.conf
client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth SHA256
key-direction 1

Dále vytvořte jednoduchý bash skript, který sloučí základní konfiguraci a soubory s klientským certifikátem a klíčem, a uloží vygenerovanou konfiguraci do ~/openvpn-clients/configs adresář.

Otevřete textový editor a vytvořte následující skript:

nano ~/openvpn-clients/gen_config.sh
~/openvpn-clients/gen_config.sh
#!/bin/bash

FILES_DIR=$HOME/openvpn-clients/files
BASE_DIR=$HOME/openvpn-clients/base
CONFIGS_DIR=$HOME/openvpn-clients/configs

BASE_CONF=${BASE_DIR}/client.conf
CA_FILE=${BASE_DIR}/ca.crt
TA_FILE=${BASE_DIR}/ta.key

CLIENT_CERT=${FILES_DIR}/${1}.crt
CLIENT_KEY=${FILES_DIR}/${1}.key

# Test for files
for i in "$BASE_CONF" "$CA_FILE" "$TA_FILE" "$CLIENT_CERT" "$CLIENT_KEY"; do
    if [[ ! -f $i ]]; then
        echo " The file $i does not exist"
        exit 1
    fi

    if [[ ! -r $i ]]; then
        echo " The file $i is not readable."
        exit 1
    fi
done

# Generate client config
cat > ${CONFIGS_DIR}/${1}.ovpn <<EOF
$(cat ${BASE_CONF})
<key>
$(cat ${CLIENT_KEY})
</key>
<cert>
$(cat ${CLIENT_CERT})
</cert>
<ca>
$(cat ${CA_FILE})
</ca>
<tls-auth>
$(cat ${TA_FILE})
</tls-auth>
EOF

Uložte soubor a udělejte jej spustitelný pomocí chmod :

chmod u+x ~/openvpn-clients/gen_config.sh

Vytvoření soukromého klíče klientského certifikátu a konfigurace #

Proces generování klientského soukromého klíče a žádosti o certifikát je stejný jako při generování serverového klíče a žádosti o certifikát.

Jak jsme již zmínili v předchozí části, klientský soukromý klíč a žádost o certifikát vygenerujeme na serveru OpenVPN. V tomto příkladu bude název prvního klienta VPN client1 .

  1. Přejděte do adresáře EasyRSA na vašem serveru OpenVPN a vygenerujte nový soukromý klíč a soubor žádosti o certifikát pro klienta:

    cd ~/EasyRSA-3.0.5/./easyrsa gen-req client1 nopass

    Příkaz vytvoří dva soubory, soukromý klíč (client1.key ) a soubor žádosti o certifikát (client1.req ).

    Common Name (eg: your user, host, or server name) [client1]:
    
    Keypair and certificate request completed. Your files are:
    req: /home/serveruser/EasyRSA-3.0.5/pki/reqs/client1.req
    key: /home/serveruser/EasyRSA-3.0.5/pki/private/client1.key
  2. Zkopírujte soukromý klíč client1.key do ~/openvpn-clients/files adresář, který jste vytvořili v předchozí části:

    cp ~/EasyRSA-3.0.5/pki/private/client1.key ~/openvpn-clients/files/
  3. Přeneste soubor žádosti o certifikát do počítače CA:

    scp ~/EasyRSA-3.0.5/pki/reqs/client1.req causer@your_ca_ip:/tmp

    V tomto příkladu používáme scp k přenosu souboru můžete také použít rsync přes ssh nebo jinou zabezpečenou metodu.

  4. Přihlaste se ke svému počítači CA , přepněte do adresáře EasyRSA a importujte soubor žádosti o certifikát:

    cd ~/EasyRSA-3.0.5./easyrsa import-req /tmp/client1.req client1

    První argument je cesta k souboru žádosti o certifikát a druhý je jméno klienta.

    The request has been successfully imported with a short name of: client1
    You may now use this name to perform signing operations on this request.
  5. Z adresáře EasyRSA na počítači CA spusťte následující příkaz k podepsání požadavku:

    cd ~/EasyRSA-3.0.5./easyrsa sign-req client client1

    Budete vyzváni k ověření, že požadavek pochází z důvěryhodného zdroje. Zadejte yes a stiskněte Enter pro potvrzení:

    Pokud je váš klíč CA chráněn heslem, budete vyzváni k zadání hesla. Po ověření skript vygeneruje certifikát SSL a vytiskne k němu úplnou cestu.

    ...
    Certificate created at: /home/causer/EasyRSA-3.0.5/pki/issued/client1.crt
  6. Dále přeneste podepsaný certifikát client1.crt soubor zpět na váš server OpenVPN. Můžete použít scp , rsync nebo jakoukoli jinou zabezpečenou metodou:

    scp ~/EasyRSA-3.0.5/pki/issued/client1.crt serveruser@your_server_ip:/tmp
  7. Přihlaste se ke svému serveru OpenVPN a přesuňte soubor client1.crt soubor do ~/openvpn-clients/files adresář:

    mv /tmp/client1.crt ~/openvpn-clients/files
  8. Posledním krokem je vygenerování konfigurace klienta pomocí gen_config.sh skript. Přepněte na ~/openvpn-clients adresář a spusťte skript s použitím názvu klienta jako argumentu:

    cd ~/openvpn-clients./gen_config.sh client1

    Skript vytvoří soubor s názvem client1.ovpn v ~/client-configs/configs adresář. Můžete to zkontrolovat výpisem adresáře:

    ls ~/openvpn-clients/configs
    client1.ovpn

V tomto okamžiku je vytvořena konfigurace klienta. Nyní můžete přenést konfigurační soubor do zařízení, které hodláte používat jako klienta.

Například pro přenos konfiguračního souboru na váš místní počítač pomocí scp měli byste spustit následující příkaz:

scp ~/openvpn-clients/configs/client1.ovpn your_local_ip:/

Chcete-li přidat další klienty, opakujte stejné kroky.

Připojování klientů #

Linux #

Vaše distribuční nebo desktopové prostředí může poskytovat nástroj nebo grafické uživatelské rozhraní pro připojení k serverům OpenVPN. V tomto tutoriálu vám ukážeme, jak se připojit k serveru pomocí openvpn nástroj.

  • Nainstalujte OpenVPN na Ubuntu a Debian

    sudo apt updatesudo apt install openvpn
  • Nainstalujte OpenVPN na CentOS a Fedoru

    sudo yum install epel-releasesudo yum install openvpn

Jakmile je balíček nainstalován, pro připojení k serveru VPN použijte openvpn a zadejte konfigurační soubor klienta:

sudo openvpn --config client1.ovpn

macOS #

Tunnelblick je bezplatné grafické uživatelské rozhraní s otevřeným zdrojovým kódem pro OpenVPN na OS X a macOS.

Windows #

Stáhněte si a nainstalujte nejnovější sestavení aplikace OpenVPN na stránce Stahování OpenVPN.

Zkopírujte .ovpn soubor do konfigurační složky OpenVPN (\Users\<Name>\OpenVPN\Config nebo \Program Files\OpenVPN\config ).

Spusťte aplikaci OpenVPN.

Klikněte pravým tlačítkem na ikonu OpenVPN na hlavním panelu a v nabídce se zobrazí název konfiguračního souboru OpenVPN, který jste zkopírovali. Klikněte na Připojit.

Android a iOS #

Aplikace VPN vyvinutá společností OpenVPN je k dispozici pro Android i iOS. Nainstalujte aplikaci a importujte klienta .ovp soubor.

  • Android OpenVPN Connect
  • iOS OpenVPN Connect

Zrušení klientských certifikátů #

Zrušení certifikátu znamená zneplatnění podepsaného certifikátu, takže jej již nelze používat pro přístup k serveru OpenVPN.

Chcete-li odvolat klientský certifikát, postupujte takto:

  1. Přihlaste se ke svému počítači CA a přepněte se do adresáře EasyRSA:

    cd EasyRSA-3.0.5
  2. Spusťte skript easyrsa pomocí příkazu revoke argument následovaný jménem klienta, kterého chcete odvolat:

    ./easyrsa revoke client1

    Budete vyzváni k potvrzení, že chcete certifikát zrušit. Zadejte yes a stiskněte enter pro potvrzení:

    Please confirm you wish to revoke the certificate with the following subject:
    
    subject=
        commonName                = client1
    
    Type the word 'yes' to continue, or any other input to abort.
    Continue with revocation: yes
    ...

    Pokud je váš klíč CA chráněn heslem, budete vyzváni k zadání hesla. Po ověření skript zruší certifikát.

    ...
    Revocation was successful. You must run gen-crl and upload a CRL to your
    infrastructure in order to prevent the revoked cert from being accepted.
  3. Použijte gen-crl možnost vygenerování seznamu zneplatněných certifikátů (CRL):

    ./easyrsa gen-crl
    An updated CRL has been created.
    CRL file: /home/causer/EasyRSA-3.0.5/pki/crl.pem
  4. Nahrajte soubor CRL na server OpenVPN:

    scp ~/EasyRSA-3.0.5/pki/crl.pem serveruser@your_server_ip:/tmp
  5. Přihlaste se ke svému serveru OpenVPN serveru a přesuňte soubor do /etc/openvpn adresář:

    sudo mv /tmp/crl.pem /etc/openvpn
  6. Otevřete konfigurační soubor serveru OpenVPN:

    sudo nano /etc/openvpn/server1.conf

    Vložte následující řádek na konec souboru

    /etc/openvpn/server1.conf
    crl-verify crl.pem

    Uložte a zavřete soubor.

  7. Restartujte službu OpenVPN, aby se direktiva o odvolání projevila:

    sudo systemctl restart openvpn@server1

    V tomto okamžiku by klient již neměl mít přístup k serveru OpenVPN pomocí odvolaného certifikátu.

Pokud potřebujete zrušit další klientské certifikáty, opakujte stejné kroky.


Cent OS
  1. Nastavení serveru DHCP na CentOS 8 – Jak na to?

  2. Jak nastavit server OpenVPN na Debianu 10

  3. Jak nastavit VSFTPD na CentOS 8

  1. Jak nainstalovat OpenVPN na CentOS 7 nebo 8

  2. Jak nastavit server OpenVPN na Ubuntu 18.04

  3. Jak nastavit bloky serveru Nginx na Ubuntu a CentOS

  1. Jak nastavit bloky serveru Nginx na CentOS 7

  2. Jak nastavit bloky serveru Nginx na CentOS 8

  3. Jak nastavit server OpenVPN na Debianu 9