FreeBSD-5.2 und IPFIREWALL

mario88

FREEAAK
Ich hab ein Problem mit dem neuen FreeBSD 5.2-RELEASE und der IPFIREWALL. Unter 4.9 hab ich nach folgendem HowTo die Firewall geschrieben. http://www.bsdforen.de/forums/showthread.php?s=&threadid=148&perpage=15&pagenumber=1
Da hat auch alles prächtig funktioniert. Der PC sollte auch als kleiner Router agieren und er hat es auch getan. Es hat wirklich alles funktioniert. Jetzt hab ich ein Update auf 5.2 gemacht und hab wieder folgende Sachen in den Kernel reinkompiliert:
Code:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT
In der rc.conf steht folgendes:
Code:
firewall_enable="YES"
firewall_script="/etc/firewall/fwrules"
firewall_logging="YES"
Und mit 5.2 kann ich nicht mal ins Internet.
Mit 4.9 hat mit dieser Konfiguration alles funktioniert.
Woran kann das liegen. Wurde da irgendwas im Kernel verändert?
 
freeBSD 5.x hat IPFW2, was aber nur ein Superset von IPFW1 ist.
Dein IPFW1 Skript sollte nach wie vor funktionieren.
Schau dir mal mit `ipfw show` die geladenen Regeln an und kuck ob du dir die irgendwie erklaeren kannst. Ich vermute ja der laedt keine und ist in seinem `default to deny` Status.
 
Danke für die Antwort, aber das ganze war ein Fehler von mir. Mein Problem hat nämlich gar nichts mit IPFIREWALL zu tun. Ich hab mir jetzt einen Kernel komplett ohne IPFIREWALL übersetzt und siehe da: Die Internet-Connection geht auch nicht. :confused:
Das Problem ist nämlich das ich per DHCP gar keine IP bekommen. Meine NIC sis0 ist an ein Kabelmodem angeschlossen und ich bekomme per DHCP die IP. (immer dieselbe) Aber wenn ich mit
Code:
dhclient sis0
versuche mir eine IP zu holen, wird dieser Befehl zwar ausgeführt, ich erhalte aber keine IP-Adresse. (bei ifconfig steht inet 0.0.0.0) Jetzt habe ich in dmesg nach sis0 gesucht und eine mir nichtssagende Meldung entdeckt:
sis0: <NatSemi DP8381[56] 10/100BaseTX> port 0xb000-0xb0ff mem 0xfb011000-0xfb011fff irq 22 at device 6.0 on pci2
sis0: Silicon Revision: DP83815D
sis0: Ethernet address: 00:40:f4:52:d1:92
miibus2: <MII bus> on sis0
sis0: Applying short cable fix (reg=f8)
Was bedeutet das letzte? Und kann das was damit zu tun haben?
 
OK, ich hatte bis jetzt keine Zeit mehr mich damit auseinanderzusetzen, aber jetzt geht's wieder. (Semesterferien) :)
Das dumme an der Sache ist, dass ich jetzt auch unter FBSD nix updaten kann, weil ich ja nicht ins Internet kann.
Jetzt hab ich mir gedacht ich nehm einfach die alte if_sis.c von FreeBSD4 und compile mit ihr den 5.2-er Kernel. Aber ich finde die Datei im Internet nirgends. Aber das müsste doch theoretisch funktionieren oder?
 
Hm, das verstehe ich nicht: Du kannst unter FreeBSD nicht updaten, weil du nicht ins Internet kannst - und dann sagst du zwei Sätze weiter, du findest die Datei if_sis.c nicht im Internet. Offensichtlich hast du also noch einen anderen Rechner, mit dem du online gehen kannst. Ansonsten setze dir doch eben schnell auf dem zweiten Rechner per Floppy FLI4L auf und update dann dein FreeBSD über das FLI4L-Gateway.
 
Ich hab auf dem Rechner ja nicht nur FBSD, sondern auch Gentoo Linux installiert. Mit dem schreibe ich hier jetzt und damit hab ich auch die if_sis.c gesucht.
 
Hi,

habe auch eine sis0 Karte (Netgear FA 311). Sie läuft schon seit 4.8 und auch heute mit 5.2.1 gibts keine Probleme.

im dmesg kommt das gleich wie bei dir

sis0: Applying short cable fix (reg=f5)
sis0: Applying short cable fix (reg=e8)

kann dir allerdings nicht sagen was das bedeutet.

Hast du in der /etc/rc.conf 'ifconfig_sis0="DHCP"' eingetragen ?
 
Ja, in der rc.conf habe ich nix geändert. Und ich hab ja auch versucht den dhclient manuell zu starten. Ich krieg einfach keine IP. ;'(
 
Ich hab mir jetzt unter Linux die neuere Sourcen für das System gezogen, FBSD gestartet (natürlich Linux - Partition reingemountet) und die Sourcen nach /usr/src extrahiert. Dann einen neuen Kernel übersetzt, aber es hat immer noch nicht funktioniert.
Aber zumindest kam jetzt eine vernünftige Fehlermeldung beim Starten des dhclients und zwar "bpf device not found" Daraufhin hab ich einen Kernel mit device bpf neu übersetzt und siehe da: Ich krieg eine IP und komme ins Internet. :)
Aber kann mir mal jemand erklären warum das so ist :confused:
 
bpf ist der Berkley Packet Filter. Die library um bitweise raw auf den Paketen zu arbeiten. Scheint wohl nicht ohne zu gehen und wird auch vom Handbuch bestaetigt.
 
Ja, bpf und PFIL_HOOKS sind neuerdings defaultmäßig in GENERIC drin. Brauchste zusammen mit INET6 und RANDOM_IP_ID sowieso, wenn du pf ausprobieren willst.
 
Zurück
Oben