LNMP服务器安全及优化指南
LNMP的安全问题真是多呀,网站一迁移到LNMP就出了娄子,讨厌。
这是给集团运维写的PHP安全优化,配合着做下WebServer的安全,估计其它人也用得着,所以整理成手册了,请各位领导过目。
By the way,我发现做机房运维的工程师,在Web服务器安全和优化的经验,可能会比较短缺,建议和PHP软件工程师做正面沟通,共同制定整体的安全策略。
作者:杨树海
QQ:130775
博客:www.4wei.cn
点击下载手册版:服务器安全及优化建议.docx
目录
Linux权限配置… 2
PHP安全配置… 3
NginX安全配置… 4
Mysql安全配置… 5
其它优化建议… 6
Linux权限配置
- 合理分配SSH管理及用户间的权限,记录登陆日志,如果可能,可以配置防火墙,只开放某些IP进行管理
- 合理分配FTP权限,如果可能,可以关闭FTP 功能
- 所有网站统一放置于某一WEB目录,设置适当目录权限(根据网站程序,分配不同网站不同目录的读写权限,除需要写入文件的目录授予777权限以外,其它目录均可以考虑只给555权限)
- 定期扫描或者记录网站目录下,新建、修改过的PHP文件,认真进行记录分析
- 定期扫描或者记录网站目录下大小超过100KB或小于1KB的PHP文件,这类文件通常都是木马
PHP安全配置
- 禁用高危函数
disable_functions=exec,passthru,shell_exec,system,popen,proc_open,proc_close,
curl_exec,curl_multi_exec,parse_ini_file,show_source,dl,passthru,escapeshellarg,escapeshellcmd - 禁用高位类库
disable_classes = “com” - Php.ini中,请将open_basedir限制为网站所在Web目录,禁止跨目录请求
- PHP6以下的版本,请设置register_globals = Off
NginX安全配置
- 禁用Nginx文件类型错误解析漏洞
参考:http://www.80sec.com/nginx-securit.html - 启用网站目录隔离,不同网站配置不同对应权限,防止跨站
参考:http://www.xpb.cn/blog/665.html - Nginx配置虚拟主机的功能尚不完善,网站权限控制比较复杂,建议认真分配网站各目录的读、写、执行权限
- 文件上传所在的存放目录,一定要禁止PHP程序运行
- 记录PHP运行日志和错误日志,认真分析异常访问请求
Mysql安全配置
- 关闭除跳转服务器以外的其它远程链接
- 每个网站设置不同的数据库管理账号并分配最低权限
- 禁用Mysql 除Root账户以外其它用户的以下权限:
FILE、PROCESS、GRANT、SUPER、SHUTDOWN
其它优化建议
- 分布式缓存服务器可以开启Memcache
- 开启eAccelerator
- 开启Mysqli扩展
收集几条Linux常用的文件查找命令,用来查找WebSHell、备份MySql等
find ./ -name “*.php” |xargs grep “base64″|more
find ./ -mtime -10 -name “*.php”
貌似可以在详细点,你知道的,我们新手……
哈哈
博客程序是怎么安装的啊