перенаправить трафик с моста на http прокси

1047
user5321531

Если я создаю новый экземпляр моста Ethernet:

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

Начните tinyproxyпрослушивать localhostпорт по умолчанию 8888:

# tinyproxy 

С помощью firejailсоздать новое пространство имен сети и подключить его к мосту:

# firejail --net=br1 /bin/bash 

Как бы я затем направил трафик через мост tinyproxy, чтобы, например, curlполучить веб-страницу из firejailпесочницы:

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

1 ответ на вопрос

1
user5321531

Следующая команда полезна для очистки / удаления цепочек и отключения ufw:

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

Создайте мост Ethernet:

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

Направление трафика tcp на порт 8888 моста через tinyproxy:

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

(NB Выше был адаптирован из Firejail с Tor HOWTO .)

Tinyproxy ограничивает соединения тем, что localhostесли нет строки конфигурации, отредактируйте /etc/tinyproxy.conf:

Allow 10.100.100.0/24 

Более полный набор правил 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 "$" -p tcp --dport "$" -j ACCEPT iptables -t nat -A PREROUTING -i "$" -p tcp -j DNAT --to-destination 127.0.0.1:"$" # tinyproxy default iptables -t nat -A POSTROUTING -s 10.100.100.0/24 -o eth0 -j MASQUERADE 

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 "$" from 10.100.100.0/24 proto tcp 

Смотрите также этот пост Firejail и подключение к Интернету через хост-клиент OpenVPN .

Если кто-то может объяснить, почему создание моста, как описано выше, открытие песочницы с запущенным firefox --net=br1и установка HTTP-прокси Firefox на IP-адрес шлюза (т. Е. На br1любой порт) также будет интересно узнать.