redirect il traffico dal ponte al proxy http

Se creo una nuova istanza di un ponte ethernet:

# brctl addbr br1 # ip link set dev br1 up # ip addr add 10.100.100.1/24 dev br1 

Avviare tinyproxy ascolto tinyproxy su localhost sulla port predefinita 8888:

 # tinyproxy 

Con firejail creare un nuovo spazio di nomi di networking e collegarlo al ponte:

 # firejail --net=br1 /bin/bash 

Come posso quindi indirizzare il traffico attraverso il ponte a tinyproxy , in modo che ad esempio, curl riceverà una pagina Web dall'interno della sandbox firejail :

 # curl --proxy http://10.100.100.1:8888 http://wtfismyip.com/text 

    Il seguente command è utile per eseguire la scansione / eliminazione di catene e disabilitare ufw :

     # /lib/ufw/ufw-init flush-all 

    Crea un ponte ethernet:

     ext_if="enp8s8" bridge="brtp8888" proxy_port="8888" # tinyproxy default brctl addbr "${bridge}" ip link set dev "${bridge}" up ip addr add 10.100.100.1/24 dev "${bridge}" # Allow the bridge to route traffic to localhost sysctl net.ipv4.conf."${bridge}".route_localnet=1 

    Percorrere il traffico tcp diretto alla port 8888 del ponte fino alla tinyproxy :

     iptables -t nat -A PREROUTING -i "${bridge}" -p tcp -j DNAT --to-destination 127.0.0.1:"${proxy_port}" iptables -t nat -A POSTROUTING -s 10.100.100.0/24 -o eth0 -j MASQUERADE 

    (NB Quanto sopra è stato adattato da Firejail con Tor HOWTO .)

    Tinyproxy limita le connessioni a localhost less che non esista una linea di configuration altrimenti, modifica /etc/tinyproxy.conf :

     Allow 10.100.100.0/24 

    Un set più completo di regole iptables:

     iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state INVALID -j DROP iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i "${bridge}" -p tcp --dport "${proxy_port}" -j ACCEPT iptables -t nat -A PREROUTING -i "${bridge}" -p tcp -j DNAT --to-destination 127.0.0.1:"${proxy_port}" # tinyproxy default iptables -t nat -A POSTROUTING -s 10.100.100.0/24 -o eth0 -j MASQUERADE 

    L'equivalente ufw :

     ## Copy the following into /etc/ufw/before.rules (see man ufw-framework, 'Port Redirections') # *nat # :PREROUTING ACCEPT [0:0] # -A PREROUTING -p tcp -i brtp8888 --dport 8888 -j DNAT \ # --to-destination 127.0.0.1:8888 # COMMIT # *nat # :POSTROUTING ACCEPT [0:0] # -A POSTROUTING -s 10.100.100.0/24 -o eth0 -j MASQUERADE # COMMIT ufw allow in on "${bridge}" from 10.100.100.0/24 proto tcp 

    Vedere anche questo post Firejail e connessione a Internet tramite un client OpenVPN host .

    Se qualcuno può spiegare il motivo per cui crea un ponte come sopra illustrato, apre una sandbox che esegue firefox con --net=br1 e imposta il proxy HTTP di Firefox per il gateway IP (cioè, br1 , qualsiasi port) anche che mi piacerebbe sapere.