一、火墙介绍
1、Netfilter
Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。
2、IPTABLES
IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
3、Firewalld
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
二、火墙管理工具切换
在rhel8中默认使用的是firewalld防火墙
1、iptables---->firewalld
(1)、关闭firewalld服务
(2)、下载iptables服务并开启服务
2、firewalld---->iptables
(1)、关闭服务iptables
(2)、下载firewalld服务并开启服务
三、iptables的使用
1、火墙策略的永久保存
/etc/sysconfig/iptables #iptables的策略记录文件
永久保存策略
四、火墙默认策略
火墙默认策略5条链和3张表
1、默认策略5条链
链 | 意义 |
---|---|
input | 输入 |
output | 输出 |
forward | 转发 |
postrouting | 路由之后 |
prerouting | 路由之前 |
2、默认策略3张表
表 | 意义 |
---|---|
filter | 经过本机内核的数据(input,output,forward) |
nat | 不经过内核的数据(postrouting,prerouting |
mangle | 当filter和nat表不够用时使用(input,output,forward,postrouting,prerouting |
3、iptables命令
参数 | 意义 |
---|---|
-t | 指定表名称 |
-n | 不做解析 |
-L | 查看 |
-A | 添加策略 |
-p | 协议 |
–dport | 目的地端口 |
-s | 来源 |
-j | 操作 |
-N | 新建链 |
-E | 更改链名称 |
-X | 删除链 |
-D | 删除规则 |
-I | 插入规则 |
-R | 更改规则 |
-P | 更改默认规则 |
数据包的状态
命令 | 状态 |
---|---|
RELATED | 建立过连接的 |
ESTABLISHED | 正在连接的 |
NEW | 新的 |
五、firewalld服务
1、firewalld的开启
(1)、关闭iptables服务并永久冰冻该服务
(2)、开启火墙服务
2、关于firewalld的域
内容 | 意义 |
---|---|
trusted | 接受所有的网络连接 |
home | 用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client |
work | 工作网络 ssh ipp-client dhcp-client |
public | 公共网络 ssh dhcp-client |
dmz | 军级网络 ssh |
block | 拒绝所有 |
drop | 弃所有数据全部丢弃无任何回复 |
internal | 内部网络 ssh mdns ipp-client samba-client dhcp-client |
external | ipv4网络地址伪装转发 sshd |
3、关于firewalld的设定原理及数据存储
/etc/firewalld #火墙配置目录
/lib/firewalld #火墙模块目录
4、firewalld的命令管理
irewall-cmd --state #查看火墙状态
firewall-cmd --get-active-zones #查看当前火墙中生效的域
firewall-cmd --get-default-zone #查看默认域
firewall-cmd --list-all #查看默认域中的火墙策略
firewall-cmd --list-all --zone=work ##查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted #设定默认域
firewall-cmd --get-services #查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit #移除服务
firewall-cmd --reload #重载服务
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block #指定数据来源访问指定
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block #删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public #删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block #添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public #更改网络接口到指定域
5、firewalld的高级规则
firewall-cmd --direct --get-all-rules #查看高级规则
6、firewalld中的NAT
(1)、SNAT
firewall-cmd --permanent --add-masquerade #开启地址伪装
firewall-cmd --reload
(2)、DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
firewall-cmd --reload