linux – iptables nat只是端口25?

前端之家收集整理的这篇文章主要介绍了linux – iptables nat只是端口25?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图配置防火墙.
它必须是网络接口,eth0(lan)和eth1(wan).
allow-hotplug eth1
auto eth1
iface eth1 inet static
address 192.168.2.2
gateway 192.168.2.1
netmask 255.255.255.0

allow-hotplug eth0
auto eth0
iface eth0 inet static
address 192.168.16.6
netmask 255.255.255.0
network 192.168.16.0
broadcast 192.168.0.255

eth1背后是一个路由器,它给我一个动态IP.

我在同一台机器上,有一个网络代理.实际上,局域网上的计算机只能使用代理访问Web.现在,我需要局域网中的计算机通过Internet访问SMTP和POP3服务器.所以我需要NAT,但仅限于端口25和110.我不想nat nat其他端口.

你能帮我一步一步配置iptables(我真的在iptables noob)吗?

问候

解决方法

下面的代码将完成这项工作. Iptables很容易使用 – 您只需要明确告诉它如何处理来自或到达特定端口上特定位置的流量.虽然您只请求了端口25和110,但我还包括安全SMTP和安全POP3的选项.

我在下面推荐的内容考虑了您所拥有的任何防火墙规则,并将您要求的规则置于处理顺序之上,而不是其他任何规则. Iptables按照它们匹配的顺序处理规则,因此,如果防火墙中已有其他规则可能阻止SMTP或POP3,我使用了insert命令并指定规则应放在列表的顶部.如果您没有任何其他防火墙规则,则可以将“-I”替换为“-A”并删除“FORWARD”和“POSTROUTING”表之后的行号.

我建议您尽可能地实施连接跟踪,并且下面的第一个iptables规则将其打开.如果你在一个非常老的内核上运行,那么你可能会遇到这些命令的问题,但是如果它们适合你,那就太好了.如果没有,则删除第一行,并删除所有其他行的“-m tcp”部分.

#Enable IP Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

#Turn on connection tracking
iptables -I FORWARD 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#Allow SMTP traffic out to the internet. This includes regular and authenticated SMTP
iptables -I FORWARD 2 -i eth1 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -I FORWARD 2 -i eth1 -p tcp -m tcp --dport 465 -j ACCEPT
iptables -I FORWARD 3 -i eth1 -p tcp -m tcp --dport 587 -j ACCEPT

#Allow POP3 traffic out to the internet. This includes regular and SSL secured POP3
iptables -I FORWARD 4 -i eth1 -p tcp -m tcp --dport 110 -j ACCEPT
iptables -I FORWARD 5 -i eth1 -p tcp -m tcp --dport 995 -j ACCEPT

#NAT the traffic leaving your router for the allowed forwarded ports above
iptables -t nat -I POSTROUTING 1 -o eth0 -p tcp --dport 25 -j MASQUERADE
iptables -t nat -I POSTROUTING 2 -o eth0 -p tcp --dport 465 -j MASQUERADE
iptables -t nat -I POSTROUTING 3 -o eth0 -p tcp --dport 587 -j MASQUERADE
iptables -t nat -I POSTROUTING 4 -o eth0 -p tcp --dport 110 -j MASQUERADE
iptables -t nat -I POSTROUTING 5 -o eth0 -p tcp --dport 995 -j MASQUERADE

#Optionally,block any other forwarded traffic
iptables -I FORWARD 6 -i eth1 -j REJECT

猜你在找的Linux相关文章