首页 > 代码库 > iptables防火墙使用笔记
iptables防火墙使用笔记
一、背景
每次WEB项目上线时总是要安装环境,其中免不了配置防火墙来允许外网访问。之前都是网上找教程比葫芦画瓢把开启80端口命令敲一下就不管了。本着学习的精神,今天打算好好研究一下iptables配置,并作笔记以便之后查看。只求明白即可,具体深入原理啥的就算了。
注:centos7默认防火墙改为firewall而非iptables。
二、快速搞定
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
如果不想往下看的话,基本上只需记下这条命令就可以开启80端口,想开其他端口只需要把80换成需要就行(比如3306)。但如果还是不能解决问题,那就得好好看看规则定义了。
三、什么是iptables
iptables就是用规则列表的形式实现网络访问控制,但与防火墙是两个概念。虽然网上都这么叫。
四、怎么看iptables规则
iptables -L
[root@sstest ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
1、iptables有三个规则链(chain)。分别为INPUT(数据包流入口) ,FORWARD (转发),OUTPUT(数据包流出口)。在定义任何规则时基本上都要写明是哪个。
2、iptables有两种策略,一种叫“通”策略,一种叫“堵”策略,通策略,默认门是关着的,必须要定义谁能进。堵策略则是,大门是洞开的,但是你必须有身份认证,否则不能进。上面例子中(policy ACCEPT)即表示策略默认全部可以通过,同理相反的还有DROP。
修改策略命令是
iptables -P chain (DROP|ACCEPT)
3、规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的。所以一定要注意添加顺序问题。基本上规则无效多半是因为这种情况。
五、怎么添加删除iptables规则
首先,先是增删改的命令。上文说到规则次序问题,所以就有两个添加参数啦
-A:追加,在当前链的最后新增一个规则
-I num : 插入,把当前规则插入为第几条。
-I 3 :插入为第三条
-R num:Replays替换/修改第几条规则
格式:iptables -R 3 …………
-D num:删除,明确指定删除第几条规则
然后呢,就要添加匹配标准了。
其中,协议匹配(-p)有一些隐含参数
-p tcp :
--dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口
--sport:指定源端口
--tcp-fiags:TCP的标志位(SYN,ACK,FIN,PSH,RST,URG)
--dport
--sport
--icmp-type:
echo-request(请求回显),一般用8 来表示
所以 --icmp-type 8 匹配请求回显数据包
echo-reply (响应的数据包)一般用0来表示
匹配标准有了,最后就是执行动作了(ACTION)
-j ACTION:常用的ACTION有三种DROP(悄悄丢弃);REJECT(明示拒绝);ACCEPT(接受)
了解了这些命令参数之后,前文中添加80端口的命令的含义就一目了然了(⊙▽⊙)
六、总结
iptables是一个非常重要的工具,几乎是每一台服务器所必备设置的。当然,iptables的功能远不止这些。本文只是起到抛砖引玉的作用,要想了解更多关于linux防火墙设置还是要多看看网上其他技术大牛的文章。
iptables防火墙使用笔记