Linux 相关:firewalld 防火墙工具的使用,区别 start 和 enable 用法

一、前言

记录时间 [2024-04-26]

本文讲述了 Linux 系统的防火墙相关知识,包括 firewalld 防火墙工具的一系列操作,如开启、停用、开放端口等等,还有 startenable 在用法上的区别。


二、防火墙概述

防火墙是一种网络安全设备或软件,用于监控和控制进出网络的数据流量。其主要目的是防止未经授权的访问和恶意攻击,确保网络的安全性和完整性。防火墙可以基于预定义的规则集,允许或阻止特定类型的流量通过。

防火墙可以配置允许或拒绝特定的端口、IP 地址、应用程序或数据包类型的流量。正确配置和管理防火墙是确保网络安全的重要步骤,需要根据组织的安全策略和需求进行定期审查和更新。

防火墙可以分为以下几种类型:

  • 硬件防火墙:独立的物理设备,通常位于网络的边界,如路由器或专用的防火墙设备。它们通过检查进出的数据包来过滤流量。
  • 软件防火墙:安装在计算机或服务器上的软件应用程序,可以检查本地或特定应用程序的流量,并按照预定规则进行过滤
  • 应用程序防火墙(WAF):这是一种专门针对 Web 应用程序的防火墙,可以检测和阻止 Web 应用程序中的恶意流量和攻击。

阿里云服务器具备两道防火墙,一道在 Linux 操作系统中配置,一道在阿里云安全组中配置。


1. 阿里云安全组

阿里云安全组(Security Group)是阿里云提供的一种虚拟防火墙服务,用于控制云服务器(ECS 实例)、负载均衡器、RDS 数据库等资源的入口和出口流量。安全组作为一种网络访问控制机制,允许或拒绝特定IP地址、端口和协议的数据包通过。

创建和管理安全组通常是通过阿里云控制台、命令行界面(CLI)或 API 进行的。在配置安全组规则时,应考虑实际的业务需求和安全策略,确保只允许必要的流量通过,同时保护云资源不受未经授权的访问和恶意攻击。

总的来说,阿里云安全组是一种有效的网络安全管理工具,可以帮助保护云环境中的资源,确保其安全、可靠和高效运行。


2. Linux 防火墙

操作系统中的防火墙通常是一种软件防火墙。软件防火墙是安装在操作系统上的应用程序,用于监控和过滤进出计算机的网络流量。它可以根据预定义的规则集来允许或阻止特定类型的数据包,从而提供基本的网络安全保护。

软件防火墙可以配置为:

  • 允许或拒绝特定端口:设置规则,允许或拒绝特定端口上的进入或出去的流量。
  • 管理应用程序访问:监控和控制特定应用程序的网络访问,以防止恶意软件或未经授权的应用程序发送或接收数据。
  • IP 地址过滤:根据 IP 地址或 IP 地址范围来限制网络访问。
  • 数据包过滤:防火墙可以检查数据包的内容和协议头部,以识别和过滤恶意流量。

三、启动 / 关闭防火墙

在 Linux 系统中,常用的防火墙工具是 iptablesfirewalld,文中使用的是 firewalld 工具。

firewalld 是一个动态的、管理简单的防火墙工具,已经在许多现代 Linux 发行版中取代了 iptables

1. 启动 firewalld 防火墙

# 启动 firewalld 防火墙
systemctl start firewalld

# 设置 firewalld 防火墙开机自启动
systemctl enable firewalld

# 设置 firewalld 防火墙开机自启动,并立刻启动
systemctl enable firewalld --now

2. 停止 firewalld 防火墙

# 停止 firewalld 防火墙
systemctl stop firewalld

# 停用 firewalld 防火墙,重启生效
systemctl disable firewalld

3. 重启 firewalld 服务

# 重启防火墙服务
systemctl restart firewalld.service

四、端口开放

在使用 firewalld 管理防火墙规则时,可以通过以下步骤来开放新的端口。

1. 检查目前开放的端口

# 查看防火墙所有信息
firewall-cmd --list-all

# 检查目前开放的端口(一般使用这个)
firewall-cmd --list-ports

2. 开放新端口

单个端口开放

开放单个端口,以 8080 为例:

  • <port_number>:需要开放的端口号。
  • --zone=public:防火墙区域,通常使用 public 或其他适当的区域。
  • --permanent:将规则永久保存,这样即使重启也会保留。
# 开放新端口
# sudo firewall-cmd --zone=public --add-port=<port_number>/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent

多个端口开放

如果需要开放多个端口,可以列出它们并用 - 分隔:

  • <port_range>:端口范围,例如 3000-4000
# sudo firewall-cmd --zone=public --add-port=<port_range>/tcp --permanent
firewall-cmd --zone=public --add-port=3000-4000/tcp --permanent

五、重新加载防火墙规则

添加新的端口后,需要重新加载防火墙规则才能生效。

# 重新加载防火墙规则
firewall-cmd --reload

# 或者重启防火墙服务
systemctl restart firewalld.service

六、关于 start 和 enable

在 Linux 系统中,startenable 是两个常用的系统服务管理命令,它们用于启动和管理系统服务,但它们的操作方式和效果有所不同。下面以 systemctl 命令为例,进行二者的区分。

systemctl 是一个系统服务管理工具,用于控制 Systemd 初始化系统中的服务。以下是 startenablesystemctl 中的区别:


1. start

start 启动一个特定的系统服务。

使用方式:

systemctl start <service_name>

效果:立即启动指定的服务,但不会在系统启动时自动启动该服务。


2. enable

enable 设置一个系统服务在系统启动时自动启动。

使用方式:

# 启用指定的服务,并在系统启动时自动启动该服务
systemctl enable <service_name>

# 立即启动该服务
systemctl enable <service_name> --now

效果:启用指定的服务,并在系统启动时自动启动该服务。

如果服务当前没有运行,enable 命令也会启动该服务,需要加上参数 --now


3. 选择使用

  • 使用 start 命令会立即启动一个服务,但不会设置该服务在系统启动时自动启动。
  • 使用 enable 命令会启用一个服务,并设置该服务在系统启动时自动启动。

在选择使用 startenable 命令时,需要根据实际情况。

如果只是想立即启动一个服务,而不希望它在系统重启后自动运行,那么使用 start 命令是合适的。如果希望服务在系统启动时自动启动,那么应使用 enable 命令。


七、总结

本文讲述了 Linux 系统的防火墙相关知识,包括 firewalld 防火墙工具的一系列操作,如开启、停用、开放端口等等,还有 startenable 在用法上的区别。


一些参考资料:

阿里云官网:https://www.aliyun.com/product/ecs

FinalShell 下载地址:http://www.hostbuf.com/t/988.html

Xshell 和 Xftp 下载:https://www.xshell.com/zh/free-for-home-school/

  • 32
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值