VPN 客户端通过 squid 服务器被阻止

VPN 客户端通过 squid 服务器被阻止

我在本地网络和连接到互联网的负载平衡器之间有一台运行 Debian 的计算机。一切都很好,那台计算机内部运行着 Squid,但我们的 VPN 出现了问题,办公室里的每个人都无法访问 VPN 服务器,当我们将那台计算机从负载平衡器和本地网络之间移除后,一切都正常了。

我们的 Debian 机器正在以桥接配置的透明模式运行 squid,以绕过来自充当路由器的负载均衡器的所有数据。

我认为我需要一些 iptables 规则来转发 VPN 数据

root@squid:~# iptables -vnL
链输入(策略接受225K数据包,182M字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标
0 0 接受 udp -- eth1 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68 0 0 接受 udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68

链转发(策略接受 193K 数据包,77M 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标

链输出(策略接受 240K 数据包,185M 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标

root@squid:~# iptables -vnL -t nat
链 PREROUTING(策略接受 7172 个数据包,1019K 字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标
2585 151K 重定向 tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 重定向端口 3128 0 0 重定向 tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 重定向端口 3128 0 0 重定向 tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 重定向端口 3128 0 0 重定向 tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 重定向端口 3128

链 POSTROUTING(策略接受 8621 个数据包,1092K 字节) pkts 字节目标协议选择加入退出源目标
0 0 MASQUERADE 全部 -- * eth0 0.0.0.0/0 0.0.0.0/0

链输出(策略接受 1625 个数据包,97780 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标

root@squid:~# cat /etc/squid/squid.conf
cache_effective_user 鱿鱼
cache_effective_user 鱿鱼
http_port 3128 透明

cache_dir ufs /home/bridge/squid/cache 2000 16 256

缓存访问日志 /var/log/squid/access.log 缓存日志 /var/log/squid/cache.log cache_store_log 没有

模拟httpd登录

缓存内存 16 MB

层次结构_停止列表 cgi-bin? acl QUERY urlpath_regex cgi-bin \? asp aspx jsp no_cache 拒绝查询

hosts_文件 /etc/hosts

刷新模式^ftp: 1440 20% 10080 刷新模式^gopher: 1440 0% 1440 刷新模式 . 0 40% 4320

acl 所有源 0.0.0.0/0.0.0.0

在下面定义您的网络

acl mynetwork src 192.168.0.0/24 acl 管理器 proto cache_object acl 本地主机 src 127.0.0.1/255.255.255.255 acl to_localhost 目标 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 port 1025-65535 #未注册的端口

acl SSL_ports 端口 443 563

http_access 允许管理器本地主机 http_access 允许管理器 http_access 允许清除本地主机 http_access 允许清除 http_access 允许 !Safe_ports http_access 允许连接 !SSL_ports

http_access 允许本地主机 http_access 允许我的网络 http_access 允许所有 http_reply_access 允许所有 icp_access 允许我的网络

icp_access 全部拒绝

visible_hostname 桥

coredump_dir /etc/squid

答案1

我通过添加一个简单的 iptables 规则解决了我的问题:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

相关内容