Router unter OpenBSD4.1

angelfreund

lernwillig
Hallo zusammen,

bin momentan dabei mir einen Router aufzusetzten.
Habe dazu auf einem alten Schneider-PC mit Cyrix-CPU(120Mhz)und 16Mb RAM OpenBSD4.1 installiert. Hoffe die Kiste ist hierfür ausreichend.
Allerdings stellen sich mir auch jede Menge Fragen worauf ich eine Antwort zu finden hoffe. (...keine allzu dollen Erfahrungen...)

Die Kiste hat drei Netzwerkkarten, eine davon soll ans DSL-Modem die anderen beiden sollen mit dem internen Netzwerk verbunden werden.
Hier soll alles mit statischen IP's funktionieren.

-Sollte man "kernel-in PPPoE" verwenden und was wäre der Vorteil? Muss der Kernel dann neu kompiliert werden?
-Wie kann man vermeiden, dass der Router WAN-seitig angepingt werden kann?
-Ist es möglich, mehrere Karten unter OpenBSD als Switch laufen zu lassen?
-Was ist eurer Meinung nach außerdem sicherheitstechnisch unbedingt zu beachten oder zu empfehlen?

Viele Grüße und schon mal ein Danke.
 
Habe dazu auf einem alten Schneider-PC mit Cyrix-CPU(120Mhz)und 16Mb RAM OpenBSD4.1 installiert. Hoffe die Kiste ist hierfür ausreichend.

Hm.. 16Mb sind ein bisschen wenig RAM... könnte knapp werden.

Zu PPPoE kann ich nichts sagen, da ich damit noch keine Erfahrungen gemacht habe.

-Wie kann man vermeiden, dass der Router WAN-seitig angepingt werden kann?
warum sollte jemand so etwas wollen? Das macht nur mehr kaputt als es bringt.
-Ist es möglich, mehrere Karten unter OpenBSD als Switch laufen zu lassen?
Stichwort: bridge
-Was ist eurer Meinung nach außerdem sicherheitstechnisch unbedingt zu beachten oder zu empfehlen?
die FAQ zu PF lesen! lesen! lesen!

auf bald
oenone
 
Hallo zusammen,

bin momentan dabei mir einen Router aufzusetzten.
Habe dazu auf einem alten Schneider-PC mit Cyrix-CPU(120Mhz)und 16Mb RAM OpenBSD4.1 installiert. Hoffe die Kiste ist hierfür ausreichend.

Hmmm, ich kenn schneider pcs nicht - haben die schon PCI? Die CPU reicht auf jeden fall, allerdings dürfte es etwas mehr ram sein, im notfall tun 16MB aber auch. 32 oder gar 64mb wären sicherlich besser. Die enstprechenden Module zu bekommen sollte rel. einfach sein ;)
Allzu große sprünge kannst du natürlich nicht erwarten, umfangreiche graphische Programme (Firefox oder so), "leistungshungrige" Serverdienste wie Apache+php+mysql sollten das ding an die grenze Bringen


Die Kiste hat drei Netzwerkkarten, eine davon soll ans DSL-Modem die anderen beiden sollen mit dem internen Netzwerk verbunden werden.
Hier soll alles mit statischen IP's funktionieren.

Werden alle 3 Karten erkannt? Was sind das für Karten?)
Probleme sehe ich da aber weniger.

-Sollte man "kernel-in PPPoE" verwenden und was wäre der Vorteil? Muss der Kernel dann neu kompiliert werden?

Ja, das ist sinvoll, in-Kernel-PPPoE ist schneller und stabil und funktioniert in 95% aller fälle besser - neu kompilieren must du dafür aber nicht, lediglich ein wenig konfigurieren.

-Wie kann man vermeiden, dass der Router WAN-seitig angepingt werden kann?

Ja, das ist mit pf möglich, i.A. ist es aber wenig empfehelenswert und erhöht die Sicherheit NICHT! Eine regel die ICMP verbietet ist schnell gesetzt.

-Ist es möglich, mehrere Karten unter OpenBSD als Switch laufen zu lassen?
-Was ist eurer Meinung nach außerdem sicherheitstechnisch unbedingt zu beachten oder zu empfehlen?

