当前位置: 首页 > news >正文

linux防火墙

1.FW WW 

FW Firewall防火墙 关注外部流量进入的攻击行为
WW Waterwall 防水墙 是一种防止内部信息泄漏的安全产品。
防火墙的分类
按照保护范围来划分,可以分为主机防火墙网络防火墙
按实现方式来划分,可以分为硬件防火墙软件防火墙
按网络协议划分,可以分为网络层防火墙应用层防火墙
按实现细节角度划分,可以分为 包过滤,应用网关,状态检测,复合型防火墙

2.netfilter 基础

https :// www.netfilter.org / # 官方网站
etfilter / iptables 项目由 Rusty Russe 创建于 1998 年,并于 1999 年建立了 Netfilter Core team ,并在此后负责维护此项目,同时也于 2000 3 月合并进了 linux 2.3 .x 版本的 linux 内核
netfilter 组成
Netfilter / iptables Linux 平台下的包过滤防火墙系统,由 Netfilter 框架 iptables 两部分组成。
Ubuntu 系统
root @ubuntu24-13: ~ # uname -r
root @ubuntu24-13: ~ # grep -i netfilter /boot/config- 内核版本
CONFIG_NETFILTER_ADVANCED = y # netfilter 已经被编译到内核里面了
CONFIG_BRIDGE_NETFILTER = m # m 就是以模块的方式加载的。

3.防火墙工具

iptables
由软件包 iptables 提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往
netfilter ,告诉内核如何去处理信息包。 iptables 的包软件,默认情况下,已经被安装到操作系统里面了,如果我们希望去扩展对应的功能,开发相应的模块即可。
用户空间工具  内核空间 包管理功能  两部分组成
Rocky 系统下的iptables    rpm -q iptables-nft(查看软件包)   具体检索命令如下 ubuntu相同的操作
Ubuntu 系统桌面版已默认安装iptables  dpkg -l iptables
1. xtables-nft-multi
xtables-nft-multi 是一个用于在 Linux 系统中管理 iptables arptables ebtables 规则的工具集,它基于 nftables 的后端来实现。 nftables Linux 内核中的一个新的防火墙框架,旨 在替代旧的 iptables 框架,提供更强大、更灵活和更易于管理的防火墙规则。
2. firewalld     rethat系列操作系统的防火墙管理服务
Firewalld Linux 系统中一款用于管理网络防火墙的动态守护程序,它允许系统管理员在不需要重启防火墙或停止网络服务的情况下,实时更改防火墙规则。
rocky 默认安装     rpm -q firewalld  #有版本信息
systemctl is-active firewalld    默认情况下,该服务是被开启的
ubuntu 中没有安装
dpkg -l firewalld    #没有任何版本信息
3. nftables    下一代的netfilter框架
nft nftables )是新一代的 Linux 防火墙技术,旨在取代传统的 iptables ,它在性能、功能和易用性等方面都有显著的提升。
rocky 系统默认安装
rpm -q nftables   
默认情况下,该服务没有被开启,它一旦启用了,就和其他的防火墙管理软件产生功能冲突
systemctl is-active nftables.service
Ubuntu 系统默认安装
dpkg -l nftables
systemctl is-active uftables   默认情况下,该服务没有被开启
netfilter和nftables区别
客户端工具iptables      nft 
用户空间    netfilter    nftables                       可以这样理解 NetworkManger和nmcli之间的关系
查看规则  (前提防火墙需开启 systemctl start firwalld.service。不然看不了下面的内容)
在对防火墙规则进行修改之前,通常需要查看当前已有的规则
[root @rocky9-12 ~ ] # nft list ruleset
ubuntu server 环境下是没有启动规则的
规则清理
[root @rocky9-12 ~ ] # nft list ruleset > backup_file.nft   备份 nft 规则
在使用 nft 管理防火墙规则时,有时需要一次性清空系统中所有的 nftables 规则集
[root @rocky9-12 ~ ] # nft flush ruleset
确认效果
[root @rocky9-12 ~ ] # nft list ruleset    #结果为空
还原规则
[root @rocky9-12 ~ ] # nft -f backup_file.nft
[root @rocky9-12 ~ ] # nft list ruleset  #原来的结果又出现了
4.ufw    ubuntu环境中,防火墙的管理服务
root @ubuntu24-16: ~ # apt install ufw    ubuntu server 版本中是没有,如果需要安装
root @ubuntu24-13: ~ # systemctl is-active ufw   ufw 软件服务默认在 ubuntu 桌面版中是开启的
其他的命令 可以 ufw help 进行查看

4.netfilter/iptables 原理解读

三种报文流向

