firewalld的图形化管理和命令管理(包含端口伪装&地址转发)

1.什么是firewalld?

动态防火墙后台程序`firewalld`提供了一个动态管理的防火墙,用以支持网络“zones”,以分配对一个网络及其相关链接和界面一定程度的信任。
它具备对`IPv4`和`IPv6`防火墙设置的支持。
它支持以太网桥,并有分离运行时间和永久性配置选择
它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口
动态管理防火墙,不需要重启整个防火墙便可应用更改,因而也就没有必要重载所有内核防火墙模块了
不过,要使用 firewall daemon动态管理防火墙 就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的
另外,firewall daemon动态管理防火墙 无法解析由 iptables 和 ebtables 命令行工具添加的防火墙规则

2.实验环境部署

安装开启firewalld
yum search firewalld ##查找防火墙软件
yum install firewalld.noarch -y ##安装防火墙软件
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第1张图片
systemctl status iptables.service ##查看iptables状态,若开启,关闭它,防止影响firewalld实验结果
在这里插入图片描述
systemctl start firewalld## 开启firewalld服务器
systemctl enable firewalld ## 设置开机启动
systemctl status firewalld ##查看此时防火墙状态
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第2张图片
安装apache服务
yum install httpd ##安装httpd
在这里插入图片描述
systemctl start httpd
systemctl enable httpd
systemctl status httpd
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第3张图片
vim /var/www/html/index.html ##在apache的发布目录下编辑发布文件

hello westos


在这里插入图片描述
systemctl restart httpd ##重启服务,使更改生效

3.firewalld的区域管理

网络区域简介

通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流
例如,互联网是不可信任的区域,而内部网络是高度信任的区域
网络安全模型可以在安装,初次启动和首次建立网络连接时选择初始化
该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处理方式

firewalld的域分类
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第4张图片
注:FirewallD的默认区域是public

4.使用图形界面管理firewalld防火墙

firewall-config命令进入firewalld图形化管理
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第5张图片
可以看出此时desktop的firewalld的网络域是public

在真机的浏览器里面访问desktop的apache应该访问不到
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第6张图片
现在更改desktop的火墙的网络域
Options--->Change Default Zone
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第7张图片
选择trusted
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第8张图片
再次在真机的浏览器里面访问desktop的apache应该可以访问到了
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第9张图片

5.使用命令管理firewalld防火墙

命令 意义
firewall-cmd --state 查看防火墙的状态
firewall-cmd --get-active-zones 查看正在使用的域
firewall-cmd --get-default-zone 查看系统默认使用的域
firewall-cmd --get-zones 查看域
firewall-cmd --zone=public --list-all 列出公共域里面已经支持的服务
firewall-cmd --get-services 列出可以支持的所有服务
firewall-cmd --list-all-zones 列出所有的域
firewall-cmd --set-default-zone=dmz 更改默认的域
firewall-cmd --reload 改完重新加载使其生效,但是不会断开已经连接的
firewall-cmd --complete-relode 改完加载,并且断开所有的连接

firewall-cmd --state 查看防火墙的状态
在这里插入图片描述
firewall-cmd --get-active-zones 查看正在使用的域
在这里插入图片描述
firewall-cmd --get-default-zone 查看系统默认使用的域
在这里插入图片描述
firewall-cmd --get-zones 查看域
在这里插入图片描述
firewall-cmd --zone=public --list-all 列出公共域里面已经支持的服务
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第10张图片
firewall-cmd --get-services 列出可以支持的所有服务
在这里插入图片描述
firewall-cmd --list-all-zones 列出所有的域
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第11张图片
等等。。。
firewall-cmd --set-default-zone=dmz 更改默认的域
在这里插入图片描述

能列出来的服务和端口是集成在一块的
/usr/lib/firewalld/services/ ##火墙允许的所有服务的配置文件
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第12张图片
vim ssh.xml ##查看文件,可根据格式新编写其他服务的火墙策略
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第13张图片
火墙添加服务两种方式:

  • 命令添加
    firewall-cmd --permanent --add-service=http ##添加服务
    firewall-cmd --reload ##重新加载,使更改生效
    firewall-cmd --list-all ##查看开启的服务
    firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第14张图片
  • 编写脚本添加
    vim /etc/firewalld/zones/public.xml ##进入脚本
    ##添加http服务
    firewall-cmd --reload ##重新加载,使更改生效
    firewall-cmd --list-all ##查看开启的服务
    firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第15张图片
    firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第16张图片
    火墙中添加服务端口
    firewall-cmd --list-ports /查看火墙上开启的端口
    firewall-cmd --add-port=8080/tcp /添加端口
    firewall-cmd --list-ports /查看此时已开启
    firewall-cmd --remove-port==8080/tcp
    firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第17张图片
    注:永久修改需加--permanent

伪装功能

提前设置:

服务端ip:
Desktop虚拟机
eth0 : 172.25.254.121
eth1 : 192.168.0.121
客户端ip:
真机:172.25.254.21
server虚拟机:192.168.0.221

在server上
设置网关为192.168.0.121
在这里插入图片描述
在desktop上

firewall-cmd --list-all ##看端口伪装功能是否开启 
firewall-cmd --permanent --add-masquerade ##添加伪装功能 
firewall-cmd --reload ##加载才能使永久添加生效 
firewall-cmd --list-all ##再次查看

firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第18张图片
sysctl -a | grep ip_forward ##查看路由功能是否打开
在这里插入图片描述
在server上
ping 172.25.254.121 (desktop的ip)
ping 172.25.254.21 (真机ip)
发现都可以
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第19张图片

端口转发

提前设置:

服务端ip:
Desktop虚拟机
eth0 : 172.25.254.121
eth1 : 192.168.0.121
客户端ip:
真机:172.25.254.21
server虚拟机:192.168.0.221
server网关
192.168.0.121

直接用真机ssh连接server,发现不行
在desktop:

firewall-cmd --list-all查看火墙里面是否开启地址转发功能 
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=192.168.0.221添加地址转发 
firewall-cmd --list-all再次查看是否添加成功

firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第20张图片
在真机:
用ssh连接desktop的ip
ssh [email protected]
firewalld的图形化管理和命令管理(包含端口伪装&地址转发)_第21张图片
此时查看ip发现是server的,说明端口转发成功

你可能感兴趣的:(firewalld的图形化管理和命令管理(包含端口伪装&地址转发))