安裝所需的服務
如果你打算運行一臺服務器,可能會想“我有來自Linode的40GB固態硬盤(SSD)存儲系統,于是我可以安裝想要安裝的任何服務。”沒錯,你的地盤你作主:可以在服務器上安裝任意軟件。不過,別犯想當然的毛病。連最固若金湯的服務器也會因有人鉆了在該服務器上運行的任何未打補丁或易受攻擊的軟件組件的空子而被劫持。
所以,頭一條規則就是讓你的服務器盡量精簡。只安裝你確實需要的那些程序包。要是有不需要的程序包,那就清除。程序包數量越少,代碼沒打上補丁的可能性就越小。在安裝任何軟件和依賴程序包(比如ownCloud)之前,你應該讀一下ownCloud的說明文檔,只安裝它需要的那些程序包。(it外包服務公司)
運行所需的服務
第二條規則就是只運行需要的那些服務。許多發行版或程序包可能會開啟某些服務,在不同的端口上運行。這可能會帶來安全風險。于是,打開終端,運行下列命令:
netstat -npl
輸出結果會顯示哪些服務在哪些端口上運行。如果你發現任何不應該運行的服務,停止它。你還應該密切關注已被啟用、系統啟動時運行的服務。只要在運行systemd的系統上運行下列命令,就可以來檢查這方面:
systemctl list-unit-files --type=service | grep enabled
視系統而定,你會獲得如上圖1中所示的輸出結果。要是你發現任何不需要的服務,可以使用強大的systemct1命令來禁用它:
systemctl disable service_name
限制對服務器的訪問
就好比你不會把自家鑰匙隨隨便便交給認識的人,也不會將訪問服務器的權限交隨隨便便授予認識的人。一旦明確了這個規則,就可以限制對服務器的訪問。要牢記這點:這一切打消不了決意要破壞你服務器的壞人的念頭。不過,其作用在于為你的服務器增添了多一層的安全,防范只是撿漏的不法分子。
千萬不要以根用戶的身份登錄
以超級用戶的身份通過ssh進入到服務器不是一個好做法。我們后面會禁止以根用戶身份通過ssh進入到服務器,不過在這么做之前,不妨創建一個擁有sudo權限的用戶,那樣你就能通過ssh進入到服務器,執行管理員任務了。一旦你登錄進入到服務器,總是可以將用戶切換成根用戶,如果需要的話。如果你已經在系統上有了用戶,就跳過幾步;不然,跟著我走。
不同的發行版使用不同的方法來添加新用戶;Red Hat/CentOS使用useradd,Ubuntu/Debian使用user adduser。(it外包)
在Fedora/CentOS上創建新用戶:
useradd swapnil
然后,為該用戶創建密碼:
passwd swapnil
安裝所需的服務
如果你打算運行一臺服務器,可能會想“我有來自Linode的40GB固態硬盤(SSD)存儲系統,于是我可以安裝想要安裝的任何服務。”沒錯,你的地盤你作主:可以在服務器上安裝任意軟件。不過,別犯想當然的毛病。連最固若金湯的服務器也會因有人鉆了在該服務器上運行的任何未打補丁或易受攻擊的軟件組件的空子而被劫持。
所以,頭一條規則就是讓你的服務器盡量精簡。只安裝你確實需要的那些程序包。要是有不需要的程序包,那就清除。程序包數量越少,代碼沒打上補丁的可能性就越小。在安裝任何軟件和依賴程序包(比如ownCloud)之前,你應該讀一下ownCloud的說明文檔,只安裝它需要的那些程序包。
運行所需的服務
第二條規則就是只運行需要的那些服務。許多發行版或程序包可能會開啟某些服務,在不同的端口上運行。這可能會帶來安全風險。于是,打開終端,運行下列命令:
netstat -npl
輸出結果會顯示哪些服務在哪些端口上運行。如果你發現任何不應該運行的服務,停止它。你還應該密切關注已被啟用、系統啟動時運行的服務。只要在運行systemd的系統上運行下列命令,就可以來檢查這方面:
systemctl list-unit-files --type=service | grep enabled
視系統而定,你會獲得如上圖1中所示的輸出結果。要是你發現任何不需要的服務,可以使用強大的systemct1命令來禁用它:
systemctl disable service_name
限制對服務器的訪問
就好比你不會把自家鑰匙隨隨便便交給認識的人,也不會將訪問服務器的權限交隨隨便便授予認識的人。一旦明確了這個規則,就可以限制對服務器的訪問。要牢記這點:這一切打消不了決意要破壞你服務器的壞人的念頭。不過,其作用在于為你的服務器增添了多一層的安全,防范只是撿漏的不法分子。
千萬不要以根用戶的身份登錄
以超級用戶的身份通過ssh進入到服務器不是一個好做法。我們后面會禁止以根用戶身份通過ssh進入到服務器,不過在這么做之前,不妨創建一個擁有sudo權限的用戶,那樣你就能通過ssh進入到服務器,執行管理員任務了。一旦你登錄進入到服務器,總是可以將用戶切換成根用戶,如果需要的話。如果你已經在系統上有了用戶,就跳過幾步;不然,跟著我走。
不同的發行版使用不同的方法來添加新用戶;Red Hat/CentOS使用useradd,Ubuntu/Debian使用user adduser。
在Fedora/CentOS上創建新用戶:
useradd swapnil
然后,為該用戶創建密碼:
passwd swapnil
它會要求你為它提供用戶的新密碼。現在,你需要為該用戶授予sudo權限。運行下列命令:
EDITOR=nano visudo
尋找下面這一行(見圖2):
# %wheel ALL=(ALL) ALL
它會要求你為它提供用戶的新密碼。現在,你需要為該用戶授予sudo權限。運行下列命令:
EDITOR=nano visudo
尋找下面這一行(見圖2):
# %wheel ALL=(ALL) ALL
它會提出一些問題;你不用更改密鑰位置,保留其默認值,為它提供一個難以猜中的通行碼。下一步,你需要將這些密鑰拷貝到服務器上,那樣兩臺機器就能使用密鑰與對方進行聯系了。
cat ~/.ssh/id_rsa.pub | ssh -p 1977 swapnil@remote-server ";mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
現在,試著從另一個終端通過ssh進入到服務器;要是一切正常,它不會要求你輸入密碼。
這一步主要是為了方便,而不是增添一些實實在在的安全。不過你也可以增添一點安全,只要禁用服務器的密碼驗證。只需打開sshd配置文件,尋找這注釋的一行:
#PasswordAuthentication yes
去掉該行注釋,將它從yes改成no。保存并關閉文件。然后,重啟sshd服務。再一次,切莫從當前窗口關閉服務器連接。打開另一個窗口,登錄進入到服務器(確保它沒有要求輸入密碼)。(電腦維護外包)
這個設置的另一個方面在于,你現在只能從創建ssh密鑰的那一臺機器通過ssh進入到服務器。如果你經常從不同的機器登錄進入到服務器,千萬不要使用這一方法。
這些是試圖自行運行服務器的新用戶需要考慮的一些基本方面。牢記一點:黑客總是先行一步;他們不斷尋找進而闖入你服務器的任何漏洞。因而,最佳實踐就是對你的服務器做一套始終最新的備份。我建議你在對站點做任何變化前后都應該進行備份。那樣一來,萬一你的服務器中了招,總是能夠從上一套備份恢復過來。
艾銻無限是中國領先IT外包服務商,專業為企業提供IT運維外包、電腦維護、網絡維護、網絡布線、辦公設備維護、服務器維護、數據備份恢復、門禁監控、網站建設等多項IT服務外包,服務熱線:400-650-7820 聯系電話:010-62684652 咨詢QQ1548853602 地址:北京市海淀區北京科技會展2號樓16D,用心服務每一天,為企業的發展提升更高的效率,創造更大的價值。
更多的IT外包信息盡在艾銻無限http://www.richjn.cn
相關文章