firewalld火墙管理工具

文章目录

  • 1.firewalld基本知识
  • 2.firewalld防火墙的管理
    • 2.1 图形化firewalld管理:firewall-confige
    • 2.2 firewalld-cmd管理火墙
    • 2.3火墙的高级管理

1.firewalld基本知识

  • 1.1 firewalld概述
    动态防火墙后台程序firewalld 提供了一个动态管理的防火墙,用以支持网络“zones”,以分配对一个网络及其相关链接和界面一定程度的信任。具备对ipv4和ipv6防火墙设置的支持、以太网桥的支持,并有分离运行时间和永久性配置选择;还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。
    系统提供了图像化的配置工具firewall-config、system-config-firewall,提供命令行客户端firewall-cmd,用于配置firewalld永久性或非永久性运行时间的改变;其依次用iptables工具与执行数据宝筛选的内核中的netfilter通信
    firewalld火墙管理工具_第1张图片

  • 火墙的三张表
    mangle表 input链 preouting链 forward链 postouting链 output链
    filter表   input链 forward链 output链(通过本机内核的数据)
    nat表    input链 preouting链 postouting链 output链

  • firewall域

网络区名称 默认配置
trusted(信任) 接受所有的网络连接
public(公共) firewalld默认使用域,仅接受ssh或dhcpv6-client服务连接
block(限制) 拒绝所有网路连接,有回复提示
drop(丢弃) 任何接收的网络数据包都被丢弃,无回复
home(家庭) 用于家庭网络,接受ssh,mdns,ipp-client,samba-client或dhcpv6-client服务连接
internal(内部) 用于内部网络,接受ssh,mdns,ipp-client,samba-client或dhcpv6-client服务连接
work(工作) 用于工作区,接受ssh、ip-client或dhcp6-client服务连接
external(外部) 出去的ipv4网络连接通过此区域伪装和转发,接受ssh服务
dmz(非军事区) 接受ssh服务连接

2.firewalld防火墙的管理

2.1 图形化firewalld管理:firewall-confige

  • Zones模块中高量显示的域为当前默认域
    Servers可显示或添加域中相应的连接服务
    Ports可显示或添加相应的连接端口
    Interfaces可显示或修改网卡服务
    Sources 可显示或修改服务来源
    firewalld火墙管理工具_第2张图片

firewalld火墙管理工具_第3张图片

  • Services模块显示所有的服务,Ports and Protocols 显示服务对应的端口信息
    firewalld火墙管理工具_第4张图片
  • Options模块
    Reload Firewalld 重新加载火墙
    Change Zones of Connections 改变网卡的服务域
    Change Default Zone 修改默认使用域
    firewalld火墙管理工具_第5张图片
  • Configration 选择修改临时性或永久性
    firewalld火墙管理工具_第6张图片

2.2 firewalld-cmd管理火墙

查看火墙

firewall-cmd --state 查看火墙状态
firewall-cmd --list-all 列出火墙服务
firewall-cmd --list-all-zones 列出火墙所有域及域的服务
firewall-cmd --get-zones 查看所有域
firewall-cmd --get-active-zones 查看工作的域
firewall-cmd --get-default-zone 查看默认的域
firewall-cmd --zone=public --list-all 查看指定域的火墙服务
firewall-cmd --get-services 查看所有火墙服务
firewall-cmd --list-ports 查看火墙所有端口
firewall-cmd --direct --get-all-rules 查看火墙所有规则

设置火墙

firewall-cmd --set-default-zone=trusted 设置火墙默认域
firewall-cmd --permanent --zone=xxx --add-source=x.x.x.x/24 为特定主机授予特权
firewall-cmd --zone=xxx --remove-source=x.x.x.x/24 删除特定主机特权
firewall-cmd --zone=xxx --add-interface=eth0 为域添加网卡服务
firewall-cmd --zone=xxx --change-interface=eth0 改变域的网卡服务
firewall-cmd --zone=xxx --remove-interface=eth0 删除域的网卡服务

