Squid 代理服务器(或 iptables)不允许我的用户发送或接收邮件

Squid 代理服务器(或 iptables)不允许我的用户发送或接收邮件

我有一台 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 的机器作为路由器/防火墙,用于以下场景:

  1. 仅允许通过 squid 进行网络协议 (http/ftp)
  2. 允许从您的内部网络通过 NAT 到外部访问 smpt/pop3。
  3. 您的互联网网关是 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 更改为您的网络接口名称。

相关内容