====== 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é:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
A pak už jenom spustit:
./openvpn-install.sh
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:
#!/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
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:
[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
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:
#push "redirect-gateway def1 bypass-dhcp"
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:
openvpn --config server2.conf