透明的代理虚拟机
透明地代理虚拟机
本演练说明了如何使用mitmproxy设置透明代理。在本示例中,我们将VirtualBox VM与Ubuntu代理计算机一起使用,但是常规Internet <–> Proxy VM <–>(虚拟)内部网络设置可以应用于其他设置。
1.配置代理虚拟机
首先,我们必须找出Ubuntu用哪个名称映射了我们的网络接口。您可以通过以下方式找到此信息:
ip link
通常在Ubuntu和Virtualbox中,将eth0或enp0s3(Ubuntu 15.10及更高版本)连接到Internet,将eth1 或enp0s8(Ubuntu 15.10及更高版本)连接到内部网络,该网络将被代理并配置为使用静态ip(192.168。 3.1)。如果名称不同,请使用从ip link命令获得的名称。
VirtualBox配置
VM网络配置
2.配置DHCP和DNS
我们使用dnsmasq在内部网络中提供DHCP和DNS。Dnsmasq是一种轻量级服务器,旨在为小型网络提供DNS(以及可选的DHCP和TFTP)服务。在此之前,我们需要修复一些Ubuntu怪癖:默认情况下,Ubuntu> 12.04运行一个内部dnsmasq实例(仅侦听环回) [1]。对于我们的用例,需要通过在 /etc/NetworkManager/NetworkManager.conf中将其更改dns=dnsmasq为禁用,并且如果在Ubuntu 16.04或更高版本上运行,请禁用此功能:#dns=dnsmasq
sudo systemctl restart NetworkManager
如果在Ubuntu 12.04或14.04上运行:
sudo restart network-manager
然后。
现在,可以安装和配置dnsmasq:
sudo apt-get install dnsmasq
将/etc/dnsmasq.conf替换为以下配置:
# Listen for DNS requests on the internal network
interface=eth1
bind-interfaces
# Act as a DHCP server, assign IP addresses to clients
dhcp-range=192.168.3.10,192.168.3.100,96h
# Broadcast gateway and dns server information
dhcp-option=option:router,192.168.3.1
dhcp-option=option:dns-server,192.168.3.1
应用更改:
如果在Ubuntu 16.04或更高版本上:
sudo systemctl restart dnsmasq
如果在Ubuntu 12.04或14.04上:
sudo service dnsmasq restart
你代理的机器内部虚拟网络中现在应该收到通过DHCP获取IP地址:
3.将流量重定向到mitmproxy
要将流量重定向到mitmproxy,我们需要启用IP转发并添加两个iptables规则:
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 8080
4.运行mitmproxy
最后,我们可以在透明模式下运行mitmproxy
mitmproxy --mode transparent
被代理的计算机无法泄漏HTTP或DNS请求之外的任何数据。如果需要,您现在可以在代理计算机上安装mitmproxy证书。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论