娃次 防火墙? 昂瑟儿:路由器上了一把锁。 言归正传
什么是防火墙?
防火墙是用来隔离内网与外网之间的设备,主要是防止不安全的数据访问内网,防止内网人员访问存在安全隐患的网站,控制不安全服务等作用。专业的分析,防火墙是位于两个或多个网络间,实施网络控制之间访问控制的一组组件集合。防火墙的本意是指古代使用木制房屋的时候,为了防止火灾的发生与蔓延,人们将坚硬的石块堆砌再房屋周围作为屏障,这种防护构筑物就被称为防火墙。防火墙通过策略进行控制数据包的进出
防火墙的分类
防火墙又分为软件防火墙和硬件防火墙
在最基本的层面上,硬件防火墙是物理单元,而软件防火墙则通过应用程序从计算机内部运行。他们有总体相同的使命,但他们以略有不同的方式实现该使命,从而分别有各自的优势:
- 初始成本更低: 首次购买时,软件防火墙相对便宜。有的会提供免费试用,免费试用之后可获得相对较低的月度费用。然而,从长远来看,订阅费用可能比您购买硬件解决方案支付的费用更昂贵。
- 所需空间小:如果空间是一个问题,软件可能是一个更好的选择,因为应用程序不会占用实体空间。
- 易于安装:许多软件防火墙只需几次点击即可启动和运行,而硬件防火墙则需要连接电线、连接电源并放在适当的位置。
常见的软件防火墙
我们最常接触到的软件防火墙就是Windows的Wrappers和Linux的netfilter,今天主要介绍Linux的netfilter。
netfilter
位于Linux内核中的包过滤功能体系
称为Linux防火墙的内核态
注意:
我们常把一些管理工具称为软件本身,就比如mysql我们就称为数据库,但是实际上MySQL只是一款数据库的管理工具,实际上的数据库是我们通过CREATE创建的,而在Linux中,防火墙中也有两款常用的管理工具iptables和firewalld,在RHEL7中还有ebtables,在RHEL8中,默认使用的管理工具是firewalld,不过底层调用的命令仍然是iptables
iptables
位于/sbin/iptables,用来管理防火墙规则的工具
称为Linux防火墙的用户态
这两种称呼都可以表示Linux防火墙
iptables下载
yum install iptables-service
注意:在使用iptables时,需要关闭并冻结firewalld,因为防火墙工具之间可能存在冲突
systemctl stop firewalld systemctl mask firewalld
开启iptables服务
systemctl enable --now iptables.service --开启开机自启
包过滤的工作层次
主要是网络层,针对ip数据包,体现在对包内的ip地址、端口等信息的处理上
防火墙中的四链五表
规则链
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
默认的五种规则链
INPUT:处理入站数据包,数据包从内核空间流入到用户空间
OUTPUT:处理出站数据包,数据包由用户空间流出到内核空间
FORWARD:处理转发数据包,在内核空间中,从一个网络接口进入,到另一个网络接口去
POSTROUTING:在进行路由选择后处理数据包,即路由后数据包准备离开网络接口前
PREROUTING:在进行路由选择前处理数据包,即数据包刚进入网络接口之后
规则表
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
默认包括四个规则表
raw表:确定是否对该数据包进行状态跟踪,存放的链有OUTPUT、RPEROUTING
mangle表:为数据包设置标记 -- 为其他软件所调用,不负责拦截,存放所有默认链
nat表:修改数据包中的源、目标ip地址或端口,存放链OUTPUT、POSTROUTING、PREROUTING,表中存放的数据不经过内核
filter表:确定是否放行该数据包(过滤),存放链INPUT、OUTPUT、PREROUTING,表中的数据将会经过本机内核
规则表之间的顺序(优先级)
raw -> mangle -> nat -> filter
规则链之间的顺序
入站:PERROUTING -> INPUT
出站:OUTPUT -> POSTROUTING
转发:PERROUTING -> FORWARD -> POSTROUTING
规则链内的匹配顺序
按规则依次检查,匹配即停止(LOG策略例外),若找不到相匹配的规则,则按该链的默认策略处理

语法构成:iptables -t [表名] 选项 [链名] [条件] [-j 控制类型]
注意:
不指定表名时,默认指filter表
不指定链名时,默认指表内所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
iptables的常用选项
| 选项 |
含义 |
| -t |
指定表的类型,默认filter,必须是四种默认规则表的一种 |
| -p |
指定要匹配的数据包协议类型 |
| -s |
匹配哪一个/组源地址 |
| -d |
匹配哪一个/组目的地址 |
| -I大写i |
匹配哪个入网络接口(网卡)的流量 |
| -o |
匹配哪个出网络接口(网卡)的流量 |
| -l小写L |
列出链中所有的规则,默认所有,也可以在后边跟链的名字 |
| -D |
在指定链中删除一个或多个规则,后跟链名 |
| -R |
替换修改第几条规则 |
| -j |
指定动作,可以是DROP、ACCEPT、REJECT,要求必须大写 |
| -N |
创建一个新的链,后跟链的名字 |
| -L |
查看表或链 |
| -F |
清空表中的所有规则 |
| -E |
更改链的名字 |
| -P |
更改默认规则 iptables -P INPUT DROP |

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/38401.html