5.15. 限制资源

limits.conf文件位于/etc/security目录,可用于控制和限制系统用户的资源。 务必对所有用户设置资源限制,以防止他们执行拒绝服务攻击(进程数、内存量等)。 这些限制必须在用户登录时设置。 例如,系统上所有用户的限制可能如下所示。

  1. 编辑limits.conf文件 vi/etc/security/limits.conf并添加或更改以下行
                   *	hard	core		0
                   *	hard	rss		5000
                   *	hard	nproc	20
                   
    这表示禁止创建 core 文件 - core 0,将进程数限制为 20 - nproc 20,并将内存使用量限制为 5M - rss 5000,适用于除超级用户 root 之外的所有用户。 以上所有内容仅涉及通过系统登录提示符输入的用户。 通过这种配额,您可以更好地控制用户在系统上可能拥有的进程、core 文件和内存使用量。 星号 * 表示:登录服务器的所有用户。

  2. 您还必须编辑/etc/pam.d/login文件,并在文件底部添加以下行
                   session  required  /lib/security/pam_limits.so
                   
    添加上述行后,/etc/pam.d/login文件应如下所示
                   #%PAM-1.0
                   auth	required     	/lib/security/pam_securetty.so
                   auth	required     	/lib/security/pam_pwdb.so shadow nullok
                   auth	required     	/lib/security/pam_nologin.so
                   account	required     	/lib/security/pam_pwdb.so
                   password	required     	/lib/security/pam_cracklib.so
                   password	required     	/lib/security/pam_pwdb.so nullok use_authtok md5 shadow
                   session	required     	/lib/security/pam_pwdb.so
                   session	required     	/lib/security/pam_limits.so
                   #session	optional    	/lib/security/pam_console.so
                   

  3. 最后编辑/etc/profile文件并更改以下行
                   ulimit -c 1000000
                   
    改为以下内容
                   ulimit -S -c 1000000 > /dev/null 2<&1
                   
    需要进行此修改,以避免出现如下错误消息无法达到限制登录期间.