FreeBSD gateway: Wie NATen? / Ev. welche Firewall?

kraileth

Steht noch ganz am Anfang
Hallo zusammen,

(Motivation / Dokumentation)

bin leider gerade so weit, daß ich mich in eine Ecke gedacht habe und da irgendwie nicht mehr rauskomme. Da ich gerade Strohwittwer bin, habe ich Sa. und So. nahezu vollständig mit Recherche und Ausprobieren verbracht. Gestern Nacht dann hatte ich das Gefühl, praktisch alles, was mir sinnvoll erschien, ausprobiert zu haben. Ausgangspunkt war der, daß ich mir ein bißchen mehr Netzwerkwissen aneignen wollte und, da das gleiche für FreeBSD gilt, mir überlegt habe, das zu kombinieren.

Allgemein ist mir bei diesem Thema aufgefallen, daß es gar nicht so trivial ist, gute Informationen zu FreeBSD-Themen zu finden. Es gibt schon etliche Tutorials, die erklären wollen, wie man einen Gateway mit FreeBSD betreibt. Aber wenn man ein Datum sieht (was leider oft genug fehlt), dann ist das gerne mal 2006 oder 2008, oder man stößt auf Installationsschritte wie „Installiere zunächst FreeBSD 4.2”. *g* Das Handbuch, das mir bisher schon sehr geholfen hatte, schweigt sich bei NAT relativ aus und obwohl es in dem Kapitel über Firewalls verspricht, man werde am Ende des Kapitels die Unterschiede zwischen den 3 (!) Firewalls kennen, habe ich da keinen wirklichen Vergleich gefunden. Wahrscheinlich bin ich aber durch die Materialfülle von Linux einfach verwöhnt... ;)

(Firewall)

Da in FreeBSD drei Firewalls zur Auswahl stehen und ich davon einfach zu wenig Ahnung habe (mein Wissen geht über gerade die Grundzüge von IPTABLES nicht hinaus), habe ich beschlossen, in einem ersten Schritt auf eine Firewall zu verzichten (da reines Bastelsystem zum Ausprobieren). Ich neige vorsichtig PF zu, allerdings nicht aus technischen Gründen, sondern weil ich darüber eigentlich nur viel Gutes gehört habe. IPF scheint mir eine eher veraltete Lösung zu sein, während IPFW wohl auch gut ihren Sinn erfüllt. Für Vorschläge wäre ich jedenfalls offen.

(Hardware)

Ich habe aus nostalgischen Gründen eine uralte Maschine wiedererweckt, die um die Jahrtausendwende schon mal Dienste als Gateway geleistet hat (damals mit SuSE Linux). 800 MHz VIA Samuel 2 Prozessor, 256 MB RAM, 35 GB Platte, zwei Netzwerkkarten. Hätte zwar auch deutlich jüngere Hardware da, aber wie gesagt, reizte es mich einfach.

(Netzaufbau)

Mein Netzwerk sieht so aus: Das Multifunktionsgerät vom Provider hört auf 192.168.1.1 und ist über vr0 mit dem FreeBSD-Rechner verbunden, der als Gateway fungieren soll. Der Einfachheit halber bezieht der Gateway seine Adresse via DHCP (und erhielt 192.168.1.4). Das zweite Adapter ist als rl0 statisch konfiguriert auf 10.0.1.1 und mit einem Switch verbunden, an den ich mehrere Testrechner anstecken kann.

(Versuch der Umsetzung)

Erstmal habe ich dem designierten Gateway einen DHCP-Server spendiert. Das klappte auch auf Anhieb und an neue Hosts am Switch werden fröhlich Adressen aus dem 10.0.1.er Netz ausgeteilt. So weit, so gut.

Die meisten Gateway-Tutorials lassen sich aus meiner Sicht zusammenfassen als: „Konfiguriere beide Netzwerkkarten und füge dann in die rc.conf die Zeile
gateway_enable="YES"
ein“.

Das habe ich natürlich gemacht. Bringt aber an sich recht wenig. Dann habe ich geschaut, wie es mit NAT aussieht. Meist in Kombination mit einer Firewall beschrieben, ist es nicht das, was ich erstmal suchte. Irgendwo hatte ich dann von natd gelesen, fand aber nur in einer alten Version des Handbuchs seine Funktion geschildert... Habe damit eine Weile herumprobiert und letztlich keinen Erfolg gehabt.

Schlußendlich habe ich dann als letzten Versuch ein Tutorial mit NAT über PF umzusetzen versucht (also effektiv das meiste kopiert und nur die Namen der internen und externen Adapter angepaßt).

Es bleibt dabei: Ich kann den Gateway über SSH aus von einem Drittrechner aus dem 10.0.1.er Netz bedienen. Weiter aber geht's leider nicht. Wenn ich 192.168.1.1 pinge (also die Box von meinem Provider), dann bekomme ich keine Antwort. Läuft in der Zeit auf dem Gateway tcpdump, dann sehe ich, daß die Ping-Pakete durchgereicht werden, und zwar mit der 10er Adresse. Denn herrscht natürlich Schweigen.

