Ceci est une ancienne révision du document !
Créez un nouveau fichier bash
nano bridge.sh
Placez-y le code ci-dessous
ctrl + c pour copier et ctrl + maj + v pour coller dans nano dans un terminal
#!/bin/sh #Variables _trans_port="9040" _dns_port="5353" _interface_wifi="wlx503eaa3d7d6c" #Adresse du router (adresse de la machine ayant le point d'accès wifi) _router="192.168.0.254" _reseau_wifi="192.168.0.0/24" #Adresse dont on empêche l'accès _unreachable="192.168.18.0/24" #On efface toutes les règles iptables iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -t nat -A PREROUTING -i $_interface_wifi -p tcp --syn -j REDIRECT --to-ports $_trans_port iptables -t nat -A PREROUTING -i $_interface_wifi -p udp --dport 53 -j REDIRECT --to-ports $_dns_port iptables -A INPUT -s $_reseau_wifi -d $_unreachable -j DROP
#!/bin/sh
#Variables
_trans_port="9040"
_dns_port="5353"
_interface_wifi="wlx503eaa3d7d6c"
_tor_uid=`id -u debian-tor`
_router="10.255.255.254" #Adresse du router (adresse de la machine ayant le point d'accès wifi)
_reseau_wifi="10.0.0.0/8"
_unreachable="192.168.16.20/24" #Adresse dont on empêche l'accès
_eth0_ip=`ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'`
#On efface toutes les règles iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
#On met les policy
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
#On redirige le traffic TCP vers Tor
iptables -t nat -A PREROUTING -i $_interface_wifi -p tcp --syn -j REDIRECT --to-ports $_trans_port
#On redirige les requêtes DNS vers Tor
iptables -t nat -A PREROUTING -i $_interface_wifi -p udp --dport 53 -j REDIRECT --to-ports $_dns_port
#On log le trafic entrant
iptables -A INPUT -i $_interface_wifi -m state --state NEW -j LOG --log-prefix "New input connection: "
#On autorise les requêtes DHCP à entrer
iptables -A INPUT -i $_interface_wifi -p udp --dport 67:68 --sport 67:68 -j ACCEPT
#On autorise les connexion SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
#On autorise les connexions déja établies
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
#On autorise la boucle locale
iptables -A INPUT -i lo -j ACCEPT
#On autorise les requêtes vers le routeur et le port DNS
iptables -A INPUT -d $_router -i $_interface_wifi -p udp -m udp --dport $_dns_port -j ACCEPT
#On autorise les requêtes vers le routeur pour le traffic TCP
iptables -A INPUT -d $_router -i $_interface_wifi -p tcp -m tcp --dport $_trans_port --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
#On log le trafic sortant
iptables -I OUTPUT -m owner --uid-owner $_tor_uid -j LOG --log-prefix "New output connection: "
#On drop le paquet si il n'est pas dans l état new, established, ou related
iptables -A OUTPUT -m state --state INVALID -j DROP
#On autorise ls connexions déja établies
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
#On autorise les requêtes DHCP à sortir
iptables -A OUTPUT -o $_interface_wifi -p udp --dport 67:68 --sport 67:68 -j ACCEPT
#On autorise le traffic issu de la carte
iptables -A OUTPUT ! -s $_reseau_wifi -m owner --uid-owner 0 -j ACCEPT
Rendez-le exécutable
chmod +x bridge.sh
Exécutez-le
./bridge.sh
Ici on utilise un téléphone (One Plus X) en tant que client du points d'accès. Avec ce dernier on se rend sur myresolver.net et on constate que la redirection vers Tor fonctionne.
iptables -A INPUT -s $_reseau_wifi -d $_unreachable -j DROP
On bloque l'accès à l'adresse de notre interface eth0 : 192.168.18.0/24.
iptables -t nat -A PREROUTING -i $_interface_wifi -p udp --dport 53 -j REDIRECT --to-ports $_dns_port
On redirige le trafic DNS vers le port DNS de Tor
iptables -t nat -A PREROUTING -i $_interface_wifi -p tcp --syn -j REDIRECT --to-ports $_trans_port
On redirige le trafic TCP
Par la suite on automatise le script iptables.