Opennet Firmware
Diese Anleitung ist nagelneu und noch nicht gegengelesen.
Inhaltsverzeichnis |
Download
- aktuelle Version: http://absorb.it/whiterussian/opennet-openwrt-brcm-2.4-squashfs_0.5.trx
Installation
Vorbereitung
Wichtig falls das Firmware-update fehlschlägt:
- ASUS: Unbedingt die Adresse des Routers im lokalen Netzwerk merken (meist 172.16.0.1)
- Linksys: Unbedingt die Option boot_wait setzen
In der folgenden Beschreibung wird davon ausgegangen, dass auf dem Router bereits eine funtionierende und lauffähige Version der Freifunk-Software installiert war. Dies wird in der Beschreibung als Basis genommen, die Firmware ist selbstverständlich auch ausgehend von anderen Vorraussetzungen installierbar.
Da sich die Opennet-Firmware nur mit den erweiterten Möglichkeiten von OpenWRT whiterussian installieren lässt, muß dieses zuerst installiert werden.
erster Durchgang: install whiterussian jffs
Wenn auf eurem AccessPoint bereits whiterussian oder eine opennet-firmware läuft könnt ihr diesen Punkt überspringen.
Firmware herunterladen:
ASUS WL500g: http://downloads.openwrt.org/whiterussian/rc2/bin/openwrt-brcm-2.4-jffs2-4MB.trx
Linksys WRT54G: http://downloads.openwrt.org/whiterussian/rc2/bin/openwrt-wrt54g-jffs2.bin
Linksys WRT54GS: http://downloads.openwrt.org/whiterussian/rc2/bin/openwrt-wrt54gs-jffs2.bin
Firmware über das Webfrontend des Routers aktualisieren.
Der Router sollte nun neu starten. Er bietet jetzt nur einen telnet-zugang an, also muss das passwort geändert werden. Falls dies fehlschlägt (bei mir immer beim ersten Versuch), nicht verzagen, 'reboot' eingeben , der router startet neu und nochmal versuchen...
rene@local ~ $ telnet 172.16.0.1 === IMPORTANT ============================ Use 'passwd' to set your login password this will disable telnet and enable SSH ------------------------------------------ BusyBox v1.00 (2005.08.05-19:08+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M WHITE RUSSIAN (RC2) ------------------------------- * 2 oz Vodka Mix the Vodka and Kahlua together * 1 oz Kahlua over ice, then float the cream or * 1/2oz cream milk on the top. --------------------------------------------------- root@OpenWrt:/# passwd Changing password for root Enter the new password (minimum of 5, maximum of 8 characters) Please use a combination of upper and lower case letters and numbers. Enter new password: Re-enter new password: Password changed. root@OpenWrt:/#
zweiter Durchgang: install modified whiterussian sqashfs
Jetzt läuft auf dem Router whiterussian, nun kann die opennet-firmware installiert werden. Dies wurde von mir getestet auf ASUS WL500g und Linksys WRT54G, sollte aber auch auf dem WRT54GS funktionieren.
folgende Datei herunterladen: http://absorb.it/whiterussian/opennet-openwrt-brcm-2.4-squashfs_0.5.trx Datei auf den router kopieren:
rene@local ~ $ scp opennet-openwrt-brcm-2.4-squashfs_0.5.trx root@172.16.0.1:/tmp root@172.16.0.1's password: openwrt-brcm-2.4-squashfs.trx 100% 2020KB 252.5KB/s 00:08 rene@wintermute ~ $
neue Firmware installieren:
rene@local ~ $ ssh 172.16.0.1 -l root root@172.16.0.1's password: BusyBox v1.00 (2005.07.18-21:49+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M WHITE RUSSIAN (RC2) ------------------------------- * 2 oz Vodka Mix the Vodka and Kahlua together * 1 oz Kahlua over ice, then float the cream or * 1/2oz cream milk on the top. --------------------------------------------------- root@OpenWrt:~# cd /tmp/ root@OpenWrt:~# mtd -e linux -r write opennet-openwrt-brcm-2.4-squashfs_0.5.trx linux Writing opennet-openwrt-brcm-2.4-squashfs_0.5.trx to linux ... Unlocking linux ... Erasing linux ... Unlocking linux ... root@OpenWrt:~# Connection to 172.16.0.1 closed by remote host. Connection to 172.16.0.1 closed. rene@local ~ $
Der Router sollte nun wieder neu starten (das kann durchaus etwas dauern). Nun sollte der Router über das Webinterface zu erreichen sein (http://172.16.0.1).
OpenVPN-Anpassung
nun müssen die openvpn-keys noch in das Verzeichnis /etc/openvpn kopiert werden:
root@local:~# cd /etc/openvpn root@local:/etc/openvpn# scp *.key root@172.16.0.1:/etc/openvpn root@172.16.0.1's password: ap_XX.key 100% 887 0.9KB/s 00:00 root@local:/etc/openvpn# scp *.crt root@172.16.0.1:/etc/openvpn root@172.16.0.1's password: ap_XX.crt 100% 4263 4.2KB/s 00:00 opennet-ca.crt 100% 1627 1.6KB/s 00:00 wintermute openvpn #
Wenn der Key und das Certifikat tatsächlich ap_XX.key bzw ap_XX.crt heissen (mit den zwei großen X), braucht die Konfigurationsdatei nicht verändert werden, sonst muss auf dem Router die Datei /etc/openvpn/openvpn.conf angepasst werden.
Der Zustand des Tunnels wird nun auf der Status-Seite des Routers angezeigt.
Bugs
- Version 0.5
- andere opennet-interne AccessPoints nicht erreichbar wenn tunnel aufgebaut ist
- Version 0.4
- passwortschutz webseiten funktionierte nicht (sorry)
- Version 0.3
- olsrd-statusanzeige geht nicht
History
- 15.8.2005 Version 0.5
- httpd-init von Freifunk übernommen, passwortschutz der Webseiten ging sonst nicht
- 14.8.2005 Version 0.4
- olsrd-httpinfo ergänzt
- cron-minutely ergänzt (olsrd wird jetzt neu gestartet, wenn er abstürzen sollte)
- Adaption von firstrun aus Freifunk beseitig Passwort-Probleme
- S60ntpclient wartet nun eine kurze Weile, bovor die Zeit gesetzt wird
- 14.8.2005 Version 0.3
- Webfronteend um die Optionen, die nicht gingen bereinigt
- rdate durch ntp ersetzt
- S53olsrd von Freifunk übernommen - daher läuft die opennet.firmware nun auch unter LinkSys
- opennet-ca.crt in /etc/openvpn ergänzt
- Statusinformationen um OpenVPN-Status ergänzt
- 13.8.2005 Version 0.2
- Webfrontend von Freifunk übernommen und angepasst
- 13.8.2005 Version 0.1
- erste Release, Testversion ohne Webfrontend
Wünsche für die nächste Version
- Ergänzung des Webfrontends um Opennet-Spezifika (WEP-Key, OpenVPN-Keys)
- OpenVPN-Key generation über Webfrontend
- netfilter raw und NOTRACK ergänzen
Anpassungen an OpenWRT Whiterussian
Im folgenden Abschnitt werden die an einem Standardsystem (OpenWRT whiterussian rc2, siehe [1]) vorgenommenen Änderungen beschrieben. Da OpenWRT-whiterussian für die Nutzung im opennet neu compiliert werden musste, enthält die (später) zu installierende Version diese Anpassungen bereits. Hier sind alle nochmals übersichtlich aufgeführt, damit Kommentare, was gut / schlecht / richtig / falsch ist, leichter fallen.
dumps
- Version 0.5
- Version 0.4
- Version 0.3
Konfiguration
zusätzlich zur Standardkonfiguration wurden folgende Module ausgewählt:
- iproute2 routing control (ip)
- openvpn - Open source VPN solution using SSL
- olsrd-mod-httpinfo - Small informative web server plugin
Einiges könnte bestimmt noch weggelassen werden, aber da die standard-configuration lief, hab ich mich auf's ergänzen beschränkt.
Ergänzte Dateien
Die folgenden Dateien wurden in Version 0.5 zusätzlich zu OpenWRT whiterussian hizugefügt:
Datei | Quelle / Anmerkung | |
---|---|---|
/www/... | freifunk-webadmin-de_1.0.2_mipsel.ipk / angepasst | |
/usr/sbin/ntpclient | whiterussian paket ntpclient_2003_194-1_mipsel.ipk | |
/usr/sbin/wl | wl_1.0_mipsel.ipk | |
/usr/sbin/cron.daily | freifunk-openwrt-kit-1.0.2-de | |
/usr/sbin/cron.hourly | freifunk-openwrt-kit-1.0.2-de | |
/usr/sbin/cron.minutely | freifunk-openwrt-kit-1.0.2-de / angepasst | |
/usr/sbin/wlconf | freifunk-openwrt-kit-1.0.2-de | |
/usr/sbin/olsrd-clearroutes | freifunk-openwrt-kit-1.0.2-de | |
/usr/bin/netparam | freifunk-openwrt-kit-1.0.2-de / Angepasst da /proc/net/wireless in whiterussian nicht unterstützt wird | |
/etc/init.d/S60ntpclient | ntpclient_2003_194-1_mipsel.ipk / Angepasst auf titan.on | |
/etc/init.d/S50httpd | freifunk-webadmin-de_1.0.2_mipsel.ipk | |
/etc/init.d/S53olsrd | freifunk-openwrt-kit-1.0.2-de / Angepasst da /proc/net/wireless in whiterussian nicht unterstützt wird | |
/etc/init.d/S80openvpn | freifunk-openwrt-kit-1.0.2-de | |
/etc/init.d/S45firewall | freifunk-openwrt-kit-1.0.2-de / Angepasst da /proc/net/wireless in whiterussian nicht unterstützt wird | |
/etc/init.d/51crond | freifunk-openwrt-kit-1.0.2-de | |
/etc/olsrd.conf | symbolischer Link nach /var/etc/olsrd.conf | |
/etc/banner | angepasst | |
/etc/openvpn/opennet.conf | OpenVPN_Konfiguration | |
/etc/openvpn/opennet_down.sh | #!/bin/sh eval $(/usr/bin/netparam) iptables -t nat -D POSTROUTING -o $dev -s $LANNET/$LANPRE -j SNAT --to-source $ifconfig_local rm -f /tmp/openvpn_msg.txt # remove running message | |
/etc/openvpn/opennet_up.sh | #!/bin/sh eval $(/usr/bin/netparam) ip route flush table 3 ip route add throw $LANNET/$LANPRE table 3 ip route add default via $route_vpn_gateway table 3 iptables -t nat -A POSTROUTING -o $dev -s $LANNET/$LANPRE -j SNAT --to-source $ifconfig_local echo "vpn-tunnel active" >/tmp/openvpn_msg.txt # a short message for the web frontend | |
/etc/openvpn/opennet-ca.crt | Zertifikat von opennet | |
/etc/local.fw | Firewall - MASQUERADING entfernt (siehe up/down -scripte) | |
/tmp/etc | Verzeichnis angelegt, wird bspw. für web-passwortschutz benötigt | |
/tmp/run | Verzeichnis angelegt, wird bspw. für cron.minutely beötigt | |
/bin/firstboot | Passwort-Code von Freifunk in whiterussian firstboot übernommen |
Entfernte Dateien
Die folgenden Dateien wurden in Version 0.4 aus OpenWRT whiterussian entfernt:
Datei | Quelle / Anmerkung | |
---|---|---|
/etc/firewall.user | wird jetzt in local.fw gesetzt | |
/etc/init.d/olsrd | durch S53olsrd aus Freifunk ersetzt |