Opennet Firmware: Unterschied zwischen den Versionen
Sh01 (Diskussion | Beiträge) K →Neue Dateien: - layout fix |
K firmware-bezeichnungen konsistent gemacht |
||
| Zeile 165: | Zeile 165: | ||
Datei auf den router kopieren: |
Datei auf den router kopieren: |
||
<pre> |
<pre> |
||
rene@local ~ $ scp openwrt-brcm-2.4- |
rene@local ~ $ scp opennet-openwrt-brcm-2.4-squashfs_0.1.trx root@172.16.0.1:/tmp |
||
root@172.16.0.1's password: |
root@172.16.0.1's password: |
||
openwrt-brcm-2.4-squashfs.trx 100% 2020KB 252.5KB/s 00:08 |
openwrt-brcm-2.4-squashfs.trx 100% 2020KB 252.5KB/s 00:08 |
||
| Zeile 189: | Zeile 189: | ||
--------------------------------------------------- |
--------------------------------------------------- |
||
root@OpenWrt:~# cd /tmp/ |
root@OpenWrt:~# cd /tmp/ |
||
root@OpenWrt:~# mtd -e linux -r write openwrt-brcm-2.4- |
root@OpenWrt:~# mtd -e linux -r write opennet-openwrt-brcm-2.4-squashfs_0.1.trx linux |
||
Writing openwrt-brcm-2.4-squashfs.trx to linux ... |
Writing openwrt-brcm-2.4-squashfs.trx to linux ... |
||
Unlocking linux ... |
Unlocking linux ... |
||
| Zeile 199: | Zeile 199: | ||
Der Router sollte nun wieder neu starten. Zuerst muss wieder über telnet dass passwort geändert werden... |
Der Router sollte nun wieder neu starten. Zuerst muss wieder über telnet dass passwort geändert werden... |
||
<pre> |
<pre> |
||
rene@local ~ $ telnet 172.16.0.1 |
|||
Use 'passwd' to set your login password |
Use 'passwd' to set your login password |
||
Version vom 13. August 2005, 14:38 Uhr
Dies ist eine vorerst stark experimentelle Anleitung zur Installation von OpenVPN auf einem ASUS-Router WL500g auf Basis von OpenVPN-whiterussian. Leider ist es bisher nicht gelungen, openvpn unter der Freifunk-Firmware zum laufen zu bekommen. Daher ist für eine Nutzung von openvpn nach dieser Methode ein firmware-update nötig. Ich übernehm also für nichts eine Garantie ;)
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.
Konfiguration
zusätzlich zur Standardkonfiguration wurden folgende Module ausgewählt:
- iproute2 routing control (ip)
- openvpn - Open source VPN solution using SSL
hier die config für Interessierte. Einiges könnte bestimmt noch weggelassen werden, aber da die standard-configuration lief, hab ich mich auf's ergänzen beschränkt.
Aus der Freifunk-Firmware übernommene Dateien
- in Zeile 10 hinzugefügt: sleep 125 (damit rdate hoffentlich die Zeit gesetzt hat)
- Zeile 4 auskommentiert da /proc/net/wireless in whiterussian nicht unterstützt wird
- Anpassungen, da /proc/net/wireless in whiterussian nicht unterstützt wird
rene@wintermute ~ $ diff -Naur netparam ../netparam
--- orig_netparam 2005-08-13 01:35:22.000000000 +0200
+++ netparam 2005-08-12 20:21:39.000000000 +0200
@@ -83,11 +83,8 @@
}
FS = o
- wdev = ""
- while(getline<"/proc/net/wireless") {
- if (/^$/) break
- if (sub(":", "")) wdev = $1
- }
+ wdev = ENVIRON["NVRAM_wl0_ifname"]
+ if ("" == wdev) "nvram get wl0_ifname"|getline wdev
printdev(wdev, wdev, "", "WIFI")
printdev("lo", "lo", "", "LO")
Neue Dateien
- /etc/openvpn/opennet.conf
Siehe OpenVPN_Konfiguration
- /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
- /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
- /etc/local.fw
- MASQUERADING entfernt, da dies im entsprechenden Kernel nicht zu funktionieren scheint, durch SNAT in opennet_up und opennet_down - scripten ersetzt.
# Place your firewall addons here
case $1 in
start)
#variable defintions;
TUNDEV="tun0"
#SNAT in den Tunnel
# MASQUERADING seems not to work well in 2.4.30
# see this news-entry:
# http://groups-beta.google.com/group/lucky.linux.kernel/browse_frm/thread/9631983ea435086c/576b4816db12e2e7
# so SNAT is now done in vpn_up.sh
#iptables -t nat -A POSTROUTING -o $TUNDEV -s $LANNET/$LANPRE -j MASQUERADE
#eingehende frames
iptables -I FORWARD 1 -i $TUNDEV -o $LANDEV -m state --state INVALID -j DROP
iptables -I FORWARD 2 -i $TUNDEV -o $LANDEV -s ! $LANNET/$LANPRE -d $LANNET/$LANPRE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 3 -i $TUNDEV -o $LANDEV -j LOG --log-prefix "FRAMEDROP-FWIN:"
iptables -I FORWARD 4 -i $TUNDEV -o $LANDEV -j DROP
#ausgehende Verbindungen
iptables -I FORWARD 5 -i $LANDEV -o $TUNDEV -m state --state INVALID -j DROP
iptables -I FORWARD 6 -i $LANDEV -o $TUNDEV -s $LANNET/$LANPRE -d ! $LANNET/$LANPRE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 7 -i $LANDEV -o $TUNDEV -j LOG --log-prefix "FRAMEDROP-FWOUT:"
iptables -I FORWARD 8 -i $LANDEV -o $TUNDEV -j DROP
#local output
iptables -I OUTPUT 1 -o $TUNDEV -j ACCEPT
#local input
iptables -I INPUT 1 -i $TUNDEV -m state --state INVALID -j DROP
iptables -I INPUT 2 -i $TUNDEV -p tcp --dport 22 -j ACCEPT
iptables -I INPUT 3 -i $TUNDEV -p tcp --dport 80 -j ACCEPT
iptables -I INPUT 4 -i $TUNDEV -p icmp -j ACCEPT
iptables -I INPUT 5 -i $TUNDEV -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT 6 -i $TUNDEV -j LOG --log-prefix "FRAMEDROP-IN"
iptables -I INPUT 7 -i $TUNDEV -j DROP
#prepare a table for openvpn policy-routing
ip rule add unicast from $LANNET/$LANPRE table 3
#load tun module
# insmod tun # not needed, loaded by /etc/modules.d
;;
stop)
eval $(/usr/bin/netparam) ### S45firewall setzt beim stoppen die Parameter nicht
echo "local_top $LANNET/$LANPRE"
ip rule del unicast from $LANNET/$LANPRE table 3
echo "local_stop"
;;
esac
Installation
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 als Basis genommen, die Firmware wird selbstverständlich auch ausgehend von anderen Vorraussetzungen installierbar sein...
Erlärung (technix): Die Firware Installation muss (soweit ich das probieren konnte) zweimal durchgeführt werden. Ziel ist eine (veränderbare) squashfs-Installation. Zuerst wird eine neue (beliebige) whiterussian-variante als jffs2-4MB installiert. Erst diese enthält die entsprechend aktuelle Versin von mtd, um die modifizierte whiterussian als squashfs zu installieren.
erster Durchgang: install whiterussian jffs
folgende Datei herunterladen: http://downloads.openwrt.org/whiterussian/rc2/bin/openwrt-brcm-2.4-jffs2-4MB.trx
beim ASUS-Router Power-Stecker ziehen (und ruhig mal 10 Sekunden Pause machen, der Router mag das auch), Reset-Button drücken , dabei Power-Stecker eintöpseln und während die Power-LED blinkt (Resettaste kann losgelasen werden) folgendes auf einem verbunden lokalen Rechner eingeben:
(Technix: die default-route muss dabei zum Router zeigen)
rene@local ~ $ tftp 172.16.0.1 tftp> binary tftp> trace Packet tracing on. tftp> get ASUSSPACELINK\x01\x01\xa8\xc0 /dev/null sent RRQ <file=ASUSSPACELINK\x01\x01\xa8\xc0, mode=octet> received DATA <block=1, 0 bytes> tftp> put openwrt-brcm-2.4-jffs2-4MB.trx ASUSSPACELINK ....ausgeschnitten.... sent DATA <block=4225, 0 bytes> received ACK <block=4225> tftp>quit
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
folgende Datei herunterladen: http://absorb.it/whiterussian/opennet-openwrt-brcm-2.4-squashfs_0.1.trx Datei auf den router kopieren:
rene@local ~ $ scp opennet-openwrt-brcm-2.4-squashfs_0.1.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.1.trx linux
Writing openwrt-brcm-2.4-squashfs.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. Zuerst muss wieder über telnet dass passwort geändert werden...
rene@local ~ $ telnet 172.16.0.1
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) -------------------------------
--- adapted for opennet --- opennet-initiative.de -
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:/#
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 angepasstt werden.
Router neustarten, Geduld haben und 5 Minuten nach einem Neustart (vielleicht etwas unglücklich, die Wartepause) sollte der Tunnel aufgebaut werden.
rene@wintermute /etc/openvpn $ tracepath www.heise.de
1: 172.16.0.2 (172.16.0.2) 0.287ms pmtu 1492
1: 172.16.0.1 (172.16.0.1) 18.886ms
2: 192.168.3.46 (192.168.3.46) 19.550ms
3: 8.aps.on (192.168.1.8) 29.847ms
4: 15.aps.on (192.168.1.15) 89.338ms
5: titan.on (192.168.0.254) 411.074ms
6: 217.0.116.105 (217.0.116.105) asymm 7 114.248ms
7: 217.0.71.70 (217.0.71.70) 88.572ms
8: 62.154.32.174 (62.154.32.174) asymm 10 106.498ms
9: m-ec1.M.DE.net.DTAG.DE (62.154.27.234) asymm 12 143.748ms
10: c4.m.de.plusline.net (212.19.63.109) asymm 12 130.013ms
11: heise1.f.de.plusline.net (213.83.57.21) 218.912ms
12: heise1.f.de.plusline.net (213.83.57.21) asymm 11 138.400ms
Resume: pmtu 1492
rene@wintermute /etc/openvpn $ tracepath www.heise.de
1: 172.16.0.2 (172.16.0.2) 0.298ms pmtu 1492
1: 172.16.0.1 (172.16.0.1) 1.223ms
2: 10.1.0.1 (10.1.0.1) 73.335ms
3: 217.0.116.105 (217.0.116.105) asymm 4 162.812ms
4: 217.0.71.70 (217.0.71.70) 89.402ms
5: 62.154.32.174 (62.154.32.174) asymm 7 118.480ms
6: m-ec1.M.DE.net.DTAG.DE (62.154.27.234) asymm 9 154.122ms
7: c4.m.de.plusline.net (212.19.63.109) asymm 9 165.260ms
8: heise1.f.de.plusline.net (213.83.57.21) 155.406ms
9: heise1.f.de.plusline.net (213.83.57.21) asymm 8 309.705ms
Resume: pmtu 1492
rene@wintermute /etc/openvpn $