增加phpMyAdmin安全性(nginx)

增加phpMyAdmin安全性(nginx)

環境: Ubuntu 14.04.5 LTS

Step 1: 安裝phpMyAdmin

sudo apt-get update
sudo apt-get install phpmyadmin

安裝過程中:

  1. 會詢問你使用哪一個web server,因為nginx不在選項中,可以直接按tab略過。
  2. 會詢問你要不要設定新的dbconfig-common,如果你在這之前的database是沒有使用過的,就選yes,已經建立並使用過就選no。
    1. 如果你選yes,就必須輸入資料庫管理者密碼,之後會要求你輸入新的資料庫密碼。

Step2: 建立連結檔

sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html

後者為你的網站根目錄

Step3:啟動mcrypt PHP模組

sudo php5enmod mcrypt
sudo service php5-fpm restart

增加安全性1:改變路徑名稱

Step4:更改phpmyadmin檔案名稱

一般來說,進入http://server_domain_or_IP/phpmyadmin就會看到phpmyadmin的登入畫面

所以我們可以透過更改phpmyadmin檔名增加其被猜出位置的安全性

在這裡更改為DB:

cd /usr/share/nginx/html
sudo mv phpmyadmin DB

這樣你就可以透過http://server_domain_or_IP/DB進入phpmyadmin登入畫面

增加安全性2:進入login page之前再次認證

Step5:新增一個加密密碼

openssl passwd

他會要你輸入你想要的密碼

會產生一組加密密碼,像這樣:

O5az.RSPzd.HE

你必須將它複製起來

Step6:建立pma_pass

sudo vim /etc/nginx/pma_pass

將使用者名稱:剛剛複製的密碼寫入後存檔離開,以user為使用者名稱,像這樣:

user:O5az.RSPzd.HE

Step7:設定nginx config

sudo vim /etc/nginx/sites-available/default

在server{}中加入一個新的location / 區塊:

server {
    . . .

    location / {
        try_files $uri $uri/ =404;
    }

    location /DB {
    }

    . . .
}

在裡面加上auth_basic(認證訊息)和auth_basic_user_file(用來指向認證檔):

server {
    . . .

    location / {
        try_files $uri $uri/ =404;
    }

    location /DB {
        auth_basic "Admin Login";
        auth_basic_user_file /etc/nginx/pma_pass;
    }

    . . .
}

之後儲存離開

Step8: 重啟nginx

sudo service nginx restart

Step9:進入phpmyadmin login page測試

進入http://server_domain_or_IP/DB

你應該就能看到這個畫面:

這樣一來你的phpmyadmin就多了兩層保護

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *