Squid 反向代理未向 Web 服务器发送流量

Squid 反向代理未向 Web 服务器发送流量

我正在学习如何使用 Squid 作为反向代理。目前它没有向后端 Web 服务器发送任何 Web 流量。我将 http 流量带入反向代理并将其发送到 8080 处的 Web 服务器。我的设置:

Internet--Firewall--Squid--WebServer

我为 squid 设置了 2 个网卡。一个网卡具有 DMZ IP,可 NAT 到公共 IP。另一个网卡是内部网卡,与 Web 服务器位于同一子网中。以下是 squid.conf 文件:

http_port 80 accel defaultsite=rcdlab.net vhost
forwarded_for on

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

cache_peer 192.168.3.59 parent 8080 0 no-query no-digest originserver name=web01
acl sites_iis dstdomain www.rcdlab.net rcdlab.net 192.168.222.198
acl our_sites dstdomain www.rcdlab.net rcdlab.net 192.168.222.198
cache_peer_access web01 allow sites_iis

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.3.0/24
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

http_access allow our_sites

http_access allow manager all
http_access allow manager
http_access allow localnet
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

visible_hostname rp.rcdlab.local
access_log /var/log/squid/access.log

2012 年 6 月 29 日更新

来自我的电脑的外部流量正在到达反向代理,但我在 tcpdump 中看到这一点:

172.16.3.254 > 192.168.222.213: ICMP host 172.16.3.254 unreachable - admin prohibited, length 60
        IP (tos 0x0, ttl 128, id 4230, offset 0, flags [DF], proto TCP (6), length 52)

172.16.3.254 = 反向代理 192.168.222.213 = 我的 IP

答案1

更新

编辑 /etc/sysconfig/iptables 并添加以下规则:

-A INPUT -p tcp --dport 80 -j ACCEPT

这会附加到 INPUT 链(发往本地服务器的数据包)、tcp 协议、目标端口 80,并跳转到与规则匹配的数据包的目标操作 ACCEPT。

这允许外部流量到达反向代理并转发到后端 Web 服务器,这可以通过查看 IIS 日志来验证。

/更新

我的 NAT 和防火墙规则很好。

问题出在 CentOS 和 /etc/sysconfig/iptables 中的 iptables

这一行:

-A INPUT -j REJECT --reject-with icmp-host-prohibited

阻止了流量到达我的 Web 服务器。我暂时将其注释掉,但我需要进一步研究 iptables 及其工作原理。我不想在反向代理上打开任何漏洞。

相关内容