有時候我們經常會聽到使用dedecms的站長抱怨,網站又被掛馬了,dedecms真的很不安全等等。但織夢技術研究中心需要說明的是:DedeCMS是存在某些漏洞這不假,但網站被掛馬的主要責任不一定就是DedeCMS,我們知道,一個黑客想上傳木馬,首先得可以找到可寫的目錄,當然如果被黑客獲取root密碼和提權,那就沒辦法了。上傳木馬之后,又必須是php程序能解析。知道了這兩個條件,我們就可以根據這兩方面設置權限了。所以說,網站被掛馬,主要問題還在于你服務器的安全設置方面的工作做得不夠好。

 

下面我們就給大家詳細的介紹Linux下DedeCMS程序安全設置的詳細教程。

 

目錄權限設置web服務器運行的用戶與目錄所有者用戶必須不一樣,比如apache運行的用戶為www,那么網站目錄設置的所有者就應該不能設置為www,而是設置不同于www的用戶,如centos。



我們這里假設web服務器以www用戶運行,網站分配的用戶為centos,dedecms網站根目錄為/home/centos/web。我們不建議用戶把欄目目錄設置在根目錄,



原因是這樣進行安全設置會十分的麻煩, 在默認的情況下,安裝完成后,目錄設置如下:



1、首先設置網站目錄所有者為centos,用戶組為www,目錄權限設置為750,文件為640。cd /home/centos chown -R centos.www web find web -type d -exec chmod 750 {} \; find web -not -type d -exec chmod 640 {} \;



2、data、templets、uploads、a、images目錄,設置可讀寫,不可執行的權限;設置可讀寫權限: cd /home/centos/web chmod -R 770 data templets uploads a images 設置不可執行權限:apache的設置,在apache配置文件中加入如下代碼(以data目錄為例,其它設置基本相同)。 <Directory /home/centos/web/data> php_flag engine of </Directory> <Directory ~ "^/home/centos/web/data"> <Files ~ ".php"> Order allow,deny Deny from all </Files> </Directory> nginx的設置如下: location ~* ^/(data|templets|uploads|a|images)/.*\.(php|php5)$ { deny all; }



3、不需要專題的,建議刪除 special 目錄, 需要可以在生成HTML后,刪除 special/index.php 然后把這目錄設置為可讀寫,不可執行的權限,上面介紹了如何設置可讀寫和不可執行的權限,這里就不重復了。



其它需注意問題:

 

1) 雖然對 install 目錄已經進行了嚴格處理, 但為了安全起見,我們依然建議把它刪除;

 

2) 不要對網站直接使用MySQL root用戶的權限,給每個網站設置獨立的MySQL用戶帳號,許可權限為:SELECT, INSERT , UPDATE, DELETE,CREATE , DROP , INDEX, ALTER , CREATE TEMPORARY TABLES由于DEDE并沒有任何地方使用存儲過程,因此務必禁用 FILE、EXECUTE 等執行存儲過程或文件操作的權限。假設我們建立的數據庫名為centosmysql,數據庫用戶為centosmysql,密碼為123456,具體設置命令如下: mysql -uroot -p
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES ON centossql.* TO [email protected] IDENTIFIED BY 123456;mysql>FLUSH PRIVILEGES; mysql>exit

 

3) 更改默認管理目錄dede,改到不易被猜到就好。

 

4) 關注后臺更新通知,檢查是否打上最新dedeCMS補丁。