通过代理将 smtp 和 pop3 路由到 iptables

通过代理将 smtp 和 pop3 路由到 iptables

以下设置:

客户端(Outlook)<-----> |eth1 代理 eth0 | <-------> 互联网

我该如何做到这一点?将所有过滤表的标准策略设置为“接受”不会改变任何事情,那么预路由是可行的方法吗?

你好,Kai

答案1

您可以为此使用 SOCKS 代理服务器或 iptables 和 NAT。

我假设您的客户端主机位于本地网络内,并使用私有 IP 地址,例如 10.0.0.0/8、172.28.0.0/12 或 192.168.0.0/16。

先决条件:

  1. 你可以从你的Linux机器访问你的客户端主机
  2. 你可以从你的 Linux 机器访问互联网

第一步是启用 IP 转发:

# set kernel flag to allow IP forwarding from one to another network device
echo 1 > /proc/sys/net/ipv4/ip_forward

下一步是使用 iptables 激活 NAT:

# enable NAT for Internet device (here eth0)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# accept incoming Internet traffic, which is related to established outgoing connection
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# enable forwarding from internal device eth1 to external device eth0
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

这是一个非常简单的设置,我建议仔细研究 iptables,以便为您的 LAN 提供安全性以及为您的 LAN 提供对 Internet 的访问。

要限制仅对某些协议(此处为 SMTP、POP3、IMAP)的访问,您可以使用以下设置:

# enable NAT for Internet device (here eth0)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# accept incoming Internet traffic, which is related to established outgoing connection
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# enable forwarding from internal device eth1 to external device eth0
iptables -A FORWARD -i eth1 --dport 25 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 --dport 110 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 --dport 143 -o eth0 -j ACCEPT

相关内容