1. 程式人生 > >Ubuntu Server下XAMPP建站的初級安全設定

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 are insecure 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使用方法

(建議在騰訊雲實驗室裡自行進行linux操作實驗),正所謂“工欲善其事,必先利其器”嘛

在部署過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選項卡生成備份任務,通過計劃任務進行排程。

參考資料