Ja, das ist generell möglich, nennt sich dann Bridge - wenn du magst kannst du da drauf sogar filtern - bei dem o.G. System wird das aber nicht sonderlich performant sein
Sicherheitstechnisch ... schwierige Frage ... immer alle Updates, keine Serverdienste nach aussen/innen anbieten, also das was man ganz generell machen sollte ...
 
in der manpage von pppoe steht drin, wie du schnell das in-kernel-pppoe aufgestellt bekommst. ist ne sache von wenigen minuten und die manpage dazu findest du hier

hth,
marc

EDIT: pakete filterst du mit pf und im faq-bereich der openbsd-homepage steht auch, wie du das machst und es sind auch ein paar beispiele vorhanden, die dir unbedingt weiterhelfen ;)
 
Hallo zusammen,
erstmal danke für die hinweise. Hab jetzt erstmal den RAM auf 32mb aufgestockt.
Die Karten werden alle erkannt. rl0, rl1, rl1.
An rl0 hängt das dsl-Modem. --> in /etc/hostname.rl0 hab ich up eingetragen.
Dann hab ich /etc/hostname.pppoe0 erstellt und folgendes eingetragen:

inet 0.0.0.0 255.255.255.255 NONE \
pppoedev rl0 authproto pap \
authname 'xxxxxxxxxxxxxxxxx#0001@t-online.de' authkey 'xxxxxx' up
dest 0.0.0.1
!/sbin/route add default 0.0.0.1

Wenn ich jetzt zb. einen DNS-Server von t-online anpingen will ist dies erfolglos.
Weis nicht warum. ping sollte doch so eigentlich schon funktionieren?

Gruß
 
was sagt denn ifconfig dazu? hast du eine ip von deinem isp bekommen? siehst du, ob du verbunden bist (anzeigen am modem)? hast du vielleicht pf aktiviert und icmp-pakete werden geblockt?
authname 'xxxxxxxxxxxxxxxxx#0001@t-online.de' authkey 'xxxxxx' up
bist du sicher, dass die raute da hingehört? als ich noch bei t-online war, hatte ich das ohne raute eingetragen (da hatte ich aber auch noch kein bsd als router).
 
Hallo makenoob,

ich habe die Zeile so wie sie ist aus dem Konfiguratios-interface des Routers rauskopiert mit welchem ich derzeit im Netz bin. Ich besitze keine statische IP.
ifconfig sagt:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
groups: lo
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:11:6b:94:60:78
media: Ethernet autoselect (none)
status: no carrier
inet6 fe80::211:6bff:fe94:6078%rl0 prefixlen 64 scopeid 0x1
rl1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:11:6b:94:07:e7
media: Ethernet autoselect
status: no carrier
rl2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:11:6b:94:65:55
media: Ethernet autoselect
status: no carrier
pflog0: flags=0<> mtu 33224
enc0: flags=0<> mtu 1536
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
dev: rl0 state: PADI sent
sid: 0x0 PADI retries: 48 PADR retries: 0
sppp: phase establish authproto pap authname "000xxxxxxxxxxxxxxxxxxxxx#0001@t-online.de"
groups: pppoe
inet6 fe80::211:6bff:fe94:6078%pppoe0 -> prefixlen 64 scopeid 0x7
inet 0.0.0.0 --> 0.0.0.1 netmask 0xffffffff

Was ist aber lo0? Ist das ein virtuelles device?
 
inet 0.0.0.0 255.255.255.255 NONE \
pppoedev rl0 authproto pap \
authname 'xxxxxxxxxxxxxxxxx#0001@t-online.de' authkey 'xxxxxx' up
dest 0.0.0.1
!/sbin/route add default 0.0.0.1

Hm, ist zum setzen der route bei peer-to-peer nicht der Ausdruck "HISADDR" vorgesehen?! Versuchs mal so:
Code:
inet 0.0.0.0 255.255.255.255 NONE \
	pppoedev rl0 authproto pap \
	authname 'xxxxxxxxxxxxxxxxx#0001@t-online.de' authkey 'xxxxxx' up
!/sbin/route add default HISADDR

PS: ja, lo0 ist das Loopback-Device

Gruß


edit: Oder schreibs mal so wie's in der Manpage steht: pppoe(4)
 
