Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Feste IPs zuhause in pfsense via Tunnel

Mitglied: KernelMaker

KernelMaker (Level 1) - Jetzt verbinden

26.04.2020, aktualisiert 03.05.2020, 1810 Aufrufe, 3 Kommentare, 6 Danke

Feste öffentliche IP-Adressen sollen zuhause am privaten Internetanschluss (mit dynamischer WAN-Adresse) für sämtliche Serverdienste (z.B. Exchange, Webserver, Gameserver etc.) nutzbar sein.

Einleitung

Da dieses Szenario nirgends wirklich gut und komplett erklärt ist, habe ich mich dazu entschlossen, meine Erfahrungen in Form einer Anleitung hier zu teilen.

Die Business Tarife mit einer festen IP-Adresse sind in der Regel unverhältnismäßig teuer und mehr als eine IP oder auch Subnetze gibt es sowieso nicht. So auch in meinem Fall. Ich habe zuhause eine Gigabit FTTH Anbindung von der Telekom. Der Business Tarif wäre monatlich doppelt so teuer und Entertain würde entfallen. Mehrere IP-Adressen und Subnetze sind nur über die unbezahlbare Standleitung (Company Connect, jetzt DeutschlandLAN Connect IP) möglich.

Ich habe sehr lange nach einer vernünftigen Umsetzung gesucht und viel ausprobiert.

Bis vor kurzem nutzte ich eine virtuelle Sophos UTM Instanz zuhause und eine Instanz auf einem Root Server im Rechenzentrum. Hier bietet das Sophos-eigene RED Tunnelprotokoll eine einfache und bequeme Möglichkeit so einen IP-Tunnel umzusetzen (Quelle). Leider ist für ein eigenes OS bei den meisten Hostern ein Dedicated Server mit IPMI Interface nötig, da ein eigenes ISO File genutzt werden muss. Diese Server sind als Neubestellung recht teuer (etwa 30-50€/Monat). Ich hatte in der Serverbörse bei MyLoc in Düsseldorf einen gebrauchten Server mit IPMI für 23€ genommen. Dazu kommen noch 8€/Monat für ein /29 Subnetz.

Auf Dauer war mir das aber zu teuer, weshalb ich nach alternativen Lösungen geschaut habe. Im besten Falle sollte der Tunnel auch direkt in pfsense laufen, weil pfsense bei mir als Router läuft.
Ich habe mich nun für einen GRE Tunnel entschieden. Eine Verschlüsselung kommt hier nicht zum Einsatz, was aber auch nicht weiter schlimm ist, da die Pakete normalerweise ohnehin unverschlüsselt im Internet landen und geroutet werden.

Umsetzung (Einzel IPs via NAT)

Einen Linux VPS bei einem Hoster deiner Wahl anmieten. Am besten in der Nähe deines Wohnorts bzw. einem guten Routing zu deinem Internetprovider.
Wichtig! Es muss eine VM sein. VPS auf Containerbasis funktionieren meist nicht, da die erforderlichen Kernel-Treiber vom Host nicht zur Verfügung gestellt werden.

Danach müssen noch eine oder auch mehrere zusätzliche IPv4-Adresse(n) oder alternativ ein IPv4-Subnetz beim Hoster gebucht werden.
In dieser Anleitung wird das Routing für eine feste IP beschrieben.

Konfiguration VPS Seite

Für ein besseres Verständnis werden folgende Adressen von nun an verwendet
Haupt IP VPS: 1.1.1.1/32
Zweite IP VPS: 2.2.2.2/32 (Das wird später die feste IP für pfsense)
WAN IP zuhause: 5.5.5.5

GRE Kerneltreiber laden
IP-Tools installieren (idR. vorinstalliert)
Packet-Forwarding aktivieren
Zweite IP vom physischen Interface entfernen (sofern vom Hoster so konfiguriert, eth0 kann bei dir abweichen)
Tunnel konfigurieren (Der Name gre1 kann frei gewählt werden, ebenso das private Tunnelnetzwerk)
Route für die Tunnelgegenstelle und die zweite öffentliche IP
ARP Proxy für die zweite öffentliche IP auf dem physischen Interface. So werden die Pakete mit der MAC-Adresse des VPS zum nächsten Gateway geschickt.
(Bei einigen Hostern nötig, da die Pakete mit fremden Adressen sonst abgewiesen werden)
Die gennannten Schritte können in einem Bash Script via Cronjob automatisch beim Start ausgeführt werden.
Auf der VPS Seite sind wir nun fertig. Weiter geht es zuhause unter pfsense.

