即时尝试configuration防火墙。 它必须有networking接口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后面是一个给我一个dynamicip的路由器。
我在同一台机器上,有一个networking代理。 实际上,局域网上的计算机只能使用代理访问networking。 现在,我需要局域网中的机器通过互联网访问SMTP和POP3服务器。 所以我需要NAT,但只是端口25和110.我不想nat其他端口。
你能帮我一步一步configurationiptables(即时通讯真的noob在iptables)?
问候
下面的代码将完成这项工作。 Iptables很容易处理 – 你只需要明确告诉它如何处理来自或去往特定端口上特定位置的stream量。 尽pipe您只需要端口25和110,但我还包括安全SMTP和安全POP3的选项。
我在下面推荐的是考虑到你所使用的任何防火墙规则,并且把你所要求的规则放在处理顺序中,而不是其他的。 Iptables按照它们匹配的顺序处理规则,所以为了防止防火墙中已经有其他规则可能阻塞SMTP或POP3,我使用了insert命令,并指定规则应该放在列表的顶部。 如果您没有任何其他防火墙规则,那么可以用“-I”replace“-I”,并在“FORWARD”和“POSTROUTING”表之后删除行号。
我build议尽可能实施连接跟踪,下面的第一个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
容易peasy柠檬squeezy:
iptables -t nat -A POSTROUTING -p TCP –dport 25 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP -dport 110 -j MASQUERADE
🙂
首先要做的事情
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
是错的(或错字))。 broadcast应该是192.168.16.255 。
假设每台电脑都有默认的网关( 192.168.16.6 ),这只是一个configurationIP转发的问题:
# Enable ip forward: echo 1 > /proc/sys/net/ipv4/ip_forward # The same cam be achieved by: # sysctl -w net.ipv4.ip_forward=1 # Forwarding traffic between interfaces: iptables -A FORWARD -i eth0 -o eth1 --src 192.168.16.0/24 -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 --src 192.168.16.0/24 -p tcp --dport 110 -j ACCEPT # This rule prevents other traffic to be dropped iptables -A FORWARD -i eth0 -o eth1 --src 192.168.16.0/24 -j DROP # Masquerade traffic to the outside world: # If the public ip is a dynamic one use MASQUERADE iptables -t nat -A POSTROUTING -o eth1 --src 192.168.16.0/24 -j MASQUERADE # If the public ip is a static one, use SNAT iptables -t nat -A POSTROUTING -o eth1 --src 192.168.16.0/24 -j SNAT --to-source <pub_ip>
当公共连接出现时,如果它创build一个PPP链接,那么你将不得不用eth1代替,比方说, ppp0 。
BEAWARE :这绝不是一个强大的防火墙,它只是一个最小的规则来做你想做的事情。