您好,欢迎来到菜鸟吧源码网(www.cniao8.com)本站只做精品网站源码!
  • 首 页
  • 菜鸟云
  • 公告:本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > dede教程 >
    DedeCMS站点高级安全策略(Linux篇)
    时间:2020-04-20 11:12 作者:菜鸟吧 浏览:收藏 挑错 打印

    更改纪录:

    2012-06-06:增加Nginx服务器的配置


    在Linux环境下搭建安装DedeCMS本篇不再具体说明,大家可以点击文档《Linux下安装DedeCMS及安全设置》来查看安装和基本安全配置部分的内容。
    本篇将在之前的基础上进一步来对Linux下的DedeCMS进行安全配置,以保证我们的dedecms-admin
    然后将织梦后台移动到这个文件夹中,输入:
    sudo mv /var/dedecms/dede/* /var/dedecms-admin/

    3.2.创建虚拟站点

    我们需要创建一个新的站点用于显示后台,我们可以在/etc/apache2/site-enabled/目录中创建一个文件名为:default-admin的文件,内容如下:
    <VirtualHost *:80>
    ServerName admin.dede.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/dedecms-admin
    AssignUserId www-admin www-data
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /var/dedecms-admin/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    </Directory>
    </VirtualHost>
    创建完成后我们重新启动服务器,在终端输入:
    sudo service apache2 restart
    这里我们给后台站点域名设置为admin.dedecms.com用户可以根据自己情况设定更为复杂的域名形式,例如:dedesiteadmin2008.dede.com
    然后在系统host纪录中添加一条指向站点域名对应ip的纪录,保证其能够正常访问。

    3.3.给管理站点目录设定权限控制帐户

    为了保证后台文件访问的安全,我们也需要给它设定文件访问权限,在终端中输入:
    sudo chown www-admin.www-data /var/dedecms-admin/
    这样就给这个目录指定了www-admin的访问帐号。

    3.4.调整后台文件配置,保证后台正常访问

    由于我们直接移动了管理后台文件目录,所以我们访问admin.dede.com会出现报错,这时候我们需要对系统中的目录配置进行调整。
    (1)找到/var/dedecms-admin/config.php,将第12行
    require_once(DEDEADMIN.'/../include/common.inc.php');
    改为
    require_once(DEDEADMIN.'/../dedecms/include/common.inc.php');
    然后在这段代码下面加上:
    $cfg_plus_dir = $cfg_phpurl = $cfg_basehost."/".$cfg_plus_dir;
    (2)找到/var/dedecms-admin/login.php,将11行
    require_once(dirname(__FILE__).'/../include/common.inc.php');
    改为
    require_once(dirname(__FILE__).'/../dedecms/include/common.inc.php');
    (3)找到/var/dedecms/data/safe/inc_safe_config.php,第2行,改为
    $safe_gdopen = '1,2,3,4,5,7';
    (4)找到/var/dedecms-admin/exit.php,第11行
    require_once(dirname(__FILE__).'/../include/common.inc.php');
    改为
    require_once(dirname(__FILE__).'/../dedecms/include/common.inc.php');
    (5)复制include中的相关文件
    我们需要将include文件夹下的一些文件拷贝到管理后台站点中以保证后台正常使用:
    mkdir /var/dedecms-admin/include/dialog
    sudo cp -R /var/dedecms/include/dialog/* /var/dedecms-admin/include/dialog
    mkdir /var/dedecms-admin/include/js
    sudo cp -R /var/dedecms/include/js/* /var/dedecms-admin/include/js
    sudo mkdir /var/dedecms-admin/include/ckeditor
    sudo cp -R /var/dedecms/include/ckeditor/* /var/dedecms-admin/include/ckeditor

    4.重新分配前台Apache用户权限

    设定完成后我们需要给前台站点重新指派权限,在终端输入:
    sudo chown -R www-admin.www-data /var/dedecms/
    这样就把前台用户设定为了www-admin,然后再执行:
    sudo chmod -R 755 /var/dedecms/
    这样设置后后台管理就具有了站点操作权限,但前台浏览用户没有修改文件的权限了。
    但这里前台uploads需要有可上传的权限,所以还需要执行:
    sudo chmod -R 777 uploads/

    5.完成安全配置

    这样一来我们就完成了系统的安全设置,做到了前后台的权限分离,当然您也需要配置下php.ini禁用掉某些函数,配合系统做好各个方面的安全设置。
    DedeCMS站点高级安全策略(Linux篇)
    如果您需要了解Windows Server 2012下如何搭建配置DedeCMS环境,可以查看:《Windows Server 2012 搭建PHP+MySQL环境安装DedeCMS系统》

    6.Nginx设置

    由于Nginx轻便容易维护,很多站长也会选择Nginx作为站点服务器,设置思路同上文类似,但有稍许的不同,下面我们就来单独对其进行介绍。

    6.1.安装Nginx以及php5-fpm

    终端中输入:sudo apt-get install nginx
    以及:sudo apt-get install php5-fpm
    (如果已经安装了Apache的用户需要停止Apache,以免同Nginx冲突,可以使用命令行:sudo service apache2 stop)

    6.2.添加站点

    同样我们需要添加两个站点,一个前台“www.dede.com”一个后台“admin.dede.com”,基本配置如下:
    www.dede.com站点:
    server {
    root /var/dedecms;
    index index.html index.htm index.php;
    server_name www.dede.com;
    ...
    location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param script_FILENAME /var/dedecms$fastcgi_script_name;
    fastcgi_index index.php;
    include fastcgi_params;
    }
    }
    admin.dede.com站点配置:
    server {
    root /var/dedecms-admin;
    index index.html index.htm index.php;
    server_name admin.dede.com;
    ...
    location ~ .php$ {
    fastcgi_pass 127.0.0.1:9001;
    fastcgi_param script_FILENAME /var/dedecms-admin$fastcgi_script_name;
    fastcgi_index index.php;
    include fastcgi_params;
    }
    }
    这里主要是admin的站点采用的9001端口,以及站点目录重新做了调整。

    6.3.指派站点文件访问控制权限

    同apache的apache2-mpm-itk不同,php5-fpm默认就可以进行权限控制。
    在文件/etc/php5/fpm/pool.d/www.conf中则是默认采用了“www-data”作为站点的控制用户,所以为了后台具有对应的操作权限,我们需要添加一个专门的控制权限。
    cd /etc/php5/fpm
    cp www.conf admin.conf
    修改admin.conf文件
    其中我们只要将:
    user = www-admin
    group = www-data
    listen = 127.0.0.1:9001
    这几个地方做一个更改即可。
    完成后重启下服务
    sudo service php5-fpm restart
    sudo service nginx restart

    6.4.nginx下取消目录执行的权限

    在《Linux下安装DedeCMS及安全设置》 中介绍了apache下如何取消目录执行权限,nginx也是类似,但配置方法稍有不同:
    server {
    ...
    location ~* ^/uploads/.*.(php|php5)$
    {
    deny all;
    }
    }
    按照这个方法,将其他目录也同样设置即可。

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:admin@cniao8.com,我们尽快处理。

    织梦中{dede:channel}无法调用隐藏栏目解决方法织梦中{dede:channel}无法调用隐藏栏目
    DEDECMS批量导入excel数据到后台文章系统的开发教程DEDECMS批量导入excel数据到后台文章系
    织梦58织梦模板加固版教程详解织梦58织梦模板加固版教程详解