風險評估實戰系列之linux終端如何檢查遠程主機策略配置

最近在做一個風險評估和等保測評相結合項目,需要對某單位的4套核心系統進行風險評估和等保測評,其中有2套系統還是等保定級的4級系統,非常重要。在進行主機和數據庫的策略審計時,遇到一點小麻煩,情況是這樣的,傳統的譬如說銀行證券行業、政府行業、通信行業,他們的運維終端一般都是windows的,所以對主機和數據庫的配置檢查可以通過windows終端的SecureCRT等工具連接,並記錄檢查日誌來實現,或許和直接上傳sh腳本執行,然後將結果傳下來即可。

但是要評估的單位的系統部署在比較特殊的網絡架構中,且運維終端都是linux或者hp-ux。在不能使用SecureCRT的情況下,也就無法複製粘貼直接運行如下命令了。

hostname

ifconfig

uname-a

who-r

netstat-nr

netstat-a

netstat-lnpt

ps-ef

ps-ef|greptelnet

ps-ef|grepssh

ps-ef|grepsyslog

ps-ef|grepaudit

ls-l/etc

ls-l/etc/security

....

在這種情況下如何處理呢?

目前運維終端都是圖形化界面的linux系統(PS:未安裝ssh連接工具),既然無法使用工具連接,那麼自然也無法設置自動日誌配置輸出。解決的辦法就是將檢查的結果輸出到指定文件中,最後再導出文件即可。當然此時可使用windows終端也通用的方法就是直接上傳sh腳本到每一臺服務器上,然後直接腳本,最後再將結果導到本地終端上。但是好多客戶是禁止直接往服務器上傳腳本、工具等的。那只有最後一個方法,就是製作直接可在運維終端本地運行的腳本。核心思路就是在linux運維終端上ssh遠程連接數據庫等服務器,然後打開並複製粘貼上傳到linux運維終端上的腳本內容並執行,在遠端服務器上生成諸多配置文件,然後打包,最後再將結果導到本地終端上,並記得刪除遠端服務器上的生成的檢查的配置文件。具體的腳本內容如下,此處先只介紹遠程服務器是linux系統的linuxscript.txt腳本情況:

linuxscript.txt

mkdir./syschecklog


cd./syschecklog


echo'#superOrder0001********************hostname*****************#'>>0001hostname.log

hostname>>0001hostname.log


echo'#superOrder0002********************ifconfig*****************#'>>0002ifconfig.log

ifconfig>>0002ifconfig.log


echo'#superOrder0003********************uname-a*****************#'>>0003uname.log

uname-a>>0003uname.log


echo'#superOrder0004********************who-r*****************#'>>0004who_r.log

who-r>>0004Who_r.log


echo'#superOrder0005********************ifconfig-a*****************'>>0005ifconfig_a.log

ifconfig-a>>0005ifconfig_a.log


echo'#superOrder0006********************netstat-nr*****************'>>0006netstat_nr.log

netstat-nr>>0006netstat_nr.log


echo'#superOrder0007********************netstat-a*****************'>>0007netstat_a.log

netstat-a>>0007netstat_a.log


echo'#superOrder0008********************ps-ef*****************'>>0008ps_ef.log

ps-ef>>0008ps_ef.log

echo'#superOrder0009********************ls-l/etc*****************'>>0009etc_filelist.log

ls-l/etc>>0009etc_filelist.log


echo'#superOrder0010********************ls-l/etc/security*****************'>>0010etc_security.log

ls-l/etc/security>>0010etc_security.log


echo'#superOrder0011********************etc/hosts.equiv*****************'>>0011etc_hosts.equiv

cat/etc/hosts.equiv>>0011etc_hosts.equiv



echo'#superOrder0014********************df-h*****************'>>0014df_h.log

df-h>>0014df_h.log


echo'#superOrder0015********************cat/etc/inittab*****************'>>0015etc_inittab.log

cat/etc/inittab>>0015etc_inittab.log


echo'#superOrder0016********************cat/etc/rc.d/rc.sysinit*****************'>>0016etc_rcd_rc.sysinit.log

cat/etc/rc.d/rc.sysinit>>0016etc_rcd_rc.sysinit.log


echo'#superOrder0017********************cat/etc/rc.d/rc.local*****************'>>0017rcd_rc_local.log

cat/etc/rc.d/rc.local>>0017rcd_rc_local.log


echo'#superOrder0018********************ls-l/etc/rc.d/rc0.d*****************'>>0018rcd_rc0d.log

ls-l/etc/rc.d/rc0.d>>0018rcd_rc0d.log


echo'#superOrder0019********************ls-l/etc/rc.d/rc1.d*****************'>>0019rcd_rc1d.log

ls-l/etc/rc.d/rc1.d>>0019rcd_rc1d.log


echo'#superOrder0020********************ls-l/etc/rc.d/rc2.d*****************'>>0020rcd_rc2d.log

ls-l/etc/rc.d/rc2.d>>0020rcd_rc2d.log


echo'#superOrder0021********************ls-l/etc/rc.d/rc3.d*****************'>>0021rcd_rc3d.log

ls-l/etc/rc.d/rc3.d>>0021rcd_rc3d.log


echo'#superOrder0022********************ls-l/etc/rc.d/rc4.d*****************'>>0022rcd_rc4d.log

ls-l/etc/rc.d/rc4.d>>0022rcd_rc4d.log


echo'#superOrder0023********************ls-l/etc/rc.d/rc5.d*****************'>>0023rcd_rc5d.log

ls-l/etc/rc.d/rc5.d>>0023rcd_rc5d.log


