端口安全扫描脚下本,端口安全扫描脚下下面介绍端口安全,主
端口安全扫描脚下本,端口安全扫描脚下下面介绍端口安全,主
兼职安全半年了,分享一下我这里是如何做安全的,当然作为兼职,不是太深入,进攻参考。
下面介绍端口安全,主要是公司IDC机房所有ip段开放端口情况,比如一个服务器,默认仅要求开放ssh端口,但如果开启了其他未允许端口,可能是被人误开或者被入侵,这样就需要运维提前知晓并解决。
如何实现:
1、使用nmap+diff来对公司所有idc,进行端口扫描;
2、当天的扫描结果与昨天扫描的结果进行对比;
3、如果新增主机或已存在主机有新增与关闭端口的情况,也进行邮件通知。
结果展示:
1、没有差异的情况
2、有新增主机情况
3、已存在主机有新增或关闭端口情况
下面是端口安全扫描脚本内容:
#!/bin/bash
#Thisscriptnameisscan_analyse.sh
./etc/profile
echo"starttimeis$(date)"
time=$(date+"%Y-%m-%d")
yesterday=`date-d"1dayago"+"%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.-f1-3`
if[!-d$now_dir/$ip_32];then
mkdir-p$now_dir/$ip_32
fi
foriin{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`-eq1];then
rm-rf$now_dir/$ip_32/$ip_32.$i
fi
done
echo"stoptimeis$(date)"
forbin$ip_32
do
foriin$(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`-gt100];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`-gt100];then
head-n1$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#Nmapscanreportfor#扫描主机#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`-eq0];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[$?-eq0];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#昨天扫描结果,作为与今天对比的源
5directories,2files
使用方法:
1、先运行此脚本
创建脚本目录
mkdir-p/root/nmap_scan/scan_shell
然后把脚本放到此目录里,这样的目的是生成对比的源文件,以后的扫描都是跟这个源文件做对比。
2、使用crontab运行脚本
3001***/bin/bash/root/nmap_scan/scan_shell/scan_analyse.sh>>/tmp/scan.log2>&1
这样就可以每天凌晨1:30运行脚本。
这样只需要每天看邮件就能知道所有IDC机房里所有IP段,哪些主机有新增或者关闭端口,及时进行解决。
脚本在附件里,需要可以自行下载。
本文出自 “吟—技术交流” 博客,请务必保留此出处http://dl528888.blog.51cto.com/2382721/1429685
评论暂时关闭