Discuz论坛 Nginx 文件权限 Mysql 安全加固

论坛以其功能完善、效率高效、负载能力,深受被大多数的网站喜爱和青睐。无独有隅,笔者所维护的论坛就是用discuz! 来构建的,从接手时候的7.2到现在x3.1,经历了数次的二次开发和发布,感触颇多。但是最近老是被上传上传到木马,下面我们从nginx 安全加固、discuz 文件目录、 用户权限等方面来阐述discuz论坛安全加固,希望给大家一点灵感。

Nginx安全加固

作为web的前端,在上面加强安全防护,效率比php要高多了。针对discuz! X3.1论坛nginx安全加固如下:

location ~* ^/(data|images|config|static|source|uc_server/data/avatar)/.*\.(|php5)$
{
   deny all;
}

意思是data images config static source等目录及其所有的php不能从web访问,这样避免黑客在上传上面的目录上传的木马无法运行,返回403错误。当然最直接的方法就是先将所有的文件禁止运行,然后加入需要放开的php和目录,这样做起最直接,而且最彻底。

 

discuz目录加固

不要听信网上所有将目录设置为777,这样的话,任何用户都已对目录可写可执行。针对discuz!X3.1目录权限可以设置:

进入论坛根目录

find source -maxdepth 4 -type d -exec chmod 555 {} \;
find api -maxdepth 4 -type d -exec chmod 555 {} \;
find static -maxdepth 4 -type d -exec chmod 555 {} \;
find archive -maxdepth 4 -type d -exec chmod 555 {} \;
find config -maxdepth 4 -type d -exec chmod 555 {} \;
find data -maxdepth 4 -type d -exec chmod 755 {} \;
find template -maxdepth 4 -type d -exec chmod 555 {} \;
find uc_client -maxdepth 4 -type d -exec chmod 555 {} \;

3)    针对discuz!X3.1文件权限可以设置:

进入论坛根目录

find . - type f -maxdepth -exec chmod 444 \ {};#设置论坛目录的文件只可读,然后设置那些需要写的文件,一般只有data下的文件是可以的。
find data - type f -maxdepth -exec chmod 755 \ {};#设置data 文件为755

mysql权限设置:

1)mysql 用户权限:用户的权限应严格限制,不应该有的权限全部去掉。比如该用户只需执行select 语句,且只能操作某个库,那么只赋予select 权限和限制在某个库即可,千万不要画蛇添脚,添加delete update权限等。例如下图所示

MySQL用户权限

2)限制来源ip:这一点是最容易让人遗忘,可能测试放开了来源ip,但是上线的时候却忘记了。但是带来的后果确实不堪设想。设置用户的来源ip比如只允许来源ip 192.168.1.2可以连接。例如下图所示

限制来源ip

 

搬瓦工,年付$49.99CN2高速线路,1024MB内存/1000GB流量/1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr月付$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

搬瓦工1111特惠,年付$29.882核CPU/2048MB内存/1TB流量/1GB带宽,随意切换机房KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

点赞
  1. HU说道:

    想给discuz的后台做一个限制IP访问,根据网上的方法,测试了一下:
    location ~ .*admin.* {
    allow 124.90.0.0/16;
    allow 124.160.0.0/16;
    deny all;
    location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/tmp/php-fcgi.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    }
    }

    其他IP地址访问确实403了,但是124.90.0.0/16、124.160.0.0/16这俩访问,会502,求助大神如何解决?

    1. location ~ \.php${

      }
      deny all;
      这样试一下。

      1. HU说道:

        试了一下,打开admin.php会直接弹出下载

  2. 123说道:

    find . - type f -maxdepth -exec chmod 444 \ {}; 这个条命令报错,

      1. Iori说道:

        -maxdepth 这个后面不加层数么?会报错

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up