从零开始的云计算生活——第十四天,困难重重,安全管理。

一·故事背景

在前面的基本无操作内容后,来到了大头内容,安全管理!其中的防火墙相关的内容更是重中之重,要好好掌握,熟练运用。

二·SELinux安全上下文

1·SELinux 简介

a. SELinux(Security-Enhanced Linux)

是Linux内核的**强制访问控制(MAC)**安全子系统,由美国国家安全局(NSA)与开源社区合作开发。其核心目标是通过精细化权限管理,提升系统安全性,防止恶意程序或用户越权访问敏感资源。

b.核心思想

最小权限原则:进程/用户只能访问其明确需要的资源。

基于标签的访问控制:所有资源(文件、端口、进程)被赋予安全上下文(Security Context)。

c.工作模式

Enforcing(强制模式)​

严格执行策略,拒绝违规操作并记录日志(默认生产环境模式)

Permissive(宽容模式)​

仅记录违规行为但不阻止,用于策略调试或兼容性测试

Disabled(禁用模式)​

完全关闭 SELinux,系统回归传统 DAC 权限控制(不推荐,降低安全性)

2·基础操作命令

① 查看SELinux状态

getenforce# 查看当前模式

sestatus# 详细状态(模式/策略类型)

② 切换工作模式

setenforce 0# 切换到Permissive模式

setenforce 1# 切换到Enforcing模式

注意:setenforce仅临时生效,永久修改需编辑 /etc/selinux/config 文件。

3·安全上下文(Security Context)

① 查看上下文

ls -Z /var/www/html # 查看文件/目录的上下文

ps -Z -C httpd# 查看进程的上下文

② 修改上下文

chcon命令
选项 说明 示例消息
-t, --type TYPE 设置安全上下文的类型部分 已将 file.txt 的类型更改为 httpd_sys_content_t
-u, --user USER 设置安全上下文的用户部分 已将 file.txt 的用户更改为 system_u
-r, --role ROLE 设置安全上下文的角色部分 已将 file.txt 的角色更改为 object_r
--reference=FILE 使用指定文件的安全上下文 已从 ref_file 复制上下文到 target_file
-R, --recursive 递归处理文件和目录 已递归更改 dir/ 及其内容的上下文
-h, --help 显示帮助信息 显示帮助菜单
-v, --verbose 显示操作详情 正在更改 file.txt 的安全上下文
--version 显示版本信息 chcon (GNU coreutils) 8.32
semanage 命令
子命令/选项 用途说明 常用选项 示例消息/操作
semanage login 管理SELinux用户与Linux账户的映射关系 -a (添加)、-d (删除)、-m (修改) 将用户 user1 映射到 SELinux 用户 staff_u
semanage user 管理SELinux用户及其角色和权限 -a、-d、-R (角色)、-L (限制) 创建新SELinux用户 web_user 并分配角色 httpd_role
semanage port 管理网络端口与SELinux类型的绑定关系 -a、-d、-t (类型)、-p (协议) 将TCP端口 8080 绑定到 http_port_t 类型
semanage interface 管理网络接口与SELinux类型的绑定关系 -a、-d、-t 将接口 eth1 绑定到 netif_t 类型
semanage module 管理SELinux策略模块(启用/禁用) -a、-d、-e (启用)、-D (禁用) 启用策略模块 my_custom_module
semanage fcontext 管理文件/目录的默认SELinux上下文规则 -a、-d、-t、-s (范围) 添加规则:/webapps(/.*)? 的上下文类型为 httpd_sys_content_t
semanage boolean 管理SELinux布尔值(开关策略功能) -1 (查看)、--on、--off 启用布尔值 httpd_can_network_connect
semanage dontaudit 管理dontaudit规则(是否记录特定访问拒绝事件) --on、--off 关闭对 sshd 的 dontaudit 规则
-h / --help 显示帮助信息 - 显示子命令的帮助菜单
-v / --verbose 显示详细操作信息 - 显示添加端口 8080 的详细过程
-n / --noheading 输出时隐藏列标题 - 仅显示端口列表数据,无标题行

三·Linux防火墙-Firewalld

1·概述

按表现形式划分:

软件防火墙: 集成在系统内部,Linux系统: iptables、firewalld、ufw; windows系统下: windows defender

硬件防火墙: 华为防火墙、思科防火墙、奇安信防火墙、深信服防火墙等

按技术划分:

包过滤防火墙: 检查数据包的源IP、目的IP、源端口、目的端口、TCP的syn控制位

七层防火墙:除了上述检查外,还会检查数据内容

