当前位置: 首页 > news >正文

SELinux加固Linux安全2

控制端口 SELinux 上下文

端口 SELinux 上下文
#安装 SELinux 故障排查工具[root@server ~ 09:29:41]# yum install -y setroubleshoot-server-作用:安装后能自动分析 SELinux 导致的错误(比如 “为什么服务启动失败”),相当于给安保配备 “故障扫描仪”。​#查看端口的 “默认通行证”[root@server ~ 09:40:37]# semanage port -l | grep http_port_thttp_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000pegasus_http_port_t            tcp      5988-作用:http_port_t 是 httpd 服务的 “端口通行证”,默认包含 80(http)、443(https)等端口。-类比:查看小区规定 “哪些门只能快递员走”(80 号门、443 号门等)​#给新端口发 “通行证”[root@server ~ 09:43:29]# semanage port -a -t http_port_t -p tcp 18020-作用:给 18020 端口贴上 http_port_t 标签,允许 httpd 服务使用这个端口。-实际案例:如果想让网站跑在 18020 端口(而不是默认的 80),必须先做这一步,否则 SELinux 会拦阻 httpd 访问 18020。​​[root@server ~ 09:44:14]# semanage port -l|grep 18020http_port_t                    tcp      18020, 80, 81, 443, 488, 8008, 8009, 8443, 9000​​#给端口换 “通行证”[root@server ~ 09:44:29]# semanage port -m -t ssh_port_t -p tcp 18020-作用:把 18020 端口的标签从 http_port_t 改成 ssh_port_t,现在这个端口只能给 ssh 服务用了。-类比:把 18020 号门的 “快递员通行证” 换成 “住户通行证”,现在只有住户能走。​[root@server ~ 09:44:45]# semanage port -l |grep 18020ssh_port_t                     tcp      18020, 22​#收回端口的 “通行证”[root@server ~ 09:45:05]# semanage port -d -t ssh_port_t -p tcp 18020-删除 18020 端口的 ssh_port_t 标签,这个端口不再属于任何服务的默认允许列表​# 确认 18020 端口已正确贴上 http_port_t 标签[root@server ~ 09:45:21]# semanage port -l | grep 18020

#给 18020 端口添加 SELinux 标签,给 TCP 协议的 18020 端口添加 http_port_t 标签[root@server ~ 09:49:01]# semanage port -a -t http_port_t -p tcp 18020​#重启 httpd 服务使配置生效[root@server ~ 09:50:25]# systemctl restart httpd​#检查 httpd 服务状态中的关键信息,查看 httpd 服务状态中包含 “Per”(通常是 “Permission” 相关,即权限)的信息,确认是否有 SELinux 导致的权限错误。[root@server ~ 09:50:37]# systemctl status httpd.service |cat |grep Per​#验证端口标签是否正确配置[root@server ~ 09:51:13]# semanage port -l | grep 18020http_port_t                    tcp      18020, 80, 81, 443, 488, 8008, 8009, 8443, 9000​#查看自定义的端口标签[root@server ~ 09:51:19]# semanage port -lCSELinux 端口类型                   协议       端口号​http_port_t                    tcp      18020​​#修改 Apache 的配置文件,通常是在这里指定 httpd 服务监听 18020 端口(比如添加 Listen 18020 配置)[root@server ~ 09:46:12]# vim /etc/httpd/conf/httpd.conf [root@server ~ 09:48:16]# systemctl restart httpd​# 测试 httpd 是否能在 18020 端口提供服务[root@server ~ 10:01:09]# curl http://server.lyk.cloud:18020/hello​

控制 SELinux 布尔值

SELinux 布尔值
#查看 SELinux 布尔值状态(看看开关是开还是关)[root@server ~ 10:16:26]# getsebool -a |grep httpd_enable_homedirshttpd_enable_homedirs --> off-作用:getsebool -a 是 “查看所有安全开关”,| grep 关键词 是 “筛选出包含 httpd_enable_homedirs 的开关”。-结果 off 表示这个开关是 “关闭” 状态。-类比:物业查 “是否允许快递员进楼道” 的开关,结果是 “禁止”(off)。-实际意义:httpd_enable_homedirs 控制 “Apache 服务器(httpd)能否访问用户的家目录(/home/xxx)”,现在是禁止状态。​​#直接查看单个布尔值[root@server ~ 10:20:30]# getsebool httpd_enable_homedirshttpd_enable_homedirs --> off-作用:直接查看 httpd_enable_homedirs 这个开关的状态(更精准),结果还是 “关闭”。-类比:直接问物业 “快递员进楼道的开关是开还是关”,得到明确答复 “关”。​# 临时打开开关[root@server ~ 10:21:29]# setsebool httpd_enable_homedirs=1-作用:1 表示 “打开” 开关,允许 httpd 访问用户家目录,但这是临时的(服务器重启后会自动变回 off)。-类比:临时允许快递员进楼道送大件,但第二天恢复禁止。-实际场景:测试网站时临时让 httpd 访问 /home/user/blog 目录,用完就关。​#临时关闭开关[root@server ~ 10:21:59]# setsebool httpd_enable_homedirs=0-作用:0 表示 “关闭” 开关,重新禁止 httpd 访问用户家目录(临时生效)​#先临时打开,再永久生效[root@server ~ 10:22:04]# setsebool httpd_enable_homedirs=1[root@server ~ 10:22:29]# setsebool -P httpd_enable_homedirs=1-作用:第一步临时打开开关,立即生效;第二步加 -P(Persistent,持久化),让这个状态永久保存(重启服务器也不会变)。-类比:先临时允许快递员进楼道,然后告诉物业 “以后一直允许”,长期生效。-实际场景:如果网站文件确实放在用户家目录(比如 /home/user/www),就需要永久打开这个开关,否则每次重启后网站都会无法访问。

