Hallo,

zu dem von mir angesprochenen Problem, dass es für einen Knoten im Freifunknetz möglich ist, mit HNA Routen den gesamten Netz-Traffic über sich zu leiten, habe ich mal ein Script geschrieben, das das verhindert.

Das Script überprüft die Routen, die in der olsr Rutentabelle sind, ob sie sich in dem erlaubten Bereich befinden. wenn sie das nicht sind, werden Pakete von dem Gateway, wo die Routen herkommen für eine Stunde gedropped. Da OLSR dann keine Verbindung mehr bekommt, schmeißt es die Routen raus. Nach einer Stunde darf der Node dann wieder, so dass Konfigurationsfehler einen nicht für immer aus dem Netz schmeißen. Ich werde das Script mal eine Weile bei mir testen, man muss es nur in die crontab tun.

Außerdem konnte ich mich so mal an lua versuchen :-)

Sven


On 24.03.2015 08:58, [email protected] wrote:
Hi ihrs,

das größte Problem ist die Informationsverbreitung zum Thema Schutz. Es wird 
immer gesagt, dass die Leute verschlüsseln sollen, in unsicheren Netzwerken VPN 
nutzen sollen und dies und das. Jedoch finden sich nur schwer HowTos oder 
Leitfäden, besonders auf den Freifunkseiten, wie ich das ganze mache. Man 
sollte da anfangen.

In Ansbach wurde anscheinend der VPN-Server gehackt, womit wir nicht viel zu 
tun haben, da wir ja den Berliner Server nutzen. Und zu Bedenken an unserer 
Infrastruktur hatte Sven sich schon geäußert.

So vile von mir dazu.

Carsten

--- Ursprüngliche Nachricht ---
Von: Ulrich Kalloch <[email protected]>
Datum: 23.03.2015 22:53:59
An: [email protected]
Betreff: Re: [FFP]  HACK Freifunk Ansbach wir sollten da mal drüber sprechen

Hallo Bernd,

ich denke nicht an die betrachtung von user seite oder in richtung
unserer prediger mich eingeschlossen.

ich denke in richtung unserer infrastrucktur, und ob da unbedachte punkte

ein trisstes dasein fristen.

sonntag ist denke ich ein guter tag zum treffen :-)

mfg


On 23.03.2015 22:30, Bernd Nemetz wrote:
Hallo Ulli,

On 23.03.2015, at 20:51, Ulrich Kalloch <[email protected]> wrote:
https://freifunk-ansbach.de/freifunk-ansbach-mesh-gehackt-und-observiert/
ich denke wir können da eine menge draus lernen

wie denkt ihr darüber ?
ganz einfach, das ist das was wir schon immer predigen [1] und jedem
Nutzer mit auf dem Weg geben.
Verschlüsseln!!!

Das Freifunknetz ist wie hinter Deinem DSL, dort kann jeder mitlesen
und Daten abschnorcheln. Also verstehe ich diese Panik nicht so richtig.
Auch verstehe ich den Hinweis nicht, das der fall der Störerhaftung das Problem
beseitigen würde. Das Problem besteht dann immer noch, da jeder per WLAN
die Daten abgreifen kann.

mfg

Ulli

Gruß Bernd

[1] 
http://wiki.freifunk-potsdam.de/Freifunk-FAQ#Wie_steht_es_um_die_Sicherheit_meiner_Daten.3F
p.s. sorry fürs falsche posten ...
_______________________________________________
Users mailing list
[email protected]
https://lists.freifunk-potsdam.de/listinfo/users
_______________________________________________
Users mailing list
[email protected]
https://lists.freifunk-potsdam.de/listinfo/users
_______________________________________________
Users mailing list
[email protected]
https://lists.freifunk-potsdam.de/listinfo/users

_______________________________________________
Users mailing list
[email protected]
https://lists.freifunk-potsdam.de/listinfo/users

#!/usr/bin/lua

rtables = {"olsr"}
allowed_nets = {"<=10.22.0.0/16", "<=6.0.0.0/8", "=0.0.0.0/0", "<=192.168.22.0/24"}
bantable = "BANNED"
bantime = 3600


require("luci.ip")

function strsplit(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                t[i] = str
                i = i + 1
        end
        return t
end

function banip (ip)
	if ip then
		tfile = io.open("/proc/net/xt_recent/"..bantable,"w")
		tfile:write("+"..ip)
		tfile:close()
	end
end

function checknet (op,ip,net)
	if op == "=" or op == "" then
		return ip == net
	elseif op == "<" then
		return net:contains(ip)
	elseif op == ">" then
		return checknet("<",net,ip)
	elseif op == "<=" then
		return (checknet("<",ip,net) or checknet("=",ip,net))
	elseif op == ">=" then
		return (checknet(">",ip,net) or checknet("=",ip,net))
	end
end

function checknets (ip)
	ip = luci.ip.IPv4(ip)
	for i,net in ipairs(allowed_nets) do
		local op,net = net:match("^([<>=]*)(%d+%.%d+%.%d+%.%d+/%d+)$")
		net =  luci.ip.IPv4(net)
		if checknet(op,ip,net) then
			return true
		end
	end
	return false
end

tfile = io.open("/proc/net/xt_recent/"..bantable,"r")
if tfile then
	tfile:close()
else
	io.popen("iptables -I INPUT -m recent --rcheck --seconds "..bantime.." --name "..bantable.." --rsource -j DROP")
end

routes = {}

for i,t in ipairs(rtables) do
	p=io.popen("ip route show table "..t)
	for line in p:lines() do
		local list = {}
		for w in string.gmatch(line,"[^%s]+") do
			table.insert(list,w)
		end
		if list[2] == "via" then
			table.insert(routes,{net = list[1], gw = list[3]})
		end
	end
end

for i,r in ipairs(routes) do
	if not checknets(r.net) then
		print(r.net.." not in allowed nets, banning "..r.gw)
		banip(r.gw)
	end
end

_______________________________________________
Users mailing list
[email protected]
https://lists.freifunk-potsdam.de/listinfo/users

Antwort per Email an