|
|
|
WLanhsh & WLanwse Forum des WLan Hohenschönhausen und des WLan Weißensee wlanhsh.freifunk.net
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Patrick
Anmeldedatum: 01.11.2004 Beiträge: 88 Wohnort: Berlin Marzahn
|
Verfasst am: 09.04.2005, 14:00 Titel: VPN auf der Freifunkfirmware |
|
|
hallo...
ich hab mich die letzen wochen sehr intensiv mit VPN
auf PPTP-basis für unseren WRT beschäftigt.
auf dem treffen gestern ist mir aufgefallen daß das thema
sicherheit von großem interesse ist und möchte hier mal kurz
von meiner vorgehensweise berichten. is alles nich so schwer wenn man mal weiss wie es geht.
alsoo
nach dem aufspielen der freifunkfirmware 0.6.8 müssen einige pakete über
die commandshell ssh per "wget" und "ipkg install" nachinstalliert werden.
http://212.91.225.42/sven-ola/ipkg/freifunk-pppoecd-de_0.6.8_mipsel.ipk
http://openwrt.org/ipkg/ppp_2.4.2-1_mipsel.ipk
http://openwrt.org/ipkg/pptp-server_1.1.3-1_mipsel.ipk
http://openwrt.org/ipkg/kmod-ppp-mppe-mppc_2.4.20-1_mipsel.ipk
http://openwrt.org/ipkg/kmod-ppp-async_2.4.20-1_mipsel.ipk
hilfreich ist vieleicht auch ein kleiner ftpserver auf dem notebook um die pakete
von dort auf den wrt zu bekommen.
http://www.pablovandermeer.nl hat einen sehr guten
danach müssen einige files auf dem wrt editiert werden.
das macht man mit dem editor "vi" in der shell. wie dieser editor und weitere
kommandos zu handhaben sind sollte man sich ergoogeln.
die datei "/etc/ppp/pptp-server-options"
#debug
#logfile /tmp/pptp-server.log
192.168.2.1: #ip des vpn-servers
auth
name "pptp-server"
lcp-echo-failure 3
lcp-echo-interval 60
default-asyncmap
mtu 1480 #pakete sollten nich größer
mru 1480 #als 1492 sein
nobsdcomp
nodeflate
#noproxyarp
#nomppc
nomppe-40
nomppe-56
nomppe-stateful
require-mppe
require-mppe-128
require-mschap-v2
refuse-chap
refuse-mschap
refuse-eap
refuse-pap
ms-dns 192.168.1.1
ms-wins 192.168.1.1
#plugin radius.so
#radius-config-file /etc/radius.conf
die datei "/etc/ppp/chap-secrets"
#folgendes format
#username server password remoteip
#
#es können auch mehr als ein user gleichzeitig connecten
#und jeder bekommt eine feste remoteip
#
#beispiel
sven pptp-server hastenichjesehn 192.168.2.2
alfred pptp-server alfredspasswort 192.168.2.3
#usw
die datei "/etc/ppp/ip-up" ist besonders wichtig weil hier normalerweise die default route gesetzt
und die firewallregeln für jede ppp-verbindung eingerichtet werden
zu unterscheiden sind jetz das pppoe-device und das pptp-device
beide fangen blöderweise mit ppp an
das ist der auszug für die pppoe-regeln
# set default route
route add default gw $IPREMOTE dev $IFNAME
iptables -t nat -A POSTROUTING -o $IFNAME -j MASQUERADE
if [ "$(nvram get fw_disable)" != "1" ]; then
iptables -I INPUT -i $IFNAME -j DROP
iptables -I INPUT -i $IFNAME -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i $IFNAME -m state --state INVALID -j DROP
iptables -I OUTPUT -o $IFNAME -j ACCEPT
iptables -I FORWARD -i $ETDEV -o $IFNAME -j DROP
iptables -I FORWARD -i $ETDEV -o $IFNAME -s $ETNET -d ! $ETNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i $ETDEV -o $IFNAME -m state --state INVALID -j DROP
iptables -I FORWARD -i $IFNAME -o $ETDEV -d $ETNET -j DROP
iptables -I FORWARD -i $IFNAME -o $ETDEV -s ! $ETNET -d $ETNET -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i $IFNAME -o $ETDEV -m state --state INVALID -j DROP
if [ -n "$WLADR" ]; then
iptables -I FORWARD -i $WLDEV -o $IFNAME -j DROP
iptables -I FORWARD -i $WLDEV -o $IFNAME -s $WLNET -d ! $WLNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i $WLDEV -o $IFNAME -m state --state INVALID -j DROP
iptables -I FORWARD -i $IFNAME -o $WLDEV -d $WLNET -j DROP
iptables -I FORWARD -i $IFNAME -o $WLDEV -s ! $WLNET -d $WLNET -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i $IFNAME -o $WLDEV -m state --state INVALID -j DROP
fi
fi
# PPPoE MTU/MRU issue
iptables -I FORWARD -o $IFNAME -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
hier muss jetzt eine bedingung eingebaut werden. denn für den vpn-kanal gibt es ja andere regeln.
if [ "$IPLOCAL" = "192.168.2.1" ];then #frag ob der ppp-kanal zum pptp-server gehört
#wir setzen hier keine default route und andere firewallregeln
#diese sind noch nich optimal und vieleicht etwas unsicher
#weil ich selbst noch am testen bin
#surfen und der zugriff auf das homelan sind damit aber erstmal möglich
#korrekturen an dieser stelle sind ausdrücklich erwünscht
iptables -t nat -A POSTROUTING -i $ETDEV -o $IFNAME -j MASQUERADE #nat für diesen kanal setzen
iptables -I INPUT -i $IFNAME -j ACCEPT #alles was vom pptp-kanal kommt darf rein
iptables -I OUTPUT -o $IFNAME -j ACCEPT #alles was zum pptp-kanal geht darf raus
iptables -I FORWARD -i $ETDEV -o $IFNAME -s $ETNET -d $IPREMOTE -j ACCEPT #direkte verbindung vom homelan zum remotehost
iptables -I FORWARD -i $IFNAME -o $ETDEV -s $IPREMOTE -d $ETNET -j ACCEPT #und umgekehrt
iptables -I FORWARD -i $IFNAME -j ACCEPT #sollte vieleicht geändert werden
iptables -I FORWARD -o $IFNAME -j ACCEPT #aber damit funzt auch das surfen
else #für pppoe-kanal
#hier kommt der erste auszug rein ^^^^
fi #nich vergessen!!!
die datei "/etc/ppp/ip-down" muss natürlich auch geändert werden damit
nach beenden der verbindung alles wieder entfernt wird.
sieht zwar alles aus wie oben. aber man beachte "-D" für "delete" in jeder zeile.
if [ "$IPLOCAL" = "192.168.2.1" ];then
iptables -t nat -D POSTROUTING -i $ETDEV -o $IFNAME -j MASQUERADE
iptables -D INPUT -i $IFNAME -j ACCEPT
iptables -D OUTPUT -o $IFNAME -j ACCEPT
iptables -D FORWARD -i $ETDEV -o $IFNAME -s $ETNET -d $IPREMOTE -j ACCEPT
iptables -D FORWARD -i $IFNAME -o $ETDEV -s $IPREMOTE -d $ETNET -j ACCEPT
iptables -D FORWARD -i $IFNAME -j ACCEPT
iptables -D FORWARD -o $IFNAME -j ACCEPT
else
#hier der passende abschnitt für pppoe
fi
edit:
hab ich fast vergessen. der server muss natürlich noch gestartet werden.
in der shell müssen wir noch folgende befehle ausführen.
cd /etc/init.d
mv pptp-server S54pptp-server #für autostart
/etc/init.d/S54pptp-server start
so.....ferdisch:)
vpn verbindung auf dem laptop einrichten und die olsr-ip des "wrt mit dem pptp-server" anwählen.
unter windows wird nach erfolgreichem verbindungsaufbau ein neuer standartgateway gesetzt
und alles was nich ans olsrnetz geht flutscht jetz durch den vpn-tunnel
unter suse linux geht das leider nich so einfach da die passenden verschlüsselungsverfahren im kernel fehlen
dafür gibt es aber patches die man nachinstallieren kann. jedenfalls bei suse 9.1
für fragen und korrekturen bin ich natürlich offen. wir sind hier ja in einem forum.
ok.. und nun viel spass beim ausprobieren. |
|
Nach oben |
|
|
glockman
Anmeldedatum: 21.09.2004 Beiträge: 2097 Wohnort: suermondtstr/degnerstr ... ohne AP
|
Verfasst am: 09.04.2005, 15:37 Titel: |
|
|
respect ... das is, was wir brauchen ... |
|
Nach oben |
|
|
Patrick
Anmeldedatum: 01.11.2004 Beiträge: 88 Wohnort: Berlin Marzahn
|
Verfasst am: 12.04.2005, 22:03 Titel: |
|
|
ok. weil ich immer wieder änderungen an "ip-up" und "ip-down" vornehme werde ich es an dieser stelle mal editieren. sonst wirds zu unübersichtlich.
die datei "/etc/ppp/ip-up" auszug für PPTP
PPPOEDEV=$(nvram get wan_iface)
iptables -t nat -A POSTROUTING -i $ETDEV -o $IFNAME -j MASQUERADE
#alles darf rein und raus
iptables -I INPUT -i $IFNAME -j ACCEPT
iptables -I OUTPUT -o $IFNAME -j ACCEPT
#zugriff vom homelan auf remotehost
iptables -I FORWARD -i $ETDEV -o $IFNAME -j DROP
iptables -I FORWARD -i $ETDEV -o $IFNAME -s $ETNET -d $IPREMOTE -j ACCEPT
#zugriff vom remotehost aufs homelan
iptables -I FORWARD -i $IFNAME -o $ETDEV -j DROP
iptables -I FORWARD -i $IFNAME -o $ETDEV -s $IPREMOTE -d $ETNET -j ACCEPT
#wenn pppoe aktiv
if [ -n "$PPPOEDEV" ]; then
#zugriff vom remotehost aufs internet
iptables -I FORWARD -i $IFNAME -o $PPPOEDEV -j DROP
iptables -I FORWARD -i $IFNAME -o $PPPOEDEV -s $IPREMOTE -d ! $IPREMOTE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i $IFNAME -o $PPPOEDEV -m state --state INVALID -j DROP
#zugriff vom internet auf remotehost. nur bestehende verbindungen
iptables -I FORWARD -i $PPPOEDEV -o $IFNAME -j DROP
iptables -I FORWARD -i $PPPOEDEV -o $IFNAME -s ! $IPREMOTE -d $IPREMOTE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -i $PPPOEDEV -o $IFNAME -m state --state INVALID -j DROP
fi
#wenn wlan aktiv
if [ -n "$WLADR" ]; then
#wlan sperren
iptables -I FORWARD -i $WLDEV -o $IFNAME -j DROP
fi
im part fürs pppoe. also der standartauszug hinter der variablendefinition sollten wir uns noch das aktuelle pppoe-device merken. weil es ja jetzt vareieren könnte.
#ppp-device im nvram merken
nvram set wan_iface=$IFNAME
nvram set pppoe_ifname0=$IFNAME
das gleiche muss wie gesagt in die datei "/etc/ppp/ip-down"
mit "iptables -D ..." "route del ..." "nvram unset ..." |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|
| |