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

表1 不同密碼復(fù)雜度測(cè)試表
針對(duì)密碼過期期限、登錄超時(shí)退出、最短密碼長(zhǎng)度和賬號(hào)鎖定登錄失敗次數(shù)、鎖定時(shí)間分析:通過對(duì)30位人員相同條件下,不同加固參數(shù)的對(duì)比,得出較為適宜普通用戶加固的方式方法和參數(shù),見表2。

表2 不同加固參數(shù)對(duì)比分析表
本文通過風(fēng)險(xiǎn)分析、實(shí)際應(yīng)用等綜合分析,提出適合大眾普通用戶行為習(xí)慣的操作系統(tǒng)加固方法,但是用戶也不能大意,新病毒或者新漏洞隨著技術(shù)將不斷被發(fā)現(xiàn)和利用,有必要不斷地綜合考慮分析各類加固方式方法,既需考慮到工作效率和便利性,也要保障用戶的信息安全,避免財(cái)產(chǎn)損失,同時(shí)希望本文能對(duì)部分用戶提供幫助。