[Kommentare] FreeBSD DSL Router auf Basis von pf

buebo

Well-Known Member
Hallo,
bei Kommentaren zu diesem Threat bitte hier äussern, ich möchte es vermeiden das die Postings durch Kommentare und Meta-Diskussionen auseinander gezogen werden.

Gruß
buebo
 
Hiho

Hut ab, wow, grossartig.
Ich habs noch nicht gelesen, aber die Arbeit die da drin steckt ist unverkennbar.

Der Thread ist, btw, geschlossen.

Achja, threaD, nicht threaT ;-)
 
Arrgghh, Habe den thread wieder geöffnet. Ich sollte doch zuerst lesen, dann handeln, das geht ja noch weiter...
 
Coole Sch****!

Weitermachen da geht noch mehr!...
guck mal auf die Zeiten ( schlafen nicht vergessen!)
 
Servus.

Habe das Howto mal eben überflogen, wirklich gut.

Eine Frage habe ich aber dennoch:

Code:
sh -c "/sbin/kldload /usr/local/modules/pflog.ko"
sh -c "/sbin/kldload /usr/local/modules/pfsync.ko"
sh -c "/sbin/kldload /usr/local/modules/pf.ko"

Die Module werden also nicht unter /boot/kernel abgelegt und dann über die rc.conf geladen.
Wäre es nicht besser die Module nach /boot/kernel zu kopieren, und diese dann über /boot/loader.conf zu laden?

Oder, was mir noch besser gefällt, da diese Idee schnell mistig werden kann, sobald man einen neuen Kernel baut, denn dadurch sollten diese Module wieder rausfliegen, in der /boot/loader.conf folgendes reinhacken:

Code:
module_path="/boot/kernel;/boot/modules;/usr/local/modules"

Dann kann man die /boot/loader.conf auch dazu verwenden die Module für "pf" zu laden, und man hat eine zentralle Anlaufstelle für die zu ladenden Module.
Diese Lösung erscheint mir die sauberste zu sein.

Grüsse,

asg
 
Original geschrieben von asg

Dann kann man die /boot/loader.conf auch dazu verwenden die Module für "pf" zu laden, und man hat eine zentralle Anlaufstelle für die zu ladenden Module.
Diese Lösung erscheint mir die sauberste zu sein.

Grüsse,

asg

Stimmt, das ist eine gute Idee. Um ehrlich ist meine Lösung auch mehr eine "Quick and Dirty Hack" gewesen, gefallen hat mir das nicht.
Ich werde deine sofort mal ausprobieren und das Howto entsprechend updaten.

Cheers
buebo

--
Edit:
Ich habe jetzt mal die /boot/loader.conf um folgendes erweitert:

Code:
module_path="/boot/kernel;/boot/modules;/usr/local/modules;"
pflog_load="YES"
pfsync_load="YES"
pf_load="YES"

Was nach meinem Verständniss die Module laden sollte, allerdings beschwert sich beim Boot pflogd (den ich in der ppp.linkup starte) das das Modul nicht geladen wäre.

Lade ich die Module über die rc.conf bekomme ich andere seltsame Fehlermeldungen die allerdings seltsamerweise weder in /var/log/messages noch in dmesg auftauchen, sondern nur auf dem Bildschirm in meiner Besenkammer, was mir eben erst aufgefallen ist.
Ich weder da noch mal an die pf mailingliste schreiben.

buebo
 
Zuletzt bearbeitet:
Ok, die Situation in Bezug auf pf ist geklärt und die Änderungen sind im Howto.
Jetzt wird pf wirklich und richtig beim Boot gestartet.
Falls sich jemand danach fühlt das ganze Howto mal durchzugehen würde ich mich über Kritik freuen.

buebo
 
hi zusammen

Habe mir mal das Howto reingezogen! Nicht Schlecht! ICh habe bis jetzt immer ipfw benutzt! pf kommt ja von openbsd also sehr sicher!! :))

Ein Problem habe ich jedoch mit meiner config Datei für pf!!

Ich habe einfach mal deine kopiert jedoch funktioniert das nicht so wie ich das will!! Bei genauerem betrachten habe ich festgestellt dass die variable des externen devices als extern definiert ist! jedoch im Scipt mit $ext angesprochen wird!!

