Linux伺服器的初步配置流程

阮一峰發表於2014-03-14

開發網站的時候,常常需要自己配置Linux伺服器。

本文記錄配置Linux伺服器的初步流程,也就是系統安裝完成後,下一步要做的事情。這主要是我自己的總結和備忘,如果有遺漏,歡迎大家補充。

下面的操作針對Debian/Ubuntu系統,其他Linux系統也類似,就是部分命令稍有不同。

第一步:root使用者登入

首先,使用root使用者登入遠端主機(假定IP地址是128.199.209.242)。


ssh root@128.199.209.242

這時,命令列會出現警告,表示這是一個新的地址,存在安全風險。鍵入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設定檔案/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 bill@128.199.209.242

第三步:SSH設定

首先,確定本機有SSH公鑰(一般是檔案~/.ssh/id_rsa.pub),如果沒有的話,使用ssh-keygen命令生成一個(可參考我寫的SSH教程)。

在本機上另開一個shell視窗,將本機的公鑰拷貝到伺服器的authorized_keys檔案。


cat ~/.ssh/id_rsa.pub | ssh bill@128.199.209.242 '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》

(完)

相關文章