讓你的Linux服務(wù)器更安全的四個方法
我運行幾個Linux服務(wù)器;在家里的一個作為文件服務(wù)器,還有三個實時服務(wù)器分別用作站點、郵件、云儲存。雖然我不用擔(dān)心家里的服務(wù)器的安全問題,因為它不和外面的世界對話,但是另外三個服務(wù)器始終需要維護(hù)。對于那些Linux新手并且他們想運行自己的服務(wù)器,那么他們必須將一些觀念牢記在心,這就是本文所專注的方面。
1.安裝你需要的
如果你計劃運行一個服務(wù)器,你也許會想“我在 Linode有40GB的固態(tài)硬盤存儲空間,所以我能夠安裝我想要的任何服務(wù)。”的確如此:你的服務(wù)器、軟件等都可以安裝在上面。但是也不要太想當(dāng)然了。即使是最“堅硬”的服務(wù)器也能夠被劫持,由于在它上面使用未打補(bǔ)丁或者易受攻擊的組件。
所以第一個規(guī)則是保持你服務(wù)器的精簡,讓它吝嗇一點。只安裝那些你真正需要的軟件。如果存在不想要的軟件,就清除它們。軟件越少,未打補(bǔ)丁的代碼也會少些。在你安裝任何軟件和依賴包之前(比方說:私有云),你應(yīng)該閱讀私有云的文檔并只安裝那些你需要的包。
2.運行你需要的
第二個規(guī)則是只運行那些你需要的服務(wù)。許多發(fā)行版或者軟件包也許在不同的端口開啟了特定的服務(wù)。那會造成一些安全風(fēng)險,請先打開終端并運行下面這條命令:
- netstat -npl
輸出結(jié)果將會告訴你在哪些端口正在運行哪些服務(wù)。如果你發(fā)現(xiàn)任何你沒有打算運行的服務(wù),停止這些服務(wù)。你也應(yīng)該注意一下那些隨系統(tǒng)啟動就啟動并運行的服務(wù)。你能夠通過在系統(tǒng)上運行systemd來檢查這些服務(wù),輸入以下命令:
- systemctl list-unit-files –type=service | grep enabled
根據(jù)你自己的系統(tǒng),你將會得到一個如圖1所示的輸出結(jié)果。如果你發(fā)先任何不想要的服務(wù),你可以運行systemctl命令關(guān)閉它:
- systemctl disable service_name
3.服務(wù)器入口限制
就像你不會把你家門的鑰匙給你認(rèn)識的每一個人,你也不應(yīng)該讓你認(rèn)識的人隨便進(jìn)入你的服務(wù)器。一旦明確了這一規(guī)則,你就要限制服務(wù)器的進(jìn)入。記住一件事:做這些并不能阻止那些執(zhí)著于使你服務(wù)器癱瘓的人。我們做的只是增加服務(wù)器的安全級別以應(yīng)對攻擊者的偶然攻擊。
4.從不以Root權(quán)限登陸
以超級用戶遠(yuǎn)程登陸到你的服務(wù)器可不是什么好習(xí)慣。我們將會禁用以root用戶遠(yuǎn)程登陸服務(wù)器,但在做這之前,讓我們先創(chuàng)建一個擁有sudo權(quán)限的用戶以便你能夠遠(yuǎn)程登陸服務(wù)器并執(zhí)行管理員任務(wù)。一旦你用這個用戶身份登陸服務(wù)器,你總是能夠在你需要時隨時切換到root權(quán)限。如果你在系統(tǒng)上已經(jīng)有了一個用戶,請?zhí)^這些步驟;否則的話,還是跟著我做下去。
不同的發(fā)行版增加新用戶的方式有所不同;Red Hat/CentOS使用useradd命令,Ubuntu/Debian使用adduser命令。
在Fedora/CentOS上創(chuàng)建一個新用戶:
- useradd swapnil
接著為這個用戶創(chuàng)建一個密碼:
- passwd swapnil
命令會讓你給這個用戶提供一個新密碼。現(xiàn)在你要做的是賦予該用戶sudo權(quán)限。運行以下命令:
- EDITOR=nano visudo
并找到下面這一行(圖2):
- # %wheel ALL=(ALL) ALL
取消這一行注釋(#表示注釋;刪除#表示取消注釋)就像下面這個樣子:
- %wheel ALL=(ALL) ALL