標籤:
首次登入
在本地裝置中開啟終端,執行ssh命令,登陸伺服器。
ssh [email protected]
輸入根使用者密碼,按斷行符號確認。
升級軟體
為了確保作業系統中的預設的軟體安裝了最新的更新和補丁,我們需要升級系統軟體。在終端中輸入:
apt-get update
apt-get upgraded
安裝PHP
#確保作業系統中有add-apt-repository,這個命令會安裝包含add-apt-repository二進位檔案的software-properties-common包。現在可以添加自訂的PPA了。
sudo apt-get install software-properties-common
#添加ppa:ondrej/php5-5.6 PPA
sudo add-apt-repository ppa:ondrej/php5-5.6
#ubuntu會緩衝所有可用的軟體,因此添加新軟體源後,要重新整理這個緩衝
sudo apt-get update
#安裝PHP
sudo apt-get install php5
#安裝apache2
sudo apt-get install apache2
#libapache2-mod-php5目的是為了讓apache支援php5
sudo apt-get install libapache2-mod-php5
#可選,開啟GD庫支援, 例如wordpress上傳圖片需要GD庫.
sudo apt-get install php5-gd
#enable rewrite module
sudo a2enmod rewrite
#重啟apache2
sudo service apache2 restart
配置Apache (僅開啟HTTPS)
將www.test.com.crt認證複製到/etc/ssl/certs/檔案夾下
將密鑰www.test.com.key複製到/etc/ssl/private/檔案夾下
將root_bundle.crt複製到/etc/ssl/certs/檔案夾下
#在sites-available檔案夾下建立test-ssl.config檔案
cd /etc/apache2/sites-available
touch test-ssl.config
複製下述內容到test-ssl.config檔案中。
<VirtualHost *:443>
ServerAdmin www.test.com
ServerName www.test.com
DocumentRoot /var/www/test
ErrorLog /var/www/logs/error.log
CustomLog /var/www/logs/access.log
combined
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLCertificateFile /etc/ssl/certs/www.test.com.crt
SSLCertificateKeyFile /etc/ssl/private/www.test.com.key
SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt
</VirtualHost>
如果只是開啟HTTP,可以將檔案命名為test.config,連接埠改成80或其他需要的連接埠,config檔案中不需要SSLEngine on以下的設定。
#重啟apache2
sudo service apache2 restart
非根使用者
我們需要建立非根使用者以加強伺服器的安全性。我們應該盡量讓別人不能使用根使用者訪問伺服器,因為根使用者在伺服器中擁有超級許可權,可以執行任何命令。
#建立非根使用者
adduser deploy
#把deploy使用者加入sudo使用者組,讓deploy使用者擁有sudo許可權,這樣通過密碼認證後可以執行需要特殊許可權的#任務。
usermod –a –G sudo deploy
SSH金鑰組認證
在本地裝置執行可以執行下述命令,以非根使用者登陸伺服器:
ssh [email protected]
這個命令會要求你輸入deploy使用者的密碼,然後登陸伺服器。由於密碼認證會受到暴力密碼破解攻擊,使用ssh登陸伺服器應該使用ssh金鑰組認證。
在本地裝置中執行下述命令產生~/.ssh/id_rsa.pub(公開金鑰)和~/.ssh/id_rsa(私密金鑰)。
ssh-keygen
私密金鑰儲存在本地,公開金鑰複製到伺服器上:
#注意,最後的冒號一定要有
scp ~/.ssh/id_rsa.pub [email protected]:
登入伺服器,確保~/.ssh檔案夾存在,如果不存在,執行下述命令建立~/.ssh檔案夾。
mkdir ~/.ssh
#建立authorized_keys檔案
touch ~/.ssh/authorized_keys
#該檔案的內容是一系列登入這台遠程伺服器的公開金鑰,執行下述命令,把剛上傳的公開金鑰添加到該檔案
cat ~/id_rsa.pub>> ~/.ssh/authorized_keys
禁用密碼,禁止根使用者登入
在文字編輯器中開啟/etc/ssh/sshd_config檔案,找到PermitRootLogin設定,將其值改為no。找PasswordAuthentication設定,將其值改為no。在終端視窗輸入下述命令使改動生效:
sudo service ssh restart
ubuntu下安裝Apache + PHP + Mysql