|NO.Z.00047|——————————|Applications|——|防火墙.V1|——|3台server|

一、何为防火墙
1、防火墙
2、防火墙:
### --- 防火墙:

~~~     工作在主机边缘处或者网络边缘处对数据报文进行检测,
~~~     并且能够根据事先定义好的规则,对数据报文进行相应处理的模块
~~~     对于防火墙来说是放进不防出:出去的一般都是安全的。
~~~     工作在主机边缘处或者网络边缘处对数据报文进行检测,
~~~     并且能够根据事先定义好的规则,对数据报文进行相应处理的模块
~~~     对于防火墙来说是放进不防出:出去的一般都是安全的。
二、防火墙的分类
1、分类
### --- iptables:
~~~     是linux防火墙的配置工具;才是netfilter的配置工具。

### --- netfilter:
~~~     才是正真的内部防火墙,内核里面实现的方式。它才是防火墙生效的部分。
### --- centos6.x:
~~~     netfilter内核态/应用态iptables;iptables分类方式比较容易理解。

### --- centos7.x:
~~~     netfilter内核态/应用态firewalld;firewalld的分类比较简单
2、工作结构
3、版本变化
### --- kernel     2.0.x        firewall            ipfw(工具)
### --- kernel     2.2.x        firewall            ipchains(工具)

### --- kernel     2.4.x        netfilter            iptables(工具)
### --- kernel     3.13.x      netfilter            firewall(工具)   

三、iptables原理
1、INPUT
### --- Client发起数据报文到网卡处,路由表判断这个用户的请求是不是本机的,
~~~     若是本机的会交给netfilter的号请求,这个1号位置有对应的规则,
~~~     如果规则时80的话,这个报文请求有80规则的话这个数据报文就会进入到Apache服务,
~~~     去得到对应的数据报文。

### --- netfilter1号位置就是iptables的第一个入口,INPUT:链:规则就是写在链上。
### --- 所有入站的报文都要经过INPUT链,才能到达用户的上层空间。
2、OUTPUT
### --- 用户有个CURL命令:
~~~     用户想发起报文CURL把数据报文发到netfilter2号位置,路由表发送给WEBSERVER网卡处。

### --- netfilter2:
~~~     对出去的数据报文进行过滤操作OUTPUT
3、FORWORD
### --- 开启了路由转发

~~~     client发起数据报文,并且开启了路由转发,目标地址指的是WEBSERVER,
~~~     这个路由器就会把这个数据包文转发过去,经过netfilter3号接口,
~~~     netfilter3是处理数据报文转发的功能:FORWORD
4、PREROUTING
### --- client想访问WEBSERVER服务器,正常情况下是访问不到的,

~~~     可以通过防火墙的规则让其可以访问到
~~~     client发起数据报文进过路由表,路由表判断是本机的还是外部的。
~~~     外部的会交给netfilter3 FORWORD转发出去,
~~~     若是netfilter4 PREROUTING进行这个路由进行对应的修改,
~~~     netfilter在路由表前进行数据报文处理的接口。
5、POSTROUTING
### --- netfilter5 POSTROUTING在进行路由选择后处理数据包
### --- 链放在表上。
6、五链
~~~     INPUT:处理入站数据包
~~~     OUTPUT:处理出站数据包
~~~     FORWARD:处理转发数据包

~~~     POSTROUTING链:在进行路由选择后处理数据包
~~~     PREROUTING链:在进行路由选择前处理数据包
7、四表
### --- raw表:
~~~     确定是否对该数据包进行状态跟踪;一旦数据包经过防火墙之后,
~~~     正常情况下会消耗资源,可以设置跳出。

### --- mangle表:
~~~     为数据包设置标记;在数据包里打上对应标签的功能。
### --- nat表:
~~~     修改数据包中的源、目标IP地址或端口;多个内网用户访问公网,SNAT,DNAT

### --- filter表:
~~~     确定是否放行该数据包(过滤)
8、防火墙结构:不同的表下对应的链是不一样的。

四、防火墙顺序
### --- 顺序表
~~~     raw——>mangle——>nat——>filter

### --- 链顺序
~~~     入站:PREROUTING路由选择前处理数据包     INPUT入站数据包
~~~     出站:OUTPUT出站数据包     POSTROUTING路由选择后处理数据包
~~~     转发:PREROUTING路由选择前处理数据包     FORWARD转发数据包     POSTROUTING路由选择后处理数据包
### --- 规则顺序
~~~     按顺序依次检查,匹配即停止(LOG策略例外):LOG:打了一个日志,并不做任何处理。
~~~     若找不到相匹配规则,则按该链的默认策略处理。

### --- 数据匹配流程图
~~~     网络A,网络B不同的网络之间完成数据请求。
~~~     网络A发起数据报文到本机的应用服务器先经过raw表mangle表nat表通过路由表的选择到filter表mangle表到目标。
五、iptables语法规则
### --- 书写规则
~~~     语法构成:iptables     [-t 表名]     选项     [链名]      [条件]      [-j 控制类型]

### --- 几个注意事项
~~~     不指定表名时,默认指filter表
~~~     不指定链名时,默认指表内的所有链
~~~     除非设置链的默认策略,否则必须制定匹配条件
~~~     选项,链名,控制类型使用大写字母,其余均为小写
### --- 常见动作类型

~~~     ACCEPT:允许通过
~~~     DROP:直接丢弃,不给出任何回应
~~~     REJECT:拒绝通过,必要时给出提示
~~~     LOG:记录日志信息,然后传给下一条规则继续匹配
~~~     SNAT:修改数据包源地址
~~~     DNAT:修改数据包目的地址
~~~     REDIRECT:重定向
### --- 添加新的规则

~~~     -A:在链的末尾追加一条规则
~~~     -I:在链的开头(或指定序号)插入一条规则
~~~     iptables -t filter -A INPUT -p tcp -j ACCEPT:                  // 当有tcp协议的入站请求的时候放行。
~~~     iptables -I INPUT -p udp -j ACCEPT                              // 在input链的开头增加一条规则。当有udp连接的时候放行
~~~     iptables -I INPUT 2 -p icmp -j ACCEPT                           // 在input链的第二个协议上添加一个协议ICMP连接放行
### --- 查看规则列表

~~~     -L:列出所有的规则条目
~~~     -n:以数字形式显示地址,端口等信息
~~~     -v:以更详细的方式显示规则信息
~~~     --line-numbers:查看规则时,显示规则的序号
iptables -L INPUT --line-numbers
~~~     Chain INPUT  (policy ACCEPT)
~~~     num         target         port         opt         source             destination
~~~      1          ACCEPT        udp         --          anywhere           anywhere
~~~      2           ACCEPT       icmp        --         anywhere            anywhere
### --- 删除,清空规则

~~~     -D:删除链内指定序号(或内容)的一条规则
~~~     -F:清空所有的规则
~~~     iptables -D INPUT 3
~~~     iptables -n -L INPUT
~~~     Chain INPUT (policy ACCEPT)
~~~     target            prot            opt            source            destination
~~~     ACCEPT       udp              --            0.0.0.0/0            0.0.0.0/0 
~~~     ACCEPT       icmp            --            0.0.0.0/0            0.0.0.0/0
~~~     ACCEPT       tcp               --            0.0.0.0/0            0.0.0.0/0      
### --- 设置默认策略

~~~     -p:为指定的链设置默认规则
~~~     iptables -t filter -P FORWARD DROP
~~~     iptables -P OUTPUT ACCEPT

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示