Gruss VerbalHoodz
 
Respekt!
Das wird ne wunderbare Sache dieses HowTo.

Wohl aus geschmacklichen Gründen gefällt mir ipfw besser als pf ;)
Es wäre schön, wenn deine Firewall Regeln auch in ipfw verfügbar wären.
Wenn das sonst keiner macht, könnte ich ja versuchen sie zu übersetzen (sobald ich deine Verstanden habe ;) )
Außerdem könnte man dann jetzt schon anfangen mit Traffic Shaping, da dumynet ja wunderbar funktioniert.

Beim named würde ich empfehlen 'forward only;' auch zu aktivieren, da es nach meiner Erfahrung wenig bringt named selber suchen zu lassen, wenn die DNS-Server des Providers nichts finden, eher im gegenteil, langsamer und mehr traffic, außerdem entlastet das die root server ;)

warum 'query-source address * port 53;'?
auch hier (vielleicht) wieder eine Geschmackssache, aber ich finde es "besser", wenn named von einem unpriviligierten port anfragen stellt, sieht zwar bei sockstat nicht so schön aufgeräumt aus aber was solls.
schön wäre vielleicht auch, wenn du am ende der named sektion auf das named im chroot (oder wars nen jail?) tutorial verweist.

achja, die sache mit dem /etc/ppp/ppp.linkdown, muss das sein?
ich hab das nicht, und anscheinend überschreibt der einfach die alte default route, wenn er sich neu einwählt, klappt auf jedenfall.

in deiner kernel config, sollte da nicht auch ein
options NETGRAPH_ETHER rein?
sonst lädt er es glaube ich als modul, aber ich hab auf so nem gateway halt gerne alles im kernel :)

/etc/ppp/ppp.conf
statt 'accept lqr' ist 'enable lqr' schön, unterstützt aber leider nicht jeder Provider, hat mir aber schon manchmal geholfen...

so, ich glaube das wars erstmal,
auf jedenfall ein großes Lob für deine Arbeit, sowas braucht ein Forum :)

gn
Male
 
Leider war ich die letzten Tage etwas faul, ich habe aber jetzt erst mal die Kanten geglättet (vor allem in der pf.conf) so das mittlerweile eigentlich alles funktionieren dürfte.
Wenn ich mal die Tage ausreichend langeweile habe mache ich nochmal meinen Router platt und setzte ihn Schritt für Schritt nach dem Howto zusammen.
Abgesehen davon kommt noch eine kleine erweiterung (punkt 5.2 dürfte das sein) über den dhcpd (ich muss nur noch selbst rausbekommen wie man den am angenehmsten startet, rc.conf scheind da nicht zu gehen) und evtl. noch eine kleine Einfürhung in die pf.conf und pf generell (die wird allerdings wirklich klein)

Gruß
buebo
 
buebo, buebo, alter schwede.
ich ziehe meinen hut vor dir!
ich danke dir für dieses wirklich vorzügliche stück arbeit.
ich bin ernsthaft gewillt meinen server plattzumachen :)
 
@marzl:
danke für den link, ich hab mir die regeln mal angeschaut, muss aber ehrlich gestehen, dass sie mir nicht sonderlich gut gefallen...

@buebo:
erstmal danke für die namentliche erwähnung :)
so macht es doch Spass konstruktive Kritik zu äußern.
zum DHCP kann ich mich leider nicht äußern, da ich davon leider (noch) keine Ahnung hab.
alles in allem super tut!
 
Original geschrieben von marzl
buebo, buebo, alter schwede.
ich ziehe meinen hut vor dir!
ich danke dir für dieses wirklich vorzügliche stück arbeit.
ich bin ernsthaft gewillt meinen server plattzumachen :)

Danke für die Blumen, ich bin grade dabei ;-)
Naja das mir immer mehr auffällt das ich bei der Partitionierung Mist gebaut habe trägt ein übriges dazu bei ;-)

Original geschrieben von Maledictus
@buebo:
erstmal danke für die namentliche erwähnung
so macht es doch Spass konstruktive Kritik zu äußern.
zum DHCP kann ich mich leider nicht äußern, da ich davon leider (noch) keine Ahnung hab.
alles in allem super tut!

Mittlerweile habe ich einen Weg für den dhcpd gefuden, crontab. Simpel und wirksam :-)