semanage boolean 命令管理 SELinux 布尔值

#查看 semanage 命令用法[root@server ~ 10:22:37]# semanage boolean Usage: semanage boolean [-h] [-n] [-N] [-S STORE] [  --extract  | --deleteall  | --list -C | --modify ( --on | --off ) boolean ]​#查看所有布尔值[root@server ~ 10:23:01]# semanage boolean -l​# 查看自定义的布尔值(非系统默认)[root@server ~ 10:24:14]# semanage boolean -l -CSELinux 布尔值                    状态  默认 描述​httpd_enable_homedirs          (开    ,    开)  Allow httpd to enable homedirs​# 永久打开其他开关[root@server ~ 10:30:27]# semanage boolean -m --on use_nfs_home_dirs-作用:-m 是 “modify(修改)”,--on 是 “打开”;use_nfs_home_dirs 这个开关控制 “系统能否使用 NFS 共享的家目录”(比如多台电脑共用一个用户目录)。-实际场景:如果你的用户目录(/home)是通过网络共享(NFS)的,必须打开这个开关,否则登录时会提示 “找不到家目录”。​#永久关闭开关[root@server ~ 10:31:44]# semanage boolean -m --off use_nfs_home_dirs作用:永久关闭 use_nfs_home_dirs 开关,禁止使用 NFS 共享的家目录​#恢复所有自定义布尔值到默认状态[root@server ~ 10:24:48]# semanage boolean -D-作用:-D 是 “Delete all custom settings(删除所有自定义设置)”,把所有手动改过的开关都恢复到系统默认状态。-类比:小区所有手动修改的安全规则全部重置(比如之前允许快递进楼道,现在恢复禁止)
http://www.lryc.cn/news/611504.html

相关文章:

  • docker安装FFmpeg
  • SmartMediaKit 模块化音视频框架实战指南:场景链路 + 能力矩阵全解析
  • Flink CDC如何保障数据的一致性?
  • 力扣经典算法篇-44-组合总和(回溯问题)
  • Ubuntu20.04 离线安装 FFmpeg 静态编译包
  • 【unity实战】用unity实现一个3D俯视角暗杀潜行恐怖类游戏,主要是实现视野范围可视化效果
  • X86-ubuntu22.04远程桌面只有1/4无法正常操作
  • 问题定位排查手记1 | 从Windows端快速检查连接状态
  • 分布式文件系统07-小文件系统的请求异步化高并发性能优化
  • ubuntu 22.04 中安装python3.11 和 3.11 的 pip
  • STM32U5 外部中断不响应问题分析
  • Ubuntu设置
  • DevOps时代的知识基座革命:Gitee Wiki如何重构研发协作范式
  • 基于51单片机的温控风扇Protues仿真设计
  • 【面试场景题】电商秒杀系统的库存管理设计实战
  • Python高级排序技术:非原生可比对象的自定义排序策略详解
  • 17.10 智谱AI GLM 篇:ChatGLM3-6B 快速上手
  • LeetCode每日一题,8-6
  • List、ArrayList 与顺序表
  • 软考软件设计师考点总结
  • 模电知识点总结
  • 安卓雷电模拟器安装frida调试
  • mysql优化策略
  • 【Excel】通过Index函数向下拖动单元格并【重复引用/循环引用】数据源
  • WinForm之ListView 组件
  • Ethereum: L1 与 L2 的安全纽带, Rollups 技术下的协作与区别全解析
  • Vue计算属性详解2
  • 无法解析 CentOS 官方镜像源的域名
  • 微软的BitLocker加密
  • 输电线路防外破声光预警装置 | 防山火/防钓鱼/防施工安全警示系统