Ubuntu Server下XAMPP建站的初級安全設定
歡迎使用xampp
xampp是新手建站的絕佳利器,但正如xampp部署成功頁面所說
XAMPP is meant only for development purposes. It has certain configuration settings that make it easy to develop
locally
but that areinsecure
if you want to have your installation accessible to others. If you want have your XAMPP accessible from the internet, make sure you understand the implications and you checked the FAQs to learn how to protect your site. Alternatively you can use WAMP, MAMP or LAMP which are similar packages which are more suitable for production.
在利用xampp在網際網路建站前我們需要做一些基礎的設定來確保網站的安全
首先我們先要找到xampp的檔案安裝地址
在ubuntu上,xampp預設叫LAMPP
因為是Linux + Apache + MariaDB + PHP + Perl
另外,xampp軟體以前的名字也叫lampp。因為和lampp環境名稱混淆了,後來xlampp軟體改名為現在的xampp。lamp和xampp和lampp的區別
我的騰訊雲伺服器用的是ubuntu server,預設是不帶ui介面的,當然可以自己安裝Gnome通過騰訊雲官方的VNC開啟GUI的桌面,但解析度不可調,視窗很小,很傷眼睛,所以還是推薦學習一下Terminal使用方法
在部署過xampp後(我還是用GUI在官網下載的,但速度奇慢無比)
其預設安裝地址在 /opt/lampp/
我們利用MacOS自帶命令列Terminal.app
進行下面的操作,因為剛用上Mac,要好好利用現有的資源
基本操作
首先還是要先看看官方的FaQ,點選部署成功頁面的FAQ
可以檢視基礎的資訊
最基本的是這兩個吧
輸入sudo opt/lampp/lampp start
可在命令列開啟apache和mySql服務
輸入sudo opt/almpp/lampp stop
可在命令列關閉apache和mySql服務
1.修改預設的賬戶密碼
為什麼預設配置不安全呢,官方解釋
Here a list of missing security in XAMPP: The MySQL administrator (root) has no password. The MySQL daemon is accessible via network. ProFTPD uses the password “lampp” for user “daemon”.
在FAQ頁面可以看到這個
在開啟xampp後,輸入 sudo /opt/lampp/lampp security
xampp將會對整個系統進行安全檢查,要求你設定賬戶和密碼以提高安全性
2.隱藏Apache的版本資訊
apache2的預設配置檔案有兩個,
一個在apache2/conf/httpd.conf
一個在etc/httpd.conf
利用cd
命令轉到配置目錄
利用sudo vim httpd.conf
命令開啟httpd.conf
檔案進行編輯
輸入i
進入vim 的INSERT模式
注:vim是linux命令列下的一個自帶文字編輯器,同樣MacOS也自帶,利用這個可以實現記事本的功能,從而不必進入VNC的GUI操作,節省時間,具體vim的操作可以參考
此處 講述的很詳細
在文末輸入
#hide apache version to protect website
ServerTokens Prod
ServerSignature Off
按下esc
退出編輯模式
輸入:wq
按下enter(回車)
即可儲存
這樣可避免顯示伺服器的版本資訊
如
Apache/2.2.8 (Win32) DAV/2 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5 mod_jk/1.2.25
3.禁止apache目錄索引功能
在etc/httpd.conf
檔案中找到option
的位置
cd etc/
sudo vim httpd.conf
找到option
類似於
<Directory "/Applications/XAMPP/xamppfiles/htdocs/">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/trunk/mod/core.html#options
# for more information.
#
#Options Indexes FollowSymLinks
# XAMPP
Options Indexes FollowSymLinks ExecCGI Includes
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
# since XAMPP 1.4:
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
將其中的Options Indexes FollowSymLinks ExecCGI Includes
中的 Indexes
刪除
之後重啟apache服務,索引功能就會被關閉
4.php安全配置
1.啟用安全模式
在etc
目錄下,找到php.ini
的配置檔案,找到:
safe_mode = Off
//改為On
2.必須禁用一些高危函式,其中,可以保留phpinfo這個函式
disable_functions = exec,passthru,shell_exec,system,popen,proc_open,proc_close,curl_exec,curl_multi_exec,par se_ini_file,show_source,dl,passthru,escapeshellarg,escapeshellcmd
3.禁止顯示PHP的版本
expose_php = Off
最後,對於mysql的備份,我們可以通過批處理指令碼配置合計劃任務進行備份。也可以通過工具的實現計劃備份,如官方的工具MySQL Administrator,找到back項,通過Schedule選項卡生成備份任務,通過計劃任務進行排程。