[筆記] 增加 VestaCP 安全性

最近裝了一台 VestaCP 給系上用,感謝學長 peter279k 指導 PHP 的相關安全設定~!!

禁用 PHP 危險函式

PHP 有很多函式是可以看到作業系統層面的東西,甚至執行 Shell Script ,如果這臺機器只有自己一個人使用的話到倒是沒關係,公用主機的話勢必要關閉這些函式。

這次我難得強迫自己使用自己不熟的 RedHat 系 CentOS 7 XD(之前都用 Debian 整天 apt-get),學校的課程有學過 RHEL 是還滿 OK 的(希望能考個 RHCEXDDD)。

CentOS 7 的 PHP 設定檔位於 /etc/php.ini ,這次要編輯的是 disable_functions

用熟悉的編輯器打開 /etc/php.ini(首推VIM),找到 disable_functions ,沒意外的話是空的,加點東西進去吧~。

存檔後 systemctl restart httpd 就可以了~

Ref Dangerous PHP Functions Must be Disabled

 

修正 phpMyAdmin 設定

禁用完函式後,會發現 phpMyAdmin 噴錯給你看,原因是 php_uname() 在剛剛被禁用了,好像是因為 VestaCP 安裝的 phpMyAdmin 雖然是新版的,但是卻保留舊設定才導致此現象發生,後來是在 phpMyAdmin 的 Github 找到修正的內容,再手動修改,如果沒有這個錯誤的話可以直接略過。

編輯一下 /usr/share/php/gettext/gettext.inc ,找到 function _bindtextdomain ,把裡面 if 判斷式的 substr(php_uname(), 0, 7) == "Windows" 改為 PATH_SEPARATOR == '\\' 就可以存檔了,詳情請參考 phpMyAdmin 的 Github 。

一樣 systemctl restart httpd 完就可以收工了。

將 FTP 設定為 FTPS

可以參考這篇 How To Configure vsftpd to Use SSL/TLS on a CentOS VPS

將 vsftpd 設定為 FTPS,避免被竄改內容。

其他內容,之後有遇到再紀錄吧~


See also

comments powered by Disqus