[OS X Power PC] DD-WRT für orginale Airport-Karten

Dieses Thema im Forum "Retro-Ecke" wurde erstellt von 78Mhz, 05.06.18.

  1. 78Mhz

    78Mhz Golden Delicious

    Dabei seit:
    05.06.18
    Beiträge:
    9
    DD-WRT ist eine alternative Router Firmware, die auf eine Vielzahl von Routern läuft. In meinem Beispiel hab ich einen alten D-Link DIR-300 A von 2007 genommen. Die Firmware wird immer noch beständig weiterentwickelt und in meinem Beispiel setzte ich eine Version vom Oktober letzten Jahres ein (17.10.2017).

    Die originalen Airport-Karten, die etwa ein einem PowerBook Titanium drin stecken, können unter MacOS 9 lediglich die Verschlüsselung WEP nutzen. Das Problem liegt hier an MacOS 9 und nicht an der Karte. WEP ist für alle praktischen Dinge geknackt. Wenn du WEP einsetzt, mußt du davon ausgehen, das dein Netzwerk effektiv als offen gelten kann. Man könnte einen Router nun für WEP einrichten und komplett vom Netzwerk abkoppeln um Schadensbegrenzung zu betreiben, aber mehr als Schadensbegrenzung ist das nicht. Dieses Tutorial beschäftig sich nicht mit WEP.

    Glücklicherweise kann die Karte ab Mac OS 10.3.x immerhin WAP als Verschlüsselung nutzen. WAP ist zwar nicht der aktuelle Standard, aber wenn man WPS (ein Modus um Geräte per Knopfdruck zu konfigurieren) ausschaltet und ein ausreichend langes Passwort nimmt (maximal 63 Zeichen) gilt WPA für die meisten Zwecke als ausreichend sicher.

    Bester möglicher wireless Mode: WPA
    Unterstützte Verschlüsselung: TKIP

    Man könnte natürlich den Hauptrouter auf WPA umstellen, aber dann müßte man auch alle Clients anpassen. Oder man besorgt oder recycelt einen alten Router auf dem DD-WRT läuft. Den kann man praktischerweise auch da anstöpseln, wo man am meisten mit dem alten Mac etwas macht.

    Es gibt zwei mögliche Setups:
    • Den Heim-Router an den Internet/WAN Port hängen und diesen auf Auto/DHCP stellen. Das funktioniert, aber nutzt die vier LAN Ports nicht sinnvoll.
    • Den WLAN/Internet Port zu den LAN-Ports konfigurieren und per Script den DHCP-Client auf diesen Ports starten.
    Ich hab mich für Version zwei entschieden, da ich die LAN-Ports so nutzen kann.

    Wenn man den Router frisch geflashed hat, läuft auf den LAN-Ports ein DHCP-Server der an angeeschlossene Clients eine IP verteilt. Man hängt sein Laptop/PC an einen LAN-Port und läßt ihn per DHCP eine IP vom DD-WRT Router beziehen. Dann kann man mit der Konfiguration starten.

    Der DD-WRT Router ist unter der IP 192.168.1.1 zu finden.

    Wenn man auf Apply klickt, werden die Settings sofort angewendet. Sollte man noch nicht alles konfiguriert haben, kann dabei der DD-WRT unerreichbar werden. Klingt furchtbar, ist es aber nicht! Per Hard-Reset kann man den DD-WRT Router auf seine Basis-Konfiguration (IP wieder 192.168.1.1) zurückstellen und kann von vorne beginnen.

    Hard-Reset: Oder 30/30/30 genannt. Man nimmt eine Büroklammer, biegt sie etwas auf und drückt damit den Reset-Knopf für 30 Sekunden. Dann schaltet man den Router aus und hält den Resetschalter weiterhin 30 Sekunden gedrückt. Dann schaltet man den Router wieder ein und hält den Resetschalter nochmal für 30 Sekunden gedrückt. Wenn man ihn endlich loslässt, setzt sich der Router wieder auf sein Ursprungssetup zurück, was etwas dauert und typischerweise einen Reboot benötigt.

    Im Reiter Setup -> Basic Setup folgende Settings setzen:
    • WAN Connection Type: Disabled
    • Optional Settings - Router Name: <Name deiner Wahl um den DD-WRT Router in der Liste vom Haupt-Router wiederzufinden>
    • Optional Settings - HostsName: <Name deiner Wahl um den DD-WRT Router in der Liste vom Haupt-Router wiederzufinden>
    • Assign WAN Port to Switch: Yes
    • DHCP Typ: DHCP Server
    • DHCP Server: Disabled
    Optional:
    • NTP einschalten und einen Zeitserver eintragen
    Im Reiter Setup -> Advanced Routung folgendes Setting setzen:
    • Operating Mode: Router
    Im Reiter Wireless -> Basic Settings folgende Settings setzen:
    • Wireless Mode: AP
    • Wireless Network Mode: B-Only
    • Channel Width: Full (20 Mhz)
    • Wireless Network Name (SSID): <Name deiner Wahl um den DD-WRT Router im Wireless wiederzufinden>
    • Wireless SSID Broadcast: (*) Enable ( ) Disable
    Im Reiter Wireless -> Wireless Security folgende Settings setzen:
    • Security Mode: WPA Personal
    • WPA Algorithms: TKIP
    • WPA Shared Key: <maximal 63 Zeichen, auch Sonderzeichen erlaubt>
    Im Reiter Security -> Firewall folgendes Setting setzen:
    • Firewall Protection - SPI Firewall: Disable
    Im Reiter Services -> Services folgendes Setting setzen:
    • DNSMasq: Disable
    Optional:
    • Secure Shell - SSHd: Enable
    • Telnet: Enable
    Im Reiter Administration -> Management folgendes Setting setzen:
    • Routing: Disable
    Optional:
    • Web GUI Port: 80
    • SSH Management: Enable
    • Telnet Mangement: Enable (im Screenshot vergessen einzuschalten)
    Nun kommen wir zu dem Script, was einen DHCP-Client auf den LAN-Ports startet und die abgefragten Werte dann in die GUI einträgt. Das erste Script funktioniert für eine Firmware vom 07.08.2010. Die v24-sp2 gilt als sehr stabil. Allerdings wird die DD-WRT ständig weiterentwickelt. Nicht jede Beta-Version funktioniert auf jeden Router. Die letzte funktionierende Version für den DIR-300 von D-Link war die vom 17.10.2017. Es gibt allerdings kleine Änderungen, was die Location vom DHCP-Client anging und wie dem Web-Gui etwas mitgeteilt wird. Daher gibt es hier zwei Scripte:

    Das Script wird unter dem Reiter Administration -> Commands als Startup gespeichert.

    Für v24-sp2:
    ln -s /sbin/rc /tmp/udhcpc
    /usr/sbin/udhcpc -i br0 -p /var/run/udhcpc.pid -s /tmp/udhcpc -H `nvram get router_name`
    route add default gw `nvram get wan_gateway`

    # Config DNS
    /bin/cat /etc/resolv.conf | /bin/grep -v nameserver > /tmp/resolv.conf
    /bin/echo nameserver `nvram get wan_get_dns` >> /tmp/resolv.conf
    /bin/cp /tmp/resolv.conf /etc/resolv.conf

    # Show Values in Web GUI
    GW=`route -n|grep UG|awk '{print $2;}'`
    IP_LAN=`ifconfig br0 | grep inet | cut -d: -f2 | cut -d' ' -f1`
    MSK=`ifconfig br0 | grep inet | cut -d: -f4`

    Für v3.0-r33525 std:
    # create a symbolic link, where the program can create a file called
    # udhcpc.expires if the symbolic link does not already exists
    [ ! -e /tmp/udhcpc ] && ln -s /sbin/rc /tmp/udhcpc

    # start the dhcp-client on the bridge interface br0 while running scripts
    # with the symbolic link created before. the hostname gets querried with
    # nvram from the persistent system settings. the default gateway is
    # stored by the client in the nvram but the route is not set. the client
    # will change the IP of it's interface.
    /sbin/udhcpc -i br0 -p /var/run/udhcpc.pid -s /tmp/udhcpc -H `nvram get router_name`
    # now set the default gateway
    route add default gw `nvram get wan_gateway`

    # Config DNS - get the old nameserver into a temporary file
    /bin/cat /etc/resolv.conf | /bin/grep -v nameserver > /tmp/resolv_tmp.conf
    # put the new nameserver querried by the dhcp-client into the temporary file
    /bin/echo nameserver `nvram get wan_get_dns` >> /tmp/resolv_tmp.conf
    # make the temporary file permanent
    /bin/cp /tmp/resolv_tmp.conf /etc/resolv.conf

    # Show Values in Web GUI per nvarm variables
    nvram set lan_ipaddr=`ifconfig br0 | grep inet | cut -d: -f2 | cut -d' ' -f1`
    nvram set lan_netmask=`ifconfig br0 | grep inet | cut -d: -f4`
    nvram set lan_gateway=`route -n|grep UG|awk '{print $2;}'`
    nvram set sv_localdns=`nvram get wan_get_dns`

    Meine Dank gilt an den User Bib aus dem DD-WRT Wiki für seinen Artikel und an den NetGuy für sein Post im seinem Blog.
     

    Anhänge:

    #1 78Mhz, 05.06.18
    Zuletzt bearbeitet: 05.06.18