热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux防火墙配置工具,Linux防火墙管理工具firewalld

防火墙作为网络安全的防护工具,在保障数据和服务安全方面发挥着重大作用。提到防火墙,接触Linux较早的朋友首先想到的是iptables(centos6版

防火墙作为网络安全的防护工具,在保障数据和服务安全方面发挥着重大作用。

提到防火墙,接触Linux较早的朋友首先想到的是iptables(centos 6版本),centos 7推荐使用的是firewalld。然而,不管是iptalbes还是firewalld,其本身并不是防火墙,而是防火墙配置管理工具。

本文介绍的是firewalld工具的使用方法,对于具体的原理这里不作深究,iptables相关的内容也不在讨论范围内。

1.firewalld安装

使用yum安装

sudo yum install -y firewalld

使用systemctl启动firewalld

# 启动

sudo systemctl start firewalld

# 开机启动

sudo systemctl enable firewalld

如果要停止或禁用firewalld

# 停止

sudo systemctl stop firewalld

# 禁用

sudo systemctl enable firewalld

2.firewalld基本概念

2.1 Zones

区域:定义了网络连接的信任级别,firewalld提供了几种预先定义好的区域,我们可以根据需要选择合适的区域。

区域

默认规则策略

trusted

允许所有的数据包

home

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量

internal

等同于home区域

work

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量

public

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量

external

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量

dmz

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量

block

拒绝流入的流量,除非与流出的流量相关

drop

拒绝流入的流量,除非与流出的流量相关

2.2 Services

Service可以是一个local ports、protocols、destinations列表,使用预定义的服务使用户更容易启用和禁用对服务的访问。

2.3 ICMP types

Internet Control Message Protocol在IP协议中交换信息。ICMP types可以用来在firewalld中限制交换信息。

# 显示预定义的ICMP types

firewall-cmd --get-icmptypes

2.4 Runtime configuration

运行时配置:此配置在系统或服务重启后会失效。

2.5 Permanent configuration

永久配置 :此配置永久生效,使用firewall-cmd配置防火墙策略时需要添加--permanent选项才会将配置永久保存到配置文件中,另外使用firewall-cmd --reload可以将永久配置覆盖到运行配置并生效。

2.6 Direct interface

直接接口:此方式主要是为了适应对iptables比较熟悉却不适应firewalld的用户,使用--direct选项可以传递原始的iptables命令来配置防火墙策略。

3.firewalld命令行工具

firewall-cmd是firewalld的CLI版本管理工具,用来通过命令行配置防火墙策略。

完整的firewall-cmd使用手册可以使用man firewall-cmd或firewall-cmd -h查看,这里介绍部分常用操作选项。

3.1 Status Options

# 检查firewalld状态

firewall-cmd --state

# 重新加载防火墙规则,保持状态信息

firewall-cmd --reload

# 重新加载防火墙规则,包括netfilter内核模块(仅当出现严重的防火墙问题时使用,会中断活动的网络连接)

firewall-cmd --complete-reload

# 将运行时配置永久保存到配置文件

firewall-cmd --runtime-to-permanent

3.2 Zone Options

# 显示预定义的zones

firewall-cmd --get-zones

# 查看默认区域

firewall-cmd --get-default-zone

# 修改默认区域

firewall-cmd --set-default-zone=

# 查看网络接口使用的区域

firewall-cmd --get-active-zones

# 查看所有区域的所有配置

sudo firewall-cmd --list-all-zones

# 创建一个新的区域

sudo firewall-cmd --new-zone= --permanent

# 移除一个已存在的区域

sudo firewall-cmd --delete-zone=

# 指定区域(如果未指定则为默认区域)使用其它选项(见本文3.4章节)

firewall-cmd --zone=

# 查看指定区域的所有配置

sudo firewall-cmd --zone= --list-all

3.3 Service Options

# 显示预定义的services

sudo firewall-cmd --get-services

# 显示指定service允许的端口和协议

sudo firewall-cmd --service= --get-ports --permanent

# 为指定的service添加允许的端口和协议

sudo firewall-cmd --service= --add-port=[-]/

# 从指定的service移除允许的端口和协议

sudo firewall-cmd --service= --remove-port=[-]/

# 检查端口号和协议在指定的service是否允许

sudo firewall-cmd --service= --query-port=[-]/

3.4 Options to Adapt and Query Zones

# 显示指定zone的所有策略

sudo firewall-cmd --zone= --list-all

# 显示指定zone的所有service

sudo firewall-cmd --zone= --list-services

# 向指定zone添加允许的service

sudo firewall-cmd --zone= --add-service=

# 从指定zone移除允许的service

sudo firewall-cmd --zone= --remove-service=

# 显示指定zone的所有端口号和协议

sudo firewall-cmd --zone= --list-ports

# 向指定zone添加允许的端口和协议

sudo firewall-cmd --zone= --add-port=[-]/

# 从指定zone移除允许的端口和协议

sudo firewall-cmd --zone= --remove-port=[-]/

3.5 实例

3.5.1 放行8080-8100的所有入口流量

# 允许8080-8100端口的所有TCP流量,永久生效

sudo firewall-cmd --zone=public --add-port=8080-8100/tcp --permanent

# 立即生效

sudo firewall-cmd --reload

# 查看允许的端口号和协议

sudo firewall-cmd --zone=public --list-ports

3.5.2 放行8080-8081的所有http入口流量

# 从public区域上移除允许的8080-8100的TCP入口流量

# 如果没有进行3.5.1的操作,这一步可以忽略

sudo firewall-cmd --zone=public --remove-port=8080-8081/tcp --permanent

# 允许http服务上8080-8100端口的所有TCP流量,永久生效

sudo firewall-cmd --service=http --add-port=8080-8100/tcp --permanent

# 查看http服务上允许的端口号和协议

sudo firewall-cmd --service=http --get-ports --permanent

# 允许http服务的入口流量,永久生效

sudo firewall-cmd --zone=public --add-service=http --permanent

# 立即生效

sudo firewall-cmd --reload

3.5.3 仅允许本机通过TCP协议访问27017端口

sudo firewall-cmd --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="27017" accept" --permanent

这里使用了--add-rich-rule来设置防火墙策略,关于详细的介绍可以使用man firewalld.richlanguage查看。

4.firewalld图形界面工具

firewall-config是firewalld的图形界面管理工具,即使不熟悉Linux命令也可以妥善配置防火墙策略。不过,本文对图形界面的操作就不一一赘述了,有需要的自行自行摸索或查阅相关资料。



推荐阅读
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Linux系统中设置文件ACL权限的方法和使用说明,包括在centos7.3和centos6.9中开启ACL权限的两种方法:在挂载时指定打开ACL权限和修改默认的属性信息。同时提供了对ACL权限的详细解释和应用场景。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
author-avatar
叶子已经不是木头的了
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有