濮阳杆衣贸易有限公司

主頁 > 網站建設 > 建站知識 > DedeCMS站點高級安全策略(Linux篇)

DedeCMS站點高級安全策略(Linux篇)

POST TIME:2020-04-02 17:53

點評:本篇將在之前的基礎上進一步來對Linux下的DedeCMS進行安全配置,以保證我們的站點能夠更加安全的運行在服務器上

更改紀錄:

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


在Linux環(huán)境下搭建安裝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.將后臺管理目錄移出,并且創(chuàng)建獨立站點

默認安裝后,后臺的管理目錄是在站點更目錄下的/dede,為了安全起見我們需要將這個目錄移出,但為了能夠正常管理站點,我們需要將這個后臺目錄創(chuàng)建獨立站點。

3.1.移動后臺管理目錄

我們先創(chuàng)建一個目錄,這個目錄專門用于存放后臺站點文件,在終端中輸入:

sudo mkdir /var/dedecms-admin

然后將織夢后臺移動到這個文件夾中,輸入:

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

3.2.創(chuàng)建虛擬站點

我們需要創(chuàng)建一個新的站點用于顯示后臺,我們可以在/etc/apache2/site-enabled/目錄中創(chuàng)建一個文件名為: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>

創(chuàng)建完成后我們重新啟動服務器,在終端輸入:

sudo service apache2 restart

這里我們給后臺站點域名設置為admin.dedecms.com用戶可以根據自己情況設定更為復雜的域名形式,例如:dedesiteadmin2008.dede.com

然后在系統(tǒng)host紀錄中添加一條指向站點域名對應ip的紀錄,保證其能夠正常訪問。

3.3.給管理站點目錄設定權限控制帳戶

為了保證后臺文件訪問的安全,我們也需要給它設定文件訪問權限,在終端中輸入:

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

這樣就給這個目錄指定了www-admin的訪問帳號。

3.4.調整后臺文件配置,保證后臺正常訪問

由于我們直接移動了管理后臺文件目錄,所以我們訪問admin.dede.com會出現(xiàn)報錯,這時候我們需要對系統(tǒng)中的目錄配置進行調整。

(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,然后再執(zhí)行:

sudo chmod -R 755 /var/dedecms/

這樣設置后后臺管理就具有了站點操作權限,但前臺瀏覽用戶沒有修改文件的權限了。

但這里前臺uploads需要有可上傳的權限,所以還需要執(zhí)行:

sudo chmod -R 777 uploads/

5.完成安全配置

這樣一來我們就完成了系統(tǒng)的安全設置,做到了前后臺的權限分離,當然您也需要配置下php.ini禁用掉某些函數(shù),配合系統(tǒng)做好各個方面的安全設置。

如果您需要了解Windows Server 2012下如何搭建配置DedeCMS環(huán)境,可以查看:《Windows Server 2012 搭建PHP+MySQL環(huán)境安裝DedeCMS系統(tǒng)》

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下取消目錄執(zhí)行的權限

在《Linux下安裝DedeCMS及安全設置》 中介紹了apache下如何取消目錄執(zhí)行權限,nginx也是類似,但配置方法稍有不同:

server {

...

location ~* ^http://www.dedecode.com/uploads/.*.(php|php5)$

{

deny all;

}

}

按照這個方法,將其他目錄也同樣設置即可。




收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
武清区| 梧州市| 恩平市| 阆中市| 比如县| 西乌珠穆沁旗| 永吉县| 临夏县| 尚志市| 虞城县| 三门峡市| 城步| 开鲁县| 柘荣县| 龙泉市| 左云县| 白沙| 依兰县| 江城| 渝北区| 长治县| 吴忠市| 静安区| 七台河市| 滕州市| 壶关县| 商都县| 耒阳市| 博野县| 峨山| 宜城市| 遵化市| 洛宁县| 龙川县| 柳林县| 丹棱县| 晋中市| 蒲城县| 加查县| 中西区| 乾安县|