echo'#superOrder0024********************ls-l/etc/rc.d/rc6.d*****************'>>0024rcd_rc6d.log

ls-l/etc/rc.d/rc6.d>>0024rcd_rc6d.log


echo'#superOrder0025********************cat/etc/fstab*****************'>>0025etc_fstab.log

cat/etc/fstab>>0025etc_fstab.log


echo'#superOrder0026********************cat/etc/profile*****************'>>0026etc_profile.log

cat/etc/profile>>0026etc_profile.log


echo'#superOrder0027********************cat/etc/environment*****************'>>0027etc_environment.log

cat/etc/environment>>0027etc_environment.log


echo'#superOrder0028********************printenv*****************'>>0028printenv.log

printenv>>0028printenv.log


echo'#superOrder0029********************cat/etc/syslog.conf*****************'>>0029etc_syslog_conf.log

cat/etc/syslog.conf>>0029etc_syslog_conf.log


echo'#superOrder0030********************ls-l/var/log*****************'>>0030var_log_list.log

ls-l/var/log>>0030var_log_list.log


echo'#superOrder0031********************crontab-l*****************'>>0031crontab_l.log

crontab-l>>0031crontab_l.log


echo'#superOrder0032********************at-l*****************'>>0032at_l.log

at-l>>0032at_l.log


echo'#superOrder0033********************cat/etc/passwd*****************'>>0033etc_passwd.log

cat/etc/passwd>>0033etc_passwd.log


echo'#superOrder0034********************cat/etc/shadow*****************'>>0034etc_shadow.log

cat/etc/shadow>>0034etc_shadow.log


echo'#superOrder0035********************cat/etc/group*****************'>>0035etc_group.log

cat/etc/group>>0035etc_group.log


echo'#superOrder0036********************cat/etc/pam.d/system-auth*****************'>>0036etc_pamd_system_auth.log

cat/etc/pam.d/system-auth>>0036etc_pamd_system_auth.log


echo'#superOrder0037********************cat/etc/login.defs*****************'>>0037etc_login_defs.log

cat/etc/login.defs>>0037etc_login_defs.log


echo'#superOrder0038********************cat/etc/ssh/sshd_config*****************'>>0038etc_ssh_sshd_config.log

cat/etc/ssh/sshd_config>>0038etc_ssh_sshd_config.log


echo'#superOrder0039********************cat/etc/logrotate.conf*****************'>>0039etc_logrotate_conf.log

cat/etc/logrotate.conf>>0039etc_logrotate_conf.log


echo'#superOrder0040********************chkconfig--list*****************'>>0040chkconfig_list.log

chkconfig--list>>0040chkconfig_list.log


echo'#superOrder0041********************cat/etc/security/limits.conf*****************'>>0041etc_security_limits_conf.log

cat/etc/security/limits.conf>>0041etc_security_limits_conf.log


echo'#superOrder0042********************cat/etc/hosts.allow*****************'>>0042etc_hosts_allow.log

cat/etc/hosts.allow>>0042etc_hosts_allow.log


echo'#superOrder0043********************cat/etc/hosts.deny*****************'>>0043etc_hosts_deny.log

cat/etc/hosts.deny>>0043etc_hosts_deny.log


echo'#superOrder0044********************cat/etc/snmp/snmpd.conf*****************'>>0044etc_snmp_snmpd_conf.log

cat/etc/snmp/snmpd.conf>>0044etc_snmp_snmpd_conf.log


echo'#superOrder0045********************service--status-all*****************'>>0045service_status.log

service--status-all>>0045service_status.log


cat *.log


cd../


dateInfo=`date+"%Y%m%d"`


tar -cvf linuxcheck$dateInfo.tar./syschecklog


但是實際操作時還是出現了一些小插曲。此腳本的結構是先在當前目錄下建立一個新的syschecklog目錄,然後進入此目錄,將45個檢查項的提示語和命令執行結果輸入到對應的文件中,最終會生成45個結果文件,然後在syschecklog的上一目錄中生成一個對syschecklog目錄的壓縮包。

出現的第一個問題是權限問題。遠端服務器的root用戶已配置高強度密碼,已密封不讓使用,另外設置了一個管理員叫sysroot。在用sysroot用戶登錄後,原本預想在根目錄下保存檢查結果,複製粘貼腳本內容運行,大批量的報錯無權限,然後依次換了/var/和/tmp/目錄都不行。說明管理員對sysroot用戶的可建立目錄的權限範圍限制的很死。最後只好在/home/sysroot/這一用戶自身的目錄下建立syschecklog目錄來保存檢查結果了。

接下來遇到了第二個問題腳本格式問題。腳本上傳到linux終端上去後,打開後複製粘貼運行後,只生成35個文件。其中編號第32到41的檢查結果沒生成,檢查腳本執行情況,發現命令被斷開執行了,自然會報錯。解決辦法是將編號第32到41的命令了重新執行一遍即可。

經測試腳本運行還存在另外一個問題是偶爾會出現tar包失敗的情況,解決方法是單獨執行tar包命令即可,tar -cvf linuxcheck1.tar./syschecklog

接下來是導出tar包到本地,因爲運維終端連接遠端服務器使用了ssh協議。故可使用scp命令進行遠程文件傳輸。格式是

scp遠端服務器用戶名@遠端服務器ip:/要複製文件的路徑/文件發送目的地的路徑,

scp [email protected]:/home/sysroot/linuxcheck1.tar /d8003/home/checklog

然後輸入sysroot用戶的密碼即可下載。

等批量檢查完近百臺服務器後,在終端上拷貝走所有tar包即可。


文章中以列出了針對風險評估的linux檢查的命令腳本。希望這個能對大家有用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章