開發網站的時候,常常需要自己配置Linux伺服器。
本文記錄配置Linux伺服器的初步流程,也就是系統安裝完成後,下一步要做的事情。這主要是我自己的總結和備忘,如果有遺漏,歡迎大家補充。
下面的操作針對Debian/Ubuntu系統,其他Linux系統也類似,就是部分命令稍有不同。
第一步:root使用者登入
首先,使用root使用者登入遠端主機(假定IP地址是128.199.209.242)。
ssh [email protected]
這時,命令列會出現警告,表示這是一個新的地址,存在安全風險。鍵入yes,表示接受。然後,就應該可以順利登入遠端主機。
接著,修改root使用者的密碼。
passwd
第二步:新建使用者
首先,新增一個使用者組(這裡假定為admin使用者組)。
addgroup admin
然後,新增一個新使用者(假定為bill)。
useradd -d /home/bill -s /bin/bash -m bill
上面命令中,引數d指定使用者的主目錄,引數s指定使用者的shell,引數m表示如果該目錄不存在,則建立該目錄。
接著,設定新使用者的密碼。
passwd bill
將新使用者(bill)新增到使用者組(admin)。
usermod -a -G admin bill
接著,為新使用者設定sudo許可權。
visudo
如果提示找不到visudo
,需要安裝一下sudo
這個程式。Debian 系統可以執行下面的命令。
apt-get update && apt-get upgrade apt-get install sudo
visudo命令會開啟sudo設定檔案/etc/sudoers,找到下面這一行。
root ALL=(ALL:ALL) ALL
在這一行的下面,再新增一行。
root ALL=(ALL:ALL) ALL bill ALL=(ALL) NOPASSWD: ALL
上面的NOPASSWD表示,切換sudo的時候,不需要輸入密碼,我喜歡這樣比較省事。如果出於安全考慮,也可以強制要求輸入密碼。
root ALL=(ALL:ALL) ALL bill ALL=(ALL:ALL) ALL
然後,先退出root使用者的登入,再用新使用者的身份登入,檢查到這一步為止,是否一切正常。
exit ssh [email protected]
第三步:SSH設定
首先,確定本機有SSH公鑰(一般是檔案~/.ssh/id_rsa.pub),如果沒有的話,使用ssh-keygen命令生成一個(可參考我寫的SSH教程)。
在本機上另開一個shell視窗,將本機的公鑰複製到伺服器的authorized_keys檔案。
cat ~/.ssh/id_rsa.pub | ssh [email protected] 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys' # 或者在伺服器端,執行下面命令 echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys
然後,進入伺服器,編輯SSH配置檔案/etc/ssh/sshd_config。
sudo cp /etc/ssh/sshd_config ~ sudo nano /etc/ssh/sshd_config
在配置檔案中,將SSH的預設埠22改掉,可以改成從1025到65536之間的任意一個整數(這裡假定為25000)。
Port 25000
然後,檢查幾個設定是否設成下面這樣,確保去除前面的#號。
Protocol 2 PermitRootLogin no PermitEmptyPasswords no PasswordAuthentication no RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys UseDNS no
上面主要是禁止root使用者登入,以及禁止用密碼方式登入。
接著,在配置檔案的末尾,指定允許登陸的使用者。
AllowUsers bill
儲存後,退出檔案編輯。
接著,改變authorized_keys檔案的許可權。
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/
然後,重啟SSHD。
sudo service ssh restart # 或者 sudo /etc/init.d/ssh restart
下面的一步是可選的。在本機~/.ssh資料夾下建立config檔案,內容如下。
Host s1 HostName 128.199.209.242 User bill Port 25000
最後,在本機另開一個shell視窗,測試SSH能否順利登入。
ssh s1
第四步:執行環境配置
首先,檢查伺服器的區域設定。
locale
如果結果不是en_US.UTF-8,建議都設成它。
sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8 sudo dpkg-reconfigure locales
然後,更新軟體。
sudo apt-get update sudo apt-get upgrade
最後,再根據需要,做一些安全設定,比如搭建防火牆,關閉HTTP、HTTPs、SSH以外的埠,再比如安裝Fail2Ban,詳細可參考這篇《Securing a Linux Server》。
(完)