ubuntu 20.04如何沙箱化systemd服务

简介: ubuntu 20.04如何沙箱化systemd服务

随着systemd越来越成熟,systemd提供了很多的功能特性可以对进程进行资源隔离和防护,虽然不是完全的隔离性,但是还是为安全性提供了保障。

这里我们使用vncserver systemd服务来做演示,这里的vncserver systemd配置如下

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
ExecStartPre=/bin/bash -c'/usr/bin/vncserver -kill ":$(id -u %i)" > /dev/null 2>&1 || :'ExecStart=/bin/bash -c'cd /home/%i;/usr/bin/vncserver ":$(id -u %i)" -geometry 1440x900 -alwaysshared -fg'ExecStop=/bin/bash -c'/usr/bin/vncserver -kill ":$(id -u %i)"'[Install]
WantedBy=graphical.target

将上述的进程沙箱化的话我们可以执行下述步骤:

1. 配置进程执行的用户和用户组

[Service]
User=%i
Group=%i

2. 禁止服务进程及其子进程获取新的权限

NoNewPrivileges=true

3. 阻止进程获取内核变量

ProtectKernelTunables=true

4. 阻止进程加载或者卸载内核模块

ProtectKernelModules=true
  1. 阻止进程读取或者写入内核日志
ProtectKernelLogs=true

6. 阻止修改cgroup

ProtectControlGroups=true

7. 阻止进程修改系统内存中的任何代码

MemoryDenyWriteExecute=true

8. 阻止进程对文件或者目录设置SUID或者SGID

RestrictSUIDSGID=true

9. 阻止进程修改硬件或者软件的时钟

ProtectClock=true

10. 禁用进程启用实时调度,防止cpu过载

RestrictRealtime=true

11. 强制进程使用特定目录。这可以防止进程读取其他程序在临时文件夹的内容

PrivateTmp=true
目录
相关文章
|
2月前
|
Ubuntu
百度搜索:蓝易云【Ubuntu开机自启服务systemd.service配置教程】
现在,你的服务将在Ubuntu开机时自动启动,并在之后的启动中持续运行。记得根据你的实际需求修改 `your_service_name.service`文件中的相关信息。
102 2
|
2月前
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
234 0
|
2月前
|
存储 Ubuntu 安全
百度搜索:蓝易云【Ubuntu系统离线安装Telnet服务教程。】
确保在进行任何系统配置更改之前备份重要的数据,并在操作过程中小心谨慎,以免造成不必要的问题。
73 0
|
2月前
|
Kubernetes Ubuntu 安全
Linux|科普扫盲帖|配置网络软件源---阿里云镜像仓库服务使用(centos,Ubuntu)
Linux|科普扫盲帖|配置网络软件源---阿里云镜像仓库服务使用(centos,Ubuntu)
2050 0
|
2月前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
50 1
|
1月前
|
Ubuntu
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
53 2
|
1月前
|
Ubuntu
ubuntu 开启dhcp服务并配置
ubuntu 开启dhcp服务并配置
41 2
|
1月前
|
Linux Ubuntu
蓝易云 - Linux学习之Ubuntu20使用systemd管理OpenResty服务
这就是在Ubuntu 20使用systemd管理OpenResty服务的基本方法。
47 3
|
2月前
|
Ubuntu Linux
Ubuntu 报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.
系统未使用 `systemd` 初始化导致错误。解决方法是通过 `apt` 安装。首先备份并更换`sources.list`,添加阿里云镜像源,然后更新源并以管理员权限运行 `apt-get install systemd -y` 和 `apt-get install systemctl -y` 安装所需组件。
|
2月前
|
Ubuntu Python CDN
Ubuntu将自建服务配置开机启动项
在Ubuntu上设置Python Flask应用为开机启动服务,需要通过Systemd进行管理。首先,创建并编辑Systemd服务单元文件,指定`ExecStart`为Python解释器及Flask入口脚本,`WorkingDirectory`为应用目录,`User`和`Group`为运行用户,以及必要的环境变量。然后,使用`systemctl`命令进行daemon-reload,启用并启动服务。最后,检查服务状态以确保启动成功。重启机器测试,确认应用能自动启动。