Outils pour utilisateurs

Outils du site


anthony_messe:banana_pi:iptables_ipv4_classe_c

Ceci est une ancienne révision du document !


Redirection du trafic avec iptables pour une classe C IPv4

Rediriger uniquement le trafic de l'interface wifi

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

Script court en policy accept

#!/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

Script long en policy drop

#!/bin/sh
#Variables
_trans_port="9040"
_dns_port="5353"
_interface_wifi="wlx503eaa3d7d6c"
_tor_uid=`id -u debian-tor`
_router="192.168.0.254" #Adresse du router (adresse de la machine ayant le point d'accès wifi)
_reseau_wifi="192.168.0.0/24"
_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 et de l'utilisateur root
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

Vérification

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.

Explications sur le code

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.

Ressources

anthony_messe/banana_pi/iptables_ipv4_classe_c.1526025332.txt.gz · Dernière modification: 2018/05/11 09:55 par Anthony Messé