1. 使用安全密码
编辑/etc/login.defs 配置密码选项。一般来说,建议密码至少设定 8 位或者 8 位以上,包含大小字母和数字,有特殊符号更好。如果你想知道你设定的密码是否安全,可以用 JTR cracker 之类工具来破解下,如果几个小时被破解了,说明密码不够安全。也可以使用 pam_passwdqc 工具来检测密码强度。
2. 加固 SSH 安全
启用 SSH 的公共金钥并禁用密码验证。
编辑/etc/ssh/sshd_config 档案修改 SSH 的预设 22 埠为其它埠比如 1653 。
使用 SSHv2 而不是 SSHv1,方法为修改/etc/ssh/sshd_config 中 ##Protocol 2,1 为 #Protocol 2 。
编辑/etc/security/limits.conf 限制使用者 Shell 资源的使用。
3. 安全 Apache
使用 mod_security 。通过 EasyApache 即可编译 mod_security 。
编译 Apache 的时候,将 suexec 编辑进去确保 CGI 程式和指令码以拥有者的身份被拥有和执行。这样出问题的时候容易判断是哪个使用者引起的。
通过 PHPsuexec 编辑 Apache 和 PHP 。 PHPsuexec 强制所有的 PHP 指令码以拥有者的身份执行。
启用 PHP open_basedir 保护,这样使用者就不能通过 PHP 开启他们主目录之外的档案。
为 PHP 5 启用 safe_mode,保证 PHP 指令码的拥有者与所操作到的任何档案的拥有者是一直的。编辑 php.ini 档案,设定 safe_mode = On 即可。
4. 加固/tmp 目录安全
为/tmp 目录使用单独的 nosetuid 分割槽,这样会强制让程序仅以执行者拥有的许可权执行。 cPanel 安装之后以 noexec 方式载入/tmp 。
执行/scripts/securetmp 将/tmp 分割槽载入到一个临时档案。
5. 升级邮件到邮件 maildir 格式
Maildir 格式更安全并且能够加速邮件系统。目前最新的 cPanel 版本均会自动使用 Maildir 。如果你的 cPanel 版本比较老的话,可以通过 /scripts/convert2maildir 来升级到 Maildir 。如果执行的时候提示 Maildir 已经启用,就不需要再执行了。
6. 关闭系统的编译器
大多数使用者都不需要使用 C 和 C++编译器。使用 Security Center 中的 Complier Access 功能关闭未授权使用编译器的使用者使用它们,或者仅仅关闭特定使用者使用编译器的许可权。
7. 关闭不使用的服务和程序
检查/etc/xinetd.conf 看下哪些服务你不在使用。比如 cupsd 和 nfs/statd 这些一般都不会用到。
你可以到 Service Configuration 中的 Service Manager 里关闭不用的服务。
8. 监控你的系统
要实时监控你的系统,确保你能知道有哪些账户被建立了,哪些站群软件被安全了,或者哪些站群软件需要更新等。
定期检查你的系统比如检查下面这些:
netstat -anp:查询你没有安装或者授权的埠在执行的程式。
find / ( -perm -a+w ) ! -type l >> world_writable.txt: 查询 world_wirtable.txt 档案来检视所有的可写档案和目录。这样有助于发现攻击者藏在你系统上的档案。
find / -nouser -o -nogroup>> no_owner.txt:查询那些不属于任何使用者或者组的档案。所有的档案都必须属于某个特定使用者或者组。
ls /var/log/:系统日志所在目录。这里可以检查系统日志,apache 日志,邮件日志等等。
有一些简单易用的工具能够扫描出系统的 rootkits,backdoors 等:
10. 保持 cPanel 更新
确保你使用的 cPanel 版本能够不断更新,始终保持使用最新的稳定版本。同时确保核心、使用者应用程式(如使用者的 CMS 等)、系统站群软件。
cPanel 的自动升级更新以及系统站群软件的更新可以在 WHM 中的 Server Configuration 中的 Update Preferences 里设定。