Firewalld防火墙安全防护

目录
  • 引言
  • 区域概念与作用
  • 字符管理工具
    • 查看当前的区域:
    • 模拟训练 1
    • 模拟训练 2
    • 模拟训练 3
    • 模拟训练 4
    • 模拟实验 5
    • 模拟实验 6

引言

Firewalld 服务是红帽 RHEL7 系统中默认的防火墙管理工具,特点是拥有运行时配置与永久配置选项且能够支持动态更新以及 "zone" 的区域功能概念,使用图形化工具 firewall-config 或文本管理工具 firewall-cmd,下面实验中会讲到~

区域概念与作用

防火墙的网络区域定义了网络连接的可信等级,我们可以根据不同场景来调用不同的 firewalld 区域,区域规则有:

区域 默认规则策略
trusted 允许所有的数据包。
home 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,mdns,ipp-client,samba-client 与 dhcpv6-client 服务则允许。
internal 等同于 home 区域
work 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,ipp-client 与 dhcpv6-client 服务则允许。
public 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,dhcpv6-client 服务则允许。
external 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh 服务则允许。
dmz 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh 服务则允许。
block 拒绝流入的数据包,除非与输出流量数据包相关。
drop 拒绝流入的数据包,除非与输出流量数据包相关。

简单来讲就是为用户预先准备了几套规则集合,我们可以根据场景的不同选择合适的规矩集合,而默认区域是 public。

字符管理工具

如果想要更高效的配置妥当防火墙,那么就一定要学习字符管理工具 firewall-cmd 命令, 命令参数有:

参数 作用
--get-default-zone 查询默认的区域名称。
--set-default-zone=<区域名称> 设置默认的区域,永久生效。
--get-zones 显示可用的区域。
--get-services 显示预先定义的服务。
--get-active-zones 显示当前正在使用的区域与网卡名称。
--add-source= 将来源于此 IP 或子网的流量导向指定的区域。
--remove-source= 不再将此 IP 或子网的流量导向某个指定区域。
--add-interface=<网卡名称> 将来自于该网卡的所有流量都导向某个指定区域。
--change-interface=<网卡名称> 将某个网卡与区域做关联。
--list-all 显示当前区域的网卡配置参数,资源,端口以及服务等信息。
--list-all-zones 显示所有区域的网卡配置参数,资源,端口以及服务等信息。
--add-service=<服务名> 设置默认区域允许该服务的流量。
--add-port=<端口号/协议> 允许默认区域允许该端口的流量。
--remove-service=<服务名> 设置默认区域不再允许该服务的流量。
--remove-port=<端口号/协议> 允许默认区域不再允许该端口的流量。
--reload 让 “永久生效” 的配置规则立即生效,覆盖当前的。

特别需要注意的是 firewalld 服务有两份规则策略配置记录,必需要能够区分:

  • RunTime: 当前正在生效的。
  • Permanent: 永久生效的。

当下面实验修改的是永久生效的策略记录时,必须执行 "--reload" 参数后才能立即生效,否则要重启后再生效。

查看当前的区域:

$ firewall-cmd --get-default-zone
public

查询 eno16777728 网卡的区域:

$ firewall-cmd --get-zone-of-interface=eno16777728
public

在 public 中分别查询 ssh 与 http 服务是否被允许:

$ firewall-cmd --zone=public --query-service=ssh
yes
$ firewall-cmd --zone=public --query-service=http
no

设置默认规则为 dmz:

$ firewall-cmd --set-default-zone=dmz

让 “永久生效” 的配置文件立即生效:

$ firewall-cmd --reload
success

启动/关闭应急状况模式,阻断所有网络连接:

应急状况模式启动后会禁止所有的网络连接,一切服务的请求也都会被拒绝,当心,请慎用。

$ firewall-cmd --panic-on
success
$ firewall-cmd --panic-off
success

如果您已经能够完全理解上面练习中 firewall-cmd 命令的参数作用,不妨来尝试完成下面的模拟训练吧:

模拟训练 1

允许 https 服务流量通过 public 区域,要求立即生效且永久有效:

方法一: 分别设置当前生效与永久有效的规则记录:

$ firewall-cmd --zone=public --add-service=https
$ firewall-cmd --permanent --zone=public --add-service=https

方法二: 设置永久生效的规则记录后读取记录:

$ firewall-cmd --permanent --zone=public --add-service=https
$ firewall-cmd --reload

模拟训练 2

不再允许 http 服务流量通过 public 区域,要求立即生效且永久生效:

$ firewall-cmd --permanent --zone=public --remove-service=http
 success

使用参数 "--reload" 让永久生效的配置文件立即生效:

$ firewall-cmd --reload
success

