ulimit 是一个用于控制 shell 进程资源限制的命令。通过合理地设置 ulimit,可以提升 Ubuntu 系统的安全性。以下是一些建议:
限制同时打开的文件描述符数量:
打开文件描述符的数量可能会影响到系统的性能。通过限制每个用户可以打开的文件描述符数量,可以防止恶意用户消耗过多资源。在 /etc/security/limits.conf 文件中添加以下内容:
* soft nofile 64
* hard nofile 128
这将限制所有用户同时打开的文件描述符数量为 64,最大允许数量为 128。
限制进程数:
限制每个用户可以运行的进程数量,可以防止恶意用户创建大量进程,消耗系统资源。在 /etc/security/limits.conf 文件中添加以下内容:
* soft nproc 1024
* hard nproc 2048
这将限制所有用户可以运行的进程数量为 1024,最大允许数量为 2048。
限制内存使用:
限制每个用户可以使用的内存数量,可以防止恶意用户消耗过多内存资源。在 /etc/security/limits.conf 文件中添加以下内容:
* soft as 512M
* hard as 1G
这将限制所有用户可以使用的内存数量为 512MB,最大允许数量为 1GB。
限制 CPU 使用:
限制每个用户可以使用的 CPU 时间,可以防止恶意用户消耗过多 CPU 资源。在 /etc/security/limits.conf 文件中添加以下内容:
* soft cpu 50%
* hard cpu 100%
这将限制所有用户可以使用的 CPU 时间为 50%,最大允许数量为 100%。
限制 shell 命令执行时间:
限制用户可以执行的 shell 命令的最长时间,可以防止恶意用户执行耗时的命令。在 /etc/security/limits.conf 文件中添加以下内容:
* soft maxlogins 10
这将限制所有用户在一定时间内可以登录的次数。
使设置生效:
修改 /etc/security/limits.conf 文件后,需要重新登录或重启系统以使设置生效。
请注意,根据实际需求调整上述建议的值。过于严格的限制可能会影响到正常用户的操作。