Ansonsten bin ich nun mal den Server neu aufsetzen...
Gruß
buebo
 
das mit der crontab ist wirklich einfach, gefällt mir persönlich aber nicht so gut.
ich finde so zeug gehört nach /usr/local/etc/rc.d/
dann kann man wenigstens beim runterfahren der kiste auch noch sachen für diesen daemon erledigen.
is aber alles geschmackssache.
nur würde ich nach dem startaufruf für nen prog nicht in der crontab suchen, da ich das wirklich nur für periodische sachen nehme, und nen reboot ist alles andere als das ;)
 
@Buebo

Als ich damals meinen Router sehr aehnlich aufgesetzt habe (ok, mit ipf) allerdings noch unter FreeBSD 4.7, gab es fuer den dhcpd ein Skript unter /usr/local/etc/rc.d mit dem man ihn "steuern" konnte. Waere ja ne Alternative zu dem cron. Kann ich aber im Moment nicht ueberpruefen, weil keinen Zugriff. Oder habe ich jetzt was falsch verstanden, dass das aus irgendwelchen Gruenden gar nicht dein Ziel war... :-)

Zu der Frage wie man unter Windows die Mac Adresse rausfindet, diese geht mit "ipconfig /all" und der Eingabeaufforderung. Dort steht sie dann unter Physikalische Adresse.

Gruss, incmc
 
hey, thx ich nutze nicht die ganze HowTo, aber denn teil: DNS und DHCP.

dir ist ein kleiner tipp fehler unterlaufen

du schriebst "setenc EDITOR edit" anstatt "setenv EDITOR edit".

mfg
eLgino
 
Danke für eure Korrekturen, ich habe im moment leider nur einen Lynx auf einem uralt Rechner, werde mich aber die Tage daran machen auszubessern.
 
ich habe heute mal auf meinem homeserver das howto schritt für schritt abgearbeitet

leider stören immer noch ein 2 kleinigkeiten:

~ du hast ja die pf.conf von dem openbsd howto 1:1 übernommen, hast aber einiges umbenannt, warum? somit enthält das script einige fehler [$NoRoute, $Ext/$Extern]

~ die einträge "named_enable & inetd_enable" sollten in der rc.conf gesetzt werden, damit alles auch nach dem reboot klappt

ich will ja net rummeckern, aber ich denke ein howto in diesem bereich hat anspruch auf richtigkeit/vollständigkeit

grade anfänger die sich schritt für schritt danach halten, sind oft überfordert wenn die pf rules aufgrund von syntaxfehlern nicht geladen werden oder die namensauflösung und active ftp nach dem neustart nicht funktionieren

ich hoffe du wirfst nochmal einen blick drauf, buebo ;)

greez
 
tach,

ich schließe mich vincent an.
ist eigentlich schon überhaupt jemand das howto durchgegangen? die pf.conf kann doch so überhaupt nicht funktionieren... :(

jede menge tippfehler! da ich freebsd anfänger bin steige ich da nicht so ganz durch.
gibt es eine fehlerfreie pf.conf?

gibt es eine einfache möglichkeit portforwarding mit einzubringen?

ich danke schonmal
grüße aus osnabrück
kewlzero3
 
Welches howto ist in Version 0.X schon fehlerfrei?
Ich denke wenn buebo das liest dann wird er auch dementsprechend anpassen. Dennoch Hut ab so ein grosses howto geschrieben zu haben.
 
Original geschrieben von incmc
[BZu der Frage wie man unter Windows die Mac Adresse rausfindet, diese geht mit "ipconfig /all" und der Eingabeaufforderung. Dort steht sie dann unter Physikalische Adresse.

Gruss, incmc [/B]

oder, wenn man die mac-adresse von anderen rechnern rausfinden will kann man auch ein
#arp -a <ip-des-ziel-rechners>
eingeben (auf windows) bzw. ein
#arp -n <ip-des-ziel-rechners>
unter *bsd... (damit frägt man allerdings nur den arp-cache des rechners ab)
 
@vincent
Huch, Dein Post ist ja vom Oktober gewesen...
Ja, hmm, dann war er wohl länger nicht mehr da. Schreibe Ihm doch eine PN oder eine mail...
 
Zurück
Oben