1.檢查是否設置口令長度至少8位,並包括數字,小寫字符、大寫字符和特殊符號4類中至少2類。
在文件/etc/login.defs中設置 PASS_MIN_LEN 不小於標准值 修改/etc/pam.d/system-auth文件, 在ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 選3種,追加到password requisite pam_cracklib.so后面,添加到配置文件中。 例如:password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 注:ucredit:大寫字母個數;lcredit:小寫字母個數;dcredit:數字個數;ocredit:特殊字符個數
2.檢查是否設置賬戶口令的生存期不長於90天。
修改/etc/login.def PASS_MAX_DAYS 90 --99999 PASS_MIN_DAYS 10 --0 PASS_MIN_LEN 8 --5 PASS_WARN_AGE 5 --7
3.檢查是否設置用戶不能重復使用最近5次(含5次)內已使用的口令。
修改文件 # vi /etc/pam.d/system-auth 在 password sufficient pam_unix.so use_authtok md5 shadow remember=10
4.檢查是否設置當用戶連續認證失敗次數超過5次,鎖定該用戶使用的賬戶。
# vim /etc/pam.d/login auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=10
5.檢查默認賬號,是否刪除或鎖定與設備運行、維護等工作無關的賬號。查看多余賬號# cat /etc/passwd
[root@localhost ~]# userdel username [root@localhost ~]# groupdel groupname 刪除的用戶,如adm,lp,sync,shutdown,halt,news,uucp,operator, games,gopher等。 刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers, slipusers等。
6.檢查遠程登錄限制,是否限制具備超級管理員權限的用戶遠程登錄。
限制具備超級管理員權限的用戶遠程登錄。遠程執行管理員權限操作,應先以普通權限用戶遠程登錄后,再切換到超級管理員權限賬號后執行相應操作。 Root從遠程使用Telnet登錄; 普通用戶從遠程使用Telnet登錄; Root從遠程使用ssh登錄; 普通用戶從遠程使用ssh登錄;
7.檢查用戶缺省訪問權限,是否配置用戶缺省訪問權限,屏蔽掉新建文件和目錄不該有的訪問允許權限。
查看新建的文件或目錄的權限,操作舉例如下: #ls -l dir; #查看目錄dir的權限 #cat /etc/default/login /etc/default/login不存在 (查看是否有umask027內容)
8.檢查服務開啟,是否最小化,關閉不必要的服務。
/etc/rc.d/init.d或# rpm -qi $(rpm -qf /etc/rc.d/init.d/sshd) chkconfig –level 2345 服務名稱 off
9.檢查補丁安全,是否在確保業務不受影響的情況下及時更新操作系統補丁。
查看補丁安裝情況: # rpm –qa | grep patch /etc/sysconfig/yum-cron CHECK_ONLY=yes 更新的補丁在: http://itrc.hp.com/service/patch/releaseIndexPage.do
10.檢查日志審計功能設置,是否配置日志審計功能
查看日志服務是否開啟#service -–status-all | grep syslog 在root權限下,使用命令more、cat或vi查看 /var/log/message 系統啟動后的信息和錯誤日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 與安全相關的日志信息 /var/log/maillog 與郵件相關的日志信息 /var/log/cron 與定時任務相關的日志信息 /var/log/spooler 與UUCP和news設備相關的日志信息 /var/log/boot.log 守護進程啟動和停止相關的日志消息
11.檢查遠程管理加密協議,是否配置使用SSH等加密協議進行遠程管理,禁止使用Telnet等明文傳輸協議。
查看SSH服務狀態:#ps –elf|grep ssh 查看Telnet服務狀態:#ps –elf|grep telnet (是否有SSH進程存在:#ps –elf|grep ssh)
12.檢查登錄超時時間設置,是否設置登錄賬號的登錄超時為30分鍾。
cat /etc/profile|grep TMOUT -n 查看超時時間參數TMOUT 在/etc/profile 后面添加 export TMOUT=1800 readonly TMOUT
13.ssh安全設置策略(/etc/ssh/sshd_config)
Port 22 #ssh服務端口號,我們可以改成高端口,一般端口掃描工具不會掃描高端口的。 AddressFamily any #ssh服務的協議族,可以用ipv4 ipv6或者直接使用any。 Protocol 2 #ssh服務協議版本,默認為1,建議使用2,1有漏洞。 KeyRegenerationInterval 3600 # 在SSH-1協議下,短命的服務器密鑰將以此指令設置的時間為周期(秒),不斷重新生成。這個機制可以盡量減小密鑰丟失或者黑客攻擊造成的損失。 ServerKeyBits 2048 # 指定臨時服務器密鑰的長度。1024存在認證漏洞,安全最低2048位。 LogLevel ERROR #日志級別,可以使用 QUIET, FATAL, ERROR, INFO(默認), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3。 LoginGraceTime 30 #限制用戶必須在指定的時限內認證成功,建議設置低,增加暴力破解難度,單位為秒。 MaxAuthTries 3 #最多登錄嘗試次數,建議設置低一些,加大暴力破解難度。 RSAAuthentication yes #使用純 RSA公鑰認證。 PubkeyAuthentication yes #使用公鑰認證,推薦使用安全高效! AuthorizedKeysFile .ssh/authorized_keys #用戶公鑰文件保存路徑,默認為用戶的home目錄下.ssh隱藏文件夾中的authorized_keys,建議更換到其他目錄,防止丟失或者被惡意登陸者在默認的這個路徑中找到篡改。 PermitEmptyPasswords no #不允許空密碼登錄,這個太危險啦。 GSSAPIAuthentication no #不基於 GSSAPI 的用戶認證,關閉,優化性能。 UsePAM no #使用PAM認證,如果不用LDAP之類的登陸,建議關閉,優化性能。 X11Forwarding no #如果沒有使用x11轉發最好關閉掉,優化性能。 PrintMotd no #登錄打印公告信息,可以修改或者關閉,修改/etc/motd來震懾惡意登陸者,默認會顯示一些系統信息,關閉掉,減少惡意登陸者獲取的信息量,防止被惡意利用。 PrintLastLog no #不打印最后登陸信息,減少惡意登陸者獲取的信息量,防止被惡意利用。 TCPKeepAlive yes #保持長連接,加快連接速度,優化性能。 PidFile /var/run/sshd.pid #ssh服務的pid文件。 Banner none #不顯示系統banner信息,如果開啟會在每次登陸時顯示系統信息,減少惡意登陸者獲取的信息量,防止被惡意利用。 PermitRootLogin no #禁止root用戶登陸,降低遠程登陸的用戶權限。 PasswordAuthentication no #允許用戶名密碼登陸,no,禁止使用用戶名和密碼登陸,使用公鑰登陸,防止針對用戶名和密碼的暴力破解。