Zuletzt bearbeitet:
HISADDR ist eigentlich unnötig, habe ich auch nicht und bei mir funktioniert alles. Zwei nette Links gibts in einem meiner alten Posts:
http://www.bsdforen.de/showpost.php?p=158690&postcount=7

Eigentlich sollte es mit diesem Eintrag funktionieren:

Code:
pppoedev ne0
!/sbin/ifconfig *interface* up
!/usr/sbin/spppcontrol \$if myauthproto=pap myauthname=*name* \
        myauthkey=*ip*
!/sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff
!/sbin/route add default 0.0.0.1
up

zumindest tuts so bei mir:D
 
Zuletzt bearbeitet:
lo0 ist das localhost interface. interessant ist die zeile:
Code:
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAS T> mtu 1492
dev: rl0 state: PADI sent
sid: 0x0 PADI retries: 48 PADR retries: 0
sppp: phase establish authproto pap authname "000xxxxxxxxxxxxxxxxxxxxx#0001@t-online.de" 
groups: pppoe
inet6 fe80::211:6bff:fe94:6078%pppoe0 -> prefixlen 64 scopeid 0x7
inet 0.0.0.0 --> 0.0.0.1 netmask 0xffffffff
die besagt, dass du keine ip vom provider hast, sonst sähe sie bspw. so aus:
Code:
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1488
        dev: sis1 state: session
        sid: 0xccf PADI retries: 0 PADR retries: 0 time: 14:10:56
        sppp: phase network authproto pap authname "XXXXXXXXXXX" 
        groups: pppoe egress
        inet6 fe80::200:24ff:fec7:a21c%pppoe0 ->  prefixlen 64 scopeid 0x7
        inet 84.62.14.31 --> 0.0.0.1 netmask 0xffffffff
versuch es mal bitte ohne die raute; vielleicht trennt der router dadurch einfach nur die anmeldung von der mitbenutzernummer, die bei t-online erforderlich ist.
 
HISADDR ist eigentlich unnötig, habe ich auch nicht und bei mir funktioniert alles. Zwei nette Links gibts in einem meiner alten Posts:
http://www.bsdforen.de/showpost.php?p=158690&postcount=7

Eigentlich sollte es mit diesem Eintrag funktionieren:

Code:
pppoedev ne0
!/sbin/ifconfig *interface* up
!/usr/sbin/spppcontrol \$if myauthproto=pap myauthname=*name* \
        myauthkey=*ip*
!/sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff
!/sbin/route add default 0.0.0.1
up

zumindest tuts so bei mir:D

ja, das mag zwar noch funktionieren, ist aber nicht mehr der empfohlene weg:
man pppoe schrieb:
A typical /etc/hostname.pppoe0 file looks like this:

inet 0.0.0.0 255.255.255.255 NONE \
pppoedev ne0 authproto pap \
authname 'testcaller' authkey 'donttell' up
dest 0.0.0.1
!/sbin/route add default 0.0.0.1

