提醒:本文最后更新于 907 天前,文中所描述的信息可能已发生改变,请谨慎使用。
在alpharacks.com买一只鸡,装的是centos7,发现端口死活不通,原来默认只开了22端口,其它端口都关闭了。又逼着我学习了一下centos7下的iptables规则。这东西很少用,也很容易忘,现将基本操作记下来,权当笔记。
若没有安装iptables-services,使用iptables时会报错,如“Unit iptables.service could not be found”,请先安装服务:
安装后设置开机启动:
禁用iptables则是:
iptables启动、关闭、保存和状态:
或者是:
有了iptables,就可以设置规则了。
1、打开指定的进或出的端口,需要添加规则:
2、允许或禁止ping (OUTPUT设置成DROP的话就是禁止ping出,INPUT设置成DROP的话就是禁止ping入):
3、禁止其他未允许的规则访问,增加此规则时,确认ssh的端口已添加,否则会断开ssh。一般加在允许端口规则的最后,因为执行是按顺序进行的,放在最前面的话,在此规则后面的放行规则就失效了。
4、编辑完成后,记得保存规则到iptables:
5、重启iptables:
6、按编号列出规则:
7、比如要删除INPUT里序号为2的规则,执行(记得保存规则):
8、清空filter表中所有规则:
注意:
1、dport和sport的区别:
字面意思来说很好理解,dport一个是数据要到达的目的端口(即本机端口),sport一个是数据来源的端口(即来源端口)。
允许外部数据访问我的本地服务器80端口:
允许外部的来自80端口的数据访问本地服务器。:
允许内部数据出去访问外部的80端口。
允许内部的数据通过本地80端口出去。
2、iptables -I 和 -A的区别:
-A:是将规则写到现有链规则的最后。
-I:默认是将一条规则添加到现有规则链的最前面或指定行数,如添加到第3条规则:
3、当然也可以手机编辑规则文件:
来一个实际操作吧,操作前确认iptables已正常工作。
1、清除现有filter:
2、增加input规则:
#允许已经建立和相关的数据包进入
#允许icmp包进入,不然会ping不通
#允许本地的数据包,SS等需要内部转发需要
#开放ssh端口(此条必须,不然保存后就登录不上ssh了,那就要呵呵了!):
#开放80、443端口(web访问):
#按上述方式增加你需要的其它端口后,就可以禁用其它端口了:
3、增加OUTPUT规则:
#允许已经建立和相关的数据包出去
#允许icmp包出去,这样才能从服务器上ping出去
#允许本地数据包,SS等需要内部转发需要
#出站的端口其实可以都开放,我们全部开放吧:
4、保存iptables(不保存的话,一重启规则就没了):
5、重启一下iptables服务:
6、完成后你可以看下filter规则表:
最后编辑时间为: 2018年12月03日 18:28:48
本文由 ProgramSay 创作,
采用 知识共享署名 4.0 国际许可协议进行许可
可自由转载、引用,但需署名作者且注明文章出处