最新版dedecms安全策略(DedeCMS站点高级安全策略Linux篇)
最新版dedecms安全策略
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的文件,内容如下:
<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禁用掉某些函数,配合系统做好各个方面的安全设置。
如果您需要了解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;
}
}
按照这个方法,将其他目录也同样设置即可。
- dedecms网站二次开发教程(DEDECMS实现自定义表单模型分步提交实现思路)
- dedecms搜索功能怎么设置详细(DEDECMS 隔行换色以及分组加线修改方法)
- dedecms使用教程(让dedecms实现shtml包含的实现方法)
- 织梦dedecms网站后台数据(DEDECMS织梦系统的会员调用方法详细介绍)
- dedecms自定义分页(详解DEDECMS缩略图标签[field:picname/]和[field:litpic/]的区别)
- 织梦dedecms教程(DedeTag Engine Create File False 提示的种种原因及解决方法小结)
- dedecms怎么在根目录外生成文件夹(dedecms 5.6 缩略图按大小比例缩小裁剪)
- thinkphp兼容dedecms(DedeCMS Error:Tag disabled:"php"的解决办法)
- dedecms调用方法(DEDECMS专题制作方法)
- dedecms缩略图优化教程(织梦DedeCMS V5.7缩略图站内上传修正)
- dedecms 产品缩略图(织梦DedeCms v5.6/5.7 新图集页面增加图片下载功能)
- dedecms搜索功能怎么设置详细(织梦Dedecms软件频道下载次数真实显示的权宜修改)
- dedecms调用logo标签(DedeCMS 5.7 tag标签长度限制的修改方法)
- dedecms会员入驻(dedecms会员注册成功后直接跳转到验证的邮箱地址)
- dedecms搜索功能怎么设置详细(DEDECMS自定义联动类别调用及修改方法)
- dedecms 数据转移(dedecms5.7 通过替换文件升级后 所有档案列表为空的解决方法)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
- 乾隆为何这么喜爱白塔原因是什么(乾隆为何这么喜爱白塔原因是什么)
- 逐渐消失的东北八大怪现象,进步的社会里我们遗失的是什么(逐渐消失的东北八大怪现象)
热门推荐
- python字典的key(Python使用dict.fromkeys快速生成一个字典示例)
- pymongo是否线程安全(pymongo中group by的操作方法教程)
- js实现继承的五种(JavaScript继承的三种方法实例)
- C# volatile与lock
- sqlserver使用说明(SQL Server视图的讲解)
- vue怎么编写规则(vue使用节流函数的踩坑实例指南)
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- MySQL批量执行SQL脚本文件
- webpack源码解析(80行代码写一个Webpack插件并发布到npm)
- python对列表排序(Python实现对特定列表进行从小到大排序操作示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9