Proč potřebuješ svou VPN | konfigurace VPN na Linux serveru | robot_dreams Czech
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Konfigurace OpenVPN serveru na Linuxu ve 20 krocích

Konfigurace OpenVPN serveru na Linuxu ve 20 krocích

Proč potřebujete svou VPN?

Virtuální privátní síť (VPN) je technologie, která umožňuje vytvořit virtuální privátní síť mezi více zařízeními. Data přenášená v takové síti jsou šifrována. Pomocí VPN může uživatel:

  • skrýt svou polohu, například při DDoS útoku;
  • obejít blokování stránek podle geografické polohy;
  • zabezpečit připojení při práci ve veřejných Wi-Fi sítích.

VPN je často součástí funkcí prohlížeče nebo routeru, může být nainstalována pomocí zásuvných modulů nebo je k dispozici formou předplatného u služeb třetích stran. Vlastní VPN je však stabilnější, rychlejší a nemá omezení provozu jako bezplatné varianty.

Pojďme se společně podívat na to, jak si v Linuxu nastavit vlastní VPN.

Nastavení serveru a klienta

Server pro VPN musí být umístěn na vzdáleném počítači nebo v cloudu. Jako server použijeme distribuci Ubuntu 21.10 a OpenVPN – open source implementaci VPN. Pro klientský počítač můžete zvolit libovolný operační systém.

1. Nainstalujte na server OpenVPN

sudo apt install openvpn

2. Nainstalujte aplikaci Easy-Rsa. Tento program pomáhá spravovat certifikáty (.crt soubory) a generovat klíče pro OpenVPN (.key soubory). Certifikáty slouží ke kryptografické ochraně a při připojení k serveru potvrzují, že klient je tím, za koho se vydává.

sudo apt install easy-rsa

3. Vytvořte složku a zkopírujte do ní nastavení a certifikáty.

sudo mkdir /etc/openvpn/easy-rsa
sudo cp -r /usr/share/easy-rsa /etc/openvpn/

4. Vytvořte certifikační centrum a jeho infrastrukturu.

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

5. Vytvořte kořenový certifikát – zadejte heslo a jméno.

sudo ./easyrsa build-ca

6. Vytvořte klíče pro Diffieho–Hellmanův protokol. Provedení tohoto příkazu může trvat poměrně dlouho.

sudo ./easyrsa gen-dh

7. Vytvořte také certifikát pro zneplatnění podepsaných certifikátů. Pokud je některý certifikát kompromitován, lze jej zrušit zablokováním přístupu konkrétnímu klientovi. Zadejte heslo.

sudo ./easyrsa gen-crl

8. Vytvořte certifikáty pro server a zkopírujte je do složky openvpn.

sudo ./easyrsa build-server-full server nopass
sudo cp ./pki/ca.crt /etc/openvpn/ca.crt
sudo cp ./pki/dh.pem /etc/openvpn/dh.pem
sudo cp ./pki/crl.pem /etc/openvpn/crl.pem
sudo cp ./pki/issued/server.crt /etc/openvpn/server.crt
sudo cp ./pki/private/server.key /etc/openvpn/server.key

9. Ve složce examples se nacházejí šablony pro konfiguraci serveru. Zkopírujte šablonu a otevřete ji pro úpravy.

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

10. Následující řádky zakomentujte a nastavte VPN jako výchozí bránu. Chcete-li řádek zakomentovat, odstraňte znak ";" na začátku řádku.

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

11. Změňte název souboru dh2048.pem na dh.pem a zakomentujte řádek tls-auth ta.key 0. Tento řádek je zodpovědný za kontrolu klíče pro HMAC. V našem příkladu se nepoužívá.

12. Povolte přesměrování IP adresy. Díky tomu budete schopni předávat tranzitní pakety.

sysctl -w net.ipv4.ip_forward=1

13. Přidejte pravidla iptables pro přenos paketů.

sudo iptables -I FORWARD -i tun0 -o ens3 -j ACCEPT
sudo iptables -I FORWARD -i ens3 -o tun0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Na levé straně zadáme akci a na pravé straně pravidlo, které se na ni použije. ACCEPT dává paketům povolení k průchodu a MASQUERADE nahrazuje adresu tranzitních paketů.

14. Klíče pro klienty jsou generovány na serveru a poté přeneseny do klienta.

sudo chmod -r 700 pki/revoked
sudo cp -r pki/revoked/ renewed
sudo cp -a openssl-easyrsa.cnf /etc/openvpn/pki
sudo ./easyrsa build-client-full client nopass

15. Vytvořte složku clients pro všechny klíče a složku client pro konkrétního klienta.

sudo mkdir /etc/openvpn/clients
sudo mkdir /etc/openvpn/clients/client

16. Zkopírujte klíče a konfiguraci klienta do složky client.

cd /etc/openvpn/clients/client
sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/clients/client/
sudo cp /etc/openvpn/easy-rsa/pki/issued/client.crt /etc/openvpn/clients/client/
sudo cp /etc/openvpn/easy-rsa/pki/private/client.key /etc/openvpn/clients/client/
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ./client.conf

17. Otevřete konfiguraci pro úpravy.

sudo nano ./client.conf

18. Změňte adresu my-server-1 na IP adresu serveru a skryjte ji pomocí komentáře tls-auth ta.key 1, poté přidejte řádek auth-nocache. Ten je zodpovědný za to, že přihlašovací jméno a heslo klienta nejsou uloženy ve virtuální paměti.

19. Spusťte server.

sudo openvpn /etc/openvpn/server.conf

Nyní je třeba předat klientovi připravené klíče a konfigurační soubor. Klient je musí vložit do konfiguračního adresáře OpenVPN ve svém operačním systému a jednoduše se připojit. Hotovo.

Je důležité si uvědomit, že VPN nedokáže zcela skrýt uživatelská data a poskytuje pouze částečnou anonymitu. Pokud se VPN používá na podnikové úrovni, může vlastník serveru sledovat činnost zaměstnanců a blokovat jednotlivé zdroje.

Autor: Dmytro Bidenko

Více článků
Příručka od robot_dreams s příkladem syntaxe
Kam se dnes posouvají technologické hranice robotiky?