注意:对域中网卡的管理不用加permanent参数,否则命令无效

  • 为trusted域添加指定ip,该指定ip能满足trusted域中所有连接
    firewalld火墙管理工具_第7张图片
    即使默认域中没有开启ssh连接,指定的主机依旧可以连接ssh服务
    firewalld火墙管理工具_第8张图片
    firewalld火墙管理工具_第9张图片
    其他主机不能实现连接
    在这里插入图片描述
  • 为trusted添加网卡服务
    firewalld火墙管理工具_第10张图片
    firewalld火墙管理工具_第11张图片
    通过eth1网卡进入火墙的可以连接服务
    firewalld火墙管理工具_第12张图片
    通过eth0网卡进来的只能连接public域中的服务,此时public域没有ssh服务,ssh服务连接会失败
    firewalld火墙管理工具_第13张图片

重加载火墙

firewall-cmd --reload 只是刷新火墙状态,不会断开连接
firewall-cmd --complete-reload 刷新火墙状态,并断开客户端所有的连接,然后再去连接符合要求的连接
  • 在服务端有ssh服务时,连接服务端ssh服务;删除服务端ssh服务,并重加载
    当reload重加载后,客户端不会断开连接
    firewalld火墙管理工具_第14张图片
    firewalld火墙管理工具_第15张图片
    当complete-reload时,客户端连接断开
    firewalld火墙管理工具_第16张图片
    在这里插入图片描述

2.3火墙的高级管理

(1) 火墙的插件/usr/lib/firewalld/services
用firewall-cmd为火墙添加一个火墙中不存在的服务iscsi,会出现报错
在这里插入图片描述
在火墙插件中添加一个服务文件

cd /usr/lib/firewalld
cp -p http.xml iscsi.xml

vim iscsi.xml 修改服务文件
firewalld火墙管理工具_第17张图片
sysmctl restart firewalld 重启服务
firewall-cmd --get-services 发现火墙服务中多了一个我们用文件添加的服务iscsi
此时用firewall-cmd --permanent --add-service=iscsi 添加成功
firewalld火墙管理工具_第18张图片
(2)火墙的服务管理 /etc/firerwalld/zones
使用firewall-cmd --permanent --zone=public --add-port=3260/tcp 添加成功后
cat /etc/firewalld/zones/public.xml 查看public域文件,会看到添加的端口信息也加载到文件中
firewalld火墙管理工具_第19张图片
firewalld火墙管理工具_第20张图片

(3)firewalld 高级规则
通过“rich language”语法,可以用比直接接口方式更易理解的方法建立复杂的防火墙规则;能永久保留设置;高级语法使用关键词值,是iptables工具的抽象表示。

1) 对特定主机限定特定服务的高级规则

添加firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s x.x.x.x -p tcp --dport 22 -j REJECT|ACCEPT|DROP

  • 设定规则:拒绝172.25.254.1主机连接ssh服务
    在这里插入图片描述
    firewalld火墙管理工具_第21张图片
    在这里插入图片描述

删除firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s x.x.x.x -p tcp --dport 22 -j REJECT|ACCEPT|DROP
firewalld火墙管理工具_第22张图片

参数 含义
–permanent 永久性
–direct
filter INPUT filter表中INPUT链
1 链表中的第一行规则
-s source 数据来源
-p 协议
–dport 服务端口
-j 动作行为

DROP 与 REJECT区别: DROP丢弃 没有提示信息;REJECT拒绝 有提示信息

2)火墙的伪装——路由之后SNAT(以ssh服务为例)

准备:为服务端添加双网卡,配置eth0和eth1的ip分别为172.25.254.201、192.168.0.201;为客户端更改ip为 192.268.0.101
服务端

a.火墙伪装功能设定

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewwall-cmd --list-all

b.内核的路由功能设定

vim /etc/sysctl.conf
sysctl -p
sysctl -a | grep ip_forward

客户端
设置网关:

vim /etc/sysconfig/ifcfg-eth0
GATEWAY=192.168.0.201

通过火墙的伪装功能,使192网段的客户端主机能与172网段的主机通信,并且与172网段主机通信身份为服务端ip:172.25.254.201

3)火墙的端口转发——路由之前DNAT(以ssh服务为例)

服务端

firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.27.254.X
firewall-cmd --reload
firewwall-cmd --list-all

在192.168.0.101客户端连接服务端网段的任意主机都会发生跳转,跳转至服务端设定的目的主机端口;这里连接服务器网段的主机都会发生跳转的原因是因为没有限定通过哪个ip的端口,只要进入该服务器的ip都会发生跳转

firewalld火墙管理工具_第23张图片

你可能感兴趣的:(Linux,rhce)