增加phpMyAdmin安全性(nginx)
環境: Ubuntu 14.04.5 LTS
Step 1: 安裝phpMyAdmin
sudo apt-get update sudo apt-get install phpmyadmin
安裝過程中:
- 會詢問你使用哪一個web server,因為nginx不在選項中,可以直接按tab略過。
- 會詢問你要不要設定新的dbconfig-common,如果你在這之前的database是沒有使用過的,就選yes,已經建立並使用過就選no。
- 如果你選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就多了兩層保護