模拟训练 3

允许 8080 与 8081 端口流量通过 public 区域,立即生效且永久生效:

$ firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
$ firewall-cmd --reload

模拟训练 4

查看模拟实验 C 中要求加入的端口操作是否成功:

$ firewall-cmd --zone=public --list-ports
8080-8081/tcp
$ firewall-cmd --permanent --zone=public --list-ports
8080-8081/tcp

模拟实验 5

将 eno16777728 网卡的区域修改为 external,重启后生效:

$ firewall-cmd --permanent --zone=external --change-interface=eno16777728
success
$ firewall-cmd --get-zone-of-interface=eno16777728
public

端口转发功能可以将原本到某端口的数据包转发到其他端口:

firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标 IP 地址>

将访问 192.168.10.10 主机 888 端口的请求转发至 22 端口:

$ firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
success

使用客户机的 ssh 命令访问 192.168.10.10 主机的 888 端口:

$ ssh -p 888 192.168.10.10
The authenticity of host '[192.168.10.10]:888 ([192.168.10.10]:888)' can't be established.
ECDSA key fingerprint is b8:25:88:89:5c:05:b6:dd:ef:76:63:ff:1a:54:02:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.10.10]:888' (ECDSA) to the list of known hosts.
root@192.168.10.10's password:
Last login: Sun Jul 19 21:43:48 2015 from 192.168.10.10

再次提示: 注意立即生效与重启后依然生效的差别,千万不要修改错了。

模拟实验 6

设置富规则,拒绝 192.168.10.0/24 网段的用户访问 ssh 服务:

firewalld 服务的富规则用于对服务、端口、协议进行更详细的配置,规则的优先级最高。

$ firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"source address="192.168.10.0/24"service name="ssh"reject"
success

