開發網站的時候,經常須要本身配置Linux服務器。web
本文記錄配置Linux服務器的初步流程,也就是系統安裝完成後,下一步要作的事情。這主要是我本身的總結和備忘,若是有遺漏,歡迎你們補充。shell
下面的操做針對Debian/Ubuntu系統,其餘Linux系統也相似,就是部分命令稍有不一樣。安全
第一步:root用戶登陸
首先,使用root用戶登陸遠程主機(假定IP地址是128.199.209.242)。bash
ssh root@128.199.209.242
這時,命令行會出現警告,表示這是一個新的地址,存在安全風險。鍵入yes,表示接受。而後,就應該能夠順利登入遠程主機。服務器
接着,修改root用戶的密碼。ssh
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》。
(完)