Pfsense Seite

Interfaces
Einen neuen GRE Tunnel anlegen
25-04-_2020_22-22-54 - Klicke auf das Bild, um es zu vergrößern

Danach ein neues Interface erstellen und den soeben erstellen Tunnel zuordnen
25-04-_2020_22-24-06 - Klicke auf das Bild, um es zu vergrößern
MTU
Je nach Internetanschluss muss die MTU angepasst werden. Bei meinem Anschluss wird PPPoE für die Einwahl verwendet. Daher liegt die maximal mögliche Einheit bei (1500 Byte -8 Byte PPPoE -20 Byte IPv4 -4 Byte GRE) 1468 Byte. Bei einem normalen Ethernet WAN wäre die MTU 1476 für den GRE Tunnel.
Einen Rechner gibt es hier: Link

Ein Ping zwischen pfsense und dem VPS sollte nun funktionieren.

Ein weiteres Interface für das DMZ Netzwerk anlegen.
Hier werden die Server angeschlossen, die öffentliche IPs bekommen sollen, welche dann z.B. per 1:1 NAT zugewiesen werden.
Hierbei könnte es sich z.B. um eine physische Netzwerkkarte oder auch um ein VLAN Interface handeln.
Routing
Zwei neue Floating Rules für In- und Out-Traffic anlegen.
25-04-_2020_22-34-19 - Klicke auf das Bild, um es zu vergrößern
25-04-_2020_22-37-10 - Klicke auf das Bild, um es zu vergrößern
Firewall
Auf dem DMZ Interface muss nun folgende Regel mit der Tunnelgegenstelle als Gateway angelegt werden.
Außerdem noch Regeln zum Blockieren von Traffic zu weiteren Interfaces bei euch zuhause.
25-04-_2020_22-41-19 - Klicke auf das Bild, um es zu vergrößern
NAT
Das ist leider das spannendste Thema... Hier konfiguriert pfsense von Haus aus falsche Einträge. Daher muss das Outbound NAT auf 'Manual' gestellt werden und ein manueller Eintrag erfolgen.
Die übrig gebliebenen Einträge müssen entfernt werden, damit sich nichts doppelt.
25-04-_2020_22-41-59 - Klicke auf das Bild, um es zu vergrößern

Außerdem muss natürlich noch das DNAT zum jeweiligen Server eingerichtet werden. Hier als Beispiel mit einem 1:1 NAT. Damit wären sämtliche Ports der öffentlichen IP am Server erreichbar
25-04-_2020_22-51-36 - Klicke auf das Bild, um es zu vergrößern

Umsetzung (/29 Subnetz ohne NAT)

VPS Seite

Die Umsetzung auf der VPS Seite ist für das Subnetz identisch zu der oben genannten für eine Einzel IP. Anstatt der Einzel IP wird das Subnetz verwendet. Proxy ARP sollte hierbei nicht erforderlich sein, da die Subnetze bei fast allen Hostern auf die Haupt IP des Servers geroutet werden.

Pfsense Seite

Interfaces
GRE Tunnel identisch zu Einzel IP anlegen

Ein Ping zwischen pfsense und dem VPS sollte nun funktionieren.

Ein weiteres Interface für das DMZ Netzwerk anlegen.
Hier werden die Server angeschlossen, die öffentliche IPs bekommen sollen.
Hierbei könnte es sich z.B. um eine physische Netzwerkkarte oder auch um ein VLAN Interface handeln.
Dem DMZ Interface wird die erste nutzbare IP des Subnetzes gegeben. Diese wird dann das Gateway für alle angeschlossenen Server.

Firewall
Bei einem Subnetz werden kein Floating Rules benötigt. Hier reicht eine Firewall Regel, die Traffic mit dem Subnetz als Ziel erlaubt.
Um nur bestimmte Ports durchzulassen, kann hierbei natürlich auch eine Regel pro Subnetz-IP angelegt werden:
03-05-_2020_16-46-08 - Klicke auf das Bild, um es zu vergrößern

Auf dem DMZ Interface muss nun folgende Regel mit der Tunnelgegenstelle als Gateway angelegt werden.
Außerdem noch Regeln zum Blockieren von Traffic zu weiteren Interfaces bei euch zuhause.
03-05-_2020_16-46-25 - Klicke auf das Bild, um es zu vergrößern


