RH134简单知识点——第11章—— 管理网络安全

第11章 管理网络安全

1. 防火墙在 Linux 系统安全中有哪些重要的作用?

防火墙作为Linux系统网络安全的关键组件,核心作用是隔离不同信任级别的网络区域、控制流量进出,具体重要作用可分为以下几点:

(1)网络隔离与区域管控

核心作用是隔离不同信任级别网络 (如内部网络与外部互联网),通过预设规则控制流量进出,这是防火墙核心定位,也是所有安全防护的基础。

(2)依托内核框架实现流量过滤

基于Linux内核netfilter框架工作,利用框架预设的hook点 (数据包进出、路由决策等关键拦截点 ),对流经的数据包执行 "拦截-检查-放行/拒绝" 操作,是所有Linux防火墙工具的底层支撑

(3)支持地址与端口转换

借助netfilter框架的NAT(网络地址转换)功能 (如firewalld的external区域支持IPv4传出流量伪装),实现内部网络地址隐藏 ,同时支持端口转换,保障内部设备安全访问公网

(4)精准控制服务与端口访问

可通过预定义 服务(如SSH、http)或端口号配置规则放行必要服务流量 (如办公场景放行ipp打印服务、公网场景仅放行SSH管理服务),拒绝未授权服务的访问请求,降低服务暴露风险。

(5)安全策略适配不同场景

通过区域(Zone)机制(如trusted、public、dmz等),为不同信任级别场景匹配预设规则集(完全信任、严格限制、对外服务隔离等),无需从零编写规则,快速适配家庭、办公、公网等多种使用场景。

2. 简单说明一下什么是firewalld。

firewalld是基于nftables(RHEL 9及以后)默认的防火墙管理器,核心作用是简化防火墙配置,让策略管理更高效。

核心定位:

firewalld并非直接替换iptables,而是在 nftables/iptables 内核框架之上,提供更友好的管理层级 ,解决传统iptables修改规则需重启服务、中断现有连接的问题,支持规则动态生效(无需重启服务)。

核心特性:

(1)区域(Zone)核心机制

这是firewalld的核心概念,每个区域是一组预定义规则集对应不同信任级别 (如trusted允许所有流量、public仅放行SSH和dhcpv6-client),可通过源IP或网络接口将流量归类到对应区域,应用匹配规则

(2)预定义服务与端口

内置常见服务(SSH、http、ipp等)与端口/协议的映射关系 ,管理员无需记忆端口号,可通过服务名称快速配置规则(如放行http服务即自动放行对应端口)。

(3)双配置模式

支持runtime(临时生效,重启服务/服务器后丢失)和permanent(永久生效,需通过firewall-cmd --reload重载后生效)两种配置模式,适配测试与生产场景。

(4)底层兼容与迁移

RHEL 9及以后版本底层依赖nftables框架,替代老旧的iptables;系统提供iptables-translate工具,可将旧iptables配置自动转换为nftables格式,实现平滑迁移。

(5)多管理方式

支持firewall-cmd命令行(核心管理方式)、firewall-config图形化界面(桌面环境适用)、配置文件编辑(/etc/firewalld/目录,适配批量部署)三种交互方式。

3. 系统管理员可以通过哪三种方式与firewalld交互?

(1)firewall-cmd 命令行工具(核心方式)

最常用交互方式 ,适用于所有命令行环境(本地终端、远程SSH),可实现所有核心操作(区域管理、服务/端口放行、规则重载、配置查询等),支持临时与永久配置(如firewall-cmd --add-service=http --permanent永久放行http服务)。

(2)firewall-config 图形化工具

firewalld提供的可视化管理界面,适用于有桌面环境的Linux系统,可通过界面直观配置区域、关联网卡/源IP、放行服务/端口,无需记忆命令,适合简单场景与新手操作。

(3)配置文件手动编辑

firewalld的所有配置均存储在/etc/firewalld/目录下(系统级配置),包括区域规则(zones目录)、预定义服务(services目录)等,管理员可直接编辑配置文件实现批量配置或复杂规则定制,编辑后需执行firewall-cmd --reload重载生效。

4. 使用什么命令可以获取当前端口标签分配概述?

