我有一台 Ubuntu 10.04 机器,曾配置为 Squid 透明代理。导航很完美:我的 Windows 客户端没有遇到任何问题。
我遇到的问题是用户无法使用 Outlook(和 Outlook Express)发送或接收邮件。所以我到处搜索,找到了一个解决方案:
sudo iptables -t nat -A POSTROUTING -p TCP --dport 25 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -p TCP --dport 110 -j MASQUERADE
一切顺利。
现在我启用了 squid 身份验证(使用文本文件的简单身份验证),我的 outlook 和 outlook express 又停止工作了。我了解到该问题实际上与 squid 无关,因为它不会代理 smtp 或 pop... 但我仍然需要解决它。NAT?端口转发?
我应该使用什么样的命令?
squid 服务器只有一个 NIC,可以毫无问题地访问互联网并使用 opendns 服务器解析名称。
服务器上的配置:ip 192.168.1.210 子网 255.255.255.0 网关 192.168.1.5
在客户端上我使用:ip 192.168.1.x 子网 255.255.255.0 网关 192.168.1.210
我可以添加更多详细信息,请询问,但我不知道解决问题需要什么。
编辑:
sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:www redir ports 3128
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE tcp -- anywhere anywhere tcp dpt:smtp
MASQUERADE tcp -- anywhere anywhere tcp dpt:pop3
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
答案1
我不确定你到底要实现什么。据我所知,你将使用装有 squid 的机器作为路由器/防火墙,用于以下场景:
- 仅允许通过 squid 进行网络协议 (http/ftp)
- 允许从您的内部网络通过 NAT 到外部访问 smpt/pop3。
- 您的互联网网关是 192.168.1.5
通常,NAT 会从一个网络(192.168.1.0/24)转换到另一个网络(即 84.145.77.23/32),反之亦然。因此,您可能需要在网关机器 192.168.1.5 上设置 NAT 规则才能正常工作。
因此传出的路径是:
client -> 192.168.1.210 ->NAT-> 192.168.1.5 ->NAT-> mailserver
响应的传入路径是:
mailserver -> 192.168.1.5 ->NAT-> 192.168.1.210 ->NAT-> client
正如这里所见,可以消除 192.168.1.210,并且可以配置网关以接受和 NATing 来自所有客户端的传出 smtp/pop3 流量,并仅接受来自 192.168.1.210 的传出 http(s)/ftp 流量。
我认为 192.168.1.210 和 192.168.1.5 之间的第二个 NAT 可能会导致问题(同一网络)并且是不必要的。
要在 192.168.1.210 上启用 NAT,请先尝试以下操作:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
如果需要,将 eth0 更改为您的网络接口名称。