Test

Traceroute Test

Eingehend
25-04-_2020_23-16-51 - Klicke auf das Bild, um es zu vergrößern
(Hier der zusätzliche Sprung zwischen beiden Adressen auf VPS und pfsense schön zu sehen)

Ausgehend
traceroute - Klicke auf das Bild, um es zu vergrößern

Performance Test

Die Geschwindigkeit ist im Vergleich zu sonstigen Lösungen über ein VPN wirklich überragend.
Auch der Sophos Tunnel erreichte nur knapp die Hälfte der Geschwindigkeit (350Mbit).
9339165735 - Klicke auf das Bild, um es zu vergrößern
Die übliche Geschwindigkeit des FTTH Anschlusses ohne Tunnel liegt etwa bei 920 Down/540 Up.
Komplett durchgefallen sind bei mir fertige VPN Lösungen wie von Portunity. Hier waren an guten Tagen 150-200Mbit/s drin.

Probleme mit dynamischer WAN IP

Leider muss bei GRE auf beiden Seiten eine feste Gegenstelle angegeben werden. Das wird problematisch, sobald sich die WAN IP zuhause durch einen Router-Neustart oder eine Zwangstrennung ändert. Hierzu habe ich auf dem VPS noch einen Nginx + PHP installiert, der immer die aktuelle WAN IP empfängt.
Hierzu einmal ein Beispiel über PHP und einen Cronjob:

Hardware

Aufgrund der Nachfrage hier noch eine kleine Info zur verwendeten Hardware:
myLoc VPS
https://store.servdiscount.com/de/configurate/5456
2 vCores, 2 GB vRAM, 1000 Mbit Uplink
Ubuntu Server 18.04 LTS

Heim Router (Selbstbau)
pfsense 2.4.5 als VM auf einem ESXi Server (Dual Intel Xeon E5-2630 V4, 128GB RAM)
4 vCores, 4 GB vRAM
4 Port Intel Gigabit NIC (PCIe Passthrough)

Konfigurierte Netzwerke:
WAN: PPPoE Verbindung über VLAN 7. Verbunden mit Glasfaser Modem von der Telekom
Tarif: "Magenta Giga" 1000 Down/ 500 Up

LAN: Heimnetz
GUEST: Gastnetz mit einem Captive Portal (VLAN)
IPTV: IGMP Proxy für Entertain (VLAN)
DMZ: Alle Server für öffentliche feste Adressen (zugewiesen per 1:1 NAT)

Auf dem Router laufen sämtliche interne Dienste wie DHCP, DNS, pfblockerNG (Adblocker etc.), Suricata als IPS bzw. DPI und noch ein OpenVPN Server zur Einwahl von unterwegs.

Die Hardware ist überhaupt nicht nötig zum Betrieb eines pfsense Routers, allerdings wollte ich nicht noch extra einen zweiten Server für pfsense hinstellen, wenn sowieso schon ein ESXi Server für den Betrieb von Mailserver, Gameserver(n) und einem Xpenology NAS zum Einsatz kommt.

Gigabit über PPPoE
Bzgl. der Hardware-Anforderungen ist dieses Thema zumindest nicht unwichtig. Bei der Deutschen Telekom kommt auch im FTTH Netz für Privatkunden (realisiert über passive Splitter im Haus, siehe GPON) leider immer noch PPPoE bei der Einwahl zum Einsatz. Daher läuft sämtlicher Traffic auf der WAN Schnittstelle über nur einen CPU Core. Normalerweise haben Netzwerkkarten heutzutage mehrere sogenannte 'Queues', die dann auch Multithreading ermöglichen. Das ist über PPPoE zumindest in pfsense aktuell nicht möglich. Außerdem gibt es einen Bug im FreeBSD Treiber einiger Intel Netzwerkkarten, weshalb einige nicht die volle Performance erreichen.
Eigentlich wäre für den Betrieb als Server eine gute Multicore-Performance wichtig, in diesem Fall ist aber auch eine gute Single-Core Performance nicht unerheblich. Für einen dedizierten pfsense Router würde ich also eher eine Desktop CPU mit hohem Takt und wenig Kernen bevorzugen.

< Ein Netzplan zur Veranschaulichung ist WIP >

Zusammenfassung

