国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全 應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 安全管理 >

準(zhǔn)確設(shè)置網(wǎng)站文件所有者 避免php網(wǎng)站被掛木馬

時間:2013-06-08 10:53來源:TuZhiJiaMi企業(yè)信息安全專家 點(diǎn)擊:
核心總結(jié):php-fpm/apache 過程所利用的用戶,不克不及是網(wǎng)站文件所有者。 凡是背反這個原則,則不合適最小權(quán)限原則。 按照出產(chǎn)環(huán)境不竭反饋,發(fā)現(xiàn)不竭有 php網(wǎng)站被掛木馬,盡大年夜部門啟
Tags安全管理(325)木馬文件(4)網(wǎng)站文件(1)php網(wǎng)站(1)  

  核心總結(jié):php-fpm/apache 過程所利用的用戶,不克不及是網(wǎng)站文件所有者。 凡是背反這個原則,則不合適最小權(quán)限原則。

  按照出產(chǎn)環(huán)境不竭反饋,發(fā)現(xiàn)不竭有 php網(wǎng)站被掛木馬,盡大年夜部門啟事是因?yàn)闄?quán)限設(shè)置不合理造成。因?yàn)檗k事器軟件,或是 php 法度中存在縫隙都是不免的,在這類環(huán)境下,假定能準(zhǔn)確設(shè)置 Linux 網(wǎng)站目次權(quán)限, php 過程權(quán)限,那么網(wǎng)站的安然性實(shí)際上是可以獲得保障的。

  那么,造成網(wǎng)站被掛木馬的啟事是甚么?

  1.  ftp 連接信息被破解,對這個啟事,可行的編制就是利用很是復(fù)雜的FTP 用戶名(不要利用常常利用的用戶名),假定是固定功課,可考慮利用 iptables 防火墻限制來歷 IP ??墒且恍┚跋笙?,可能需要利用 VPN 以便長途保護(hù)?!〖淳W(wǎng)站保護(hù)者需要利用 FTP 點(diǎn)竄網(wǎng)站文件時,必需先登錄到IDC機(jī)房的VPN 辦事器上,再進(jìn)行后續(xù)的把持。

  2.  網(wǎng)站辦事器軟件/ 建設(shè) /php 法度存在縫隙,被操縱。

  在會商這個題今朝,先申明文件及過程權(quán)限的幾個概念:

  A. FTP用戶對網(wǎng)站目次具有最大年夜點(diǎn)竄權(quán)限,那么網(wǎng)站的文件所有者必然屬于 FTP,  這是無庸置疑的 , 不然若何點(diǎn)竄文件呢?

  B. php-fpm/apache/nginx 過程對網(wǎng)站文件起碼需要有讀取權(quán)限,例如,以下號令便可查看這兩個過程所利用的賬號:

  經(jīng)由過程上圖,我們可以發(fā)現(xiàn),nginx 和 php-fpm 子過程賬號是 nobody 。

  我們再查看網(wǎng)站文件目次的權(quán)限:

準(zhǔn)確設(shè)置網(wǎng)站文件所有者 避免php網(wǎng)站被掛木馬

  發(fā)現(xiàn)網(wǎng)站文件所有者是www 賬號,那申明:

  ◆ nginx和 php 對網(wǎng)站只有讀取權(quán)限,無寫進(jìn)權(quán)限

  ◆ 假定php 法度需要對網(wǎng)站某些文件有寫進(jìn)權(quán)限,需要手工將文件或目次權(quán)限點(diǎn)竄成 777

  ◆ 因?yàn)閜hp-fpm 子過程是以 nobody 運(yùn)行,那么 php-fpm 生成的新文件所有者也是 nobody, 這時候 ftp 用戶將沒法點(diǎn)竄這些文件,解鈴還需系鈴人,當(dāng) php 生成文件后,需要調(diào)用 chmod("/somedir/somefile", 0777) 將文件權(quán)限點(diǎn)竄成 777 ,以便 FTP 用戶也能夠點(diǎn)竄這個文件。

  ◆ 常常有開辟人員找我要求重設(shè)php 生成的文件的權(quán)限。

  ◆ 假定php-fpm/apache/nginx過程以網(wǎng)站文件所有者用戶運(yùn)行,那意味著 php-fpm/apache/nginx 過程對全部網(wǎng)站目次具有可寫權(quán)限,惡夢也就由此開端。

  可是我們發(fā)現(xiàn),有良多系統(tǒng)治理員為了省事,背反了Linux 最小化權(quán)限的原則,設(shè)置 php-fpm/apache/nginx 過程以網(wǎng)站文件所有者賬號運(yùn)行,當(dāng)然如許可能會便利 php 開辟人員( php-fpm 過程對全部網(wǎng)站目次具有可寫權(quán)限),可是如許一來, Linux 系統(tǒng)的文件系統(tǒng)權(quán)限原則將被打破,所有的安然辦法將形同虛設(shè)??梢韵胂蟮氖牵f一 php 法度中有縫隙,報(bào)復(fù)打擊者上傳木馬,便可以點(diǎn)竄網(wǎng)站的所有文件,網(wǎng)站首頁被黑,也就不足為怪了。

  退一步,假定我們設(shè)置了較嚴(yán)格的權(quán)限,就算php 法度中存在縫隙,那么報(bào)復(fù)打擊者也只能竄改權(quán)限為 777 的目次,其它的文件是沒法被改寫的,網(wǎng)站不就就得更安然了嗎?

  核心總結(jié):php-fpm/apache/nginx過程所利用的用戶,不克不及是網(wǎng)站文件所有者。 凡是背反這個原則,則不合適最小權(quán)限原則。

  顛末我參閱網(wǎng)上關(guān)于nginx, php-fpm 建設(shè)的文章教程和市道上的一些冊本,發(fā)現(xiàn)有良多人受這些文章的誤導(dǎo),直接讓 php-fpm/apache/nginx過程以網(wǎng)站所有者賬號運(yùn)行,例如張宴的《實(shí)戰(zhàn) nginx 代替 apache 的高機(jī)能 Web 辦事器》一書的 52 頁中,存在以下設(shè)置:

  www

  www

  而在第50 頁,設(shè)置網(wǎng)站文件所有者也為 www 用戶:

  chown -R www:www /data0/htdocs/blog

  明顯,此書的這部門內(nèi)部,對初學(xué)者有誤導(dǎo),針對這個標(biāo)題問題,我已向本書作者發(fā)郵件,??雌淠茉诘诙嬷羞M(jìn)行夸大年夜聲明,以避免因?yàn)檫^度寬松的權(quán)限建設(shè),造成一些安然隱患。

  官方供給的建設(shè)文件中,php-fpm 子過程利用 nobody 用戶,這美滿是合理的,不必點(diǎn)竄。

  那么nginx 的子過程用戶,若何設(shè)置合理? 我的建議是也利用 nobody (對弊端日記寫進(jìn)等無影響),設(shè)置編制以下:

  nginx.conf文件第一行設(shè)置為 user nobody; , 再履行 nginx -s reload 便可。

  php-fpm子過程用戶設(shè)置編制:

  編纂文件php-fpm.conf (一般位于 /usr/local/php/etc/php-fpm.conf, 視安裝參數(shù)為準(zhǔn)),找到 user 、 group 兩個參數(shù)的定義,將其設(shè)置為nobody( 默許已經(jīng)是 nobody) ,再重啟 php-fpm 過程便可。

  網(wǎng)站可寫目次的特別寄望

  這里的可寫,是相對php-fpm 子過程而言。一個網(wǎng)站最等閑出安然標(biāo)題問題標(biāo)便是可寫目次,假定可寫目次權(quán)限能節(jié)制嚴(yán)格,安然系數(shù)也將大年夜大年夜進(jìn)步。

  我們覺得,一個網(wǎng)站可寫目次首要分為以下幾種:

  1.  php 數(shù)據(jù)緩存目次,如 discuz 的 forumdata 目次,就存放了大年夜量數(shù)據(jù)緩存文件。此類目次一般會避免用戶直接拜候,可是 discuz 在這個目次下又存放了良多 js, css 文件,我們其實(shí)不克不及簡單地拒盡用戶拜候這個目次。明顯,這個目次下的所有文件,不克不及直接交給 php 解析,我們后面會給出解決方案。

  2.  附件上傳目次。明顯此類目次需要開啟拜候,但不克不及交由php 引擎解析(即這個目次下的所有文件均視為通俗靜態(tài)文件)。

  3.  靜態(tài)文件生成目次,這類目次下的文件全數(shù)應(yīng)視為靜態(tài)文件。

  4.  日記目次, 一般城市拒盡用戶直接拜候之。

  也就是說對網(wǎng)站開辟人員而言,需要對可寫目次實(shí)現(xiàn)動靜分手,不合機(jī)能的文件,應(yīng)當(dāng)辨別對待之,如許也就便利系統(tǒng)治理員,設(shè)置合理的nginx 法則,以進(jìn)步安然性。

  簡單地往掉落php 文件的履行權(quán)限,其實(shí)不克不及禁止 php-fpm 過程解析之。

  接下來,按照以上總結(jié),系統(tǒng)治理員若何建設(shè)nginx 的目次法則,才更安然呢?

  1、數(shù)據(jù)緩存目次 /cache/

  這個目次的特點(diǎn)是需要777 權(quán)限,不必供給給用戶拜候,那么可以按以下參考建設(shè) nginx

  location ~ "^/cache" {

  return 403;

  }

  location ~ "\.php$" {

  fastcgi_pass 127.0.0.0:9000;

  ....................

  }

  這時候,任何用戶將沒法拜候/cache/ 目次內(nèi)容,即便

  2、附件上傳目次 attachments

  此目次的特點(diǎn)是需要開放拜候權(quán)限,但所有文件不克不及由php 引擎解析(包含后綴名改成 gif 的木馬文件)

  location ~ "^/attachments" {

  }

  location ~ "\.php$" {

  fastcgi_pass 127.0.0.0:9000;

  ....................

  }

  寄望,上面對attachments 目次的 location 定義中是沒有任何語句的。 nginx 對正則表達(dá)式的 location 匹配優(yōu)先級最高,任何一個用正則表達(dá)式定義的 location, 只要匹配一次,將不會再匹配其它正則表達(dá)式定義的 location 。

  此刻,請?jiān)赼ttachments 目次下成立一個 php 腳本文件,再經(jīng)由過程瀏覽器拜候安,我們發(fā)現(xiàn)瀏覽器提示下載,這申明 nginx 把 attachments 目次下的文件當(dāng)作靜態(tài)文件措置,并沒有交給 php fastcgi 措置。如許即便可寫目次被植進(jìn)木馬,但因?yàn)槠錄]法被履行,網(wǎng)站也就更安然了。

  明顯,首要的php 建設(shè)文件,請勿放在此類目次下。

  3、靜態(tài)文件生成目次 public

  這些目次一般都是php 生成的靜態(tài)頁的保留目次,明顯與附件目次有近似的地方,按附件目次的權(quán)限設(shè)置便可。

  可以預(yù)感的是,假定我們設(shè)置了較嚴(yán)格的權(quán)限,即便網(wǎng)站php 法度存在縫隙,木馬腳本也只能被寫進(jìn)到權(quán)限為 777 的目次中往,假定共同上述嚴(yán)格的目次權(quán)限節(jié)制,木馬也沒法被觸發(fā)運(yùn)行,全部系統(tǒng)的安然性明顯會有較著的進(jìn)步。

  可是網(wǎng)站可寫目次的感化及權(quán)限,只有開辟人員最為清晰。這方面需要php 開辟人員和系統(tǒng)治理員積極溝通。我們利用的編制是:項(xiàng)目上線前,開辟人員按照以文檔情勢供給網(wǎng)站可寫目次的感化及權(quán)限,由系統(tǒng)治理員針對不合目次進(jìn)行權(quán)限設(shè)置。任何一方點(diǎn)竄了網(wǎng)站目次權(quán)限,但未表現(xiàn)到文檔中,我們覺得是背反工作流程的。

------分隔線----------------------------

推薦內(nèi)容