Linux下织梦CMS站点安全策略(高级进阶版)

  织梦cms安装后安全配置非常的重要,下面对Linux下织梦CMS进行安全配置进行介绍,以保证我们的站点能够更加安全的运行在服务器上。

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

  sudo apt-get install apache2-mpm-itk

  接下来我们需要再添加一个后台站点的Apache运行帐号,在终端中输入:

  sudo useradd -g www-data -d /dev/null -s /usr/sbin/nologin www-admin

  这样我们就添加了一个www-admin帐号,专门用于控制后台站点的文件访问权限。

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

  我们先创建一个目录,这个目录专门用于存放后台站点文件,在终端中输入:

  sudo mkdir /var/dedecms-admin

  然后将织梦后台移动到这个文件夹中,输入:

  sudo mv /var/dedecms/dede/* /var/dedecms-admin/

  我们需要创建一个新的站点用于显示后台,我们可以在/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的纪录,保证其能够正常访问。

  为了保证后台文件访问的安全,我们也需要给它设定文件访问权限,在终端中输入:

  sudo chown www-admin.www-data /var/dedecms-admin/

  这样就给这个目录指定了www-admin的访问帐号。

  由于我们直接移动了管理后台文件目录,所以我们访问admin.dede.com会出现报错,这时候我们需要对系统中的目录配置进行调整。

  (1)找到/var/dedecms-admin/config.php,将第12行

  require_once(DEDEADMIN.’/https://www.genban.org/include/common.inc.php’);

  改为

  require_once(DEDEADMIN.’/https://www.genban.org/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__).’/https://www.genban.org/include/common.inc.php’);

  改为

  require_once(dirname(__FILE__).’/https://www.genban.org/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__).’/https://www.genban.org/include/common.inc.php’);

  改为

  require_once(dirname(__FILE__).’/https://www.genban.org/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

  设定完成后我们需要给前台站点重新指派权限,在终端输入:

  sudo chown -R www-admin.www-data /var/dedecms/

  这样就把前台用户设定为了www-admin,然后再执行:

  sudo chmod -R 755 /var/dedecms/

  这样设置后后台管理就具有了站点操作权限,但前台浏览用户没有修改文件的权限了。

  但这里前台uploads需要有可上传的权限,所以还需要执行:

  sudo chmod -R 777 uploads/

  这样一来我们就完成了系统的安全设置,做到了前后台的权限分离,当然您也需要配置下php.ini禁用掉某些函数,配合系统做好各个方面的安全设置。

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

  终端中输入:sudo apt-get install nginx

  以及:sudo apt-get install php5-fpm

  (如果已经安装了Apache的用户需要停止Apache,以免同Nginx冲突,可以使用命令行:sudo service apache2 stop)

  同样我们需要添加两个站点,一个前台“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端口,以及站点目录重新做了调整。

  同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

  在《Linux下安装DedeCMS及安全设置》 中介绍了apache下如何取消目录执行权限,nginx也是类似,但配置方法稍有不同:

  server {

  …

  location ~* ^/uploads/.*.(php|php5)$

  {

  deny all;

  }

  }

☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
pbootcms模板网 » Linux下织梦CMS站点安全策略(高级进阶版)

Pbootcms模板网 提供优质的模板集合

立即查看 了解详情