0

0

Linux 容器安全加固实战

舞姬之光

舞姬之光

发布时间:2026-02-16 15:14:03

|

173人浏览过

|

来源于php中文网

原创

需对容器系统性安全加固:一、用非root用户运行;二、启用seccomp过滤系统调用;三、配置apparmor/selinux策略;四、禁用不必要capabilities;五、挂载只读根文件系统;六、扫描并精简基础镜像;七、限制资源使用并启用oom防护。

linux 容器安全加固实战

如果您在Linux环境中运行容器应用,但面临潜在的安全风险,如容器逃逸、权限滥用或镜像漏洞,则需要对容器进行系统性安全加固。以下是实施容器安全加固的具体操作步骤:

一、使用非root用户运行容器

默认情况下,容器内进程常以root身份运行,一旦被攻破易导致宿主机提权。通过指定非特权用户,可显著限制攻击面,降低横向渗透风险。

1、在Dockerfile中添加USER指令,指定UID为1001的普通用户。

2、构建镜像前,确保基础镜像中已创建该用户,例如执行adduser -u 1001 -D appuser

3、运行容器时,显式覆盖用户设置:docker run --user 1001:1001 image-name。

二、启用Seccomp系统调用过滤

Seccomp机制可限制容器内进程能执行的系统调用种类,阻止恶意程序调用危险接口(如execveatclone等),从而遏制利用内核漏洞的行为。

1、下载官方推荐的seccomp默认配置文件:curl -o seccomp.json https://raw.githubusercontent.com/moby/moby/master/profiles/seccomp/default.json。

2、编辑该JSON文件,将"execve""openat"等高风险调用的"action"字段设为"SCMP_ACT_ERRNO"

3、启动容器时挂载该策略:docker run --security-opt seccomp=seccomp.json image-name。

三、配置AppArmor或SELinux策略

强制访问控制(MAC)框架可在进程级实施细粒度权限约束,防止容器突破命名空间边界访问宿主机资源或其它容器数据。

1、确认宿主机已启用AppArmor:aa-status命令返回active状态。

2、编写profile文件,声明容器仅允许读取/app/config、写入/tmp、禁止网络绑定到特权端口。

3、加载策略:sudo apparmor_parser -r /etc/apparmor.d/docker-container-profile。

4、运行容器时指定策略名:docker run --security-opt apparmor=docker-container-profile image-name。

四、禁用不必要能力(Capabilities)

Docker默认赋予容器部分Linux Capabilities(如CAP_NET_RAW、CAP_SYS_ADMIN),这些能力可能被用于构造ARP欺骗或挂载文件系统。移除未使用的Capability可缩小攻击面。

站长俱乐部购物系统
站长俱乐部购物系统

功能介绍:1、模块化的程序设计,使得前台页面设计与程序设计几乎完全分离。在前台页面采用过程调用方法。在修改页面设计时只需要在相应位置调用设计好的过程就可以了。另外,这些过程还提供了不同的调用参数,以实现不同的效果;2、阅读等级功能,可以加密产品,进行收费管理;3、可以完全可视化编辑文章内容,所见即所得;4、无组件上传文件,服务器无需安装任何上传组件,无需支持FSO,即可上传文件。可限制文件上传的类

下载

1、列出容器当前启用的能力:docker inspect container-id | jq '.[0].HostConfig.CapAdd'。

2、启动容器时显式丢弃全部默认能力:docker run --cap-drop=ALL image-name。

3、按需仅添加必需能力,例如仅开放网络诊断:docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE image-name。

五、挂载只读根文件系统

将容器根目录设为只读,可防止恶意代码在运行时篡改二进制文件、注入动态库或修改配置,提升运行时完整性保障。

1、检查容器内关键路径是否依赖写入权限,如/tmp/run/var/log

2、对必须写入的路径单独挂载可写卷:docker run --read-only -v /tmp:/tmp:rw image-name。

3、验证根文件系统状态:进入容器后执行mount | grep " / " | grep ro,输出应包含ro标识。

六、扫描并精简基础镜像

臃肿的基础镜像常包含大量未使用软件包与调试工具(如vim、curl、gcc),不仅增大攻击面,还提高漏洞暴露概率。使用最小化镜像并定期扫描可消除已知CVE风险。

1、将FROM指令从ubuntu:22.04替换为FROM registry.access.redhat.com/ubi8/ubi-minimal:latestFROM alpine:3.19

2、构建后执行镜像扫描:trivy image --severity CRITICAL,MEDIUM,HIGH your-image-name。

3、删除扫描报告中所有CVE-XXXX-XXXX编号对应的问题包,例如移除openssl旧版本并升级至openssl-3.0.12及以上。

七、限制容器资源使用并启用OOM Killer防护

未加限制的内存与CPU使用可能导致拒绝服务(DoS)或触发内核OOM Killer误杀关键进程。通过cgroup约束可保障宿主机稳定性,并防止容器间资源争抢。

1、设定内存上限为512MB且启用软限制:docker run -m 512m --memory-reservation 256m image-name。

2、限制CPU使用率不超过两个核心的75%:docker run --cpus 1.5 image-name。

3、启用内存溢出时自动终止容器而非触发全局OOM:docker run -m 512m --oom-kill-disable=false image-name。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

442

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

544

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

321

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

452

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

181

2023.10.30

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1486

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

383

2025.10.17

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

283

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.2万人学习

Git 教程
Git 教程

共21课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号