1.iptables 的组成
netfilter 在内核中设置了五个勾子函数,管理员在用户空间,通过程序设置过滤规则,内核中的勾子函数根据预设的规则进行工作,达到对流经的数据包进行过滤,拒绝,转发等功能。
iptables的功能对应
iptables 中有五个链( chain )对应内核中的五个勾子函数。除此之外, iptables 中还有五个表 一起来配合工作。
iptables 中的链
内置链   对应内核中的每个函数 INPUT,OUTPUT,FORWORD,PREROUTING,POSTROUTING
自定义链    用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有 Hook 钩子调用 自定义链时,才会生效
表的优先级(从高到低)   security -- > raw -- > mangle -- > nat -- > filter   
2 iptables 的表链关系和数据流转流程
链和表的对应关系( 不是每个链都能支持五个表
确认每个表所支持的链,可以通过下面的命令来定位
iptables - t 表名  - vnL     注:iptables -vnL 默认是filter表支持的链信息
数据包的走向
- 数据流入: PREROUTING --> INPUT
- 数据流出: OUTPUT --> POSTROUTING
- 数据转发: PREROUTING --> FORWARD --> POSTROUTING
3.所有主机关闭防火墙服务
root @ubuntu24: ~ # systemctl disable --now ufw    禁用防火墙服务
root @ubuntu24: ~ # iptables -vnL    检查防火墙效果(结果显示略) 
同样的道理, Rocky 系统关闭防火墙服务
[root @rocky9 ~ ] # systemctl disable --now firewalld.service   关闭防火墙服务
[root @rocky9 ~ ] # iptables -vnL   检查防火墙效果(结果显示略)
注意:iptables命令,仅能root命令操作,但是不影响普通用户查看帮助
4. 第一条 iptables 命令
[root @rocky9 ~ ] # ping 10.0.0.13
PING 10.0.0.13 ( 10.0.0.13 ) 56 ( 84 ) 比特的数据。
.....
10.0.0.13 主机执行一条命令
root @ubuntu24: ~ # iptables -t filter -A INPUT -s 10.0.0.12 -j DROP       增加第一条规则
root @ubuntu24: ~ # iptables -vnL    查看 iptables 规则
回到 10.0.0.12主机,查看效果  
# 当前的界面处于阻塞的状态 ....
# 原因就是, 10.0.0.13 主机的那条规则。
注意:虽然 10.0.0.12 主机的界面处于阻塞的状态,但是 10.0.0.13 的那里依然可以看到效果
命令:iptables -vnL | grep DROP   上图可以看到最前俩个的值是不一样的
root @ubuntu24: ~ # iptables -F   清理刚才定制的防火墙规则
root @ubuntu24: ~ # iptables -vnL    查看效果 恢复正常
同时10.0.0.12 主机界面又回到可以正常访问的状态了

5.iptables命令组成

iptables 完整命令由四部份组成
iptables Table Chain Rule  # 通过 iptables 命令,在某个表,某个链上设置一个过滤规则
iptables -t filter -A INPUT -s 192 .168.0.1 -j DROP   #刚才命令格式示例

6. iptables命令格式

iptables -h     此处略

。。未完待续

相关文章:

  • 单序列双指针---初阶篇
  • 原生小程序+springboot+vue+协同过滤算法的音乐推荐系统(源码+论文+讲解+安装+部署+调试)
  • 文件上传Ⅲ
  • css:倒影倾斜效果
  • OpenAI与微软洽谈新融资及IPO,Instagram因TikTok流失四成用户
  • TRTC实时对话式AI解决方案,助力人机语音交互极致体验
  • 东方通2024年报分析:信创国产化龙头的蓬勃发展与未来可期
  • linux,我启动一个springboot项目, 用java -jar xxx.jar ,但是没多久这个java进程就会自动关掉
  • Python web 开发 Flask HTTP 服务
  • 在 Ubuntu 系统中,将 JAR 包安装为服务
  • 影楼精修-肤色统一算法解析
  • 【计算机网络】HTTP/1.0,HTTP/1.1,HTTP/2,HTTP/3汇总讲解,清晰表格整理面试重点对比
  • Python Socket编程:实现简单的客户端-服务器通信
  • 微服务初步学习
  • 使用seatunnel同步磐维数据库数据
  • 文章记单词 | 第82篇(六级)
  • 掌握 LangChain 文档处理核心:Document Loaders 与 Text Splitters 全解析
  • uniapp婚纱预约小程序
  • MySQL 8.0 OCP 1Z0-908 131-140题
  • neo4j框架:java安装教程
  • 张家界一铁路致17人身亡,又有15岁女孩殒命,已开始加装护栏
  • 梅花奖在上海|舞剧《朱鹮》,剧里剧外都是生命的赞歌
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展
  • 习近平复信中国丹麦商会负责人
  • 鸿海下调全年营收展望:AI服务器业务强劲,预计今年营收增超50%
  • 佩斯科夫:俄方代表团15日将在伊斯坦布尔等候乌克兰代表团