获取当前端口标签分配概述的命令为:

bash 复制代码
semanage port -l

补充说明:

  • 该命令会列出系统所有端口的SELinux安全标签分配信息,包括标签类型(如http_port_t)、协议(tcp/udp)、对应的端口号(如http_port_t对应80、81、443等tcp端口),是获取端口标签分配概述的核心命令
  • 可结合过滤命令精准查询:按服务过滤(semanage port -l | grep 服务名,如grep http)、按端口号过滤(semanage port -l | grep -w 端口号,如grep -w 80),快速定位目标端口的标签信息。
  • 非标准端口运行服务时(如httpd侦听30080端口),SELinux会拦截端口绑定,需通过该命令确认正确的端口标签,再通过semanage命令修改标签分配,否则服务无法正常启动。

5. 要允许httpd服务侦听端口82/TCP,可以使用什么命令?

httpd服务侦听非标准端口(82/TCP),需完成两步核心配置:SELinux端口标签配置(关键,否则服务无法绑定端口) + firewalld端口放行配置。

步骤:

第一步:配置SELinux端口标签

httpd服务对应的SELinux端口标签为http_port_t(默认关联80、443等端口),82/TCP为非标准端口,需将其添加到http_port_t标签中,否则SELinux会拦截端口绑定,命令如下:

bash 复制代码
# 永久将82/tcp端口添加到http_port_t标签(-a添加,-t指定标签,-p指定协议)
semanage port -a -t http_port_t -p tcp 82

# 验证配置(查看http_port_t标签是否包含82端口)
semanage port -l | grep -w 82

若需修改已有端口标签 (如替换其他标签),可使用**-m**选项(semanage port -m -t http_port_t -p tcp 82),比删除再添加更高效。

第二步:修改httpd服务配置并重启

需将httpd服务的监听端口从默认80修改为82,否则服务仍会监听默认端口,操作命令:

bash 复制代码
# 编辑httpd主配置文件(课程默认路径)
vim /etc/httpd/conf/httpd.conf

# 将配置中的"Listen 80"修改为"Listen 82",保存退出后重启服务
systemctl restart httpd

# 验证httpd服务状态(确保服务正常运行,无SELinux拒绝提示)
systemctl status httpd

第三步:通过firewalld放行82/TCP端口(课程1.7节重点)

配置firewalld规则,放行82/TCP端口流量(推荐永久配置,避免重启失效),命令如下:

bash 复制代码
# 场景1:临时放行(重启firewalld后失效,测试场景用)
firewall-cmd --add-port=82/tcp

# 场景2:永久放行(需重载生效,生产场景用)
firewall-cmd --add-port=82/tcp --permanent && firewall-cmd --reload

# 验证端口放行状态(确认82/tcp已在开放列表中)
firewall-cmd --zone=public --list-ports --permanent

完整验证:

配置完成后,可通过curl命令测试访问(curl http://服务器IP:82),能正常访问即说明所有配置生效。

相关推荐
坐怀不乱杯魂2 小时前
Linux网络 - HTTPS
服务器·网络·网络协议·http·https
不知名。。。。。。。。2 小时前
五种IO模型---(从钓鱼的视角出发)
网络
B2_Proxy2 小时前
亚马逊采集的正确打开方式:从合规边界到反爬博弈,再到数据价值落地
服务器·网络·网络协议·tcp/ip·chatgpt
leiming62 小时前
Qt视频监控系统开发实战:从视频捕获到照片管理
linux·数码相机·音视频
Dontla2 小时前
浏览器localStorage共享机制介绍(持久化客户端存储方案)本地存储冲突、iframe、XSS漏洞、命名空间隔离
前端·网络·xss
网硕互联的小客服2 小时前
linux服务器忘记远程端口怎么办?如何找回?
linux·运维·服务器
历程里程碑2 小时前
Linux 16 环境变量
linux·运维·服务器·开发语言·数据库·c++·笔记
ZeroNews内网穿透2 小时前
关于飞牛fnOS重要安全更新的提醒
运维·服务器·web安全·ssh
若风的雨2 小时前
RDMA在NCCL中的整体架构及例子
网络