您好,登錄后才能下訂單哦!
兼職安全半年了,分享一下我這里是如何做安全的,當然作為兼職,不是太深入,進攻參考。
下面介紹端口安全,主要是公司IDC機房所有ip段開放端口情況,比如一個服務器,默認僅要求開放ssh端口,但如果開啟了其他未允許端口,可能是被人誤開或者被***,這樣就需要運維提前知曉并解決。
如何實現:
1、 使用nmap+diff來對公司所有idc,進行端口掃描;
2、 當天的掃描結果與昨天掃描的結果進行對比;
3、 如果新增主機或已存在主機有新增與關閉端口的情況,也進行郵件通知。
結果展示:
1、 沒有差異的情況
2、有新增主機情況
3、已存在主機有新增或關閉端口情況
下面是端口安全掃描腳本內容:
#!/bin/bash #This script name is scan_analyse.sh . /etc/profile echo "start time is $(date)" time=$(date +"%Y-%m-%d") yesterday=`date -d "1 day ago " +"%Y-%m-%d"` work_dir="/root/nmap_scan" now_dir="$work_dir/scan_result/$time" IP='1.1.1.0/24' contact_mail='xx@mail.com' rm -rf $now_dir if [ ! -d "$work_dir/scan_result/$time" ];then mkdir -p $work_dir/scan_diff_result/$time fi rm -rf $work_dir/scan_diff_result/$time/result.log ip_32=`echo $IP|cut -d . -f 1-3` if [ ! -d $now_dir/$ip_32 ];then mkdir -p $now_dir/$ip_32 fi for i in {1..254} do nmap -sS -r -n $ip_32.$i |egrep -v "(Starting|scanned)"|egrep "(Nmap|open)" >$now_dir/$ip_32/$ip_32.$i if [ `cat $now_dir/$ip_32/$ip_32.$i|wc -l` -eq 1 ];then rm -rf $now_dir/$ip_32/$ip_32.$i fi done echo "stop time is $(date)" for b in $ip_32 do for i in $(ls $now_dir/$b) do if [ ! -f "$work_dir/scan_source/$b/$i" ];then echo "增加新主機 $i,下面是全部信息:">>$work_dir/scan_diff_result/$time/result.log if [ `cat $now_dir/$b/$i|wc -l` -gt 100 ];then echo "開啟了所有端口,懷疑是有nat或者負載均衡!">>$work_dir/scan_diff_result/$time/result.log else cat $now_dir/$b/$i>>$work_dir/scan_diff_result/$time/result.log fi else if [ `diff -u $now_dir/$b/$i $work_dir/scan_source/$b/$i|egrep -v "(\-\-\-|\+\+\+|@@)"|egrep "(Nmap|\-|\+)"|wc -l` -gt 100 ];then head -n 1 $now_dir/$b/$i>>$work_dir/scan_diff_result/$time/result.log echo "開啟了所有端口,懷疑是有nat或者負載均衡!">>$work_dir/scan_diff_result/$time/result.log else diff -u $now_dir/$b/$i $work_dir/scan_source/$b/$i|egrep -v "(\-\-\-|\+\+\+|@@)"|egrep "(Nmap|\-|\+)"|sed -e 's# Nmap scan report for#掃描主機#g'|sed -e 's#^+#關閉了 #g' -e 's#^-#開啟了 #g'>>$work_dir/scan_diff_result/$time/result.log fi fi done done if [ `cat $work_dir/scan_diff_result/$time/result.log|wc -l` -eq 0 ];then echo "今日一切正常,沒有變化的端口!"|mail -s "【$time】所有IDC機房差異端口掃描結果" $contact_mail else sed -i "1i 大家好: \n 下面是$time日所有IDC機房掃描新增主機或已有主機新增或關閉端口情況,請各項目負責人及時認領與確認.\n" $work_dir/scan_diff_result/$time/result.log cat $work_dir/scan_diff_result/$time/result.log|mail -s "【$time】所有IDC機房差異端口掃描結果" $contact_mail fi rm -rf $work_dir/scan_source/ cp -a $work_dir/scan_result/$time $work_dir/scan_source if [ $? -eq 0 ];then echo "運行完成,操作成功!" else echo "運行完成,操作失敗!" fi
請修改IP與contact_mail就可以
結構:
12:55:17 # tree /root/nmap_scan/ /root/nmap_scan/ |-- scan_diff_result #今天與昨天掃描對比結構 | `-- 2014-06-23 #當天的目錄 | `-- result.log #對比結果內容 |-- scan_result #存放今天掃描的結果 |-- scan_shell #存放掃描腳本 | `-- scan_analyse.sh #安全端口掃描腳本 `-- scan_source #昨天掃描結果,作為與今天對比的源 5 directories, 2 files
使用方法:
1、先運行此腳本
創建腳本目錄
mkdir -p /root/nmap_scan/scan_shell
然后把腳本放到此目錄里,這樣的目的是生成對比的源文件,以后的掃描都是跟這個源文件做對比。
2、使用crontab運行腳本
30 01 * * * /bin/bash /root/nmap_scan/scan_shell/scan_analyse.sh >>/tmp/scan.log 2 >&1
這樣就可以每天凌晨1:30運行腳本。
這樣只需要每天看郵件就能知道所有IDC機房里所有IP段,哪些主機有新增或者關閉端口,及時進行解決。
腳本在附件里,需要可以自行下載。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。