99%運維人(rén)員都忽略的服務器(qì)安全問題
發布時(shí)間(jiān):2023-04-26 閱讀: 分享

服務器(qì)安全是 IT 行(xíng)業一個(gè)老生(shēng)常談的問題了,每年的護網行(xíng)動,企業內(nèi)部的安全培訓都在提醒每個(gè)程序員處理(lǐ)好服務器(qì)安全問題已變得(de)刻不容緩


如果在安全方面有(yǒu)疏忽,極易造成數(shù)據洩露、隐私洩露等重大(dà)安全事故


  • 2022年美醫(yī)療中心數(shù)據洩露,超130萬人(rén)受影(yǐng)響;

  • 去年一月,勒索軟件攻擊引發墨西哥(gē)州監獄越獄危機;

  • 同樣是2022年,紅十字國際委員會(huì)遭網絡攻擊,超51萬人(rén)信息被黑(hēi)。


作(zuò)為(wèi)一名運維人(rén)員,必須要了解一些(xiē)安全運維守則,通(tōng)過一些(xiē)手段來(lái)保護自己的服務器(qì)不受入侵和(hé)攻擊,再進一步保護自己所負責的業務不受影(yǐng)響


下面我将給大(dà)家(jiā)介紹一些(xiē)提高(gāo)服務器(qì)安全性的方法論




用戶(組)安全


删除特殊的用戶和(hé)用戶組


Linux 系統提供了各種不同角色的系統賬号,在系統安裝完成之後,默認會(huì)安裝很(hěn)多(duō)不必要的用戶和(hé)用戶組


如果你(nǐ)用不上(shàng)這些(xiē)用戶和(hé)用戶組,應該删除他們,因為(wèi)賬戶越多(duō),系統就越不安全,這些(xiē)你(nǐ)不會(huì)注意到的用戶很(hěn)有(yǒu)可(kě)能會(huì)被黑(hēi)客給利用,從而威脅服務器(qì)的安全


像:adm、sync、shutdown、lp、halt、news、uucp、games 等系統默認用戶


以及 adm、news、uucp、dip、popusers 等系統默認用戶組


如果你(nǐ)用不上(shàng)它們,删除掉


删除的方法很(hěn)簡單


圖片

禁止某些(xiē)用戶登錄系統的功能


有(yǒu)些(xiē)情況下,某些(xiē)用戶僅僅用作(zuò)進程調用或者用戶組調用,并不需要登錄功能


比如說 mail 用戶,很(hěn)多(duō)情況下,我們的郵件服務器(qì)隻需要進行(xíng)收取郵件的功能,不需要登錄到系統上(shàng)


所以給它的 shell 設置成 nologin 就行(xíng)了


圖片


總結一下


關于用戶和(hé)用戶組的删除,其實不是千篇一律的,可(kě)以根據服務器(qì)的主要用途來(lái)決定:如果服務器(qì)是 web 應用,那(nà)麽 apache 用戶或 nginx 用戶就無需删除;而跟數(shù)據庫相關的默認用戶,例如 mysql 用戶就可(kě)以删除



合理(lǐ)使用 su、sudo 命令


su 命令是一個(gè)切換用戶的工具,用于将普通(tōng)用戶切換到超級用戶下,也可(kě)以将超級用戶切換到普通(tōng)用戶


為(wèi)了保證服務器(qì)安全,很(hěn)多(duō)情況都是直接禁止超級用戶直接登錄系統,而是先通(tōng)過普通(tōng)用戶登錄,再通(tōng)過 su 命令切換到超級用戶


但(dàn)是 su 命令會(huì)導緻一些(xiē)安全問題:普通(tōng)用戶想要使用 su 命令切換到超級用戶,就首先要知道(dào)超級用戶的密碼,如果有(yǒu)多(duō)個(gè)普通(tōng)用戶,那(nà)麽這多(duō)個(gè)普通(tōng)用戶都知道(dào)超級用戶的密碼,這在一定程度上(shàng)會(huì)對系統的安全造成威脅


超級用戶的密碼應該掌握在少(shǎo)數(shù)人(rén)手裏


這時(shí)候 sudo 命令登場(chǎng)了


sudo 命令允許管理(lǐ)員分配給普通(tōng)用戶一些(xiē)合理(lǐ)的“權利”,并且不需要普通(tōng)用戶知道(dào)超級用戶的密碼,就能讓普通(tōng)用戶執行(xíng)一些(xiē)隻有(yǒu)超級用戶或其他特權用戶才能完成的任務,比如服務重啓,修改配置文件等


sudo 命令也叫受限制(zhì)的 su


sudo 命令的執行(xíng)流程是:将當前用戶切換到超級用戶下(或切換到指定用戶),然後以超級用戶(指定用戶)身份執行(xíng)命令,執行(xíng)完成後,直接退回到當前用戶


舉個(gè)例子:普通(tōng)用戶是無法訪問 /etc/shadow 文件的


圖片


如果要讓 user1 能夠訪問這個(gè)文件,可(kě)以在 /etc/sudoers.d/ 添加下面內(nèi)容:


圖片

添加之後我們用 user1 執行(xíng)一下


圖片


輸入 user1 的密碼之後就可(kě)以查看文件了


如果普通(tōng)用戶沒有(yǒu)在 /etc/sudoers.d/ 或/etc/sudoers 中配置,同樣無法查看


圖片

sudo 使用時(shí)間(jiān)戳文件來(lái)完成類似“檢票(piào)”的功能:當用戶輸入密碼之後就獲得(de)了一張默認存活期為(wèi)5分鍾的入場(chǎng)券,超時(shí)以後,用戶必須重新輸入密碼才能獲得(de)相應的權限


這樣會(huì)導緻一個(gè)問題:如果超時(shí)就要重新輸入密碼,像一些(xiē)自動調用超級權限的程序就會(huì)出現問題


