Úvod
Virtuální privátní síť (VPN) šifruje veškerý síťový provoz, maskuje uživatele a chrání je před nedůvěryhodnými sítěmi. Může poskytnout zabezpečené připojení k firemní síti, obejít geografická omezení a umožnit vám surfovat na webu pomocí veřejných sítí Wi-Fi a zároveň zachovat soukromí vašich dat.
OpenVPN je plně funkční řešení VPN s otevřeným zdrojovým kódem Secure Socket Layer (SSL).
V tomto tutoriálu se naučíte, jak nastavit OpenVPN na serveru CentOS 7 a jak se připojit k OpenVPN z klientského počítače.
Předpoklady
- Server CentOS 7 nebo CentOS 8
- Uživatelský účet s přístupem root (sudo)
- Přístup do příkazového řádku/okna terminálu
- Doména nebo subdoména, která se překládá na váš server
- Klientský počítač, ze kterého se budete připojovat k serveru OpenVPN
Krok 1:Nainstalujte OpenVPN
1. Aktualizujte úložiště a balíčky CentOS spuštěním:
yum update -y
2. Balíček OpenVPN nemůžete stáhnout z výchozích úložišť CentOS. OpenVPN je však k dispozici v úložišti Extra Packages for Enterprise Linux (EPEL). Chcete-li povolit úložiště EPEL, spusťte příkaz:
yum install epel-release -y
3. Znovu aktualizujte úložiště:
yum update -y
4. Nyní můžete nainstalovat OpenVPN pomocí příkazu:
yum install -y openvpn
Krok 2:Nainstalujte Easy RSA
Dalším krokem je vybudování infrastruktury veřejného klíče (PKI). K tomu je třeba nainstalovat easy RSA , nástroj CLI pro vytváření a správu certifikační autority PKI (CA).
Easy RSA vám pomůže nastavit interní certifikační autoritu (CA) a generovat páry klíčů SSL pro zabezpečení připojení VPN.
1. Ke stažení balíčku easy RSA použijte wget
příkaz. Pokud na svém systému CenOS nemáte wget, nainstalujte jej spuštěním:
yum install -y wget
2. V době psaní tohoto článku je nejnovější verze nástroje CLI 3.0.8, kterou si stáhneme. Chcete-li použít jinou verzi, podívejte se na snadnou stránku vydání RSA na GitHubu.
wget https://github.com/OpenVPN/easy-rsa/archive/v3.0.8.tar.gz
3. Dále rozbalte stažený archiv:
tar -xf v3.0.8.tar.gz
4. Vytvořte a přesuňte se do nového openvpn adresář:
cd /etc/openvpn/
5. Poté vytvořte podadresář easy-rsa
pod cestou /etc/openvpn
:
mkdir /etc/openvpn/easy-rsa
6. Přesuňte extrahovaný adresář do /etc/openvpn/easy-rsa:
mv /root/easy-rsa-3.0.8 /etc/openvpn/easy-rsa
Chcete-li zkontrolovat, zda jste úspěšně přesunuli vše z easy-rsa-3.0.8 adresář, přejděte do easy-rsa pomocí cd /etc/openvpn/easy-rsa
a uveďte obsah pomocí ls
. Měli byste vidět seznam souborů a složek, jako na obrázku níže.
Krok 3:Nakonfigurujte OpenVPN
Jakmile nainstalujete OpenVPN a Easy RSA, můžete přejít ke konfiguraci serveru OpenVPN.
Pokyny v této části vám pomohou nastavit základní konfiguraci. Můžete jej upravit podle svých potřeb.
Před spuštěním některého z příkazů se ujistěte, že jste se vrátili do kořenového adresáře. Chcete-li to provést, zadejte cd
v okně terminálu a stiskněte Enter .
1. Prvním krokem je zkopírování ukázky server.conf soubor z adresáře dokumentace OpenVPN:
cp /usr/share/doc/openvpn-2.4.9/sample/sample-config-files/server.conf /etc/openvpn
Pokud nemůžete najít ukázkový konfigurační soubor OpenVPN, vyhledejte jeho umístění pomocí find
příkaz:
find / -name server.conf
2. Poté otevřete zkopírovaný konfigurační soubor pomocí textového editoru dle vašeho výběru:
vi etc/openvpn/server.conf
Příkaz otevře ukázkový konfigurační soubor OpenVPN. Komentáře v souboru začínají hashtagem # nebo středník ;
.
3. Chcete-li nastavit základní konfiguraci, musíte zrušit komentář následující řádky odstraněním středníků.
topology subnet
(učiní instalaci OpenVPN jako podsíť)push "redirect-gateway def1 bypass-dhcp"
(přikáže klientovi, aby přesměroval provoz přes server OpenVPN)push "dhcp-option DNS 208.67.222.222"
(pro připojení k OpenVPN používá překladač OpenDNS)push "dhcp-option DNS 208.67.220.220"
(pro připojení k OpenVPN používá překladač OpenDNS)user nobody
(spouští OpenVPN bez oprávnění)group nobody
(spouští OpenVPN bez oprávnění)
4. Poté vygenerujte statický šifrovací klíč pro povolení ověřování TLS. Chcete-li to provést, vyhledejte řádek tls-auth ta.key 0
a okomentujte jej přidáním ;
před ním. Poté pod něj přidejte nový řádek:
tls-crypt myvpn.tlsauth
5. Uložte a ukončete konfigurační soubor.
6. Nakonec vygenerujte statický šifrovací klíč určený v souboru příkazem:
openvpn --genkey --secret /etc/openvpn/myvpn.tlsauth
Krok 4:Vygenerujte klíče a certifikáty
1. Vytvořte vars konfigurační soubor pomocí vars.example uloženy v /easy-rsa/easyrsa3 adresář. Přesuňte se do zmíněného adresáře pomocí:
cd /etc/openvpn/easy-rsa/easyrsa3
2. Obsah můžete vypsat pomocí ls
pro kontrolu, zda máte vars.example soubor.
3. Zkopírujte ukázkový soubor vars.example pod názvem vars :
cp vars.example vars
Pokud znovu vypíšete soubory v adresáři, měli byste mít samostatný vars soubor, který můžete použít ke konfiguraci Easy RSA.
4. Otevřete vars soubor v textovém editoru dle vašeho výběru:
vi vars
5. Procházejte soubor a najděte řádky uvedené níže.
#set_var EASYRSA_REQ_COUNTRY "US"
#set_var EASYRSA_REQ_PROVINCE "California"
#set_var EASYRSA_REQ_CITY "San Francisco"
#set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
#set_var EASYRSA_REQ_EMAIL "[email protected]"
#set_var EASYRSA_REQ_OU "My Organizational Unit"
6. Odkomentujte řádky odstraněním #
a nahraďte výchozí hodnoty svými informacemi.
7. Poté najděte řádek určující KEY_NAME a změňte jej na "server"
:
export KEY_NAME="server"
8. Nakonec změňte KEY_CN na doménu nebo subdoménu, která se překládá na váš server.
export KEY_CN=openvpn.yourdomain.com
9. Uložte a zavřete soubor.
10. Vyčistěte všechny předchozí klíče a vygenerujte certifikační autoritu:
./easyrsa clean-all
11. Nyní můžete přejít k budování certifikační autority pomocí build-ca
skript. Spusťte příkaz:
./easyrsa build-ca
Budete požádáni o nastavení přístupového hesla CA Key Passphrase a běžného názvu vaší CA.
12. Vytvořte klíč a certifikát pro server:
./easyrsa build-server-full server
13. Dále vygenerujte soubor pro výměnu klíčů Diffie-Hellman spuštěním:
./easyrsa gen-dh
14. Pro každého klienta potřebujete také certifikát. Vygenerujte je na serveru a poté je zkopírujte na klientský počítač.
Pomocí následujícího příkazu vytvoříme certifikát a klíč pro klient1 . Příkaz můžete upravit použitím názvu dle vašeho výběru.
./easyrsa build-client-full client1
15. Jakmile vygenerujete klíče a certifikáty, zkopírujte je z pki do openvpn adresář. Chcete-li tak učinit, přejděte do pki adresář spuštěním:
cd /etc/openvpn/easy-rsa/easyrsa3/pki
Musíte zkopírovat celkem čtyři soubory:
- ca.crt
- dh.pem
- ca.key
- server.key
První dva soubory (ca.crt a dh.pem ) jsou uloženy v pki adresář, zatímco ca.key a server.key jsou v podadresáři pki/private .
Proto zkopírujte ca.crt a dh.pem do openvpn první adresář:
cp ca.crt dh.pem /etc/openvpn
Poté se přesuňte do podadresáře private a zkopírujte ca.key a server.key spuštěním:
cd private
cp ca.key server.key/etc/openvpn
Krok 5:Firewall a konfigurace směrování
Nastavení pravidel brány firewall
1. Začněte kontrolou aktivní zóny brány firewall:
firewall-cmd --get-active-zones
Výstup zobrazí vaši firewalld zónu. V níže uvedeném příkladu je veřejný .
2. Přidejte openvpn služby do seznamu služeb, které firewalld umožňuje v rámci aktivní zóny. Aktivní zóna v našem příkladu je veřejná . Pokud je vaše aktivní zóna důvěryhodná, upravte příkaz odpovídajícím způsobem.
firewall-cmd --zone=public --add-service openvpn
3. Dále proveďte výše uvedená nastavení jako trvalá spuštěním příkazu:
firewall-cmd --zone=public --add-service openvpn --permanent
4. Chcete-li zkontrolovat, zda byla přidána služba openvpn, použijte:
firewall-cmd --list-services --zone=public
5. Poté přidejte maškarádu do runtime instance:
firewall-cmd --add-masquerade
6. A udělejte to natrvalo:
firewall-cmd --add-masquerade --permanent
7. Ověřte, že byla přidána maškaráda spuštěním:
firewall-cmd --query-masquerade
Výstup by měl odpovědět yes
.
Směrování konfigurace
Po dokončení výše uvedených kroků přejděte ke směrování do podsítě OpenVPN.
1. Vytvořte proměnnou, která představuje primární síťové rozhraní používané vaším serverem. V níže uvedeném příkazu se proměnná jmenuje VAR
. Můžete však vytvořit proměnnou pod názvem, který si vyberete.
VAR=$(ip route get 208.67.222.222 | awk 'NR==1 {print $(NF-2)}')
2. Dále trvale přidejte směrovací pravidlo pomocí proměnné vytvořené výše:
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE
3. Znovu načtěte firewall, aby se změny projevily:
firewall-cmd --reload
4. Přejděte ke směrování veškerého webového provozu z klienta na IP adresu serveru povolením přesměrování IP. Otevřete soubor sysctl.conf soubor:
vi /etc/sysctl.conf
5. Na začátek souboru přidejte následující řádek:
net.ipv4.ip_forward = 1
6. Nakonec restartujte službu:
systemctl restart network.service
Krok 6:Spusťte OpenVPN
1. Chcete-li spustit službu OpenVPN, spusťte příkaz:
systemctl -f start [email protected]
2. Poté povolte spuštění při startu spuštěním:
systemctl -f enable [email protected]
3. Ověřte, že je služba aktivní pomocí:
systemctl status [email protected]
Výstup by měl odpovědět, že služba OpenVPN pro server je aktivní (běží) .
Krok 7:Konfigurace klienta OpenVPN
Když je vše nastaveno na serveru OpenVPN, můžete nakonfigurovat svůj klientský počítač a připojit jej k serveru.
Jak je uvedeno v kroku 4, každý klientský počítač musí mít místní kopie certifikátu CA, klientského klíče, certifikátu SSL a šifrovacího klíče.
1. Najděte a zkopírujte následující soubory ze serveru do klientského počítače:
- /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt
- /etc/openvpn/easy-rsa/easyrsa3/pki/client.crt
- /etc/openvpn/easy-rsa/easyrsa3/pki/private/client.key
- /etc/openvpn/myvpn.tlsauth
2. Poté vytvořte konfigurační soubor pro klienta OpenVPN pod názvem client.ovpn na klientském počítači:
vi client.ovpn
3. Přidejte do souboru následující obsah:
client
tls-client
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key
tls-crypt /path/to/myvpn.tlsauth
remote-cert-eku "TLS Web Client Authentication"
proto udp
remote your_server_ip 1194 udp
dev tun
topology subnet
pull
user nobody
group nobody
Ujistěte se, že jste vyměnili tučné části za vaše respektované hodnoty.
4. Uložte a zavřete soubor.
Krok 8:Připojte klienta k OpenVPN
Pokyny, jak se připojit k OpenVPN, se liší v závislosti na operačním systému vašeho klientského počítače.
Pro uživatele systému Linux
Chcete-li se připojit k OpenVPN, spusťte příkaz:
openvpn --config /path/to/client.ovpn
Pro uživatele systému Windows
1. Nejprve zkopírujte client.ovpn konfiguračního souboru v C:Program FilesOpenVPNconfig adresář.
2. Stáhněte a nainstalujte aplikaci OpenVPN. Nejnovější sestavení najdete na stránce OpenVPN Community Downloads. Jakmile aplikaci nainstalujete, spusťte OpenVPN.
3. Klikněte pravým tlačítkem na ikonu OpenVPN na hlavním panelu a vyberte Připojit . K provedení tohoto úkolu potřebujete oprávnění správce.
Pro uživatele macOS
K OpenVPN se můžete připojit ze systému macOS pomocí Tunnelblick (otevřené grafické uživatelské rozhraní pro OpenVPN v OS X a macOS).
Před spuštěním Tunnelblick nezapomeňte uložit client.ovpn konfigurační soubor v adresáři ~/Library/Application Support/Tunnelblick/Configurations .