firewalld火墙管理工具

6 篇文章 0 订阅

1.firewalld基本知识

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

  • 火墙的三张表
    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 可显示或修改服务来源
    在这里插入图片描述

在这里插入图片描述

  • Services模块显示所有的服务,Ports and Protocols 显示服务对应的端口信息
    在这里插入图片描述
  • Options模块
    Reload Firewalld 重新加载火墙
    Change Zones of Connections 改变网卡的服务域
    Change Default Zone 修改默认使用域
    在这里插入图片描述
  • Configration 选择修改临时性或永久性
    在这里插入图片描述

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域中所有连接
    在这里插入图片描述
    即使默认域中没有开启ssh连接,指定的主机依旧可以连接ssh服务
    在这里插入图片描述
    在这里插入图片描述
    其他主机不能实现连接
    在这里插入图片描述
  • 为trusted添加网卡服务
    在这里插入图片描述
    在这里插入图片描述
    通过eth1网卡进入火墙的可以连接服务
    在这里插入图片描述
    通过eth0网卡进来的只能连接public域中的服务,此时public域没有ssh服务,ssh服务连接会失败
    在这里插入图片描述

重加载火墙

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

2.3火墙的高级管理

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

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

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

(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服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

删除firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s x.x.x.x -p tcp --dport 22 -j REJECT|ACCEPT|DROP
在这里插入图片描述

参数含义
–permanent永久性
–direct
filter INPUTfilter表中INPUT链
1链表中的第一行规则
-ssource 数据来源
-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都会发生跳转

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值