Zobrazit stránkuStarší verzeZpětné odkazyNahoru Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku. ====== OpenVPN ====== Pro servisní účely jsem potřeboval rychle rozběhnout OpenVPN. Nejprve jsem se docela trápil s nastavením konfiguračních souborů a certifikátů. Nicméně pak jsem objevil skript, který většinu věcí udělá za mě. Projekt se skriptem se jmenuje [[https://github.com/angristan/openvpn-install|openvpn-install]]. Stažení je jednoduché: <code bash> curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh chmod +x openvpn-install.sh </code> A pak už jenom spustit: <code bash> ./openvpn-install.sh </code> Zbytkem provede jednoduchý průvodce. Pokud chci vytvářet další uživatele a jejich certifikáty po instalaci, stačí skript spustit znovu a v nabídce se objeví možnost **Add a client**. Úplně stejně budu postupovat, pokud budu chtít vypnout nějakého klienta. Skript mi vytvořil soubor **/etc/iptables/add-openvpn-rules.sh**, ve kterém bylo nachystáno routování do vnitřní sítě. Nemusel jsem se tedy trápit s tím, že když se připojím do VPN sítě, tak se nedostanu do vnitřní sítě. Tady je obsah souboru: <code bash> #!/bin/sh iptables -t nat -I POSTROUTING 1 -s 10.8.0.0/24 -o wan -j MASQUERADE iptables -I INPUT 1 -i tun0 -j ACCEPT iptables -I FORWARD 1 -i wan -o tun0 -j ACCEPT iptables -I FORWARD 1 -i tun0 -o wan -j ACCEPT iptables -I INPUT 1 -i wan -p udp --dport 1194 -j ACCEPT </code> Dále pak vytvoří soubor **/etc/systemd/system/multi-user.target.wants/iptables-openvpn.service**, který nastavuje v systemd spouštění skriptu s iptables: <code> [Unit] Description=iptables rules for OpenVPN Before=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/etc/iptables/add-openvpn-rules.sh ExecStop=/etc/iptables/rm-openvpn-rules.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target </code> A jako další vytvoří soubor pro spouštění vpnserveru **/etc/systemd/system/multi-user.target.wants/openvpn@server.service**. Dále mi ve složce **/etc/openvpn** vytvořil konfigurační soubor **server.conf**. Pokud chci zařídit, aby po připojení k VPN nešel internet přes VPN server, tak je potřeba v konfiguračním souboru serveru zakomentovat tento řádek: <code> #push "redirect-gateway def1 bypass-dhcp" </code> Dále je možné mít klidně více instancí OpenVPN serveru. Stačí zkopírovat konfigurační soubor server.conf a vytvořit například **server2.conf**. V souboru editovat vše potřebné a poté spustit další instanci serveru: <code> openvpn --config server2.conf </code> ===== Nastavení DNS serveru pro OpenVPN ===== Při konfiguraci OpenVPN serveru je možné nastavit, jaký DNS server bude klient používat po připojení. To se provádí přidáním následujícího řádku do konfigurace OpenVPN serveru: <code> push "dhcp-option DNS 192.168.1.50" </code> Tento příkaz zajistí, že klient po připojení použije DNS server s IP adresou **192.168.1.50**. Lze přidat i více DNS serverů, přičemž první uvedený bude primární. Po připojení přes OpenVPN jsem ověřil nastavení DNS serveru pomocí příkazu: <code bash> resolvectl status </code> Výstup tohoto příkazu zobrazil aktuálně používané DNS servery, což umožňuje ověřit, zda se změna správně projevila. it/server/openvpn.txt Poslední úprava: 2025/03/08 08:48autor: Petr Nosek