On parle de proxy au départ.
Merci @fran.b
J’ai réussi à transformer mon vps en proxy web avec filtrage des adresses ip de destination. En utilisant juste un serveur ssh et iptables. Voici comment j’ai fait :
Sur la machine cliente, je crée un tunnel socks5 vers le serveur ssh du proxy. Ainsi le serveur ssh du proxy pourra se comporter en serveur web proxy lorsqu’il recevra les requêtes http du client (qui sont encapsulées en ssh) :
# ssh user@ip_proxy -D 8888
Sur la machine proxy :
Je mets les règles iptables pour récupérer les réponses http (càd les pages web demandées) des serveurs web de destination :
iptables -t filter -A OUTPUT -p tcp -o eth0 --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp -i eth0 --sport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -o eth0 --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp -i eth0 --sport 443 -j ACCEPT
Pour le filtrage :
2.1. J’installe apache2, puis dans la page d’accueil /var/www/html/index.html, je met « Le site web demandé est bloqué par le proxy ».
2.2. Je fais une redirection de l’adresse ip bloquée vers la page index.html du proxy :
iptables -t nat -A OUTPUT -p tcp -d ip_à_bloquer -j DNAT --to-destinations ip_proxy:80
Sur le client :
-dans le lanceur d’application, je mets /usr/bin/chromium --proxy-server="socks5://127.0.0.1:8888"
au lieu de /usr/bin/chromium
pour contraindre chromium à utiliser la socket locale du ssh proxy.
Et tu fais comment pour tous les sites qui ne sont pas en port 80 et 443?
Le souci est que tu as tout d’abord des sites partagés sur plusieurs machines, ensuite des machines hébergeant plusieurs sites (parfois des centaines), si tu en bloques, tu les bloques tous