我有一台电脑在本地networking和连接到互联网的负载均衡器之间运行debian。 一切都很好,那台电脑里面运行着一个Squid,但是我们有一个VPN的问题,办公室里的每个人都无法到达VPN服务器,当我们在负载平衡器和本地networking之间移除那台电脑时,一切都很好。
我们的debian机器以透明模式运行squid,并使用桥接configuration来绕过所有来自负载均衡器(也就是路由器)的数据。
我想我需要一些iptables规则来转发VPN数据
root @ squid:〜#iptables -vnL 链接INPUT(策略ACCEPT 225K包,182M字节) pkts字节目标人选退出源目的地
0 0 ACCEPT udp - eth1 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68 0 0 ACCEPT udp - eth0 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68
链FORWARD(策略ACCEPT 193K包,77M字节)
pkts字节目标人选退出源目的地
链OUTPUT(策略ACCEPT 240K包,185M字节)
pkts字节目标人选退出源目的地
root @ squid:〜#iptables -vnL -t nat 链PREROUTING(策略ACCEPT 7172包,1019K字节) pkts字节目标人选退出源目的地
2585 151K REDIRECT tcp - br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir端口3128 0 0 REDIRECT tcp - eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir端口3128 0 0 REDIRECT tcp - eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir端口3128 0 0 REDIRECT tcp - br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir端口3128
链POSTROUTING(策略ACCEPT 8621包,1092K字节)
pkts字节目标人选退出源目的地
0 0 MASQUERADE all – * eth0 0.0.0.0/0 0.0.0.0/0
链OUTPUT(策略ACCEPT 1625包,97780字节)
pkts字节目标人选退出源目的地
root @ squid:〜#cat /etc/squid/squid.conf cache_effective_user squid cache_effective_user squid http_port 3128透明
cache_dir ufs / home / bridge / squid / cache 2000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log无
emulate_httpd_log
cache_mem 16 MB
hierarchy_stoplist cgi-bin?
acl QUERY urlpath_regex cgi-bin \? asp aspx jsp
no_cache拒绝QUERY
hosts_file / etc / hosts
refresh_pattern ^ ftp:1440 20%10080
refresh_pattern ^ gopher:1440 0%1440
refresh_pattern。 0 40%4320
acl all src 0.0.0.0/0.0.0.0
acl mynetwork src 192.168.0.0/24
aclpipe理器proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl吹扫方法PURGE
acl CONNECT方法CONNECT
acl Safe_ports端口80#http
acl Safe_ports端口21#ftp
acl Safe_ports端口443#https
acl Safe_ports端口1025-65535#未注册的端口
acl SSL_ports端口443 563
http_access允许pipe理本地主机
http_access允许pipe理员
http_access允许清除本地主机
http_access允许清除
http_access允许!Safe_ports
http_access允许CONNECT!SSL_ports
http_access允许localhost
http_access允许我的networking
允许所有的http_access
http_reply_access允许所有
icp_access允许我的networking
icp_access全部拒绝
visible_hostname桥
coredump_dir / etc / squid
我解决了我的问题添加一个简单的iptables规则:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE