一、賬號安全控制
隨著信息技術(shù)的快速發(fā)展,系統(tǒng)安全成為我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡囊徊糠帧V饕速~號安全控制、系統(tǒng)引導(dǎo)和登錄控制、弱口令檢測以及端口掃描等多個方面,為我們提供了一系列實用的安全措施和策略。
1、基本安全措施
(1)系統(tǒng)賬號清理
在系統(tǒng)中,除了用戶手動創(chuàng)造的各種賬號之外,還包括隨系統(tǒng)或程序安裝過程而生成的其他大量賬號。除了超級用戶 root 之外,其他大量賬號只是用來維護(hù)系統(tǒng)運(yùn)作,啟動或保持服務(wù)進(jìn)程,一般是不允許登錄的,因此也稱為非登錄用戶賬號 。如下所示:
[root@localhost~]# grep "/sbin/nologin$" /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:1p:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin. //省略部分內(nèi)容
各種非登錄用戶賬號中,還有相當(dāng)一部分是很少用到的,如 games。這些用戶賬號可以視為冗余賬號,直接刪除即可。除此之外,還有一些隨應(yīng)用程序安裝的用戶賬號,若卸載程序以后未能自動刪除,則需要管理員手動進(jìn)行清理。
對于 Linux 服務(wù)器中長期不用的用戶賬號,若無法確定是否應(yīng)該刪除,可以暫時將其鎖定。例如,若要鎖定、解鎖名為 zhangsan 的用戶賬號,可以執(zhí)行以下操作(passwd、usermod 命令都可用來鎖定。解鎖賬號)。
[root@localhost ~]# usermod -L zhangsan //鎖定賬號 [root@localhost ~]# passwd -s zhangsan //查看賬號狀態(tài) zhangsan LK 2017-08-240 99999 7 -1(密碼已被鎖定。) [root@localhost ~]# usermod -U zhangsan //解鎖賬號 [root@localhost ~]# passwd S zhangsan zhangsan ps 2017-08-24 0 99999 7 -1(密碼已設(shè)置,使用 SHA512 算法。)
如果服務(wù)器中的用戶賬號已經(jīng)固定,不再進(jìn)行更改,還可以采取鎖定賬號配置文件的方法。使用chattr 命令,分別結(jié)合“+i”“-i”選項來鎖定、解鎖文件,使用 1sattr 命令可以查看文件鎖定情況。
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow //鎖定文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看為鎖定的狀態(tài) ----i----------- /etc/passwd ----i----------- /etc/shadow [root@localhost ~]# chattr -i /etc/passwd /etc/shadow //解鎖文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看為解鎖的狀態(tài) ----------------/etc/passwd ----------------/etc/shadow
在賬號文件被鎖定的情況下,其內(nèi)容將不允許變更,因此無法添加、刪除賬號,也不能更改用戶的密碼、登錄 She11、宿主目錄等屬性信息。
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow [root@localhost ~]# useradd billgate useradd:無法打開/etc/passwd
(2)密碼安全控制
在不安全的網(wǎng)絡(luò)環(huán)境中,為了降低密碼被猜出或被暴力破解的風(fēng)險,用戶應(yīng)養(yǎng)成定期更改密碼的習(xí)慣,避免長期使用同一個密碼。管理員可以在服務(wù)器端限制用戶密碼的最大有效天數(shù),對于密碼己過期的用戶,登錄時將被要求重新設(shè)置密碼,否則將拒絕登錄。
執(zhí)行以下操作可將密碼的有效期設(shè)為 30 天(chage 命令用于設(shè)置密碼時限)
[root@localhost ~]# wi /etc/login.defs… //省略部分內(nèi)容 /適用于新建的用戶 PASS MAX DAYS 38 [root@localhost ~]# chage -M 30 lisi //適用于已有的 lisi 用戶
在某些特殊情況下,如要求批量創(chuàng)建的用戶初次登錄時必須自設(shè)密碼,根據(jù)安全規(guī)劃統(tǒng)一要求所有用戶更新密碼等,可以由管理員執(zhí)行強(qiáng)制策略,以便用戶在下次登錄時必須更改密碼。例如,執(zhí)行以下操作可強(qiáng)制要求用戶 zhangsan 下次登錄時重設(shè)密碼。
[root@localhost ~]# chage -d 8 zhangsan [root@localhost ~]# Localhost login: zhangsan //zhangsan 用戶登錄系統(tǒng) password: You arerequiredto change your passwordimmediately(root enforced) Changing passwordforzhangsan.//強(qiáng)制修改 zhangsan 的密碼 (current)UNIX password: New password: Retypenewpassword:
(3)命令歷史、自動注銷
shell環(huán)境的命令歷史機(jī)制為用戶提供了極大的便利,但另一方而也給用戶帶來了潛在的風(fēng)險。只要獲得用戶的命令歷史文件,該用戶的命令操作過程將會一覽無余,如果曾經(jīng)在命令行輸入明文的密碼,則無意之中服務(wù)器的安全壁壘又多了一個缺口。
Bash 終端環(huán)境中,歷史命令的記錄條數(shù)由變量 HISTSIZE 控制,默認(rèn)為 1000 條。通過修改/etc/profile 文件中的 HISTSIZE 變量值,可以影響系統(tǒng)中的所有用戶。
[root@localhost ~]# vi /etc/profile //適用于新登錄用戶 …… //省略部分內(nèi)容 HISTSIZE 200 [root@localhost ~]#export HISTSIZE=288 //適用于當(dāng)前用戶
除此之外,還可以修改用戶宿主目錄中的~/.bash_logout 文件,添加清空歷史命令的操作語句。
這樣,當(dāng)用戶退出已登錄 Bash 環(huán)境以后,所記錄的歷史命令將自動清空。
[root@localhost ~]# wi ~/.bash logout history -c clear
Bash 終端環(huán)境中,還可以設(shè)置一個閑置超時時間,當(dāng)超過指定的時間沒有任何輸入時即自動注銷終端,這樣可以有效避免當(dāng)管理員不在時其他人員對服務(wù)器的誤操作風(fēng)險。閑置超時由變量 TMOUT 來控制,默認(rèn)單位為秒(s)。
[root@localhost ~]# vi /etc/profile //適用于新登錄用戶 … //省略部分內(nèi)容 export TMOUT=300 [root@localhost ~]# export TMOUT=300 //適用于當(dāng)前用戶
需要注意的是,當(dāng)正在執(zhí)行程序代碼編譯、修改系統(tǒng)配置等耗時較長的操作時,應(yīng)避免設(shè)置 TMOUT 變量。必要時可以執(zhí)行“unset TMOUT”命令取消 TMOUT 變量設(shè)置。
二、系統(tǒng)引導(dǎo)和登錄控制
在互聯(lián)網(wǎng)環(huán)境中,大部分服務(wù)器是通過遠(yuǎn)程登錄的方式來進(jìn)行管理的,而本地引導(dǎo)和終端登錄過程往往容易被忽視,從而留下安全隱患。特別是當(dāng)服務(wù)器所在的機(jī)房環(huán)境缺乏嚴(yán)格、安全的管控制度時,如何防止其他用戶的非授權(quán)介入就成為必須重視的問題。
1、開關(guān)機(jī)安全控制
對于服務(wù)器主機(jī),其物理環(huán)境的安全防護(hù)是非常重要的,不僅要保持機(jī)箱完好、機(jī)柜鎖閉,還要嚴(yán)格控制機(jī)房的人員進(jìn)出、硬件設(shè)備的現(xiàn)場接觸等過程。在開關(guān)機(jī)安全控制方面,除了要做好物理安全防護(hù)以外,還要做好系統(tǒng)本身的一些安全措施。
(1)調(diào)整BIOS引導(dǎo)設(shè)置
? 將第一優(yōu)先引導(dǎo)設(shè)備(First Boot Device)設(shè)為當(dāng)前系統(tǒng)所在磁盤;
? 禁止從其他設(shè)備引導(dǎo)系統(tǒng),對應(yīng)的項為“Disabled”;
? 將BIOS的安全級別改為“ setup ”,并設(shè)置好管理密碼,以防止未授權(quán)的修改。
(2)限制更改GRUB引導(dǎo)參數(shù) 在之前的課程中介紹過通過修改 GRUB 引導(dǎo)參數(shù),對一些系統(tǒng)問題進(jìn)行修復(fù)。從系統(tǒng)安全的角度來看,如果任何人都能夠修改 GRUB 引導(dǎo)參數(shù),對服務(wù)器本身顯然是一個極大的威脅。為了加強(qiáng)對引導(dǎo)過程的安全控制,可以為 GRUB 菜單設(shè)置一個密碼,只有提供正確的密碼才被允許修改引導(dǎo)參數(shù)。
為 GRUB 菜單設(shè)置的密碼建議采用“grub2-mkpasswd-pbkdf2”命令生成,表現(xiàn)為經(jīng)過 PBKDF2 算法加密的字符串,安全性更好。生成密碼后在/etc/grub.d/00 header 配置文件中,添加對應(yīng)的用戶。密碼等配置,具體添加內(nèi)容如下所示。
[root@localhost ~]# grub2-mkpasswd-pbkdf2 //根據(jù)提示指定密碼 輸入密碼: 重新輸入口令:您的密碼的 PBKDF2 哈希為 grub.pbkdf2.sha512.10000.008E820A9C9582F74076E747CF75F1E642C21CFA6B555DD2DF61D0A90DF98DAAFA8E83F3FC188BDE774C4B28ED158D2C274E9E4B24E91AFAE763F0FF6CE467AF,19BE9E44CB15605F64B80BFE6BA04428ABB29FF9CD1AA2D051DA20752600B898F8C49653DA24F58E39CBA1E5D798994BBB9A25B0B6EF12FFC9B26F17864C5871 [root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak [root@localhost ~]#t cp /etc/grub.d/00 header /etc/grub.d/00 header.bak [root@localhost ~]# vim /etc/grub.d/0l users #!/bin/sh -e cat << EOF set superusers="root" export superusers passwordpbkdf2rootgrub.pbkdf2.sha512.10000.008E820A9C9582F74076E747CF75F1E642C21CFA6B555DD2DF61D0A90DF98DAAFA8E83F3FC188BDE774C4B28ED158D2C274E9E4B24E91AFAE763F0FF6CE467AF,19BE9E44CB15605F64B80BFE6BA04428ABB29FF9CD1AA2D051DA20752600B898F8C49653DA24F58E39CBA1E5D798994BBB9A25B0B6EF12FFC9B26F17864C5871 EOF
使用 grub2-mkconfig 命令生成新的 grub.cfg 配置文件。
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //生成新的 grub.cfg 文件 Generating grub configuration file ... Found liunx image: /boot/vmlinuz-3.10.0-514.e17.x86_64 Found initrd image: /boot/initramfs-3.10,0-514.e17.x86 64.img Found linux image: /boot/vmlinuz-0-rescue-b15df1eb8205483f9f70c79709810abc Found initrd image:/boot/initramfs-0-rescue-b15df1eb8205483f9f70c79709810abc.img done
2、終端及登錄控制
在Linux服務(wù)器中,默認(rèn)開啟了六個tty終端,允許任何用戶進(jìn)行本地登錄。
(1)禁止普通用戶登錄
當(dāng)服務(wù)器正在進(jìn)行備份或調(diào)試等維護(hù)工作時,可能不希望再有新的用戶登錄系統(tǒng)。這時候,只需要簡單地建立/etc/nologin 文件即可。login 程序會檢査/etc/nologin 文件是否存在,如果存在,則拒絕普通用戶登錄系統(tǒng)(root 用戶不受限制)。
`[root@localhost ~]# touch /etc/nologin`
此方法實際上是利用了 shutdown 延遲關(guān)機(jī)的限制機(jī)制,只建議在服務(wù)器維護(hù)期間臨時使用。當(dāng)手動刪除/etc/nologin 文件或者重新啟動主機(jī)以后,即可復(fù)正常。
三、弱口令檢測,端口掃描
1、弱口令檢測
在 Internet 環(huán)境中,過于簡單的口令是服務(wù)器面臨的最大風(fēng)險。盡管大家都知道設(shè)置一個更長、更復(fù)雜的口令會更加安全,但總是會有一些用戶因貪圖方便而采用簡單、易記的口令字串。對于任何一個承擔(dān)著安全責(zé)任的管理員,及時找出這些弱口令賬號是非常必要的,這樣便于采取進(jìn)一步的安全措施(如提醒用戶重設(shè)更安全的口令)
John the Ripper 是一款開源的密碼破解工具,能夠在已知密文的情況下快速分析出明文的密碼字串,支持 DES、MD5 等多種加密算法,而且允許使用密碼字典(包含各種密碼組合的列表文件)來進(jìn)行暴力破解。通過使用 John the Ripper,可以檢測 Linux/UNIX 系統(tǒng)用戶賬號的密碼強(qiáng)度。
(1)下載并安裝John the Ripper
以源碼包 john-1.8.0.tar.gz 為例,解壓后可看到三個子目錄--doc、run、src,分別表示手冊文檔、運(yùn)行程序、源碼文件,除此之外還有一個鏈接的說明文件 README。其中,doc 目錄下包括 README、INSTALL、EXAMPLES 等多個文檔,提供了較全面的使用指導(dǎo)。步驟如下:
[root@localhost ~]# tar zxf john-1.8.0.tar.gz [root@localhost ~]# cd john-1.8.0 [root@localhost john-1.8.0]# ls -ld* drwxr-xr-x 2 root root 208 Sep 14 21:43 doc lrwxrwxrwx 1 root root 10 May 29 2013 README ->dOC/README drwxr-xr-x 2 root root 143 sep 14 21:43 run drwxr-xr-x2 root root 4096 Sep 14 21:43 src [root@localhost john-1.8.0]# ls doc/ CHANGES CONTACT CREDITS EXTERNAL INSTALL MODES README CONFIG COPYING EXAMPLES FAQ LICENSE OPTIONS RULES
切換到 src 子目錄并執(zhí)行“make clean linux-x86-64”命令,即可執(zhí)行編譯過程。若單獨執(zhí)行 make命令,將列出可用的編譯操作、支持的系統(tǒng)類型。編譯完成以后,run 子目錄下會生成一個名為 john 的可執(zhí)行程序。
[root@localhost john-1.8.0]# cd src/ [root@localhost src]# make clean linux-x86-64 … //省略編譯信息 [root@localhost src]#ls ../run/john //確認(rèn)已生成可執(zhí)行程序 john ../run/john
John the Ripper 不需要特別的安裝操作,編譯完成后的 run 子目錄中包括可執(zhí)行程序 john 及相關(guān)的配置文件、字典文件等,可以復(fù)制到任何位置使用。
(2)檢測弱口令賬號
在安裝有 John the Ripper 的服務(wù)器中,可以直接對/etc/shadow 文件進(jìn)行檢測。對于其他 Linux服務(wù)器,可以對 shadow 文件進(jìn)行復(fù)制,并傳遞給 john 程序進(jìn)行檢測。只需執(zhí)行 run 目錄下的 john 程序,將待檢測的 shadow 文件作為命令行參數(shù),就可以開始弱口令分析了。步驟如下:
[root@localhost src]# cp /etc/shadow /root/shadow.txt //準(zhǔn)備待破解的密碼文件[root@localhost src]#cd ../run [root@localhost run]# ./john /root/shadow.txt //執(zhí)行暴力破解 Loaded 6 password hashes with 6 different salts (crypt, generic crypt(3)[?/64]) Remaining 4 password hashes with 4 different salts Press 'g'or ctrl-c to abort, almost any other key for status zhangsan(zhangsan) nwod-b(b-down) 123456(kadmin) a1b2c3(tsengyia) iloveyou(lisi)… //按 Ctrl+C 組合鍵中止后續(xù)過程
在執(zhí)行過程中,分析出來的弱口令賬號將即時輸出,第一列為密碼字串,第二列的括號內(nèi)為相應(yīng)的用戶名(如用戶 zhangsan 的密碼為“123456”)。默認(rèn)情況下,john 將針對常見的弱口令設(shè)置特點,嘗試破解已識別的所有密文字串,如果檢測的時間太長,可以按 Ctr1+C組合鍵強(qiáng)行終止。破解出的密碼信息自動保存到 john.pot 文件中,可以結(jié)合“--show”選項進(jìn)行查看。
[root@localhost run]#./john--show /root/shadow.txt //查看已破解出的賬戶列表kadmin1511499999:: zhangsan1515499999:: tsengyia1515499999:: b-down1514699999:: lisi1515499999:: 5 password hashes cracked,3 lef
(3)使用密碼字典文件
對于密碼的暴力破解,字典文件的選擇很關(guān)鍵。只要字典文件足夠完整,密碼破解只是時間上的問題。
John the Ripper 默認(rèn)提供的字典文件為 password.lst,其列出了 3000 多個常見的弱口令。如果有必要,用戶可以在字典文件中添加更多的密碼組合,也可以直接使用更加完整的其他字典文件。執(zhí)行john 程序時,可以結(jié)合“--wordlist=”選項來指定字典文件的位置,以便對指定的密碼文件進(jìn)行暴力分析。
[root@localhost run]# :> john.pot //清空已破解出的賬戶列表,以便重新分析 [root@localhost run]# ./john --wordlist=./password.lst /root/shadow.txt Loaded 6 password hashes with 6 different salts (crypt, generic crypt(3)[?/64]) Press 'g'or ctrl-c to abort, almost any other key for status 123456(jerry) 123456 (kadmin) a1b2c3(tsengyia) iloveyou(lisi) 4g 000:28 100% 0.1412g/s 125.2p/s 270.8c/s 270.8C/s !@#$%..ssS Use the "-show" option to display all of the cracked passwords reliably Session completed
2、網(wǎng)絡(luò)掃描——NMAP
NMAP 是一個強(qiáng)大的端口掃描類安全評測工具。NMAP 被設(shè)計為檢測眾多主機(jī)數(shù)量的巨大網(wǎng)絡(luò),支持 ping 掃描、多端口檢測、0S 識別等多種技術(shù)。使用 NMAP 定期掃描內(nèi)部網(wǎng)絡(luò),可以找出網(wǎng)絡(luò)中不可控的應(yīng)用服務(wù),及時關(guān)閉不安全的服務(wù),減小安全風(fēng)險。
(1)安裝NAMP軟件
`[root@localhost ~]#dnf -y install nmap`
(2)掃描語法及類型
NMAP的掃描程序位于/usr/bin/nmap目錄下,基本命令格式如下:
`nmap[掃描類型][選項]<掃描目標(biāo)...>`
其中,掃描目標(biāo)可以是主機(jī)名、IP 地址或網(wǎng)絡(luò)地址等,多個目標(biāo)以空格分隔;常用的選項有“-p”“-n”分別用來指定掃描的端口、禁用反向 DNS 解析(以加快掃描速度);掃描類型決定著檢測的方式,也直接影響掃描的結(jié)果。
常用的幾種掃描類型如下:
? -SS,TCP SYN 掃描(半開掃描):只向目標(biāo)發(fā)出 SN 數(shù)據(jù)包,如果收到 SYN/ACK 響應(yīng)包就認(rèn)為目標(biāo)端口正在監(jiān)聽,并立即斷開連接:否則認(rèn)為目標(biāo)端口并未開放。
? -ST,TCP 連接掃描:這是完整的 TCP掃描方式,用來建立一個 TCP 連接,如果成功則認(rèn)為目標(biāo)端口正在監(jiān)聽服務(wù),否則認(rèn)為目標(biāo)端口并未開放。
? -SF,TCP FIN 掃描:開放的端口會忽略這種數(shù)據(jù)包,關(guān)閉的端口會回應(yīng) RST 數(shù)據(jù)包。許多防火墻只對 SYN 數(shù)據(jù)包進(jìn)行簡單過濾,而忽略了其他形式的 TCP 攻擊包。這種類型的掃描可間接檢測防火墻的健壯性。
? -sU,UDP 掃描:探測目標(biāo)主機(jī)提供哪些 UDP 服務(wù),UDP 掃描的速度會比較慢。
? -SP,ICMP 掃描:類似于 ping 檢測,快速判斷目標(biāo)主機(jī)是否存活,不做其他掃描。
? -P0,跳過 ping 檢測:這種方式認(rèn)為所有的目標(biāo)主機(jī)是存活的,當(dāng)對方不響應(yīng) ICMP 請求時,使用這種方式可以避免因無法 ping 通而放棄掃描。
鏈接:https://blog.csdn.net/Lemon__ing/article/details/147387029
-
Linux
+關(guān)注
關(guān)注
88文章
11789瀏覽量
219382 -
服務(wù)器
+關(guān)注
關(guān)注
14文章
10321瀏覽量
91657 -
命令
+關(guān)注
關(guān)注
5文章
757瀏覽量
23885
原文標(biāo)題:別等服務(wù)器被入侵才學(xué)安全!Linux系統(tǒng)防護(hù)全攻略
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
怎么實現(xiàn)工業(yè)控制系統(tǒng)安全防護(hù)的設(shè)計?
嵌入式產(chǎn)品如何進(jìn)行安全防護(hù)
Linux必學(xué)的系統(tǒng)安全命令
確保電力系統(tǒng)數(shù)據(jù)網(wǎng)絡(luò)安全的電力二次系統(tǒng)安全防護(hù)
仙知機(jī)器人的使用注意事項及安全防護(hù)措施淺析
基于生物免疫原理的信息系統(tǒng)免疫安全防護(hù)架構(gòu)
電氣安全防護(hù)技術(shù)措施
基于GSM的家庭安全防護(hù)系統(tǒng)設(shè)計
CPU的信息安全防護(hù)措施
介紹一種基于eBPF的Linux安全防護(hù)系統(tǒng)
Linux系統(tǒng)安全防護(hù)措施
評論