标签:iptables OUTPUT Linux 系统 防火墙 ACCEPT 规则 INPUT 数据包
数据包进入流程:依次检查每条规则。
数据包传送到防火墙时,会由Netfilter(iptables)做检查。检查通过则放行,否则将数据包丢弃。规则的检查如上图所示,也是有顺序的。如果数据包在进行第一条规则比对时已经符合,那么就执行相关动作,后面的规则一律不再进行检查;同理如果第一条规则不匹配就比对第二条,直到结束。如果所有的规则都不匹配则通过预先设定的数据包动作来决定数据的包放行与否。
iptables的表(table)与链(chain)
iptables有多个表,每个表的用途都不同,也都有自己的规则。即我们通常所说的iptables的3表5链。
- filter表:主要是跟进入Linux本机的数据包有关,这个是预设的表。
INPUT:主要与想要进入Linux本机的数据包有关;
OUTPUT:主要是Linux本机索要送出的数据包有关;
FORWARD:与本机关联不大,可以传递数据包到后端设备中。与NAT表关联性大些。
- nat表:主要是源目ip和端口的转换,主要与后端的设备相关。
PREROUTING:路由判断前要进行的规则(DNAT/REDIRECT);
POSTROUTING:路由判断后要进行的规则(SNAT/MASQUERADE);
OUTPUT:与发送出去的数据包有关。
- mangle表:主要与特殊数据包的路由标志相关。(实际过程中我使用的较少)
与Linux本机最有关的是filter表的INPUT和OUTPUT这两条链。
如果防火墙是后面还有其他的设备,需要对filter表的FORWARD链进行限制,还有NAT表的PREROUTING和POSTROUTING以及OUTPUT需要设置
一般系统安装后会自动建立默认的防火墙机制,比如SSH默认开放22号端口。
iptables的参数:
iptables [ -t tables] [ -L ] [ -nv ]
-t:后面接表(filter或者nat),不加-t参数默认是filter表
-L:列出当前表的所有规则
-n:列出ip,不进行ip与hostname的反查
-v:列出详细信息,包括数据包的总位数,接口等
Chain INPUT(policy ACCEPT 0 packets,0 bytes)这是预设的数据包规则,默认全部接受;FORWARD和OUTPUT链同理
虽然INPUT和OUTPUT链的预设规则是允许,但是在链中的最后一条规则其实都是拒绝的
以INPUT链的规则详细说明:
1、所有协议,只要数据的连接状态为RELATED和ESTABLISHED就接受
2、主要是ICMP的协议就接受
3、 所有协议,只要是从本地环回接口lo口流入的就接受
4、主要是目的端口是22号端口的主动连接TCP数据包就接受
5、所有的数据包信息全部拒绝
iptables-save来查看防火墙的规则信息,这个规则信息则没有之前那样规范化的显示
iptables-save -t filter或者nat
[root@shuangwaiwai ~]# iptables-save
*filter filter表
:INPUT ACCEPT [0:0] 预设INPUT链规则
:FORWARD ACCEPT [0:0] 预设FORWARD链规则
:OUTPUT ACCEPT [627:69347] 预设OUTPUT链规则
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptables规则清除:
iptables [ -t tables ] [ -FXZ ]
-F:清除所有已经设定的规则
-X:清除所有使用者自定义的链表
-Z:将所有链的计数与流量统计都清零
这3个清除防火墙规则的参数不会改变预定规则,但是有可能服务器就连接不上了
标签:iptables,OUTPUT,Linux,系统,防火墙,ACCEPT,规则,INPUT,数据包 来源: https://www.cnblogs.com/wujizhang/p/11721043.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。