我为游戏服务器托pipe设置了一个专用服务器,它还将托pipe其他一些服务器应用程序(如Web服务器)。 专用服务器总共有四个IP地址,假设它使用以下内容:
192.0.2.0
; 192.0.2.1
; 192.0.2.2
; 192.0.2.3
为了安全起见,我希望每个IP专用于某个服务/一组服务(并使出站端口完全打开),例如:
192.0.2.0
(游戏服务器); 192.0.2.1
(Teamspeak服务器); 192.0.2.2
(Web服务器); 192.0.2.3
(系统[SSH等]) 事件的顺序应该是所有端口都被阻塞 ,然后某些端口被解除阻塞。 我看了这里 ,我有一个粗略的命令列表变成一个bash脚本并设置为在启动时执行:
iptables -A OUTPUT -o -j DROP iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -I OUTPUT -p tcp -s 192.0.2.3 --dport 80 -j ACCEPT iptables -I OUTPUT -p tcp -s 192.0.2.3 --dport 443 -j ACCEPT iptables -I INPUT -p tcp -s 192.0.2.3 --dport 22 -j ACCEPT iptables -I INPUT -p tcp -s 192.0.2.0 --dport 25565 -j ACCEPT iptables -I INPUT -p tcp -s 192.0.2.0 --dport 25566 -j ACCEPT iptables -I INPUT -p tcp -s 192.0.2.2 --dport 80 -j ACCEPT iptables -I INPUT -p tcp -s 192.0.2.1 --dport 9987 -j ACCEPT
这两个命令允许来自IPTables规则的所有出站stream量允许所有出站本地始发stream量?
由于我过去使用iptables的经验 ,我不愿意应用这些规则,因为我不确定它们是否正确,或者如果我正确地处理这些规则。 上面的iptables规则是否会按照预期工作,如果没有,我该如何纠正它,使其按照预期工作?
服务器运行Ubuntu 14.04 64位。 我有一个由我的提供商提供的硬件防火墙在我的处置,但它不允许我阻止/允许服务器具有特定的IP端口(所以我无法在这种情况下使用它)。
从你的post,我的假设是:
原则上,所有IP地址都可以打开出站连接默认情况下,不应允许入站IP地址。 所有IP地址绑定到一个物理networking接口。
我会然后configuration如下:
#Block all incoming connections iptables -P INPUT REJECT #Allow all outgoing connections iptables -P OUTPUT ACCEPT #Allow all on local loopback iptables -A INPUT -i lo -j ACCEPT #Allow established connections iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Game server on TCP/25565 and TCP/25566 iptables -A INPUT -p tcp -d 192.0.2.0 --dport 25565 -j ACCEPT iptables -A INPUT -p tcp -d 192.0.2.0 --dport 25566 -j ACCEPT #Teamspeak on TCP/9987 (No UDP?) iptables -A INPUT -p tcp -d 192.0.2.1 --dport 9987 -j ACCEPT #Web server iptables -A INPUT -p tcp -d 192.0.2.2 --dport 80 -j ACCEPT #System services iptables -A INPUT -p tcp -d 192.0.2.3 --dport 22 -j ACCEPT
除此之外,为什么不使用Shorewall来pipe理iptables规则呢?