PHP Liunx 服务安全防范方案

    文章来源:中国互联 更新时间:2013-8-5 13:54:08
分享:

    PHP100平均每个月都会有入侵或者攻击,我们做了很多工作,当然很多高手们还是可以入侵,这我们并不感到奇怪,因为我们相信天外有天,人外有人,虽然我们现在服务器还是稳定(高手们不要来喷了),我们把我们曾经做的一些安全操作分享给大家,包括linux安全,apache安全,和ningx安全等,如果有什么更好的建议,也可以邮件我,alanzhang@php100.net 本文将介绍网站服务器如何有效防御PHP木马攻击。

MySQL安全设置

1.MySQL版本的选择

  在正式生产环境中,禁止使用4.1系列的MySQL数据库。至少需要使用5.1.39或者以上版本。

2.网络和端口的配置

   在数据库只需供本机使用的情况下,使用--skip-networking参数禁止监听网络。

3.认证和授权

   (1)禁止root账号从网络访问数据库,root账号只允许来自本地主机的登陆。

 

防范:

1.做好之前的php,mysql以及nginx的相关安全,比如禁用相关的php函数

2.改变目录和文件属性,禁止写入(目录权限755,文件权限744)

       find  -type  f  -name\*.  php -exec   chmod  644{}\;

       find  -type  d  exec  chmod  755  {}\;

       chmod  -R    777    data

       chmod   -R   777    html

       chmod   -R    777    attachment

3.为防止跨站感染,要做虚拟主机目录隔离

(1)nginx的简单实现方法:(现在nginx官方还没有相应的解决方案)

利用nginx跑多虚拟主机,习惯的php.ini的open_basedir配置:

open basedir =/data/www/wwwroot:/tmp

注:/data/www/wwwroot放置所有虚拟主机web的路径。

黑客可以利用任何一个站点的webshell进到/data/www/wwwroot目录下的任何地方,这个样子对各个虚拟主机安全危害很大!

简单的解决方法:

譬如:/data/www/wwwroot目录下有2个虚拟主机:

修改:php.ini:

open  basedir=/data/www/wwwroot/bbs:/data/www/wwwroot/home

这个样子用户上传webshell就无法跨目录访问了!

但是如果你的虚拟主机目录名很简单,如果猜出来了也是可以跨目录访问的!所以争取让你的虚拟主机名字不要特别简单也不要有规律性,让黑客很容易猜到!

(2)nginx的另一种解决方法:不同的虚拟目录使用不同的php-fpm端口和配置,不过不方便管理。

(3)Apache的实现方法,控制跨目录访问:

在虚拟机加入

 

 

在线咨询
  • 在线时间
  • 8:00-21:00