The physical interface must also be marked `up':

# echo "up" > /etc/hostname.ne0

weiss nicht mehr, wann das geändert wurde, aber irgendwann hatten die das jedenfalls so umgstrickt, dass spppcontrol nicht mehr verwendet werden soll.
 
ähm ja tut mir leid, war mal wieder voreilig, habe den falschen abschnitt koppiert...
wollte eigentlich den kopieren in dem sppcontroll schon entfernt wurde, steht ja auch in meinem link ich doof...

inet 0.0.0.0 255.255.255.255 0.0.0.1 pppoedev *interface* \
authproto pap authname *name* authkey *key* up
!/sbin/route add default 0.0.0.1

ist der richtige weg. habe auch grad mal meine configs durchgeschaut.
 
ok, habe folgendes getan:
- die Raute aus der Benutzerkennung entfernt
- in die /etc/rc.local folgendes eingefügt:

if [ -x /usr/local/sbin/pppd ]; then
echo -n 'pppd'; /usr/local/sbin/pppd
fi
(sollte da nicht eine Meldung bei Systemstart kommen, dass der ppp-daemon gestartet wurde? Oder muss der Eintrag -wenn überhaupt- auch noch in rc.conf rein? In rc.conf.local passierte jedenfalls nix.)

dann :
PING 217.237.149.225 (217.237.149.225): 56 data bytes
64 bytes from 217.237.149.225: icmp_seq=0 ttl=251 time=42.662 ms
64 bytes from 217.237.149.225: icmp_seq=1 ttl=251 time=41.822 ms
64 bytes from 217.237.149.225: icmp_seq=2 ttl=251 time=42.040 ms
64 bytes from 217.237.149.225: icmp_seq=3 ttl=251 time=42.436 ms
64 bytes from 217.237.149.225: icmp_seq=4 ttl=251 time=41.542 ms
--- 217.237.149.225 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss

round-trip min/avg/max/std-dev = 41.542/42.100/42.662/0.444 ms

so, als nächstes werd ich mich dran machen rl1 u. rl2 zu einer bridge zu verbinden. Diese beiden Interfaces sollen dann vom Prinzip her als switch unter einer statischen ip zusammengefasst werden. Ich hoffe mal das das so geht wie ich mir das gedacht habe. Für etwaige Bedenken oder Tipps bin ich sehr dankbar.

Gruß
 
gibt es die datei pppd denn überhaupt? wenn du nur kernel-pppoe machen willst, brauchst du den abschnitt, den du in rc.conf.local gesetzt hast nicht. kernel-pppoe wird gestartet, wenn die entsprechende hostname.pppoeX angelegt wurde und die entsprechende syntax enthält.
 
Hallo,
den o.g. Abschnitt habe ich wieder aus der rc.local rausgenommen.

Ich komme irgendwie mit der Konfiguration der Bridge nicht klar. Vielleicht weis ja jemand was dazu und kann mir etwas Starthilfe geben:

rl0 --> if zum DSL-Modem
rl1 u. rl2 sollen zu einer bridge zusammengefasst werden, welche als switch arbeitet und mit der die Rechner im internen Netz verbunden werden. pf ist (vorerst) noch nicht aktiviert.
Der Bridgename soll 192.168.1.1 sein. Ist es überhaupt möglich einer Bridge eine ip zuzuweisen?
Ich hab "inet 192.168.1.1 225.225.225.0 NONE" > /etc/bridgename.bridge0 versucht, da bekam ich beim starten die Meldung: brconfig: unrecognized option: inet. War also scheinbar der falsche Weg.
brconfig -a sagt nur:
bridge0: flags=0<>
priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
Addresses (max cache: 100, timeout: 240):
...wie gesagt, bin Anfänger.

Gruß
 
hmmm, ich bin mir nicht 100% sicher

aber ich denke du musst die ip dann "ganz normal" per ifconfig zuweisen, oder über hostname.bridge

Ich _vermute_ das du einer der rl0 karten die IP einfach zuweisen solltest, funzt bei "meiner" bridge für qemu zumindest
 
ok, rl1 ist jetzt konfiguriert mit 'inet 192.168.1.10 225.225.255.0 NONE' - wird auch bei ifconfig so aufgeführt.
Wenn ich jetzt brconfig add rl1 mache, kommt die Meldung, dass rl1 nicht konfiguriert sei.
Sollte ich vielleich das "inet" weglassen und nur '192.168.1.10 255.255.255.0 in die bridgename.bridge0 schreiben?
 
du kannst bridges keine ip-adressen zuweisen. das geht nur einzelnen netzwerkkarten, die allerdings member der bridge sein dürfen.
funktioniert es denn, wenn du die karten einfach so der bridge hinzufügst (also brconfig add ... add...)? die manpages zu bridge, bridgename.if und brconfig hattest du dir schon angesehen?
 
Hallo zusammen,
also ich hab soweit alles hinbekommen, Der Router routet wie verrückt. Die LAN-Bridge läuft auch. Habe der einen Karte eine IP gegeben, die zweite Karte "up" gesetzt und beide zur Bridge zusammengefasst.
Danke an alle für die Tipps!
Aber wie es eben so ist, wenn ein Problem gelöst ist hat man auch schon das nächste an der Backe.
Ein LAN-Teilnehmer nutzt emule und directplay und die Sachen wollen einfach nicht laufen...
Ich denke das gehört dann aber besser in einen neuen thread.
 
Zurück
Oben