Il existe deux proxy SOCKS que je connais qui prennent en charge le proxy transparent pour toute connexion TCP sortante: Tor et redsocks . Contrairement aux proxys HTTP, ces proxys SOCKS peuvent proxy de manière transparente toute connexion TCP sortante, y compris les protocoles cryptés et les protocoles sans métadonnées ni en-têtes.
Ces deux proxys nécessitent l'utilisation de NAT pour rediriger tout trafic TCP sortant vers le port local du proxy. Par exemple, si j'utilise Tor avec TransPort 9040
sur ma machine locale, je devrais ajouter une règle iptables comme celle-ci:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
À ma connaissance, cela remplacerait l'IP et le port de destination d'origine par 127.0.0.1
et 9040
, étant donné qu'il s'agit d'un flux crypté (comme SSH) ou sans en-têtes (comme whois ), comment le proxy connaît-il l'IP et le port de destination d'origine?