靳志成,王靜雅
(國家計算機網(wǎng)絡(luò)與信息安全管理中心新疆分中心 新疆 烏魯木齊 830000)
隨著互聯(lián)網(wǎng)時代的到來,Linux操作系統(tǒng)通過其開源和免費的優(yōu)勢,已從實驗室逐步走到家庭用戶和企業(yè)中,雖然同比其他通用操作系統(tǒng)具有良好的穩(wěn)定性和安全性,但根據(jù)近年來勒索病毒等黑客的攻擊數(shù)據(jù)[1]顯示,不論是Linux系統(tǒng)或者用戶使用方式等方面,還是存在某些漏洞和錯誤。迫切需要研究解決有效提高操作系統(tǒng)的安全性,這就要求使用者必須相應(yīng)地對系統(tǒng)加強安全防范措施,確保數(shù)據(jù)和信息的存儲安全。
目前很多學者針對Linux操作系統(tǒng)的常見安全隱患及漏洞進行了研究,并探討了安全防范措施。一些學者認為系統(tǒng)安全隱患包括合法用戶非法使用或操作不當、攻擊者入侵、root用戶權(quán)限過大、惡意程序威脅等,在進行加固時可引入三權(quán)分立原則(設(shè)置系統(tǒng)管理員、安全審計員和安全管理員)、設(shè)置強制訪問控制、加密存儲數(shù)據(jù)、增強安全審計等措施[2]。一些學者從Linux系統(tǒng)登錄安全性設(shè)置、網(wǎng)絡(luò)訪問限制、病毒防治、補丁安裝和攻擊防范方面研究Linux系統(tǒng)安全防范措施[3]。一些學者專門針對Linux系統(tǒng)的網(wǎng)絡(luò)安全防范策略及其進行研究,提出相關(guān)保護措施,如將不用的端口及服務(wù)關(guān)閉、確保安全的網(wǎng)絡(luò)遠程連接及利用防火墻技術(shù)保障網(wǎng)絡(luò)安全[4]。
本文綜合上述學者對Linux操作系統(tǒng)安全及防范策略的研究內(nèi)容,綜合考慮普通大眾從系統(tǒng)使用效率和舒適度出發(fā),將安全和便利兩者權(quán)衡考慮,分別從身份鑒別、訪問控制、安全審計和入侵防范等方面進行分析,提出一套系統(tǒng)性且適用于大眾用戶的Linux系統(tǒng)通用的基本加固方法。
隨著互聯(lián)網(wǎng)應(yīng)用技術(shù)的不斷提高,近年來類似勒索病毒等安全事件不斷出現(xiàn),如用戶終端被攻擊或控制、重要資料被竊取、用戶數(shù)據(jù)被篡改、隱私泄露甚至金錢上的損失等。面對不斷出現(xiàn)的安全隱患,安全加固顯得越來越重要。本文主要研究一種適用于普通用戶Linux操作系統(tǒng)的安全加固方法,通過此方法可以提高Linux操作系統(tǒng)的安全性,確保被存儲的數(shù)據(jù)和信息安全有效,防止黑客利用用戶登錄身份信息、遠程登錄權(quán)限、系統(tǒng)漏洞等進行系統(tǒng)攻擊,保護用戶隱私信息,可以提高信息系統(tǒng)安全性,增強健壯性,增加攻擊入侵的難度,大幅提升信息系統(tǒng)安全防范水平。
安全穩(wěn)定的Linux操作系統(tǒng)需要進行身份鑒別,身份標識要具有唯一性,鑒別信息應(yīng)具有一定復(fù)雜度,且復(fù)雜度應(yīng)按時更換[5];同時具有密碼使用限定、登錄超時退出、限制賬號登錄次數(shù)等措施。根據(jù)上述要求,建議完成如下安全加固配置。
2.1.1 建議禁止使用舊密碼
方法是在/etc/pam.d/system-auth中寫入:password sufficient pam_unix.so sha 512 shadow nullok tryfirstpass useauthtok remember=7
2.1.2 建議啟用密碼最短長度
方法是在/etc/pam.d/system-auth 文件寫入:password requisitepam_cracklib.so retry=5 difok=5 minlen=10
2.1.3 建議啟用密碼復(fù)雜度
密碼必須至少包含大寫字母、數(shù)字和符號各一個和兩個小寫字母,在包含“password”和“pam_cracklib.so”字段中后輸入命令:“ucredit=1 lcredit=2 dcredit=1 ocredit=1”
2.1.4 建議啟用密碼過期時限
方法是在etc/login.defs中寫入:passmaxday14 passminday5 passwarnage 7,設(shè)定密碼使用的最長時限為90天,口令失效前7天通知用戶更改密碼。
2.1.5 登錄超時退出
修改賬號TMOUT值,設(shè)置自動注銷時間。通過執(zhí)行vim/etc/profile命令增加TMOUT=600,確保600 s內(nèi)無操作則立即目前賬號注銷。
2.1.6 設(shè)置賬號鎖定登錄失敗次數(shù)、鎖定時間
用戶登錄超過限制的次數(shù)后即將賬號鎖定。方法:a.ssh 遠程方面限制# vim /etc/pam.d/sshd#%PAM-1.0;b.tty 終端方面限制# vim /etc/pam.d/login#%PAM-1.0。
安全的Linux操作系統(tǒng)需要劃分角色、鎖定系統(tǒng)中多余的自建賬號、檢查空口令賬號、禁用root之外的超級用戶;需要合理設(shè)置SSH安全登錄,防止信息在網(wǎng)絡(luò)傳輸過程中被竊聽;還需規(guī)定訪問控制權(quán)限。建議進行如下安全加固配置。
2.2.1 鎖定系統(tǒng)中多余的自建賬號
通過執(zhí)行cat/etc/passwd和cat/etc/shadow命令,查看賬戶、密碼,根據(jù)需求確定用戶,再通過passwd -l<用戶名>鎖定不必要的賬戶,使用命令userdel<用戶名> 刪除不必要的賬號。
2.2.2 檢查shadow中空口令賬號
可使用awk -F:'($2=="")' /etc/shadow命令檢查是否有空口令賬戶。若有,則通過passwd<用戶名>命令設(shè)置密碼,其次設(shè)置密碼系統(tǒng)策略,通過#vi/etc/login.defs命令修改配置文件。
2.2.3 禁用root之外的超級用戶
禁止普通用戶su為root用戶權(quán)限,通常查看是否有auth required/libsecurity/pam whell.so配置條目,若有將其添加至其他組,并將test用戶加入到該組即可。
2.2.4 合理設(shè)置SSH安全登錄
通過vi etc/ssh/sshd_config PermitRootLogin no禁止root 賬戶遠程登錄。通過#vi etc/ssh/sshd_config更改服務(wù)端口,Port自定義。再次通過屏蔽SSH登陸banner信息,在vi etc/ssh/sshd_config中添加banner NONE。
2.2.5 訪問控制策略及設(shè)置安全標記
使用chgrp命令給組添加權(quán)限,具體如下:chgrp文件夾或用戶組文件。使用chown改變文件擁有者,參考方法:chown 用戶名 文件名。文件擁有者用chmod命令可以改變文件權(quán)限。
Linux采用了syslog工具來實現(xiàn)系統(tǒng)審計、監(jiān)測追蹤和分析功能,記錄全部操作記錄。首先對ssh、su登錄日志進行記錄使用命令:vi/etc/syslog.conf Authpriv.* /var/log/secure、/etc/rc.d/init.d/syslog restart。開啟系統(tǒng)審計日志功能使用命令:Service auditd start;/var/log/audit/audit.log。查看服務(wù)是否啟用,日志是否存在使用命令:ps-aef|grep syslog。在審記錄中開啟詳細審計,包括登錄時間、登錄IP等內(nèi)容,可以保護和備份審計日志,開啟審計守護進程用于審計進程保護。
主機層的入侵防范是操作系統(tǒng)安全的基本保障,網(wǎng)絡(luò)層無法防止所有攻擊,主機層的入侵防范與惡意代碼防范就成為系統(tǒng)安全最后的安全保障。為防止黑客進行入侵防范,建議做如下安全加固配置。
2.4.1 建議關(guān)閉不使用的服務(wù)、端口和共享
通過chkconfig-list,檢查已啟用的服務(wù)。用systemctl stop postfix.service命令關(guān)閉Anancron、Apmd、Autofs等服務(wù)。用systemctl disable<服務(wù)名>命令設(shè)置服務(wù)不自動啟動,如普通服務(wù)和xinetd服務(wù),降低風險。對于部分老版本的Linux操作系統(tǒng)(如CentOS 6),可使用chkconfig--level
2.4.2 限制終端或網(wǎng)絡(luò)地址范圍
Linux系統(tǒng)可以對終端或網(wǎng)絡(luò)地址范圍進行限制,用iptables命令查驗IP地址,參考方式如下:iptables-A INPUT-p tcp-s X.X.X.X-destination-port 22-j ACCEPT;iptables-A INPUT-p tcp-destination-port 22 -j DROP。
2.5.1 設(shè)置BASH保留歷史命令的條目
為了兼顧工作的效率、便利性和安全性,通過執(zhí)行vim/etc/profile,修改HISTSIZE=5即保留最新執(zhí)行的5條命令,即可快速提取當下常用命令,也可保障黑客無法回溯多條歷史命令。
2.5.2 設(shè)置注銷時刪除命令記錄
注銷時刪除命令可以提高系統(tǒng)的安全性的??梢酝ㄟ^執(zhí)行vim/etc/skel/.bash_logout文件,增加如下行:rm-f $HOME/.bash_history,實現(xiàn)系統(tǒng)中的用戶在注銷時刪除其命令記錄的功能。
2.5.3 阻止系統(tǒng)響應(yīng)ping請求
普通用戶使用過程中一般不涉及ping請求,通過執(zhí)行echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all禁止ping請求回應(yīng)。
2.5.4 禁止Traceroute 探測
使用iptables-A FORWARD-p icmp-j DROP命令,禁止Traceroute探測。
2.5.5 重要文件屬性管理
可使用UGO等方法給重要文件加上不可改變屬性,限定用戶分組權(quán)限或者加上不可改變屬性。
2.5.6 設(shè)置文件訪問權(quán)限
修改/etc/profile配置文件,添加“umask=027”并保存。
2.5.7 限制某些策略配置
如單個用戶多重并發(fā)會話、最大并發(fā)會話連接數(shù)等。
經(jīng)過上述加固后的Linux操作系統(tǒng),使用OpenVAS漏洞掃描器和Nessus系統(tǒng)漏洞掃描與分析軟件進行掃描,結(jié)果均未掃描出高、中、低漏洞和系統(tǒng)及應(yīng)用的相關(guān)漏洞。
通過上述加固操作可以確保:(1)黑客無法通過獲得root賬戶權(quán)限,竊取用戶信息或傳播病毒,成功避免成為攻擊目標;(2)黑客難以利用應(yīng)用服務(wù)漏洞(如Web服務(wù)中的Gern和NCSA漏洞和 FTP文件服務(wù)表單漏洞[6])攻擊,從而造成內(nèi)部隱私信息丟失;(3)黑客無法進行口令爆破攻擊,通過訪問控制策略設(shè)置賬號登錄失敗次數(shù),防止黑客多次進行用戶登錄破解口令,竊取用戶信息;(4)防止黑客進行端口掃描攻擊,通過關(guān)閉不必要端口和進程,可以有效防止黑客通過掃描用戶主機端口獲得數(shù)據(jù),轉(zhuǎn)而分析用戶主機存在的漏洞,并針對漏洞采取攻擊,最終入侵用戶系統(tǒng)[7]。
復(fù)雜度分析:根據(jù)??峨s》提供的數(shù)據(jù)對比:增加1個字符,可直接避免字典攻擊。根據(jù)以下具體的測試數(shù)據(jù),得出密碼復(fù)雜度建議使用數(shù)字+特殊字符+字母,見表1。
表1 不同密碼復(fù)雜度測試表
針對密碼過期期限、登錄超時退出、最短密碼長度和賬號鎖定登錄失敗次數(shù)、鎖定時間分析:通過對30位人員相同條件下,不同加固參數(shù)的對比,得出較為適宜普通用戶加固的方式方法和參數(shù),見表2。
表2 不同加固參數(shù)對比分析表
本文通過風險分析、實際應(yīng)用等綜合分析,提出適合大眾普通用戶行為習慣的操作系統(tǒng)加固方法,但是用戶也不能大意,新病毒或者新漏洞隨著技術(shù)將不斷被發(fā)現(xiàn)和利用,有必要不斷地綜合考慮分析各類加固方式方法,既需考慮到工作效率和便利性,也要保障用戶的信息安全,避免財產(chǎn)損失,同時希望本文能對部分用戶提供幫助。