除了为Linux设置MysqL密码和root密码之外,还应采取其他(可能不那么明显)的步骤?
如果我要特别偏执,通常可能不需要采取什么步骤呢?
这是一个基本的单站点使用,但必须是安全的.
解决方法
查看Bastille,它是一系列实现Linux最佳实践的脚本.
不要通过纯文本协议发送身份验证数据.例如,禁用FTP.如果您通过Apache发送身份验证数据,请使用SSL.
审核任何设置了SUID位的文件并删除. (这将严重限制非根本能力.了解每个变化的含义.)
审核公共可写目录并删除可写位. (单独留下/ tmp.)
避免以root身份运行任何守护程序.
避免将用户添加到系统是最好的方法之一.多用户系统需要更加注重细节.
实施密码标准.例如:至少10个字符,非字母数字字符,使用字母和数字.这是为了在密码文件泄露的情况下使暴力破解变得更加困难.通过系统强制执行此操作.
在5次失败的身份验证失败后锁定用户,并且锁定时间至少为10分钟.保持密码历史记录,以便用户无法使用过去的5个密码.
如果您拥有更大的环境,则使用具有多个子网的网络隔离来隔离风险是绝对必要的.如果环境较小,建议在本地系统上运行防火墙以限制曝光.例如,仅允许SSH到您的IP. tcpwrappers也可以用于额外的层. (/etc/hosts.allow,/etc/hosts.deny)
当然,保持所有软件都是最新的.特别是面向公众的守护进程.
使用SSH:
>禁用SSH协议1
>仅允许root身份验证而不使用密码(仅密钥对)
使用Apache:
>禁用任何不需要的模块
>禁用.htaccess和公共目录
>禁用FollowSymlink和任何不必要的选项
>如果您不需要,请不要安装PHP.
使用MysqL:
>禁用默认用户.
>不要使用通配符主机.
>务必为每个用户设置唯一的主机.
>除非必要,否则不要听tcp. (异常不可避免.)
>尽可能限制应用程序用户权限. (SELECT,INSERT,UPDATE,DELETE理想用于写入和SELECT用于读取)
我建议专门研究PHP.ini调优的安全性.这是默认情况下风险较高的软件.