ulimit
是一个用于控制 shell 启动进程的资源限制的命令。通过合理地设置 ulimit
参数,可以提高 Ubuntu 服务器的安全性。以下是一些建议:
限制同时打开的文件描述符数量:
打开文件描述符的数量限制可以通过 ulimit -n
命令查看和设置。为了防止恶意用户通过大量打开文件描述符来耗尽系统资源,可以适当降低此值。例如,将同时打开的文件描述符数量限制为 1024:
ulimit -n 1024
限制进程数:
通过 ulimit -u
命令可以查看和设置用户可以同时运行的最大进程数。限制进程数可以防止恶意用户通过创建大量进程来消耗系统资源。例如,将用户可以同时运行的最大进程数限制为 512:
ulimit -u 512
限制内存使用:
通过 ulimit -v
命令可以查看和设置用户进程可以使用的内存限制。限制内存使用可以防止恶意用户通过创建大量内存消耗进程来耗尽系统资源。例如,将用户进程可以使用的内存限制设置为 512MB:
ulimit -v 524288
限制 CPU 时间:
通过 ulimit -t
命令可以查看和设置用户进程可以使用的最大 CPU 时间。限制 CPU 时间可以防止恶意用户通过运行 CPU 密集型进程来影响其他用户的操作。例如,将用户进程可以使用的最大 CPU 时间设置为 3600 秒(1小时):
ulimit -t 3600
限制创建的内存文件大小:
通过 ulimit -m
命令可以查看和设置用户进程可以创建的内存文件的最大大小。限制内存文件大小可以防止恶意用户通过创建大型内存文件来耗尽系统资源。例如,将用户进程可以创建的内存文件的最大大小设置为 1024MB:
ulimit -m 1048576
限制管道缓冲区大小:
通过 ulimit -p
命令可以查看和设置管道缓冲区的大小。限制管道缓冲区大小可以防止恶意用户通过创建大型管道缓冲区来耗尽系统资源。例如,将管道缓冲区的大小设置为 65536 字节(64KB):
ulimit -p 65536
要使这些更改永久生效,可以将这些 ulimit
命令添加到 /etc/profile
或 /etc/security/limits.conf
文件中。请注意,更改这些设置可能会影响到正常运行的服务和应用程序,因此在应用这些更改之前,请确保充分了解它们的影响。