HowTo OpenVPN Client mit öffentlich erreichbaren Feste IP Adressen Ziel Als Ziel der Installation wird es folgende Szenario mit IPFire implementiert. (Quelle : http://www.portunity.de/access/wiki/beispiel-szenarien_von_vpn-tunneln_auf_pptp- _und_openvpn-basis_%28produktinfo%29) Komponenten: 1) DSL Modem (meist in Nr. 2 integriert) 2) FritzBox (Router) 3) LAN-Netzwerk (grüner Bereich) mit eigener IPFire (alt) 4) IPfire (neu) mit 192.168.1.2 als Orange, Grün (nicht in Bild) und Rot (Tunnel mit VPN Client) 5) OpenVPN Server -> ISP (keine IPFire Software)
Installation Für die Installation wird die zurzeit verfügbare ipfire-2.17.i586-full-core98.iso Version benutzt und während der Installation auf Core 99 aktualisiert. Hier werden nur die wichtigsten Einstellungen beschrieben, die eine Bedeutung für unser Szenario haben. Weitere Einstellungen wie Sprache, Tastatur u.s.w. werden nicht dokumentiert. Hostname und Domäne Typ de Netzwerkkonfiguration: Green + Red + Orange Netzwerkkartenzuordnungen: Green = 00:XX:YY:ZZ:XX:55 Red = Entfernt Orange 00:XX:YY:ZZ:XX:5f Adresseinstellungen: Green IP: 192.168.3.2 / Mask: 255.255.255.0 Orange IP: 192.168.1.2 / Mask: 255.255.255.0 Red PPP-Einwahl / IP: keine Adresse DNS und Gateway DNS 1 : 192.168.1.1 Standard GW: 192.168.1.1 Rot Konfiguration ignorieren DHCP Deaktiviert Nach Neustart den SSH Zugriff aktivieren (man kann auch die Konsole benutzen, aber fürs Testen werden mehrere PuTTY-Session / Fenster gebraucht). Am Ende bitte deaktivieren! System / SSH-Zugriff SSH-Zugriff erlauben Putty Session starten und folgendes eingeben: route add default gw 192.168.1.1 echo "route add default gw 192.168.1.1" >> /etc/sysconfig/rc.local echo "nameserver 192.168.1.1" >> /etc/resolv.conf touch /var/ipfire/red/active IPfire / Packfire / Liste aktualisieren (Update starten) Danach folgenden Addons installieren: mc, openvmtools(nur wenn man VMWare benutzt), tcpdump, traceroute.
OpenVPN Client konfigurieren Hier werden die vorkonfigurierten Dateien vom Provider angepasst und erweitert. In meinem Fall werden die Dateien unter /tmp/ heruntergeladen und entpackt. cd /tmp wget https://service.portunity.net/downloads/vpntunnel-via-v4.tar.gz tar -xzvf vpntunnel-via-v4.tar.gz Danach unter /var/ipfire/ovpn/n2nconf/ einen neuen Ordner erstellen: portunity und die Dateien hin kopieren (am bestens mit MC). Am Ende haben wir folgende Struktur: /var/ipfire/ovpn/n2nconf/portunity (Ordner) portunity.conf (Datei) portunity.login (Datei) cert (Ordner) ca.crt (Datei) ta.key (Datei) für IPfire werden wir hier noch eine ausführbare Datei brauchen: portunityred.conf (enable run -> Rights = rwxr--r-- / octal 0744 ) Bevor man das Ganze testet, sollte man den Firewall umstellen und neue Regeln hinzufügen: Firewall / P2P-Netzwerke Alle deaktivieren Firewall / Optionen MS Pakete verwerfen Forward Blockieren Log umstellen: In umgekehrter chronologischer Reihenfolge sortieren (aktuellste immer Oben) Neue Regel erstellen 1 TCP Interface ORANGE v 192.168.1.1: HTTPS 2 TCP Interface ORANGE v 192.168.1.1: HTTP 3 TCP Interface ORANGE v 192.168.1.1: DNS (TCP) 4 UDP Interface ORANGE v Alle: DNS (UDP) 5 TCP Interface ORANGE v Alle: HTTPS 6 TCP Interface ORANGE v Alle: HTTP 7 TCP Interface ORANGE v Alle: 11371 8 UDP Interface ORANGE v 188.246.xx.yy: 1194 Zu 8 Provider IP: OpenVPN-Port
Portunity Konfigurieren Inhalt von portunity.conf client dev tun proto udp tun-mtu 1440 fragment 1400 mssfix # Ersetzen Sie in der folgenden Zeile bitte <OpenVPN-Server> durch den im Produkt hinterlegten OpenVPN-Server ein remote openvpnxxyyxx.portunity.de 1194 auth-retry interact resolv-retry infinite nobind persist-key persist-tun # Auth. Client ca /var/ipfire/ovpn/n2nconf/portunity/cert/ca.crt tls-auth /var/ipfire/ovpn/n2nconf/portunity/cert/ta.key 1 ns-cert-type server # Debug Level verb 3 #tun-ipv6 # Bitte editieren Sie die Datei "/var/ipfire/ovpn/n2nconf/portunity/portunity.login" an und passen # Ihre Benutzernamen und Ihre Passwort an # Bitte beachten Sie, dass nicht in allen OpenVPN Paketen die Möglichkeit einkompiliert ist, # die Zugangsdaten aus einer separaten Datei zu lesen dann kommentieren Sie die folgenden # Zeilen bitte um ## Zugangsdaten abfragen und nicht aus einer Datei lesen # auth-user-pass ## Zugangsdaten aus einer Datei lesen auth-user-pass /var/ipfire/ovpn/n2nconf/portunity/portunity.login # Den Tunnel als Default Gateway nutzen! Wenn Sie dies nicht möchten, # dann kommentieren oder löschen Sie folgende Zeile! # Eine Alternative dazu ist unter Linux PBR Policy Based Routing. # Zu finden in unserem WIKI unter folgendem Link: # http://www.portunity.de/access/wiki/pbr_%28policy_based_routing%29 redirect-gateway # Dem Tunnel nach dem Aufbau alle Rechte entziehen (Nicht bei Windows möglich) # Bitte beachten Sie, dass es die Gruppe "nogroup" auf anderen Distributionen # auch "nobody" heißen kann. Dann bitte einfach die Kommentare ändern! user nobody group nobody #group nogroup
# Logfile for statistics status version 1 status /var/run/openvpn/portunity-n2n 10 # Start as daemon daemon PortunityVPN writepid /var/run/portunityvpn.pid Inhalt von portunityred.conf ###Den Tunnel nach dem Aufbau auf RED umschalten ## Create & Enable vnstat /usr/bin/vnstat -u -i tun0 -r --enable --force > /dev/null 2>&1 echo -n tun0 > /var/ipfire/red/iface echo -n 46.41.x.y > /var/ipfire/red/local-ipaddress echo -n 46.41.0.1 > /var/ipfire/red/remote-ipaddress echo -n 188.246.y.x > /var/ipfire/red/dns1 echo -n 217.144.z.y > /var/ipfire/red/dns2 touch /var/ipfire/red/active grep -v -E "\<gateway\>" /etc/hosts > /tmp/hosts echo "46.41.0.1 gateway" >> /tmp/hosts mv /tmp/hosts /etc/hosts OpenVPN Client testen Am bestens zuerst die Zeile daemon PortunityVPN in portunity.conf mit # kommentieren, falls Verbindungsfehler auftauchen. Schritt 1: Verbindung starten modprobe tun openvpn /var/ipfire/ovpn/n2nconf/portunity/portunity.conf Prüfen, ob der OpenVPN Tunnel gestartet wurde Ifconfig Schritt 2: Red interface in IPFire einbinden /var/ipfire/ovpn/n2nconf/portunity/portunityred.conf Schritt 3: IPfire-Protokoll nachschauen Logs / Firewall-Logdateien Schritt 4: weitere Regel hinzufügen. Hier wird das Rote Interface mit der Open VPN Client IP in WUI angezeigt 9 TCP Interface ROT v 192.168.1.5: SMTP z.b.: email 10 TCP Interface ROT v Alle: SMTP email out 11 UDP Interface ROT v Alle: 123 NTP 12 TCP Interface ROT v Alle: HTTPS
13 TCP Interface ROT v Alle: HTTP 14 UDP Interface ROT v Alle: DNS (UDP) 1 TCP Alle v ROT: SMTP Schritt 5: DNAT und SNAT DNAT-Regel kann ohne Probleme erstellt werden. Beim SNAT wird aber das Rote Interface leider in Dropdown nicht angezeigt. Mit einer kleinen Änderung in Config Datei wird diese Regel auch richtig interpretiert. Achtung, diese Regel darf nachher nicht mehr über WUI angepasst werden. Falls dies doch aus Versehen passiert, ist eine manuelle Änderung notwendig. Unter /var/ipfire/firevall/ die config Datei editiert Die vorher ausgewählte Interface z.b.: ORANGE, am Ende der Zeile, mit Default IP ändern. In WUI die Regel Deaktivieren und gleich danach Aktivieren um auf Änderungen übernehmen klicken zu können. 1= SNAT; 2= DNAT 1 TCP 192.168.1.5->Default IP v Alle: SMTP 2 TCP Alle v Firewall (ROT): 25->192.168.1.5: SMTP Schritt 6: Testen der Verbindung und der Firewall Regeln: Hiermit wird ein email-server getestet Weitere 2 PuTTY Session erstellen und jeweils ein tcpdump starten tcpdump -i orange0 -n dst port 25 tcpdump -i tun0 -n dst port 25 http://mxtoolbox.com/networktools.aspx Seite aufrufen, eigen Domäne eintragen und Test starten. Schritt 7: Zuletzt wird der automatische Start nach Reboot konfiguriert Unter /etc/sysconfig die Datei rc-local erweitern echo "Starting default route on Orange..." route add default gw 192.168.1.1 echo "Starting Portunity VPN..." modprobe tun openvpn /var/ipfire/ovpn/n2nconf/portunity/portunity.conf /var/ipfire/ovpn/n2nconf/portunity/portunityred.conf Glückwunsch, wir haben es geschafft / ARSdev