防火墙的作用:

阻止来自网络外部的攻击、进行流量控制

2、 Linux防火墙

① 防火墙结构

用户态:

iptables: 使用iptables命令对防火墙规则进行管理,必须深度理解网络技术和四表五链,对于初 学者或者网络技术不达标的人员不友好

**firewalld:**使用firewall-cmd命令对防火墙进行管理,采用的是区域划分的形式。不需要连接底层 的四表五链,对于初学者比较友好

ufw: 使用ufw命令对防火墙进行管理,命令简单易懂。(默认未安装)

内核态:

四表: 从内核->用户的顺序: raw -> mangle -> nat -> filter

五链: input、output、forward、prerouting、postrouting

② firewalld防火墙

区域分类,功能

九大区域:

block: 阻塞区域 (拒绝任何流量,但给出回应)
dmz: 非军事化管理区域(内部的服务器放于该区域)
drop: 丢弃区域(丢弃一切流量,不给出任何回应)
external: 外部区域 (连接外部网络,例如: internet网络
home: 家庭区域
internal: 内部区域 (连接内部网络)
public: 公共区域,默认区域
trusted: 完全信任区域
work: 工作区域
命令分类:
查看命令

firewall-cmd --list-all --zone=public #查看指定区域的详细信息

添加命令

firewall-cmd --add-port=80/tcp --zone=public #添加端口到指定区域

修改命令

firewall-cmd --change-interface=ens224 --zone=internal #修改网络接口所属区域

删除命令

firewall-cmd --remove-port=80/tcp --zone=public #删除端口到指定区域

保存规则

firewall-cmd --runtime-to-permanent #一次性保存所有规则

案例:①禁止外部主机ping本机

本机ip:192.168.71.132

②允许外部主机访问本机的http服务

本机ip:192.168.71.132 ens160

#######环境配置 开始#########

##本机安装httpd服务

#改变SElinux的规则

root@localhost \~# setenforce 0

root@localhost \~# yum install -y httpd

##启动httpd服务

root@localhost \~# systemctl start httpd

##修改httpd服务的监听IP

root@localhost \~# vim /etc/httpd/conf/httpd.conf

Listen 192.168.80.128:80

##重启httpd服务

root@localhost \~# systemctl restart httpd

##验证服务监听状态

root@localhost \~# netstat -naptu | grep :80

tcp00 192.168.80.128:800.0.0.0:* LISTEN5884/httpd

#######环境配置 结束#########

#防火墙配置

root@localhost \~# firewall-cmd --change-interface=ens34 --zone=dmz

success

##客户端验证访问##

root@localhost \~# curl 192.168.80.128

curl: (7) Failed connect to 192.168.80.128:80; 拒绝连接

##发现无法访问###

#服务端查看dmz区域信息

root@localhost \~# firewall-cmd --list-all --zone=dmz

#发现没有放心http服务

#配置dmz区域http服务放行策略

root@localhost \~# firewall-cmd --add-service=http --zone=dmz

success

总结

今日的重点是firewall的操作,但是目前最实用的还是明日的iptables,重点是Iptables的运用,明日会继续更新。

相关推荐
m0_738120725 小时前
渗透测试基础——黑盒测试下的Web漏洞挖掘与利用解析(一)
服务器·前端·网络·安全·php
碳基硅坊5 小时前
Qwen3.5-9B在安全生产安全帽检测中的应用
人工智能·安全·安全帽检测·qwen3.5-9b
小江的记录本6 小时前
【JVM虚拟机】类加载机制:类加载全流程:加载→验证→准备→解析→初始化(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·算法·安全·spring·面试
消失的旧时光-19438 小时前
企业认证与安全体系(四):企业登录认证流程全解析——JWT、Redis、Spring Security 如何协同工作?
redis·安全·spring·spring security·jwt
代码N年归来仍是新手村成员8 小时前
【AWS】Lambda 初识与服务部署
javascript·react.js·ai·node.js·云计算·ai编程·aws
wb043072019 小时前
食安大检查——从阿明餐厅的突击检查,看安全架构的六大防线
安全·安全架构
小哈里9 小时前
【K8S】云原生时代的GitOps最佳实践 —— ArgoCD
云原生·kubernetes·云计算·argocd·基础设施
不灭锦鲤9 小时前
网络安全第113天
安全·web安全
wanhengidc9 小时前
云手机 跨设备无缝衔接
运维·服务器·人工智能·智能手机·云计算
IT菜鸟程9 小时前
【银河麒麟V10】OpenSSH安全加固指南:源码编译升级至9.8p1版本
安全