在Debian系统上,ulimit
(用户资源限制)用于控制单个用户进程可以使用的系统资源。优化ulimit
设置可以提高系统的安全性和稳定性,防止恶意或错误配置的应用程序消耗过多资源。以下是优化ulimit
设置的步骤和建议:
ulimit
的不同类别ulimit
设置分为软限制(soft limit)和硬限制(hard limit):
ulimit
设置使用以下命令查看当前用户的资源限制:
ulimit -a
输出示例:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 123456
max locked memory (kbytes, -l) 64000
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
/etc/security/limits.conf
/etc/security/limits.conf
文件用于设置用户级别的资源限制。编辑该文件需要超级用户权限:
sudo nano /etc/security/limits.conf
示例配置:
# 设置所有用户的软硬限制
* soft core 0
* hard rss 102400
# 限制特定用户的资源
@developers soft nproc 4096
@developers hard nproc 8192
# 限制登录shell的资源
root soft nofile 10240
root hard nofile 65536
# 防止内存交换
* soft memlock unlimited
* hard memlock unlimited
说明:
*
表示所有用户,可以根据需要替换为特定用户名或用户组。core
限制核心转储文件的大小。rss
限制驻留集大小(物理内存)。nproc
限制进程数。nofile
限制打开的文件描述符数量。memlock
防止进程将内存锁定到物理内存中。/etc/pam.d/common-session
和 /etc/pam.d/common-session-noninteractive
为了确保 limits.conf
的设置在图形界面和终端会话中生效,需要编辑相关的PAM配置文件。
sudo nano /etc/pam.d/common-session
在文件末尾添加:
session required pam_limits.so
同样地,编辑非交互式会话:
sudo nano /etc/pam.d/common-session-noninteractive
在文件末尾添加:
session required pam_limits.so
/etc/systemd/system.conf
和 /etc/systemd/user.conf
(适用于 systemd)如果系统使用 systemd,还需要在相应的配置文件中设置资源限制。
编辑全局 systemd 配置:
sudo nano /etc/systemd/system.conf
添加或修改以下行:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=4096
编辑用户 systemd 配置:
sudo nano /etc/systemd/user.conf
添加或修改以下行:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=4096
sudo systemctl daemon-reload
ulimit
设置重新登录用户或重启系统以使新的限制生效。
使用以下命令验证新的 ulimit
设置是否生效:
ulimit -a
确保所有预期的限制已正确应用。
htop
, atop
, vmstat
等监控系统资源使用,及时发现异常。/etc/sysctl.conf
中的内核参数,如文件描述符限制、网络参数等。ulimit
设置,确保其符合当前的安全需求。通过以上步骤,您可以有效地优化Debian系统上的 ulimit
设置,提高系统的安全性和稳定性。