Bonjour a tous.
Aujourd'hui, première petite contribution de ma part pour partager une information. Aujourd'hui on va voir comment rediriger SIMPLEMENT, TOUT ou partie du trafic TCP ( pour précision ) d'une machine Ubuntu/Linux vers un proxy (SOCKS5 dans mon cas )
1 - Le problème
Exécuter des bots pixels sous Linux a bien des avantages, notamment en terme d'économies de ressources. Sauf que Proxifier n'existe pas sous Linux et qu'il peut etre un peu fastidieux d'utiliser un proxy pour une application spécifique ( Proxychains par exemple ne marchera pas si vous l'utilisez avec wine) .
On va donc faire ce que Proxifier fait mais façon Linux ( c'est a dire relou pas juste avec un double click)
2 - La solution
C'est parti !
sudo apt-get install iptables git-core build-essential libevent-dev
Puis on va sur : https://github.com/darkk/redsocks pour le télécharger ("Code" > Download Zip) ou on se sert de la commade git ci après.
- On extrait ça ou on veut et on ouvre le terminal dans le dossier redsocks.
git clone http://github.com/darkk/redsocks.git
cd redsocks/
make
echo 'base{log_debug = on; log_info = on; log = "file:/tmp/redsocks.log";
daemon = on; redirector = iptables;}
redsocks {
// Local IP listen to
local_ip = 127.0.0.1;
// Port to listen to
local_port = 12345;
// Remote proxy address
ip = <IP DU PROXY SOCKS5>;
port = <PORT DU PROXY SOCKS5>;
// Proxy type
type = socks5;
// Username to authorize on proxy server
login = <USERNAME DU PROXY>;
// Password for a proxy user
password = <PASSWORD DU PROXY > ;
// Do not disclose real IP
disclose_src = false;
}' > redsocks.conf
Une fois que ceci est fait, on utilise iptables pour créer un nouveau tunnel qu'on appellera REDSOCKS et qui permettra de rediriger tout ou partie du traffic vers notre proxy.
L'idéal est de créer un script qui automatiquement lance tout donc je vous propose de faire un :
sudo gedit /usr/bin/start-proxy
et de l'éditer comme ceci :
./redsocks -c redsocks.conf
# Create new chain
iptables -t nat -N REDSOCKS
# Ignore LANs and some other reserved addresses.
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything else should be redirected to port 12345
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
# Any tcp connection made by `luser' should be redirected, put your username here.
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner <LE USERNAME DE VOTRE MACHINE> -j REDSOCKS
On crée également un script qui permet d'arréter la redirection via
sudo gedit /usr/bin/stop-proxy
et on l'édite comme ceci :
#!/bin/sh
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t nat -Z
killall redsocks
On rend ensuite exécutable nos deux scripts via
sudo chmod a+x /usr/bin/start-proxy
sudo chmod a+x /usr/bin/stop-proxy
Et le tour est joué ! Désormais, vous n'avez plus qu'a lancer un terminal et faire
sudo start-proxy
pour que votre adresse IP change, et ce PARTOUT :)
En espérant que ce tuto aura été utile et qu'il marchera aussi pour vous. Je viens a l'instant de faire ça et je rédige le tutoriel a l'instant pour etre sur de rien avoir oublié ! SI j'ai fais une erreur signalez le moi ! Bonne chance :)
EDIT : Evidemment pas mal des informations que je partage sont issues d'autre sites et d'autres posts. Je me suis contenté d'en faire la synthèse la plus efficace et la plus didactique possible !
Sources :
- https://ubuntuforums.org/showthread.php?t=1944127
- https://unix.stackexchange.com/questions/501623/forward-all-traffic-to-a-socks5-proxy-port
- https://crosp.net/blog/administration/install-configure-redsocks-proxy-centos-linux/