iptables 安装设置 针对游戏服务器

至于Iptables的定义及概念性的讲述,请移步百度,概不赘述。
介于iptables在过滤包操作大多是在默认的filter表中的INPUT、OUTPUT、FORWARD链内进行操作的,所以,可以做一下简单的限制。为了我们服务器的安装。
有一点务必要清楚,iptables的所有规则,都是临时保存在内存中的,也久是说你设置了规则以后,你的规则在内存中被iptables进行读取,一旦 你重启了iptables或者重启了机器,那么,规则自然就没有了,就得重新加载。所以,把规则写在脚本内,或者通过iptables-save iptables-restore来进行重载也是一个不错的方法。
首先,对于Iptables有一个默认的处理规则,就是说针对一个链(INPUT或者OUTPUT)一点流过防火墙的包不符合任何一个iptables的规则链,他就会默认调用来进行处理。
当然,每次设置规则的时候,我们最好都把我们以前的规则都给清空掉。

iptables -F;
iptables -Z;
iptables -X;

所以我们可以先这样进行设置。
iptables -P INPUT -j DROP
iptables -P OUTPUT -j ACCEPT
iptables -P FORWARD -j DROP
iptables -A INPUT -i lo -p all -j ACCEPT

第一句的意思是默认丢弃所有流入的包,第二句是默认允许所有的包流出,第三句是所有通过本机转发的包也都丢弃,第四句是允许本地的数据回环
接下来就开始配置我们的规则了
有可能你会担心,如果我在开着游戏的时候,启动了这个直接被K了怎么办。这点不用担心。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPU -m -state --state ESTABLISHED,RELATED -j ACCEPT

这个是保留现在所有已建立的通信。
我们要开启我们的SSH端口。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT;

这个的意义就是把所有进行本机的,目的端口是22的包都允许。
当然,你还可以限制某些机器IP可以连接,比如VPN

iptables -A INPUT -s 11.111.11.111 -p tcp --dport 22 -j ACCEPT

这个的意义就是允许源ip 11.111.11.111 到本机22端口的通信。
由于我们已经允许了OUTPUT所有数据,所以就不用写OUTPUT规则了,如果你OUTPUT默认是DROP,那你就得加上另一句:

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT;

允许所有从22端口的数据流出。
这样你就能保证你不会断掉且你的SSH可以通畅了。

那么,如果你想要只对一个你网关开放你的游戏端口怎么办呢?


iptables -A INPUT -s 网关IP -d 本机ip --dport 游戏端口 -p tcp -j ACCEPT

这个的意义就是只允许网关IP,流入对应端口的包通过。不然,就拒绝。
嗯,暂时就这样了吧。

补充:如果要删除一条规则的时候命令如下:

iptables -t table -D chain rule-num

先查看规则序号:

iptables -t filter -L --line-number

然后进行删除

iptables -t filter -D INPUT num
原文地址:https://www.cnblogs.com/dieangel/p/3327005.html