[Science] wifi traffic an tor routen

Richard Ulrich richi at paraeasy.ch
Thu Mar 10 00:18:29 CET 2011


Hallo,

ich habe erst vor kurzem angefangen mit olsr zu pröbeln.
Mein kleines Mesh läuft (alix mit ubuntu server / freerunner mit
qtmoko / netbook mit ubuntu).
Jetzt möchte ich noch den uplink einrichten. Ich will allen traffic aus
dem mesh über tor routen. Damit hoffe ich dass ich keinen Ärger kriege,
wenn jemand über meine Leitung etwas illegales macht.
Eigentlich geht es mir dabei gar nicht so um die anonymität, sondern
mehr um diese rechtlichen Konsequenzen. Daher denke ich, kann ich DNS
und UDP direkt durchlassen, oder?

Nun bin ich schon drei Abende an den iptables am fummeln, aber bisher
ohne Erfolg. 

Lorenz von openwireless.ch sagte mir, die Berliner Freifunker hätten
solche TOR uplinks in Betrieb.

Kleine Zusatzfrage: Kann ich den tor v0.2.1.30 so wie er standardmässig
aus dem ubuntu repository kommt überhaupt als transparenten proxy
brauchen?
Mit "links2 -socks-proxy localhost:9050 paraeasy.ch" funktioniert der.
Aber gibt es da eien Unterschied zwischen dem socks proxy und dem
transparenten Proxy?
Aber bei der folgenden Seite werden Sachen beschrieben, die ich in
meiner torrc nicht finde. Z.B. TransPort gibt es bei mir nicht. Sonst
ist alles so ausführlich beschrieben und auskommentiert, dass ich denke
dass Optionen die ich neu hinzufügen würde ignoriert würden.
https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TransparentProxy

Gruss
Richi

Hier ist was ich bisher habe:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          Iptables rules for Tor configuration
# Required-Start:    
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Iptables rules for Tor configuration
# Description:       Längere Bechreibung
### END INIT INFO
# Author: Name <richi at paraeasy.ch>
# Source:
http://forum.ubuntuusers.de/topic/iptables-und-http/#post-2166053
# Source:
http://forum.freifunk-hannover.de/viewtopic.php?f=11&t=709&p=5295
# Source:
https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TransparentProxy
# Source:
http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
# Source:
http://git.immerda.ch/?p=amnesia.git;a=blob;f=config/chroot_local-includes/etc/firewall.conf

# infos zum lokalen wlan adapter
WIFIDEV=wlan0
WIFINET=10.247.0.0
WIFIPRE=255.255.0.0
WIFIADR=10.247.200.50
# infos zum lokalen ethernet adapter der zum internet kommunizieren kann
TAPDEV=eth0
TAPADR=192.168.2.6


# short iptables help:
# -A : Append to chain
# -D : Delete matching rule from chain
# -I : Insert in chain as rulenum (default 1=first)
# -p : protocol: by number or name, eg. `tcp'
# -s : source specification [address[/mask]]
# -d : destination specification [address[/mask]]
# -j : jump to target for rule (may load target extension)
# -m : extended match (may load extension)
# -i : input network interface name
# -o : output network interface name
# -t : table to manipulate (default: `filter')


# Aktionen
case "$1" in
    start)

		# Alle Werte zurücksetzen
		iptables -t nat -F
		iptables -t nat -X
		iptables -F
		iptables -X

		# kernel forwarding deaktivieren
		echo 0 > /proc/sys/net/ipv4/ip_forward

		# Default-Policies setzen
		iptables -P INPUT   DROP
		iptables -P FORWARD DROP
		iptables -P OUTPUT  ACCEPT

		# loopback freischalten
		iptables -A INPUT  -i lo -j ACCEPT
		iptables -A OUTPUT -o lo -j ACCEPT

		# Antworten auf bestehende Verbindungen erlauben
		iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

		# ssh vom kabel her erlauben um mich nicht auszusperren ;-)
		iptables -A INPUT  -i eth0  -p tcp --destination-port ssh  -j ACCEPT

		# olsr routing infos
		iptables -A INPUT  -i $WIFIDEV -p udp --dport 698 -j ACCEPT
		iptables -A OUTPUT -o $WIFIDEV -p udp --dport 698 -j ACCEPT

		# Don't let users from wifi acces this box except http, icmp and udp
		iptables -A INPUT  -i $WIFIDEV -d $WIFIADR -p tcp  --destination-port
80 -j ACCEPT
		iptables -A INPUT  -i $WIFIDEV -d $WIFIADR -p udp  -j ACCEPT
		iptables -A OUTPUT -o $WIFIDEV -s $WIFIADR -p udp  -j ACCEPT
		iptables -A INPUT  -i $WIFIDEV -d $WIFIADR -p icmp -j ACCEPT
		iptables -A OUTPUT -o $WIFIDEV -s $WIFIADR -p icmp -j ACCEPT
		iptables -A INPUT  -i $WIFIDEV -d $WIFIADR -j DROP

		# allen traffic vom wifi mesh an tor routen
      	iptables -t nat -A PREROUTING -i $WIFIDEV -p tcp -j DNAT --to
127.0.0.1:9050
#		iptables -t nat -A PREROUTING -i $WIFIDEV -p tcp --syn -j REDIRECT
--to-ports 9050
     	iptables -t nat -A POSTROUTING -o $TAPDEV -d $TAPADR -p tcp
--dport 9050 -j MASQUERADE
      	iptables -I FORWARD -d $TAPADR -p tcp --dport 9050 -j ACCEPT

		# Tor is allowed to do anything it wants to.
		iptables -A OUTPUT -m owner --uid-owner debian-tor -j ACCEPT 

		# letzte Zeile
		iptables -A FORWARD -j DROP
		iptables -A INPUT   -j DROP 

     	
		echo "Iptables Regeln für Tor geladen..."

        ;;
    stop)

		# forwarding deaktivieren
		echo 0 > /proc/sys/net/ipv4/ip_forward

        # tor Forarding Regeln löschen!
		iptables -F
		iptables -t nat -F

		# DEFAULT POLICY!
		iptables -P INPUT   DROP
		iptables -P OUTPUT  ACCEPT
		iptables -P FORWARD DROP

		# ssh vom kabel her erlauben
		iptables -A INPUT  -i eth0  -p tcp --destination-port ssh  -j ACCEPT

		echo "Iptables Regeln für Tor gelöscht..."
        ;;
esac

exit 0



More information about the Science mailing list