我們可(kě)以通(tōng)過下面的設置讓普通(tōng)用戶無需輸入密碼也可(kě)執行(xíng)具有(yǒu)超級權限的程序,例如需要 user1 用戶 可(kě)以自動重啓 network 的權限


圖片


這樣 user1 用戶就可(kě)以執行(xíng)重啓 network 的腳本而無需輸入密碼了


如果要讓 user1 具有(yǒu)超級用戶的所有(yǒu)權限,又不想輸入超級用戶的密碼,隻需要添加如下內(nèi)容即可(kě)


圖片



密碼安全

使用強密碼而非弱密碼


這個(gè)準則想必大(dà)家(jiā)都聽(tīng)過了,一個(gè)強大(dà)健壯的密碼,能讓你(nǐ)的系統安全性翻倍提高(gāo)


什麽是強密碼:

  • 至少(shǎo) 12 個(gè)字符長,但(dàn) 14 個(gè)或 14 個(gè)字符以上(shàng)更好

  • 大(dà)寫字母、小(xiǎo)寫字母、數(shù)字和(hé)符号的組合

  • 不是可(kě)以在詞典或人(rén)員、角色、産品或組織名稱中找到的單詞


使用密鑰認證作(zuò)為(wèi)遠程登錄系統的認證方式


Linux 中,遠程登錄系統有(yǒu)兩種認證方式:

  1. 密碼認證

  2. 密鑰認證


關于密碼認證,雖然設置一個(gè)密碼對系統安全能夠起到一定作(zuò)用,但(dàn)是當遇到像密碼暴力破解、密碼洩露、密碼丢失等問題時(shí),我們往往就會(huì)束手無策,而且強密碼也會(huì)對我們的工作(zuò)造成一定負擔


而密鑰認證是一種新型的認證方式,公用密鑰存儲在遠程服務器(qì)上(shàng),專用密鑰保存在本地,當需要登錄系統時(shí),通(tōng)過本地專用密鑰和(hé)遠程服務器(qì)的公用密鑰進行(xíng)配對認證,如果認證成功就能登陸


這種認證方式避免了被暴力破解的風險,同時(shí)隻要保存在本地的專用密碼不被黑(hēi)客盜用,是一般無法通(tōng)過密鑰認證的方式進入系統的




系統安全

關閉系統不需要的服務


Linux 綁定了很(hěn)多(duō)沒用的服務,這些(xiē)服務默認都是自動啓動的


對于服務器(qì)來(lái)說,運行(xíng)的服務越多(duō),系統就越不安全,因此關閉一些(xiē)不需要的服務,對系統安全有(yǒu)很(hěn)大(dà)的幫助


但(dàn)具體(tǐ)要關閉那(nà)些(xiē)服務,需要根據服務器(qì)的用途而定,一般情況下,隻要系統本身用不到的服務都認為(wèi)是不必要的服務


例如某台 Linux 服務提供 web 服務,那(nà)麽除了 httpd 服務或者 nginx 服務和(hé)系統運行(xíng)時(shí)必需的服務外,其他服務都可(kě)以關閉


下面列出一下不常用的服務,大(dà)家(jiā)可(kě)以自行(xíng)選擇關閉


圖片




關閉服務自啓動的方法可(kě)以通(tōng)過 chkconfig 命令實現


圖片

對所有(yǒu)需要關閉的服務都執行(xíng)上(shàng)面的操作(zuò)之後,重啓服務器(qì)即可(kě)


而為(wèi)了系統能夠安全穩定的運行(xíng),就不得(de)不運行(xíng)一些(xiē)服務,如下所示

  • acpid:用于電(diàn)源管理(lǐ)

  • apmd:高(gāo)級電(diàn)源能源管理(lǐ)服務,用于監控電(diàn)池性能

  • kudzu:檢測硬件是否變化的服務

  • crond:為(wèi) Linux 下自動安排的進程提供運行(xíng)服務

  • atd:類似于 crond,提供計(jì)劃任務功能

  • keytables:用于裝載鏡像鍵盤

  • iptables:Linux 內(nèi)置防火(huǒ)牆軟件

  • xinetd:支持多(duō)種網絡服務的核心守護進程

  • network:Linux 網絡服務

  • sshd:提供遠程登錄 Linux 的服務

  • syslog:記錄系統日志(zhì)的服務



文件權限檢查和(hé)修改


不正确的文件權限設置會(huì)直接威脅系統的安全,因此運維人(rén)員應該能及時(shí)發些(xiē)這些(xiē)不正确的權限設置,并立即修改


查找系統中任何用戶都具有(yǒu)寫權限的文件或目錄


圖片


查找系統中具有(yǒu) s 權限的程序


圖片


含有(yǒu) s 權限的程序對系統安全威脅很(hěn)大(dà),上(shàng)面的命令可(kě)以把某些(xiē)不必要的 s 權限的程序去掉,防止用戶濫用權限或者提升權限


檢查系統中所有(yǒu) suid 和(hé) sgid 文件


圖片


檢查系統中沒有(yǒu)屬主的文件


圖片

沒有(yǒu)屬主的孤兒文件往往容易成為(wèi)黑(hēi)客利用的工具,因此再找到這些(xiē)文件之後,要麽删除要麽修改文件的屬主



13905190502 南京市玄武區(qū)洪武北路188号長發數(shù)碼大(dà)廈11樓E座
友(yǒu)情鏈接
百度 網絡安全和(hé)信息化委員會(huì) FreeBuf網絡安全行(xíng)業門(mén)戶

分享:
Copyright © 2020-2022 南京斯萊克斯網絡科技有限公司 版權所有(yǒu)  
技(jì)術(shù)支持:飛酷網絡