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

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.xdnf.cn/news/17230.html

相关文章:

  • Anthropic MCP架构深度解析:下一代AI工具集成协议的设计哲学
  • AT32的freertos下modbus TCP移植
  • git push 提示:com port 443 after 75002 ms: Couldn#039;t connect to server
  • TFTP: Linux 系统安装 TFTP,文件系统启动后TFTP使用
  • EasyExcel高效工具类:简化Excel导入导出,支持多Sheet与枚举转换
  • 磁悬浮转子变转速工况下的振动抑制全解析
  • 论文学习19:Multi-view Aggregation Network for Dichotomous Image Segmentation
  • 系统启动项管理工具对美国服务器性能基线的验证标准
  • 快手小店客服自动化回复
  • 01数据结构-并查集
  • Linux86 sheel流程控制前瞻4 判断vsftpd服务启动,如果启动,打印端口号,进程id
  • SRS简介及简单demo
  • 将英文PDF文件完整地翻译成中文的4类方式
  • 分布式存储 Ceph 的演进经验 · SOSP 2019
  • mysql索引的用法
  • DSP的CLA调试技巧
  • 无人机航拍数据集|第5期 无人机高压输电线铁塔鸟巢目标检测YOLO数据集601张yolov11/yolov8/yolov5可训练
  • Redis的分布式序列号生成器原理
  • GoogLeNet训练
  • 【数论】素数
  • 盲盒抽卡机小程序系统开发:打造个性化娱乐新平台
  • C语言基础_排序算法和二分法查找
  • Android 之 Kotlin中的符号
  • Unity模型显示在UI上
  • 以此芯p1芯片为例研究OpenHarmony上GPU (Vulkan) 加速在深度学习推理中的价值
  • 点赞服务完整消息流转过程详解(原方案,未使用Redis)
  • 学习嵌入式之硬件——ARM体系
  • 昇思+昇腾开发板+DeepSeek模型开发与适配
  • 豆包新模型与PromptPilot工具深度测评:AI应用开发的全流程突破
  • 自然语言处理基础—(1)