一、系統及補丁情況
1. Linux 查看內核版本(大於2.6)(I級)
uname -a
cat /proc/version
2. Linux 查看系統版本
lsb_release -a
cat /etc/issue
二、身份鑒別
1. 系統是否存在重復的 UID(II級)
- UID(UserID)——用戶標識號,它與用戶名唯一對應,Linux 以 UID 作為用戶的唯一標識,Linux中超級用戶 root 的 UID 為 0,可以直接使用 id 命令查看當前用戶的 UID。可以查看 passwd 文件以查看所有用戶的 UID 等基本信息:
vim /etc/passwd
三、密碼控制
1. 密碼的生命周期最大為 90 天(III級)
2. 密碼可以被立即修改(III級)
3. 密碼的最小長度為 8 位(III級)
4. 密碼到期的提醒,一般建議 7 天(III級)
- 查看並修改 login.defs 文件:
vim /etc/login.defs
- 檢查並修改如下內容:
PASS_MAX_DAYS 90 #一個密碼可使用的最大天數
PASS_MIN_DAYS 0 #兩次密碼修改之間最小的間隔天數
PASS_MIN_LEN 8 #密碼最小長度
PASS_WARN_AGE 7 #密碼過期前給出警告的天數
5. 系統與其他主機不存在信任關系(I級)
-
檢查系統中是否存在 hosts.equiv, .rhosts, .netrc 文件,以及內容是否為空。
-
/etc/hosts.equiv 文件包含遠程系統的可信主機列表,每行顯示一台主機。如果用戶嘗試從此文件中列出的主機之一遠程登錄(使用 rlogin 命令),並且如果遠程系統可以訪問用戶的口令項,則遠程系統允許用戶在不使用口令的情況下登錄。
-
.rhosts 文件是 /etc/hosts.equiv 文件的用戶等效文件。此文件包含主機-用戶組合列表,而不包含一般意義的主機。如果此文件中列出了主機-用戶組合,則指定用戶將被授予從指定主機登錄而不必提供口令的權限。
-
.netrc 文件配置的是 ftp 缺省登錄名和密碼。
-
可以使用 find 命令搜索並刪除 .rhosts 文件:
find home-directories -name .rhosts -print -exec rm {} \;
home-directories
: 標識指向用戶起始目錄所在目錄的路徑,一次可輸入多個路徑來搜索多個起始目錄;
-name host
:標識文件名;
-print
輸出當前路徑名;
-exec rm {} \
:指示 find 命令將 rm 命令應用於通過匹配文件名標識的所有文件;
find 命令將從指定目錄開始搜索名為 .rhosts 的所有文件,如果找到此類文件,find 將在屏幕上輸出相應路徑並刪除該文件。
四、訪問控制
1. 系統已設定了正確的 umask 值 022 (III級)
- umask 用於指定目前用戶在建立文件或目錄時的權限默認值,umask 設置的是權限值的“補碼”,而我們常用的
chmod
設置的是文件權限碼,默認情況下的 umask 值是022(可以用umask命令查看),此時你建立的文件默認權限是644(6-0,6-2,6-2),建立的目錄的默認權限是755(7-0,7-2,7-2)。
2. 鎖定系統中不必要的用戶(IV級)
-
使用 passwd 命令鎖定、解鎖和檢查 Linux 中用戶賬戶的狀態:
passwd -l username #鎖定用戶賬戶
passwd -u username #解鎖用戶賬戶
passwd -S username #檢查用戶賬戶鎖定狀態
-
使用 usermod 命令鎖定、解鎖和檢查 Linux 中用戶賬戶的狀態:
usermod --lock username #鎖定用戶賬戶
usermod -L username #鎖定用戶賬戶
usermod -unlock username #解鎖用戶賬戶
usermod -U username #解鎖用戶賬戶
-
可以通過查看 /etc/shadow 文件來檢查用戶鎖定狀態,如果用戶賬戶被鎖定,密碼前面將添加感嘆號。
3. 刪除不必要的系統用戶組(IV級)
groupdel groupname
- 這個命令將會從 /etc/group 和 /etc/gshadow 文件中移除用戶組條目,且成功時不會打印任何輸出。可以通過使用下面的命令來驗證用戶組是否被移除:
getent group
4. 禁止 root 用戶遠程登錄(II級)
- 通過修改 /etc/ssh/sshd_congig 文件,將其中的 PermitRootLogin 改成 no,然后重新啟動 ssh 服務就可以了:
systemctl restart sshd.service
。
5. 系統重要文件訪問權限是否為 644 或 600(II級)
五、安全審計
1. 系統是否啟用安全審計(III級)
- Linux audit 子系統是一個用於收集記錄系統、內核、用戶進程發生的行為事件的一種安全審計系統,該系統可以可靠的收集有關的任何與安全相關(或與安全無關)事件的信息,它可以幫助跟蹤系統上執行過的一些操作。
auditctl -s #查看系統是否啟用 audit,enabled 值為 1 表示開啟
systemctl start auditd #啟動 auditd 服務
開啟了 auditd 服務后,所有的審計日志會被記錄在 /var/log/audit/audit.log 文件中,該文件記錄格式是每行以 type 開頭。
2. 是否啟用審計策略(III級)
- 一般針對系統的目錄、退出、創建/刪除目錄、修改密碼、添加組、計划任務等。audit 可以自定義對指定的文件或命令進行審計(如監視
rm
命令被執行、/etc/passwd 文件內容被改變),只要配置號對應規則即可,配置規則可以通過命令行(臨時生效)或編輯配置文件(永久生效)兩種方式實現。auditd 的配置文件為 /etc/audit/audit 下的 auditd.conf 和 audit.rules, auditd.conf 主要定義了 auditd 服務日志的性能等相關配置,audit.rules 才是定義規則的文件。
六、剩余信息保護
1. 系統的命令行數是否保存為 30 條(IV級)
echo $HISTSIZE #查看歷史命令保存條數
- 修改歷史命令保存條數,修改 /etc/profile 中的 HISTSIZE 變量即可。
七、xinetd 啟動的不必要服務
1. chargen/chargen-udp、daytime/daytime-udp、echo/echo-udp、time/time-udp 等服務已被禁用(III級)
- chargen 服務:最初設計用於測試網絡狀態,監聽19端口(包括TCP和UDP),其中UDP協議存在“Chargen UDP服務遠程拒絕服務攻擊漏洞”。chargen一般不會使用,所以直接將該服務關閉即可。
- daytime 服務:使用TCP 協議的 Daytime 守護進程,該協議為客戶機實現從遠程服務器獲取日期和時間的功能。
daytime-udp 服務:使用 UDP 協議的 Daytime 守護進程。 - echo 服務:使用 TCP 協議的服務器回顯客戶數據服務守護進程;
echo-udp 服務:使用 UDP 協議的服務器回顯客戶數據服務守護進程。 - time 服務:采用 TCP 協議的從遠程主機獲取時間和日期的守護進程;
time-udp 服務:采用 UDP 協議的從遠程主機火氣時間和日期的守護進程。
2. cpus-lpd 服務已被禁用(III級)
- cups 服務:通用 UNIX 打印守護進程,為Linux提供第三代打印功能;
cups-lpd 服務:cups 行打印守護進程。
3. finger 服務已被禁用(III級)
- finger 服務:finger 服務器提供一項查詢本地或遠程主機用戶公開信息的服務。
4. rexec 服務已被禁用(III級)
- rexec 服務:允許網絡用戶遠程執行命令。由於rexecd並沒有提供好的認證方式,認證體系相當簡單而易受攻擊,因此它可能被攻擊者用來掃描第三方的主機,攻擊者可以通過該服務遠程暴力窮舉猜測用戶名、口令,也可以監聽其它授權用戶的通信過程以獲取口令明文,可以使用nmap 等工具進行掃描檢測。
5. rlogin 服務已被禁用(III級)
- rlogin 服務:遠程登陸服務,通過 rlogin 命令,可以登錄到遠程系統。rlogin服務的認證體系相當簡單而易受攻擊,攻擊者可以通過該服務遠程暴力窮舉猜測用戶名、口令,也可以監聽其它授權用戶的通信過程以獲取口令明文。
6. rsh 服務已被禁用(III級)
- rsh 服務:遠程 shell 服務,通過 rsh 命令,可以在指定的遠程主機上啟動一個 shell 並執行用戶在 rsh 命令行中指定的命令,如果用戶沒有給出要執行的命令,rsh就用 rlogin 命令使用戶登錄到遠程機上。
7. rsync 服務已被禁用(II級)
- rsync 服務:遠程數據同步服務,通過 rsync 命令,可以通過LAN/WAN快速同步多台主機間的文件。rsync使用所謂的“rsync算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。
8. ntalk 服務已被禁用(III級)
- ntalk 服務:網絡交談(ntalk),遠程對話服務和客戶。
9. talk 服務已被禁用(III級)
- talk 服務:遠程對話服務和客戶。
10. wu-ftpd 服務已被禁用(II級)
- Wu-ftpd 服務:Internet上最流行的FTP守護程序。Wu-ftpd功能十分強大,可以構建多種類型FTP服務器。Wu-ftpd菜單可以幫助用戶輕松地實現對FTP服務器的配置:支持構造安全方式的匿名FTP的訪問,可以控制同時訪問的用戶的數量,限制可以允許訪問的IP網段,並可以在一台主機上設置多個虛擬目錄。
11. tftp 服務已被禁用(III級)
- tftp 服務:TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。基於 UDP 協議實現,端口號為69。
12. ipop2 服務已被禁用(III級)
- ipop2 服務:POP2 郵件服務器。
13. ipop3 服務已被禁用(III級)
- ipop3 服務:POP3 郵件服務器。
14. telnet 服務已被禁用(III級)
- telnet 服務:Internet 遠程登錄服務。
15. xinetd 服務已被禁用(IV級)
- xinted 服務:新一代的網絡守護進程服務程序,又叫超級Internet服務器,常用來管理多種輕量級Internet服務。
八、其他不必要服務
1. sendmail 服務已被禁用(II級)
- sendmail 服務:實現郵件發送/接受的郵件傳輸代理程序。
2. xfs 服務已被禁用(IV級)
- xfs 服務:X Window 字型服務器守護進程,為本地和遠程 X 服務器提供字型集。
3. apmd 服務已被禁用(III級)
- apmd:電源管理模塊。如果支持 acpid,就不需要 apmd,可以關閉。
4. canna 服務已被禁用(IV級)
- canna:日語轉換引擎。
5. freewnn 服務已被禁用(IV級)
6. gpm 服務已被禁用(III級)
- gpm命令是linux的虛擬控制台下的鼠標服務器,用於在虛擬控制台下實現鼠標復制和粘貼文本的功能。
7. innd 服務已被禁用(III級)
- innd:Usenet新聞服務器守護進程。
8. irda 服務已被禁用(IV級)
- irda:紅外端口守護進程。
9. isdn 服務已被禁用(IV級)
- isdn:isdn啟動和中止服務守護進程。
10. kdcrotate 服務已被禁用(IV級)
- kdcrotate:設置配置文件 /etc/krb5.con 中的 kdcs 表項。
11. lvs 服務已被禁用(IV級)
- lvs:負載調度器,一種集群(Cluster)技術,采用IP負載均衡技術和基於內容請求分發技術。
12. mars-nwe 服務已被禁用(IV級)
- mars-nwe:mars-nwe文件和用於Novell的打印服務器。
13. oki4daemon 服務已被禁用(IV級)
- oki4daemon:
14. rstatd 服務已被禁用(III級)
- rstatd:一個為 LAN 上的其它機器收集和提供系統信息的守候進程。
15. rusersd 服務已被禁用(III級)
- rusersd:遠程用戶定位服務,這是一個基於RPC的服務,它提供關於當前記錄到LAN上一個機器日志中的用戶信息。
16. rwalld 服務已被禁用(III級)
- rwalld:激活 rpc.rwall 服務進程,這是一項基於 RPC 的服務,允許用戶給每個注冊到 LAN 機器上的其他終端寫消息。
17. rwhod 服務已被禁用(III級)
- rwhod:激活 rwhod 服務進程,它支持 LAN 的 rwho 和 ruptime 服務。
18. wine 服務已被禁用(IV級)
- wine:Wine 是 Wine Is Not an Emulator 的縮寫,其實是一個轉換層(或程序裝入器),能夠在Linux及與POSIX兼容的其他類似操作系統上運行Windows應用程序。
19. smb 服務已被禁用(III級)
- smb:Samba 文件共享/打印服務守護進程。
20. nfs 服務已被禁用(III級)
- nfs:網絡文件系統守護進程。
21. autofs/nfslock 服務已被禁用(III級)
- autofs:自動安裝管理進程 automount,與 NFS 相關,依賴於 NIS 服務器。
- nfslock:NFS 是一個流行的通過 TCP/IP 網絡共享文件的協議,此守護進程提供了 NFS 文件鎖定功能。
22. ypbind 服務已被禁用(III級)
- ypbind:為 NIS(網絡信息系統)客戶機激活ypbind服務進程。
23. ypserv/yppasswdd 服務已被禁用(III級)
- ypserv:NIS主服務器守護進程。
- yppasswdd:NIS口令服務器守護進程。
24. portmap 服務已被禁用(III級)
- portmap:該守護進程用來支持 RPC 連接,RPC 被用於 NFS 以及 NIS 等服務。
25. netfs 服務已被禁用(III級)
- netfs:Network Filesystem Mounter,該進程安裝和卸載 NFS、SAMBA 和 NCP 網絡文件系統。
26. cups 服務已被禁用(III級)
- cups:cups(Common UNIX Printing System)是通用UNIX打印守護進程,為Linux提供第三代打印功能。
27. lpd 服務已被禁用(III級)
- lpd:lpd 是老式打印守護程序,負責將 lpr 等程序提交給打印作業。
28. snmpd 服務已被禁用(III級)
- snmpd:本地簡單網絡管理守護進程。
29. named 服務已被禁用(III級)
- named:DNS(BIND) 服務器守護進程。
30. postgresql 服務已被禁用(III級)
- postgresql: PostgreSQL 關系數據庫引擎。
31. mysqld 服務已被禁用(III級)
- mysqld:一個快速高效可靠的輕型 SQL 數據庫引擎守護進程。
32. webmin 服務已被禁用(II級)
- webmin:開源控制面板,它允許你通過簡單易用的 Web 界面,就可以管理你的 Linux 服務器。
33. squid 服務已被禁用(II級)
- squid:代理服務器 squid 守護進程。
34. kudzu 服務已被禁用(IV級)
- kudzu:硬件自動檢測程序,會自動檢測硬件是否發生變動,並相應進行硬件的添加、刪除工作。
九、其他安全配置
1. 系統已經加固了 TCP/IP 協議棧(IV級)
- 檢查/etc/sysctl.conf是否存在以下內容:
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.accept_source_route=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.secure_redirects=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.default.secure_redirects=0
2. 系統禁用 X-Windows 系統(III級)
3. 移動介質使用 nosuid 掛載(IV級)
- 檢查與 /etc/fstab 文件夾、/dev/floppy 和 /dev/cdrom 相關的條目
4. /tmp 和 /var/tmp 目錄具有粘滯位(II級)
- 例如:
ls -al/ | grep tmp
5. root PATH 環境變量,不包含當前目錄(II級)
echo $PATH