ulimit 是一个用于控制 shell 进程资源限制的命令行工具。通过合理地设置 ulimit 参数,可以提高 Linux 系统的安全性。以下是一些建议:
限制同时打开的文件数:
通过设置 ulimit -n 参数,可以限制每个用户进程可以同时打开的文件数量。这有助于防止恶意用户通过大量打开文件来耗尽系统资源。
ulimit -n 4096
限制进程数:
通过设置 ulimit -u 参数,可以限制每个用户可以创建的最大进程数。这有助于防止恶意用户通过创建大量进程来耗尽系统资源。
ulimit -u 1024
限制内存使用:
通过设置 ulimit -v 参数,可以限制每个用户进程可以使用的内存量。这有助于防止恶意用户通过消耗大量内存来影响系统性能。
ulimit -v 512000
限制 CPU 时间:
通过设置 ulimit -t 参数,可以限制每个用户进程可以使用的最大 CPU 时间。这有助于防止恶意用户通过长时间占用 CPU 资源来影响系统性能。
ulimit -t 3600
限制输出长度:
通过设置 ulimit -m 参数,可以限制每个用户进程产生的最大内存映射文件大小。这有助于防止恶意用户通过创建大量内存映射文件来耗尽系统资源。
ulimit -m 512000
限制管道缓冲区大小:
通过设置 ulimit -p 参数,可以限制每个用户进程可以使用的最大管道缓冲区大小。这有助于防止恶意用户通过创建大量管道缓冲区来耗尽系统资源。
ulimit -p 8192
要使这些设置在系统重启后仍然生效,可以将它们添加到 /etc/security/limits.conf 文件中。例如:
* soft nofile 4096
* hard nofile 4096
* soft nproc 1024
* hard nproc 1024
* soft data 512000
* hard data 512000
* soft stack 10240
* hard stack 10240
* soft core 0
* hard core 0
请注意,根据系统需求和用户权限,您可能需要调整上述示例中的值。在生产环境中应用更改之前,请确保充分测试以确保不会对正常操作产生负面影响。