Die monatlichen Gesamtkosten liegen bei 5€ + 1€ für jede öffentliche IP bzw. +8€ für ein /29 Subnetz.

Weitere Vorteile
In Zeiten von Internetanschlüssen ohne eigene IPv4 Adresse (z.B. Vodafone Kabel mit CG-NAT) ist so ein Tunnel ebenfalls sehr interessant. Hierzu kann der Tunnel über die IPv6 Verbindung erfolgen, da diese Adressen bei den meisten Providern wie üblich nutzbar und nicht mit anderen geteilt sind.
Auch um schlechtes oder überlastetes Peering der Provider zu umgehen, kann dieser Tunnel genutzt werden. Das ist sehr häufig im Netz der Deutschen Telekom der Fall (Stichwort: Paid Traffic und kein DE-CIX Peering)

Viel Spaß beim Nachbauen!
Mitglied: 144095
27.04.2020 um 10:24 Uhr
Sehr schöne und saubere Lösung und obendrein gut erklärt. Kannst du auch näheres zu deinem Router sagen?
Bitte warten ..
Mitglied: KernelMaker
27.04.2020 um 20:16 Uhr
Danke für dein Feedback
Die Infos zur Hardware habe ich soeben oben ergänzt.
Bitte warten ..
Mitglied: KernelMaker
03.05.2020 um 16:56 Uhr
Anleitung um Nutzung eines Subnetzes anstatt Einzel IPs erweitert.
Bitte warten ..
Ähnliche Inhalte
Vmware

ESXi Management über PfSense (IPsec Tunnel) führt zu Massen an TCP Retransmissions

Tipp von Spirit-of-EliVmware7 Kommentare

Moin zusammen, hier ein kurzer Beitrag zu einem Problem sobald man die Management Seite eines ESXs über einen IPsec ...

Neue Wissensbeiträge
Datenschutz
Datenschutzproblem?
Information von Penny.Cilin vor 2 StundenDatenschutz1 Kommentar

Hallo, gerade im Heise Newsticker gefunden: Frage: Warum wurden die Akten nicht ordnungsgemäß gesichert bzw. aufbewahrt? Patientenakten sind 30 ...

Windows Netzwerk

SCOM ( System Center Operations Manager ) um eine E-Mailschnittstelle erweitern

Anleitung von Juanito vor 23 StundenWindows Netzwerk

Einleitung System Center Operations Manager (SCOM) ist Microsoft's Lösung zum Überwachen von Servern. Dazu zählt die generelle Erreichbarkeit, Festplattenspeicher, ...

Humor (lol)
BioShield gegen 5G
Information von magicteddy vor 2 TagenHumor (lol)3 Kommentare

Moin wer sich gegen die hochgefährlichen 5G schützen möchte wird hier fündig: 5GBioShield "gegen 5G-Strahlung" Ich glaube, ich sollte ...

Windows Server

ScheduledTasks mit einem Group-Managed-Service-Account (GMSA) ausführen

Anleitung von ToniHo vor 2 TagenWindows Server

Hallo zusammen, wer schonmal versucht hat ein Group-Managed-Service-Account (GMSA) auf einem bestehenden ScheduledTask einzutragen, ist an der GUI vermutlich ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Wie Festplatte von altem Notebook sicher löschen
gelöst Frage von NilsholgerssonFestplatten, SSD, Raid12 Kommentare

Hallo, habe ein altes P3 Celeron 800 Notebook, dessen Festplatte ich sicher löschen möchte. Habe von der Ultimate Boot ...

Router & Routing
VPN Router hinter Glasfaser Router des ISP
gelöst Frage von TenerifeITRouter & Routing10 Kommentare

Hallo zusammen, ich habe bisher noch keine VPN Router eingerichtet und nun von einem Kunden 2 TP-Link TL-R600VPN Router ...

Microsoft
USB-Ports sperren mit Software
Frage von trabajadorMicrosoft10 Kommentare

Hallo, gesucht wird eine Software, welche alle USB-Ports sperrt bis auf für Maus, Tastatur und einem Admin-USB-Stick. Verwendet wird ...

Windows 10
Virtualbox neueste Version W10pro 1909 nach Update auf 2004 Oberfläche hinüber bis fast ohne Funktion
Frage von UweGriWindows 109 Kommentare

Liebe profi Admins, zu Testzwecken hatte ich in einer VirtualBox neuste Ausführung ein W10 pro 1909 ohne Kummer laufen. ...