Anzeige:
Ergebnis 1 bis 5 von 5

Thema: OpenBSD 3.0 als DSL-Router

  1. #1
    Premium Mitglied
    Registriert seit
    Jul 2001
    Beiträge
    132

    OpenBSD 3.0 als DSL-Router

    hallo,
    da ich jetzt schon seit über einem jahr einen suse-router hatte und mich damit glaube
    ich nun einigermassen auskenne, wollte ich mir einen neuen dsl-router basteln mit
    openbsd 3.0; wenn ihr soetwas vorhabt solltet ihr euch mit vi anfreunden, da es der
    einzige editor unter openbsd ist :-)
    zuerst solltet ihr euch openbsd besorgen, also geht man auf www.openbsd.org und saugt
    sich openbsd 3.0 von einem mirror;
    danach erstellt ihr euch eine bootdiskette mit

    dd if=floppy30.fs of=/dev/euer floppy

    in windows mit:

    fdimage -q floppy30.fs a:

    so, nun könnt ihr von dieser disc booten; jetzt kommen erst einmal ein paar schwarz
    blaue zeilen und wenn alles initialisiert wurde könnt ihr openbsd installieren; folgt
    dabei am besten der anleitung auf openbsd.org
    http://www.openbsd.org/faq/faq4.html (die faq ist im übrigen spitze gemacht, sehr
    übersichtlich und gut erklärt, aber lest sie auf englisch da die deutsche veraltet ist ;-)

    sehr wichtig:
    konfiguriert nur die netzwerkkarte die ins interne lan geht, die andere die am dsl-modem
    hängt nicht konfigurieren !!! die nic die ins interne lan geht, muss ins gleiche subnetz
    wie die clients (also z.B. nic vom router 192.168.1.1, w2k client 192.168.1.2 usw.)
    und trage gleich den nameserver für die interne router-karte ein von der telekom 212.185.249.116
    oder 217.5.115.7
    wenn ihr euch wundert warum es kein eth0 usw. gibt, die bezeichnung für eure netzwerkkarte ist
    hardwarespezifisch (bei 3Com xl0, bei einem anderen anbieter ist sie wieder anders, bei intel war
    es glaube ich fxp0 ...)

    wenn ihr openbsd installiert habt solltet ihr als nächstes die tastatur auf deutsch
    umstellen (und verwendet bei der Installation bloss keine sonderzeichen im root-passwort,
    ansonsten könnt ihr euch erstmal nicht einloggen, bis ihr merkt das es ja jetzt deutsch
    ist und nicht mehr englisch :-)
    umstellen von der tastatur von en auf de:

    vi /etc/wsconsctl.conf

    nun so ändern:

    keyboard.encoding=de

    so, nun haben wir nach dem boot eine deutsche tastatur, wenn ihr sie gleich wollt und
    nicht booten wollt:

    wsconsctl -w keyboard.encoding=de

    als nächstes sollte man die bash installieren, ausser ihr findet gefallen an der normalen
    sh, aber ich persönlich vermisse die autovervollständigung und pfeil nach oben/unten;
    ich hab dazu einfach das bash-2.05-static.tgz package gesaugt;
    dann nach /usr/src/bash entpackt;

    tar xfvz bash-2.05-static.tgz


    dann ins bin verzeichnis wechseln und bash nach /bin
    kopiert;

    cp bash /bin

    dann noch die rechte richtig eingestellt im /bin verzeichnis:

    chmod -w bash

    und

    chgrp bin bash

    das es am ende so aussieht:

    -r-xr-xr-x 1 root bin 737280 Mar 26 14:27 bash

    jetzt muss noch die default-shell von root geändert werden und die bash bei den shells eingetragen
    werden

    vi /etc/shells
    und /bin/bash hinzufügen.

    default-root shell ändern:
    chsh

    und ändert die Zeile "Shell: /bin/csh" zu "Shell: /bin/bash"

    so jetzt haben wir nach dem booten eine deutsche tastatur und die bash.

    jetzt erstellen wir uns eine datei für dienste die wir nicht brauchen, d.h. damit
    diese Dienste nicht automatisch gestartet werden:

    vi /etc/rc.conf.local

    und tragen das hier ein

    sendmail_flags=NO
    portmap=NO
    inetd=NO
    ntpd=NO


    so jetzt können wir uns an die konfigurations-dateien für dsl machen.
    dazu müssen wir 3 config-dateien erstellen in /etc/ppp
    zuerst die /etc/ppp/ppp.conf
    (WICHTIG: immer ein LEERZEICHEN vor jeder zeile in den dateien die ihr erstellt wo ich es auch gemacht habe damit es funktioniert)

    pppoe:
    set device "!/usr/sbin/pppoe -i euer interface zum dsl-modem"
    disable acfcomp protocomp vjcomp deflate pred1
    deny acfcomp
    set mru 1492
    set mtu 1492
    set crtscts off
    set speed sync
    accept lqr

    set dial
    set login
    set timeout 0
    set authname "t-online-nr._und_anschlusskennung#0001@t-online.de"
    set authkey euer passwort
    set ifaddr 192.168.1.1/0 192.168.1.2/0 0.0.0.0 0.0.0.0
    add default HISADDR
    enable dns


    wichtig sind die anführungszeichen beim authname da die bash ansonsten probleme
    mit dem sharp (#) hat;

    jetzt brauchen wir noch 2 scripte damit dsl hochgefahren und heruntergefahren wird:
    (WICHTIG: immer ein LEERZEICHEN vor jeder zeile in den dateien die ihr erstellt wo ich es auch gemacht habe damit es funktioniert)

    /etc/ppp/ppp.linkup
    MYADDR:
    ! sh -c "/sbin/ifconfig pflog0 up"
    ! sh -c "/sbin/pflogd"
    ! sh -c "/sbin/pfctl -e -l tun0 -F all -O aggressive -R /etc/pf.conf -N /etc/nat.conf"

    (WICHTIG: immer ein LEERZEICHEN vor jeder zeile in den dateien die ihr erstellt wo ich es auch gemacht habe damit es funktioniert)

    /etc/ppp/ppp.linkdown
    MYADDR:
    ! sh -c "/sbin/pfctl -d"
    ! sh -c "kill 'cat /var/run/pflogd.pid'"
    ! sh -c "/sbin/ifconfig pflog0 down"
    ! sh -c "/sbin/route delete default"

    jetzt müsstet ihr eigentlich schon online gehen können mit:

    /sbin/ifconfig euer interface zum dsl-modem up
    /usr/sbin/ppp -ddial pppoe

    und nun müsst ihr online sein;
    jetzt nur noch ip-forwarding aktivieren, also auf 1 setzen und masquerading (nat) und die firewall
    konfigurieren:

    vi /etc/sysctl.conf

    eintrag ändern auf:
    net.inet.ip.forwarding=1

    um es gleich zu ändern ohne zu booten:
    sysctl -w net.inet.ip.forwarding=1

    nun noch die nat.conf und pf.conf anpassen:

    /etc/nat.conf

    folgende zeile einfügen:
    nat on tun0 from 192.168.1.0/24 to any - tun0

    tun0 ist eure schnittstelle zum dsl-modem, tun0 wird die dynamische ip zugewiesen

    so nun noch den paketfilter anpassen:

    ## Variablen ##

    Ext = "tun0"
    Int = "eure schnittstelle zum dsl-modem"
    Loop = "lo0"
    IntNet = "192.168.1.0/24"

    # Adressen die auf dem externen Device nicht geroutet werden
    NoRoute = "{ 127.0.0.1/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 255.255.255.255/32 }"

    # Ports die geoeffnet werden sollen
    InServicesTCP = "{ ssh, auth, ftp }"

    ## Regeln ##

    # Fragmentierte Packete saeubern - rechenaufwendig
    scrub in on { $Ext, $Int } all

    # Generelle Block Regeln

    block out on $Ext all
    block in on $Ext all

    block return-rst out log on $Ext proto tcp all
    block return-rst in log on $Ext proto tcp all

    block return-icmp out log on $Ext proto udp all
    block return-icmp in log on $Ext proto udp all

    # kein ipv6
    block in quick inet6 all
    block out quick inet6 all

    # loopback darf alles
    pass in quick on $Loop all
    pass out quick on $Loop all

    # Erschwert scannen mit nmap und co.
    block in log quick on $Ext inet proto tcp from any to any flags FUP/FUP
    block in log quick on $Ext inet proto tcp from any to any flags SF/SFRA
    block in log quick on $Ext inet proto tcp from any to any flags /SFRA

    # IP-Spoofing verhindern
    block in log quick on $Ext inet from $NoRoute to any
    block out log quick on $Ext inet from any to $NoRoute

    # Ping akzeptieren
    pass in quick on $Ext inet proto icmp all icmp-type 8 code 0 keep state

    # Ports nach aussen oeffnen
    pass in quick on $Ext inet proto tcp from any to any port $InServicesTCP flags S/SAFR keep state

    # HTTP nach aussen freigeben
    pass in quick on $Ext inet proto tcp from any to any port 80

    # Raus darf (fast) alles
    pass out quick on $Ext all keep state

    so nun noch die nat.conf und pf.conf aktivieren:

    pfctl -R /etc/pf.conf -N /etc/nat.conf -e

    wenn ihr änderungen an dem paketfilter macht könnt ihr es so wieder neu einlesen lassen:

    pfctl -R /etc/pf.conf

    fertig ist der dsl-router mit openbsd;
    falls irgendwas nicht gehen sollte, ihr fragen habt (wobei ich jetzt auch nicht der bsd-gott bin
    :-) oder ich einen fehler gemacht habe in diesem kleinen how-to mail mir:

    moR-pH-euS@gmx.net
    Geändert von [moR-pH-euS] (19.06.02 um 18:02 Uhr)
    http://www.bsdforen.de

    Alles, was wirklich Spaß macht, ist entweder unmoralisch, ungesetzlich oder macht dick. [Alexander Wollcott]

  2. #2
    Registrierter Benutzer
    Registriert seit
    Apr 2002
    Ort
    Daheim ;)
    Beiträge
    21
    mh, ne frage
    geht der auch mit NetBsd ?


    cu*Kr1x

  3. #3
    Premium Mitglied
    Registriert seit
    Jul 2001
    Beiträge
    132

    gute frage...

    für net-bsd weiss ich es leider nicht... ich habe zwar gerade auf www.netbsd.org nachgeschaut, aber nichts gefunden...
    habe mich bis jetzt auch nur mit openbsd und freebsd beschäftigt und unter diesen unixen läuft es ohne probleme (wenn man den hohen konfigurationsaufwand in kauf nimmt... ;--)
    http://www.bsdforen.de

    Alles, was wirklich Spaß macht, ist entweder unmoralisch, ungesetzlich oder macht dick. [Alexander Wollcott]

  4. #4
    Registrierter Benutzer
    Registriert seit
    Nov 2001
    Beiträge
    110
    hi [moR-pH-euS],

    vielleicht solltest du noch erwähnen, dass man in der ppp.conf nach dem connection-name bzw. "default" in der darauffolgenden zeile ein leerzeichen machen muss.
    also so: (der _ steht für leer)


    pppoe:
    _set device "!/usr/sbin/pppoe -i euer interface zum dsl-modem"
    _disable acfcomp protocomp vjcomp deflate pred1
    _deny acfcomp

    gruß, mark
    liebe ist, auch nach bluescreens zu behaupten es gäbe keine alternative

    deutsche bsd community

  5. #5
    Premium Mitglied
    Registriert seit
    Jul 2001
    Beiträge
    132
    stimmt da hast du recht, das ist ziemlich wichtig; sonst gehts nämlich nicht... ;-) werde ich gleich mal editieren; danke
    http://www.bsdforen.de

    Alles, was wirklich Spaß macht, ist entweder unmoralisch, ungesetzlich oder macht dick. [Alexander Wollcott]

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •