2 minutes
Proxies HTTP et SOCKS via gcloud
Introduction
Dans cet article très rapide nous allons voir comment créer une proxy SOCKS ou HTTP via une instance Google Cloud. On va juste utiliser le cli gcloud
et un binaire open source.
Lancement du proxy Socks
Récupérer l’ID de son instance
./gcloud compute instances list
cd PATH_TO_GCLOUD_SI_PAS_DANS_$PATH
export PORT_DU_PROXY=
./gcloud compute ssh NOM_DE_VOTRE_INSTANCE --project NOM_DE_VOTRE_PROJET --zone LA_ZONE_QUI_CONTIENT_VOTRE_INSTANCE --ssh-flag="-D" --ssh-flag="$PORT_DU_PROXY" --ssh-flag="-N"
Vérification
curl --socks5 127.0.0.1:$PORT_DU_PROXY https://ipinfo.io/ip
Besoin d’un proxy http ?
Pas de souci, vous pouvez utiliser le projet Rust suivant https://github.com/KaranGauswami/socks-to-http-proxy (licence MIT) qui convertit votre proxy SOCKS en proxy HTTP. Vous pouvez aussi utiliser le fork que j’ai créé oeeckhoutte/socks-to-http-proxy. Je n’ai pas détecté de vulnérabilité jusqu’au commit 3323c5809b38db4425ae11b935651e8abccf4875 (commit de mon fork)
git clone https://github.com/KaranGauswami/socks-to-http-proxy # ou oeeckhoutte/socks-to-http-proxy
cd socks-to-http-proxy
cargo build --release
cargo install cargo-audit
cargo audit
cd ~/Dev/Leandeep/socks-to-http-proxy/target/release
# J'ai analysé le code à la recherche de faille applicative et je n'ai rien trouvé. J'ai aussi modifié le code pour changer quelques options: interface d'écoute et ports par défaut (modifs non poussées).
./sthp
Seconde vérification
curl --proxy localhost:PORT_HTTP_PROXY https://ipinfo.io/ip
Configurer tout le terminal
On exécute les 2 commandes suivantes pour que tout le terminal utilise le proxy http
export http_proxy=http://127.0.0.1:8090
export https_proxy=http://127.0.0.1:8090
Vérifications
curl https://ipinfo.io/ip
-> OKpython3 -c "import json; import urllib.request; url_data='https://ipinfo.io/ip'; webURL = urllib.request.urlopen(url_data); data = webURL.read(); print(data)"
-> OK