当前位置: 首页 > 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.dtcms.com/a/317360.html

相关文章:

  • 【数据结构初阶】--排序(四):归并排序
  • 软考软件设计师考点总结
  • [linux] Linux系统中断机制详解及用户空间中断使用方法
  • Linux部署tp5.1,nginx服务器不管访问那个方法,一直访问index/index问题解决方法
  • 阶段二:1-信息技术概述
  • helm下载tiller失败
  • 【数字图像处理系列笔记】Ch04:灰度变换与空间域图像增强(2)
  • 蚊子咬人问题何时休:深度学习引领智能灭蚊新时代
  • qt窗口--02
  • 无人设备遥控器之跳频技术篇
  • 鹧鸪云:光伏电站的“智慧中枢”,精准调控逆变器
  • 使用 Helm 在 Kubernetes 中安装 Milvus
  • 企业知识库:RAG技术实现流程总览(一)
  • 【motion】标签体系设计与检索 1:HumanML3D 和 KIT Motion-Language(KITML)
  • 河南萌新联赛2025第(四)场【补题】
  • 键帽(dp)
  • 分布式光伏气象站:安装与维护
  • 【运维进阶】DHCP服务配置和DNS域名解析
  • 最长公共子序列-动态规划
  • 如何在linux中使用Makefile构建一个C++工程?
  • 中科米堆CASAIM机加工件来料尺寸自动化三维测量方案
  • 第十八天:C++进制之间的转换
  • 机器学习算法篇(六)贝叶斯算法
  • 基于php的个人健康管理系统设计与实现/vue/php开发
  • Leetcode题解:739每日温度,用单调栈解决问题!
  • LeetCode 91~110题解
  • Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备故障预测与智能运维中的应用(384)
  • 自动驾驶系统的网络安全风险分析
  • 力扣经典算法篇-45-回文数(数字处理:求余+整除,字符串处理:左右指针)
  • 【2025.08.06最新版】Android Studio下载、安装及配置记录(自动下载sdk)