以上就是Firewalld防火墙安全防护的详细内容,更多关于Firewalld防火墙的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详述Linux中Firewalld高级配置的使用

    IP伪装与端口转发 Firewalld支持两种类型的网络地址转换 IP地址伪装(masquerade) 可以实现局域网多个地址共享单一公网地址上网 IP地址伪装仅支持IPv4,不支持IPv6 默认external区域启用地址伪装 端口转发(Forward-port) 也称为目的地址转换或端口映射 通过端口转发,指定IP地址及端口的流量将被转发到相同计算机上的不同端口,或者转发到不同计算机上的端口 地址伪装配置 为指定区域增加地址伪装功能 firewall-cmd [--permanent] [-

  • Centos 7之Firewalld相关命令详细介绍

    Centos 7之Firewalld相关命令详细介绍 引言:Centos 7是目前非常流行的Linux发行版本,本文将重点介绍如何来使用firewalld相关命令启动服务以及添加服务或者端口等操作. 1.  查看firewall服务状态 >>  systemctl status firewalld [root@flybird ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall dae

  • Linux下双网卡Firewalld的配置流程(推荐)

    实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上.笔者最终选择通过firewalld放行端口的方式来实现需求,由于firewall与传统Linux使用的iptable工具有不小的区别,接下来通过博客来记录一下firewalld的配置流程. 1.Firewall服务的简介: firewalld提供了一个 动态管理的防火墙,用以支持不同网络区域的规则,分配对一个网络及其相关链接和界面一定程度的信任.它具备对 IPv4 和 I

  • 使用iptable和Firewalld工具来管理Linux防火墙连接规则

    防火墙 防火墙是一套规则.当数据包进入或离开受保护的网络空间时,将根据防火墙规则测试数据包的内容(特别是有关其来源.目标和计划使用的协议的信息),以确定是否应该允许数据包通过.下面是一个简单的例子: 防火墙可以根据协议或基于目标的规则过滤请求. 一方面,iptables是管理Linux机器上防火墙规则的工具. 另一方面,firewalld也是管理Linux机器上防火墙规则的工具. 你对此有意见吗?如果我告诉你外面还有另一个工具,叫做nftable? 好吧,我承认整件事闻起来有点怪怪的,所以让我解

  • Centos7的Firewalld防火墙基础命令详解

    一.Linux防火墙的基础 Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙).Linux系统的防火墙体系基于内核共存:firewalld.iptables.ebtables,默认使用firewalld来管理netfilter子系统. netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"的防火墙功能体系: firewalld:指用来管理Linux防护墙的命令

  • Firewalld防火墙安全防护

    目录 引言 区域概念与作用 字符管理工具 查看当前的区域: 模拟训练 1 模拟训练 2 模拟训练 3 模拟训练 4 模拟实验 5 模拟实验 6 引言 Firewalld 服务是红帽 RHEL7 系统中默认的防火墙管理工具,特点是拥有运行时配置与永久配置选项且能够支持动态更新以及 "zone" 的区域功能概念,使用图形化工具 firewall-config 或文本管理工具 firewall-cmd,下面实验中会讲到~ 区域概念与作用 防火墙的网络区域定义了网络连接的可信等级,我们可以根据

  • 如何突破各种防火墙的防护

    现在随着人们的安全意识加强,防火墙一般都被公司企业采用来保障网络的安全,一般的攻击者在有防火墙的情况下,一般是很难入侵的.下面谈谈有防火墙环境下的攻击和检测. 一 防火墙基本原理 首先,我们需要了解一些基本的防火墙实现原理.防火墙目前主要分包过滤,和状态检测的包过滤,应用层代理防火墙.但是他们的基本实现都是类似的. │ │---路由器-----网卡│防火墙│网卡│----------内部网络│ │ 防火墙一般有两个以上的网络卡,一个连到外部(router),另一个是连到内部网络.当打开主机网络转

  • centos7中firewall防火墙命令详解

    为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3B 会的到 20$ 的优惠  也就可以免费使用4个月 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start fir

  • RHEL 7中防火墙的配置和使用方法

    RHEL7 中使用了firewalld代替了原来的iptables,操作设置和原来有点不同: 查看防火墙状态:systemctl status firewalld 启动防火墙:systemctl start firewalld 停止防火墙:systemctl stop firewalld 防火墙中的一切都与一个或者多个区域相关联,下面对各个区进行说明: Zone Description ----------------------------------------------------- d

  • 合理的配置防火墙

    今天我们所处的信息时代,也可以说也是病毒与黑客大行其道的时代,这样说确实有些悲观但今天的网络的确如此,从Internet到企业内网.从个人电脑到可上网的手机平台,没有地方是安全的.每一次网络病毒的攻击,都会让家庭用户.企业用户.800热线甚至是运营商头痛脑热.不过经历过了一次又一次的病毒危机后,人们已经开始思考网络的安全了.现在任何一个企业组建网络都会考虑到购买防火墙,且有越来越多的家庭用户在自己的电脑上甚至宽带接入端也加上了防火墙,相信不久的将来,我们可以看到在手机上也会出现防火墙. 但是防火

  • Linux系统配置(服务控制)详细介绍

    目录 前言 一.系统服务控制 1.systemctl 2.target 3.常见系统服务 4.开机自启服务管理 二.服务管理 1.防火墙与核心防护 2.时间管理 3.SSH服务 结语 前言      Linux操作系统中包含了大量的服务程序,这些服务程序在切换运行级别时根据预设的状态进行启动或终止,其中有不少系统服务可能并不是用户需要的,但是默认也运行了 一.系统服务控制 1.systemctl      在CentOS系统中,各种系统服务的控制脚本默认放在usr/lib/systemd目录下,

  • Linux系统配置(服务控制)详细介绍

    目录 前言 一.系统服务控制 1.systemctl 2.target 3.常见系统服务 4.开机自启服务管理 二.服务管理 1.防火墙与核心防护 2.时间管理 3.SSH服务 结语 前言 Linux操作系统中包含了大量的服务程序,这些服务程序在切换运行级别时根据预设的状态进行启动或终止,其中有不少系统服务可能并不是用户需要的,但是默认也运行了 一.系统服务控制 1.systemctl 在CentOS系统中,各种系统服务的控制脚本默认放在usr/lib/systemd目录下,通过systemct

  • 防御DDoS攻击实用指南 守住你的网站

    一.为何要DDoS? 随着Internet互联网络带宽的增加和多种DDoS黑客工具的不断发布,DDoS拒绝服务攻击的实施越来越轻易,DDoS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多种因素,导致很多IDC托管机房.商业站点.游戏服务器.聊天网络等网络服务商长期以来一直被DDoS攻击所困扰,随之而来的是客户投诉.同虚拟主机用户受牵连.法律纠纷.商业损失等一系列问题,因此,解决DDoS攻击问题成为网络服务商必须考虑的头等大事. 二.什么是DDoS? DDoS是英文Distribut

  • Centos7下无法远程连接mysql数据库的原因与解决

    前言 最近在工作中遇到一个问题,发现在Centos7系统下怎么也不能远程连接mysql,通过查找相关的资料,终于解决了,以下方法就是我在碰到远程连接不到Mysql数据库后试过的方法,最终也是解决掉了问题.所以总结一下分享出来,供同样遇到这个问题的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧. 有两种原因 数据库没有授权 服务器防火墙没有开放3306端口 一.数据库没有授权 对于mysql数据库没有授权,只需要用一条命令就可以了. mysql>GRANT ALL PRIVILEGES O

随机推荐