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

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

[title]Nginx安全加固[/title]

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

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

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

 

[title]discuz目录加固[/title]

不要听信网上所有将目录设置为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

[title]mysql权限设置:[/title]

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

MySQL用户权限

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

限制来源ip

 


评论

《“Discuz论坛 Nginx 文件权限 Mysql 安全加固”》 有 7 条评论

  1. 想给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. 试了一下,打开admin.php会直接弹出下载

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

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

回复 HU 取消回复

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