Outils pour utilisateurs

Outils du site


anthony_messe:banana_pi:iptables_ipv4_classe_c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
anthony_messe:banana_pi:iptables_ipv4_classe_c [2018/05/11 10:01]
Anthony Messé [Script long en policy drop]
anthony_messe:banana_pi:iptables_ipv4_classe_c [2018/06/12 13:28] (Version actuelle)
Anthony Messé
Ligne 1: Ligne 1:
 +Lien vers [[anthony_messe:​anthony_messe|l'​accueil]]
 +
 ====== Redirection du trafic avec iptables pour une classe C IPv4 ====== ====== Redirection du trafic avec iptables pour une classe C IPv4 ======
 +
 +Tor ne supporte pas le protocole UDP, excepté les requêtes DNS sur un port spécialement créé pour cela par le service Tor.
  
 ===== Rediriger uniquement le trafic de l'​interface wifi ===== ===== Rediriger uniquement le trafic de l'​interface wifi =====
  
 Créez un nouveau fichier bash Créez un nouveau fichier bash
-  nano bridge.sh+  nano iptables_access_point.sh
  
 Placez-y le code ci-dessous Placez-y le code ci-dessous
 > ctrl + c pour copier et ctrl + maj + v pour coller dans nano dans un terminal > ctrl + c pour copier et ctrl + maj + v pour coller dans nano dans un terminal
- 
-==== Script court en policy accept ==== 
-<​code=bash>​ 
-#!/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 
-</​code>​ 
  
  
Ligne 49: Ligne 25:
 _router="​192.168.0.254"​ #Adresse du router (adresse de la machine ayant le point d'​accès wifi) _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"​ _reseau_wifi="​192.168.0.0/​24"​
-_unreachable="192.168.16.20/​24" ​#Adresse dont on empêche l'​accès+_interface_phy="eth0"
  
 #On efface toutes les règles iptables #On efface toutes les règles iptables
Ligne 76: Ligne 52:
 #On autorise les requêtes DHCP à entrer #On autorise les requêtes DHCP à entrer
 iptables -A INPUT -i $_interface_wifi -p udp --dport 67:68 --sport 67:68 -j ACCEPT 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 #On autorise les connexions déja établies
 iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
 #On autorise la boucle locale #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 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 #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 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 autorise le trafic vers eth0
 +iptables -A INPUT -i $_interface_phy -j ACCEPT
 +ip6tables -A INPUT -i $_interface_phy -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 #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 iptables -A OUTPUT -m state --state INVALID -j DROP
 #On autorise ls connexions déja établies #On autorise ls connexions déja établies
-iptables -A OUTPUT -m state --state ​NEW,ESTABLISHED -j ACCEPT+iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
 #On autorise les requêtes DHCP à sortir #On autorise les requêtes DHCP à sortir
 iptables -A OUTPUT -o $_interface_wifi -p udp --dport 67:68 --sport 67:68 -j ACCEPT 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 +#On autorise le traffic issu de la carte 
-iptables -A OUTPUT ​-$_reseau_wifi ​-m owner --uid-owner 0 -j ACCEPT+iptables -A OUTPUT -$_interface_phy ​-j ACCEPT 
 +ip6tables ​-A OUTPUT ​-o $_interface_phy ​-j ACCEPT
 </​code>​ </​code>​
  
  
 Rendez-le exécutable Rendez-le exécutable
-  chmod +x bridge.sh+  chmod +x iptables_access_point.sh
  
 Exécutez-le Exécutez-le
-  ./bridge.sh+  ./iptables_access_point.sh
  
 ==== Vérification ==== ==== Vérification ====
Ligne 112: Ligne 86:
  
 {{ :​anthony_messe:​android_tor.png?​250 |}} {{ :​anthony_messe:​android_tor.png?​250 |}}
-==== Explications sur le code ==== 
-<​code=bash>​ 
-iptables -A INPUT -s $_reseau_wifi -d $_unreachable -j DROP 
-</​code>​ 
-> On bloque l'​accès à l'​adresse de notre interface eth0 : 192.168.18.0/​24. 
- 
-<​code=bash>​ 
-iptables -t nat -A PREROUTING -i $_interface_wifi -p udp --dport 53 -j REDIRECT --to-ports $_dns_port 
-</​code>​ 
-> On redirige le trafic DNS vers le port DNS de Tor 
- 
-<​code=bash>​ 
-iptables -t nat -A PREROUTING -i $_interface_wifi -p tcp --syn -j REDIRECT --to-ports $_trans_port 
-</​code>​ 
-> On redirige le trafic TCP 
- 
- 
- 
 Par la suite on [[anthony_messe:​banana_pi:​lancement_script_au_demarrage|automatise le script iptables]]. Par la suite on [[anthony_messe:​banana_pi:​lancement_script_au_demarrage|automatise le script iptables]].
 ===== Ressources ===== ===== Ressources =====
   *   * Fournie par Trinity Pointard : https://​trac.torproject.org/​projects/​tor/​wiki/​doc/​TransparentProxy#​AnonymizingMiddlebox   *   * Fournie par Trinity Pointard : https://​trac.torproject.org/​projects/​tor/​wiki/​doc/​TransparentProxy#​AnonymizingMiddlebox
anthony_messe/banana_pi/iptables_ipv4_classe_c.1526025714.txt.gz · Dernière modification: 2018/05/11 10:01 par Anthony Messé