SELinux(Security-Enhanced Linux)是Linux的安全增强机制,它通过强制访问控制(MAC)机制来保护系统的安全性。Audit 是一种安全审计框架,可以记录系统中发生的各种事件,如用户登录、文件访问、进程创建、系统调用等等。它可以帮助管理员监控系统的安全性,检测潜在的安全威胁和攻击行为,以及跟踪系统的使用情况。
上述两种机制,都是提升系统安全性的机制,但是也会带来一定的性能开销。
Audit 可以记录系统中发生的各种事件,如用户登录、文件访问、进程创建、系统调用等。因此,启用 Audit 功能会对系统调用性能产生一定的影响。 具体来说,启用 Audit 功能会增加内核的负载,因为它需要在内核中拦截和记录系统调用。这可能会导致系统的响应时间变慢,特别是在高负载情况下。此外,由于 Audit 记录了大量的事件信息,因此会占用一定的系统资源,如磁盘空间和内存。
SELinux对系统调用性能的影响主要体现在以下两个方面:
如下图所示的示例,writev 系统调用的路径有 selinux 相关的权限检查操作。
Unixbench 是测试系统微观能力的 Micro benchmark,受系统调用影响大,其中单核用例最能体现 SELinux 和 Audit 的影响。上述数据可以看出,除了前两项是分别测试CPU的整数计算能力和浮点计算能力的,基本无影响。其他测试项都有明显的影响。其中对 Pipe Throughput 和 Syscall 影响最大,超过30%。
测试服务器:Intel 2288H V5 2P
测试项 | SELinux & audit enabled | SELinux & audit disabled | diff |
---|---|---|---|
Dhrystone | 3476 | 3480 | +0.11% |
Whetstone-double | 1146 | 1148 | +0.19% |
Execl Throughput | 1222 | 1295 | +5.98% |
File Copy 256 | 2330 | 2634 | +13.04% |
File Copy 1024 | 3545 | 3998 | +12.78% |
File Copy 4096 | 6621 | 7239 | +9.32% |
Pipe Throughput | 1495 | 1973 | +31.94% |
Pipe based Context Switching | 448 | 463 | +3.35% |
Process Creation | 854 | 888 | +3.94% |
Shell1 | 2289 | 2394 | +4.58% |
shell8 | 7764 | 8229 | +5.99% |
Syscall | 1205 | 1630 | +35.26% |
Score Index(总分) | 1963 | 2160 | +10.03% |
对 Unixbench 多核用例来说,影响减小,只有 Pipe Throughput 、Context Switching 和 Syscall 三项仍然有较大影响:
测试项 | SELinux & audit enabled | SELinux & audit disabled | diff |
---|---|---|---|
Pipe Throughput | 66090 | 90652 | +37.16% |
Pipe based Context Switching | 35123 | 39782 | +13.26 |
Syscall | 3643 | 4058 | +14.41% |
Score Index(总分) | 15574 | 16269 | +4.46% |
Netperf是一种网络性能测试工具,可以用于测试网络吞吐量、延迟、带宽等指标。在进行测试时,Netperf 会发送一定数量的数据包到目标主机,然后测量发送和接收这些数据包所需的时间和吞吐量。SELinux可能会对小包测试的性能产生以下影响:
从上图可以看出,在 sendto 调用中,selinux 执行开销较高。对小包测试来讲,数据包数量巨大,每次收发都涉及额外的安全检查,因此对小包会产生比较明显的影响。随着数据包 size 增大,安全性选项的影响逐渐减小。经实际测试,TCP 1B 小包,影响约 30%,UDP 1、64、128 Byte 的数据包测试,性能影响约15%。
SELinux的安全策略会对系统中的进程进行访问控制,包括文件、网络、进程等资源的访问。这些访问控制规则可能会导致一些系统调用的执行时间增加,从而影响lmbench的时延。具体来说,SELinux可能会对lmbench中使用的一些系统调用(如open、read、write等)进行安全检查,这些检查可能会增加系统调用的执行时间。此外,SELinux还可能会对lmbench中使用的网络通信进行安全检查,这也可能会增加通信的时延。
经实际测试,Processor Processes 和 Local Latencies 影响最为明显。
Processor Processes:
测试项 | SELinux & audit enabled | SELinux & audit disabled | diff |
---|---|---|---|
null call | 0.1837 | 0.1374 | +25.20% |
null io | 0.2423 | 0.1791 | +26.08% |
stat | 0.7638 | 0.5703 | +25.33% |
open/close | 1.8351 | 1.5242 | +16.94% |
slct tcp | 2.6404 | 2.6058 | +1.31% |
sig inst | 0.2519 | 0.2181 | +13.42% |
sig hndl | 1.074 | 1.0154 | +5.46% |
fork/proc | 366 | 362 | +0.99% |
exec proc | 1702 | 1677 | +1.46% |
sh proc | 2587 | 2483 | +4.03% |
几何平均 | 6.10 | 5.33 | +12.62% |
Local Latencies:
测试项 | SELinux & audit enabled | SELinux & audit disabled | diff |
---|---|---|---|
Pipe | 4.9133 | 4.575 | +6.89% |
AF_UNIX | 8.98879 | 6.9329 | +22.86% |
UDP | 12.3529 | 12.1002 | +2.05% |
RPC/UDP | 17.3437 | 16.7644 | +3.34% |
TCP | 15.5662 | 14.8782 | +4.42% |
RPC/TCP | 20.5178 | 19.0687 | +7.06% |
TCP conn | 39.9513 | 34.632 | +13.31% |
几何平均 | 14.27 | 13.01 | +8.83% |
File Latency 涉及文件创建、删除、内存缺页等测试项,也有平均~8%的性能影响。其中对文件创建影响最大,影响超过15%。
openEuler LTS 版本,基于默认安全的理念,提供了默认的安全配置。您可以根据自己的使用场景,选择开启、关闭、或修改某些安全配置项,前提是您清楚操作系统的运行环境,和面临的安全风险。
为了减少 Audit 对系统性能的影响,可以采取以下措施:
关闭 Audit 机制的方法:
要关闭 Linux 系统的 audit 机制,可以按照以下步骤进行:
1. 打开终端并以 root 用户身份登录系统。
2. 停止 auditd 服务:
systemctl stop auditd
3. 禁用 auditd 服务:
systemctl disable auditd
4. 删除 audit 规则:
auditctl -D
5. 删除 audit 规则文件:
rm /etc/audit/audit.rules
6. 重新启动系统以确保更改生效:
reboot
请注意,关闭 audit 机制可能会影响系统的安全性和可追溯性。在执行此操作之前,请确保您已经了解了风险,并且已经采取了其他措施来保护系统的安全性。
为了最大程度地减少SELinux对系统性能的影响,可以采取以下措施:
关闭 SELinux机制的方法:
可以通过以下步骤关闭SELinux:
1. 以root用户身份登录系统。
2. 打开/etc/selinux/config文件,使用文本编辑器打开该文件。
3. 找到SELINUX=字段,将其值更改为disabled。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
4. 保存并关闭文件。
5. 重新启动系统,以使更改生效。
请注意,关闭SELinux可能会降低系统的安全性,因此在进行此操作之前,请确保您已经了解了风险并采取了其他安全措施。
Hi xiexiuqi, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: sig-release-management, and any of the maintainers: @陈亚强 , @solarhu , @huangchengpiao , @mdche , @openeuler-ci-bot
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论