firewalld火墙策略

本文介绍了iptables和firewalld两种火墙管理工具,包括它们的切换方法、iptables的使用、火墙默认策略以及firewalld的开启、域管理、设定原理和高级规则。详细阐述了iptables的规则设置,如ACCEPT、DROP和REJECT动作,以及NAT中的SNAT和DNAT。同时,探讨了firewalld的域配置,如trusted、home、work等,并讲解了firewalld的管理命令。

目录

 

第一部分: 基本信息

一. 火墙介绍

二. 火墙管理工具切换

1. firewalld----->iptables

2. iptales -------> fiewalld 

第二部分:iptables

一. iptables 的使用

二. 火墙默认策略

第三部分:firewalld 

 一. firewalld的开启

二. 关于firewalld的域

三. 关于firewalld的设定原理及数据存储

四. firewalld的管理命令

五. firewalld的高级规则

六. firewalld中的NAT 


第一部分: 基本信息

一. 火墙介绍


1.netfilter
2.iptables
3.iptables|firewalld

二. 火墙管理工具切换


在rhel8中默认使用的是firewalld
 

1. firewalld----->iptables


安装 iptables
dnf install iptables-services -y

停止firewalld

systemctl stop firewalld
systemctl disable firewalld 
systemctl mask firewalld 

启动iptables

systemctl enable --now iptables
 

2. iptales -------> fiewalld 


systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld

第二部分:iptables


一. iptables 的使用


/etc/sysconfig/iptables                 ##iptables 策略记录文件
 
永久保存策略
iptables-save > /etc/sysconfig/iptables


service iptables save
 
 

二. 火墙默认策略


默认策略中的5条链
input                  ##输入
output                ##输出
forward              ##转发
postrouting        ##路由之后
prerouting         ##路由之前
默认的3张表

filter                  ##经过本机内核的数据(input output forward)
nat                    ##不经过内核的数据(postrouting,prerouting,input,output)
mangle             ##当filter和nat表不够用时使用(input output forward postrouting,prerouting)
 
iptables命令
iptables
                 -t                         ##指定表名称
                 -n                        ##不做解析
                 -L                        ##查看
                 -A                        ##添加策略
                 -p                        ##协议
                 --dport                 ##目的地端口
                 -s                        ##来源
                 -j                         ##动作

ACCEPT##允许

DROP##丢弃

REJECT##拒绝

SNAT##源地址转换

DNAT##目的地地址转换

-N    ##新建链
-E    ##更改链名称
-X    ##删除链
-D    ##删除规则
-I      ##插入规则
-R     ##更改规则
-P     ##更改默认规则
 
 
数据包状态
RELAtED               ##建立过连接的
EStABLISHED       ##正在连接的
NEW                      ##新的
示例:
iptables -A INPUT -m state --state RELAtED,EStABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW ! -s 192.168.1.18 -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -m state --state NEW -j REJECT
service iptables  save

[root@localhost ~]# iptables -A INPUT -m state --state RELAtED,EStABLISHED -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m state --state NEW ! -s 192.168.1.18 -p tcp --dport 22 -j ACCEPT 
[root@localhost ~]# iptables -A INPUT -m state --state NEW -j REJECT


 
nat表中的dnat snat

内核路由需要开启

查看内核路由状态:

配置双网卡:

ip1 : 192.168.1.10

ip2 : 172.25.254.20

两台不同网段的主机:

192.168.1.20

172.25.254.30

为172.25.254.30 主机配置网关为 172.25.254.20

在172.25.254.30中:

ping 192.168.1.20

ping 不通

设定火墙策略:

snat
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.1.10
可以ping 通


dnat
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30
 
在192.168.1.20 主机登陆 192.168.1.10 

实际登录的是172.25.254.30
 
 
 

第三部分:firewalld 


 
一. firewalld的开启


systemctl stop iptables
systemctl disable iptables
systemctl mask iptables 
 
 
systemctl unmask firewalld
systemctl enable --now firewalld

二. 关于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

 

三. 关于firewalld的设定原理及数据存储


/etc/firewalld          ##火墙配置目录
/lib/firewalld           ##火墙模块目录

四. firewalld的管理命令


firewall-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   ##更改网络接口到指定域

五. firewalld的高级规则

 

firewall-cmd --direct --get-all-rules                                  ##查看高级规则 
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22  -j ACCEPT

六. firewalld中的NAT 


SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload 

[root@localhost ~]# firewall-cmd --permanent --add-masquerade
success
[root@localhost ~]# firewall-cmd --reload 
success

DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
firewall-cmd --reload

### 关于 Firewalld 的使用教程 #### 安装 Firewalld 对于基于 Red Hat 的系统,如 CentOS 或 RHEL,在安装 `firewalld` 可以通过包管理器完成。命令如下所示: ```bash [root@bogon ~]# yum install firewalld firewall-config [^1] ``` 这会下载并安装 `firewalld` 和图形化配置工具。 #### 启动与启用服务 为了使 `firewalld` 能够随操作系统启动而自动运行,需执行以下指令来开启此服务: ```bash systemctl start firewalld.service # 开启服务 systemctl enable firewalld.service # 设置开机自启 ``` #### 基本操作命令 - **查看状态** 要检查当前防火墙的状态以及活动区域的信息,可输入: ```bash firewall-cmd --state # 查看是否正在运行 firewall-cmd --get-active-zones # 获取激活区详情 ``` - **设置默认区域** 可以通过下面的命令更改系统的默认区域(例如 public, home, work 等),并将之设为永久生效: ```bash firewall-cmd --set-default-zone=public [--permanent] [^2] ``` 注意:带有 `[--permanent]` 参数表示修改将被保存至重启后仍然有效;如果不加该参数,则仅临时应用直到下一次重新加载规则集或重启机器为止。 #### 添加/删除端口和服务 当需要开放特定的服务或者端口号时,可以利用这些命令来进行调整: ```bash firewall-cmd --zone=public --add-port=80/tcp [--permanent] # 打开端口80 HTTP协议 firewall-cmd --zone=public --remove-service=http [--permanent] # 移除HTTP服务支持 ``` 每次做出变更之后记得刷新规则使其立即生效: ```bash firewall-cmd --reload # 刷新规则库 ``` #### 处理 IP 地址和接口分配 还可以针对不同的IP地址范围定义访问权限,或是指定某个网卡所属的安全域: ```bash firewall-cmd --zone=trusted --add-source=192.168.1.0/24 # 将整个C类子网加入信任列表 firewall-cmd --zone=external --change-interface=enp0s3 # 更改ethernet设备enp0s3到外部区域 ``` 以上只是对 `firewalld` 功能的一个简单介绍[^2]。更深入的学习建议查阅官方文档或其他权威资料获取完整的理解和实践指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值