Jetzt zeige ich dir, wie du eine geroutete VPN-Verbindung zu deinem Server herstellen kannst. Ich nutze VPN-Verbindungen um von unterwegs auf Samba-Freigaben zu nutzen, oder um andere Server zu administrieren, die nicht von außerhalb über das Netz erreichbar sind.
- Als erstes installieren wir openVPN wie gewohnt über die Ports:
# cd /usr/ports/security/openvpn/ && make install clean - Anschließend legen wir im Verzeichnis "/usr/local/etc/openvpn/" die Konfigurationsdatei "server.conf" an:
# Port auf den der VPN-Server lauschen wird (FIREWAL ANPASSEN!!)
port 1194
# IP des Servers
local 192.168.0.10
proto udp
dev tun
tun-mtu 1500
fragment 1300
mssfix
tls-server
# Die Pfade zu den Keys und Zertifikaten
ca /usr/local/etc/openvpn/vpn-ca.pem
cert /usr/local/etc/openvpn/certs/servercert.pem
key /usr/local/etc/openvpn/private/serverkey.pem
dh /usr/local/etc/openvpn/dh1024.pem
# Hier wird der Adressbereich und die Netzwerkmaske für das virtuelle Netzwerk übergeben.
# Der Server wird automatisch auf der ersten IP lauschen, hier 10.8.0.1
server 10.8.0.0 255.255.255.0
# Hier können wir einen Adress-Pool für die Virtuellen Adressen angeben. Falls ein Client die
# Verbindung beendet, wird ihm bei der nächsten Verbindung automatisch die selbe IP zugewiesen.
ifconfig-pool-persist ipp.txt
# Mit push veranlassen die Clients die Route in den Adressbereich 192.168.0.0 automatisch
# über vpn zu routen
push "route 192.168.0.0 255.255.255.0"
keepalive 10 120
# Authentifizierungsmethode
auth SHA1
# Verschlüsselungsmethode
cipher AES-256-CBC
# Komprimierung aktivieren
comp-lzo
user nobody
group nobody
persist-key
persist-tun
# Verbose-Level
verb 6 - Jetzt müssen wir noch ein paar Einstellungen in der "/etc/rc.conf" vornehmen:
openvpn_enable="YES"
openvpn_if="tun tap"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"
openvpn_dir="/usr/local/etc/openvpn" - Anschließend werden wir noch die Zertifikate für den Client erstellen und dann den openVPN-Windows-Client konfigurieren.
- Jetzt müssen wir natürlich noch die Firewallregeln anpassen, da wir ein neues, wenn auch virtuelles, Netzwerkdevice erstellt haben (tun0).
Folgendes ist in der pf.conf zu tun:- Das tun0-Device anlegen: vpn_if="tun0"
- Das neue Netzwerk anlegen: vpn_network="10.8.0.0/24"
- NAT-Regel anlegen: nat on $if from $vpn_network to any -> $ext_ip
($ext_ip ist die externe IP des LAN-Device) - optional: Firewallregeln für das tun0-Device ignorieren: pass quick on $vpn_if
- Samba-Redirectregel anlegen:
rdr pass on $vpn_if proto tcp from any to $if port $samba_tcp -> $samba
rdr pass on $vpn_if proto udp from any to $if port $samba_udp -> $samba