Zuerst würde ich das Ganze wie gesagt gerne ohne Firewall realisieren und dafür mit natd (sofern das das richtige Werkzeug ist).

(Konfiguration)

Hier meine rc.conf:
Code:
hostname="beastie.nodomain.notld"
vidcontrol -h 250
keymap="german.iso.kbd"
ifconfig_vr0="DHCP"
ifconfig_rl0="inet 10.0.1.1 netmask 255.255.255.0"
dhcpd_enable="YES"
dhcpd_ifaces="rl0"
default_router="192.168.1.1"
gateway_enable="YES"
natd_enable="YES"
natd_flags="-f /etc/natd.conf"
sshd_enable="YES"
ntpd_enable="YES"
dumpdev="NO"
saver="warp"
blanktime="120"

Hier die natd.conf:
Code:
dynamic yes
interface vr0
same_ports yes
unregistered_only

Für jeden weiteren Tip oder Denkanstoß wäre ich dankbar. Denn das Thema ist, wenn man noch die Firewalls dazunimmt, ganz schön groß und ich trete schon beim zweiten Schritt auf der Stelle...
 
Ich würde PF statt natd zum Natten vorschlagen. Das geht ziemlich einfach.

Du musst halt die nat Zeilen in der pf.conf aktivieren/anpassen,
die Sysctls net.inet.ip.forwarding und ggf. net.inet6.ip6.forwarding setzen und fertig.

Als DHCP Server für meine Clients verwende ich normalerweise dnsmasq.
 
Ich würde PF statt natd zum Natten vorschlagen. Das geht ziemlich einfach.

Hallo Kamikaze! Danke für Deine Antwort erstmal.

Ja, dann werde ich das bei Gelegenheit mal ausprobieren. Im Prinzip hatte ich Firewall ja ohnehin auf dem Plan. Hoffe, daß ich damit mehr Glück habe als mit natd (auch wenn ich nach der ganzen Zeit eigentlich recht neugierig bin, was genau ich eigentlich falsch gemacht habe).

Du musst halt die nat Zeilen in der pf.conf aktivieren/anpassen,
die Sysctls net.inet.ip.forwarding und ggf. net.inet6.ip6.forwarding setzen und fertig.

Die Sysctls machen ja das gleiche wie gateway_enable in der rc.config, wenn ich das richtig verstanden habe. Was die Firewall angeht: Wahrscheinlich werde ich mich erstmal an das PF Beispiel im Handbuch beschränken - aber das reicht sicherlich auch für einen ersten Test.

[QOUTO]Als DHCP Server für meine Clients verwende ich normalerweise dnsmasq.[/QUOTE]

Danke für den Tip! Das werde ich mir mittelfristig auch mal ansehen, denn die Beschreibung in den Ports klingt ganz gut.
 
Noch mal vielen Dank an Kamikaze! Ich hatte ursprünglich gedacht, es wäre erstmal am leichtesten, einen Gateway ohne Firewall einzurichten und dann in einem nächsten Schritt die drei Firewalls auszuprobieren - wobei ich mir PF als gefühlt fortschrittlichste zuletzt auf den Plan geschrieben hatte. Deinem Tip folgend, habe ich den natd wieder verbannt und statt dessen PF mit nur ein paar Zeilen Konfiguration eingerichtet. Ergebnis: Schon geht die Sache!

Auf der einen Seite frage ich mich zwar noch, was das Problem mit dem natd ist (bzw. war), und bin noch etwas neugierig auf die anderen Firewalls - aber mit PF läuft es prima und die Konfiguration der Firewall gefällt mir so gut, daß ich dabei wahrscheinlich einfach bleiben werde. :)
 
Ich würde PF statt natd zum Natten vorschlagen. Das geht ziemlich einfach.

Du musst halt die nat Zeilen in der pf.conf aktivieren/anpassen,
die Sysctls net.inet.ip.forwarding und ggf. net.inet6.ip6.forwarding setzen und fertig.

Als DHCP Server für meine Clients verwende ich normalerweise dnsmasq.
Vorsicht! Ist gateway_enable="NO" gesetzt ist (by default) kann es passieren, dass beim Anlegen neuer Interfaces sysctl net.inet.ip.forwarding=0 gesetzt wird. Du solltest also gateway_enable="YES" verwenden statt nur /etc/sysctl.conf.
 
Vorsicht! Ist gateway_enable="NO" gesetzt ist (by default) kann es passieren, dass beim Anlegen neuer Interfaces sysctl net.inet.ip.forwarding=0 gesetzt wird. Du solltest also gateway_enable="YES" verwenden statt nur /etc/sysctl.conf.

Hallo Crest!

Danke für den Hinweis - in diesem konkreten Fall hatte ich das getan, weil ich es im Handbuch auch so gelesen hatte.

Aber gerade als Anfänger weiß ich es sehr zu schätzen, daß Du einfach eine kleine (aber wesentliche) Ergänzung gibst. Zumal ja solche Forenbeiträge oftmals auch von anderen gefunden werden, die ähnliche Probleme haben. Die bsdforen.de sind wirklich ein sehr angenehmer Ort! :)
 
Zurück
Oben