====== OpenVPN ======
Beim Einrichten von //VPN// möchte man meist nicht nur auf das Hostsystem, also den //OpenVPN//-Gateway zugreifen, sondern auch auf das Netzwerk dahinter. Damit dies gelingt, sollten neben den passenden //OpenVPN//-Einstellungen zusätzlich passende //iptables//-Einträge erstellt werden. Damit diese nicht beim Neustart des Servers verloren gehen, liefern wir hier ein kleines Initskript, was dies erledigt.
#!/bin/sh
# OpenVPN iptables skript
# --
# (C) 2014 Rene Knipschild - Custom Software Development
# www.rkcsd.com - P.O. Box 1468 - 34484 Korbach - GERMANY
# Phone: +49 5631 9189488
# Email: email@rkcsd.com
# Use my PGP pubkey for email requests: (download here)
# http://go.reneknipschild.net/pubkey
### BEGIN INIT INFO
# Provides: openvpn-iptables
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Sets up OpenVPN iptables
### END INIT INFO
case "$1" in
start)
echo "Setting up OpenVPN iptables..."
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
;;
stop)
;;
*)
echo "Usage: /etc/init.d/openvpn-iptables {start|stop}"
exit 1
;;
esac
exit 0
Dieses muss nur nach ''/etc/init.d/openvpn-iptables'' kopiert werden, Rechte richtig setzen per ''chmod 755 /etc/init.d/openvpn-iptables'', und per ''update-rc.d openvpn-iptables defaults 20'' aktiviert werden.((Gilt für Server mit initd-System))
===== Client-Konfiguration =====
Es bietet sich an, auf den Clients den OpenVPN-Service direkt als Client beim Systemstart mitlaufen zu lassen. Für das Problem, dass ein Push bestimmter Routen nicht funktioniert, bietet sich ein Fix-Skript an.
Service anlegen in /lib/systemd/system/openvpnfix.service
[Unit]
Description=Fixing OpenVPN routes and mount NFS network shares
After=openvpn.service
[Service]
ExecStart=/etc/openvpn/OpenVPNFix.sh
[Install]
WantedBy=multi-user.target
Das von uns benötigte Skript:
#!/bin/sh
# OpenVPN fixing skript
# --
# (C) 2015, 2016 Rene Knipschild - Custom Software Development
# www.rkcsd.com - P.O. Box 1468 - 34484 Korbach - GERMANY
# Phone: +49 5631 9189488
# Email: email@rkcsd.com
# Use my PGP pubkey for email requests: (download here)
# http://go.reneknipschild.net/pubkey
echo "Waiting for OpenVPN connection to be possibly ready (30s)..."
sleep 30
echo "Setting up OpenVPN routes..."
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.8.0.5
echo "Mounting NFS network shares..."
mount /mnt/server/pool
Die NFS-Shares sind hierbei auf ''noauto'' geschaltet, denn sonst werden diese vor dem OpenVPN-Service-Start versucht, zu mounten, was natürlich in einem fremden Netzwerk nicht gehen wird.
Dann noch neuen "Dienst" per ''systemctl enable openvpnfix'' aktivieren((Gilt für Client mit systemd-System)). Es sollte die Meldung ''Created symlink from /etc/systemd/system/multi-user.target.wants/openvpnfix.service to /lib/systemd/system/openvpnfix.service'' erscheinen