DedeCMS站点高级安全策略Linux篇

 
 
 

更改纪录:

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


在Linux环境下搭建安装DedeCMS本篇不再具体说明,大家可以点击文档《Linux下安装DedeCMS及安全设置》来查看安装和基本安全配置部分的内容。
 
本篇将在之前的基础上进一步来对Linux下的DedeCMS进行安全配置,以保证我们的站点能够更加安全的运行在服务器上。
 

1.安装Apache文件访问权限模块

为了保证每个虚拟站点都能够拥有自己独立的文件访问权限,我们需要安装Apache安全权限分离模块,在终端中输入:
sudo apt-get install apache2-mpm-itk
 
 

2.添加管理后台站点控制帐号

接下来我们需要再添加一个后台站点的Apache运行帐号,在终端中输入:
sudo useradd -g www-data -d /dev/null -s /usr/sbin/nologin www-admin
这样我们就添加了一个www-admin帐号,专门用于控制后台站点的文件访问权限。
 
 

3.将后台管理目录移出,并且创建独立站点

默认安装后,后台的管理目录是在站点更目录下的/dede,为了安全起见我们需要将这个目录移出,但为了能够正常管理站点,我们需要将这个后台目录创建独立站点。
 

3.1.移动后台管理目录

我们先创建一个目录,这个目录专门用于存放后台站点文件,在终端中输入:
sudo mkdir /var/dedecms-admin
然后将织梦后台移动到这个文件夹中,输入:
sudo mv /var/dedecms/dede/* /var/dedecms-admin/
 

3.2.创建虚拟站点

我们需要创建一个新的站点用于显示后台,我们可以在/etc/apache2/site-enabled/目录中创建一个文件名为:default-admin的文件,内容如下:
ServerName admin.dede.com
ServerAdmin webmaster@localhost
DocumentRoot /var/dedecms-admin
AssignUserId www-admin www-data
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
创建完成后我们重新启动服务器,在终端输入:
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禁用掉某些函数,配合系统做好各个方面的安全设置。
 
 

 
如果您需要了解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;
}
}
 
按照这个方法,将其他目录也同样设置即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读483次。dedecms织梦频道模板中调用栏目分类并排序:{dede:channelartlist}栏目排序:{dede:global runphp='yes' name=itemindex}@me;{/dede:global}<a href=”{dede:field name='typeurl' /}”>点击进入{dede:field name='typename' /}列表>></a>{/dede:channelartlist}织梦channel标签.._织梦 调取排序
文章浏览阅读284次。我们在用织梦建站的过程中,难免会遇到各种问题,有时候由于主机或者服务器无法支持某些函数或者不够稳定等,需要更换空间或服务器。这个时候我们如何完整地把织梦网站数据转移到新的空间或者服务器上,这是织梦站长必须掌握的技能之一。当然,网站搬家来说,方法是很多的,但是万变不离其宗,说到底就是程序文件和数据文件的备份转移。织梦DedeCMS网站转移主机或者服务器时最常见的转移方式,来说明一下网站搬家的过程。首先是织梦DedeCMS网站程序的数据库备份,方法是进入织梦Dedecms的后台,系统–> 数据库备_dede后台转主机需要修改哪些哪些东西
文章浏览阅读152次。seo专题是seo优化必不可少的一环,对于网站优化的意义重大,因为一些用内容页做不上去的关键词都可以尝试用专题形式来做。相对于一般性的网页来说,专题页面具有内容丰富性、多样性、用户体验好的特征,百度官方也在最近说了专题优化的好处。但是,专题对seo是好的,但是对于做专题的人来说却并不好做,因为他非常的繁琐和耗费功夫。从原理来说,一般性的网页(栏目、内容页)都是通过统一的模板进行映射的网页,这些网页的构成都非常的简单,虽然有些可以利用内容模型和自定义列表进行参数提取,这样让内容非常的丰富,但是这个丰富_织梦专题
文章浏览阅读142次。在Dedecms中,在列表页调用文章摘要的方法主要有:1:[field:info /]2:[field:description /]3:[field:info function="cn_substr(@me,字符数)"/]4:[field:description function="cn_substr(@me,字符数)"/]第1、2种方法是直接调用文章摘要,在调用的字数问题上,当使用[field:info /]时,可以在{dede:arclist infolen=' ' }{/dede:arcli_dede 内容摘要 字数
文章浏览阅读234次。织梦DedeCMS文章内容发布时可以选择“头条”、“推荐”、“特荐”等文档属性,我们可以利用这些条件加一个判断的标签,然后给文章列表加一个推荐的印戳图标,这样大大提高了页面的友好程度。文字推荐方法:[field:flag runphp='yes'] if(stristr(@me,"c")) @me = "[推荐]";else @me = '';[/field:flag][field:flag runphp='yes'] if(stristr(@me,"a")) @me = "[特荐]";else _dede 列表页 调用推荐文章
文章浏览阅读701次。虽然织梦DedeCMS因为安全问题被人所诟病,但瑕不掩瑜,无论从用户群数量还是时间等各方面,织梦DedeCMS都是国内排名前几的CMS建站程序。如果你想学习CMS的二次开发,织梦DedeCMS是必须需要研究的。对织梦DedeCMS的二次开发来说,了解织梦的目录构成、文件、函数则是必备的功课。今天整理一篇关于Dedecms目录介绍的文章,对织梦DedeCMS的目录结构、核心文件、模板文件等做一个简单的介绍。为使版面美观,就借用下php程序的注释,//符合后面为该文件的作用。由于版本的原因,有一_织梦默认模板目录
文章浏览阅读375次。dede是目前cms中使用最广泛的,也是中小网站中seo优化最好的(默认模板而言),所以很多的企业都会选择采用dede作为做站的首选,因此学seo了解些织梦seo优化的技巧和方面是有必要的。焦大曾经做过多年的织梦seo优化,以个人经验所知,觉得以下几个方面的seo最为重要:第一,url设置与栏目分开。我们看到目前90%以上的dede建站者的文章url都是类似域名/栏目名/文章ID,或者域名/a/日期/栏目/文章ID,其中第一种在企业站最常见,第二种在新闻资讯网站中常见。个人觉得这么设置会出._dede seo
文章浏览阅读189次。dedecms的arclist循环中,判断如果是第一个li,则添加固定的css,否则不加写法如下: 1 2 3 4 {dede:arclist row=4 flag='p'} <li [field:global name=autoindex runphp="yes"](@me==1)? @me="class=on":@me="";[/field:global]>[field:global.autoindex/]<.._dedecms arclist
文章浏览阅读227次。字段要想在任何位置任何模版中调用,需要特殊设置。自定义字段自定义的织梦如何添加自定义字段的频道模型,这里以图片集频道举例注意:创建字段可以在列表的底层模板中获得”这个必须勾选在字段中添加(价格属性)在基本设置里》列表附加调用)二,调用自定义调用{dede:list pagesize='5' addfields='jiage' channelid='2'}<P>标题:[field:title/]</P><P>价格:[field:jiage/]&_织梦列表调用自定义字段
本教程操作系统:Windows10系统、DedeCMS 5.7.109版本、Dell G3电脑。 织梦CMS是一个使用PHP语言开发的网站建设管理系统,因此在安装过程中需要安装数据库以存储网站内容和数据。
在Dedecms织梦列表页中是肯定要使用pagelist标签的,但是有的时候也会因为一些css格式的问题会出现排列顺序的问题,所以也要知道怎么样修改pagelist标签?
今天分享织梦网站怎么搬家,个人感觉织梦的搬家比其他的程序的都简单。1、网站备份登录织梦后台,【系统】-【数据库备份/还原】-【提交】,织梦程序开始自动备份数据库,等待即可。
织梦(dede)程序不安全是公认的,同样是建站,使用织梦程序被黑的风险更大,所以,一些安全设置是非常有必要的。织梦网站安全设置的4个主要操作
使用xemu、爱站工具包、尖叫青蛙等制作网站地图,每次生成sitemap还需要再上传到服务器,还是比较麻烦的,不过有些网站程序可以通过插件完成网站地图的自动更新,比如wordpress。但是织梦一直都不行,今天就用插件+代
分享织梦自动生成网站sitemap,但是需要安装插件,今天分享,织梦如何不使用插件,制作网站xml地图。
织梦自定义表单没有全选/取消全选功能,有时候想要全选全,需要一个一个选择比较麻烦,如果网站有大量的恶意留言,想要删除更麻烦。虽然可以使用sql命令删除恶意留言,但不是很灵活,今天就给织梦自定义表单添加全选
前几天百度公开课说了,api推送的优先级比较高,所以在没有快速收录的情况下,api提交必须要有,那么织梦要如何实现api主动推送呢?
dede定时主动推送,虽然也很方便,但只能固定时间推送,实时性不高,今天小编分享如何发布文章后实时api推送至百度?
dede当前位置标签代码方法一:{dede:fieldname='position'/}dede当前位置标签代码方法二:{dede:fieldname='position'runphp='yes'}$a=mb_strlen(@me);//计算字符串的长度@me=cn_substr(@me,$a-2,-1);//截取字符{/dede:field}(这是去掉“去掉>”得得方法)dede当前位置
织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:fieldname='typename'/}可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。下面拓展出一个方法来实现这个效果: 方