内容提要:
一、主机扫描
二、路由扫描
三、批量服务扫描
四、linux下防范恶意扫描安全策略
背景:
Q:什么事互联网安全?
保障数据在网络的真实、可靠、完整、可控性传输和存储。
Q:什么是网络安全技术?
安全技术是一种手段,通过网络的入侵来达到窃取敏感信息的目的
主要通过网络扫描、踩点、系统服务扫描等手段。
一、主机扫描
1、主机扫描命令fping
Linux下有很多强大网络扫描工具,网络扫描工具可以分为:主机扫描、主机服务扫描、路由扫描等。
fping是一个主机扫描工具,相比于ping工具可以批量扫描主机。
fping官方网站:http://fping.org/
作用:批量给目标主机发送ping请求,测试主机的存活情况
特点:并行发送、结果易读
fping的安装之源码安装
访问fping的官方网站,获取源代码地址:
编译源码包的一般过程:
编译及安装命令:
1 [root@mail /]#wget http://fping.org/dist/fping-3.10.tar.gz
2 [root@mail /]#tar -xvf fping-3.10.tar.gz
3 [root@mail /]#cd fping
4 [root@mail /fping/]#./configure
5 [root@mail /fping/]#make
6 [root@mail /fping/]#make install
通过以上命令,fping就安装到了/usr/local/sbin/fping。
fping常用参数介绍
一、命令参数man,-h获取帮助信息
前者为获取详细帮助文档,而后者为获取简单的使用说明,根据需要进行选择
二、参数介绍
-a 只显示存活的主机(与-u参数含义相反)
1、通过标准输入方式fping +IP1+IP2
-g 支持主机段的方式192.168.1.1 192.168.1.255(192.168.1.0/24)
2、通过一个文件读取IP地址内容
fpig -f filename
2、主机扫描工具hping
特点:支持使用TCP/IP数据包组装、分析工具
hping的安装之源码安装
1、下载并解压源代码
1 [root@yujd /]# wget https://github.com/antirez/hping/archive/master.zip 2 [root@yujd /]ls 3 [root@yujd /]file master 4 [root@yujd /]unzip master
2、安装依赖
[root@yujd /]#apt-get install libpcap-devel
libpcap-devel安装之rpm包安装方式
rpm查找下载网站:rpmfind.net
查找并下载libpcap-devel-1.0.0-6.20091201git117cb5.e16.x86_84.rpm
安装rpm包:
1 [root@yujd /]#rpm -ivfh libpcap-devel-1.0.0-6.20091201git117cb5.e16.x86_84.rpm 2 [root@yujd /]#./hping3 -v 3 [root@yujd /]#make install
如果之前安装过会报错,解决方法是:
Hping常用参数:
一、对特定的TCP端口发起探测
-p 设置端口
-S 设置TCPSYN包
二、伪造来源IP,模拟DDos攻击
-a 伪造IP地址
查看本机TCP连接状态
[root@yujd /]#netstat -ltn
二、路由扫描
作用:查询一个主机到另一个主机经过的路由跳数、及数据延迟情况。
常用工具:traceroute、mtr
mtr特点:能测试出主机到每一个路由器间的连通性
1、路由扫描工具之traceroute
原理简介:
1 [root@yujd /]#apt-get install traceroute
traceroute参数介绍
1、默认使用的是UDP协议(30000以上的端口)
2、使用TCP协议 -T -p
3、使用ICMP协议 -I
应用案例1
应用案例2
2、路由扫描工具之mtr
软件简介
Mtr是 Linux中有一个非常棒的网络连通性判断工具,它结合了ping,traceroute,nslookup 的相关特性。非常好用的一个工具。
一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr。
mtr在某些方面比traceroute更好用,它可以实时显示经过的每一跳路由的信息,并不断进行探测。
traceroute默认使用UDP数据包探测,而mtr默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况。
实现原理
Mtr combines the functionality of the traceroute and ping programs in a single network diagnostic tool.
As mtr starts, it investigates the network connection between the host mtr runs on and HOSTNAME. by sending packets with purposely low TTLs. It continues to send packets with low TTL, noting the response time of the intervening routers. This allows mtr to print the response per-centage and response times of the internet route to HOSTNAME.A sudden increase in packet loss or response time is often an indication of a bad (or simply overloaded) link.
The results are usually reported as round-trip-response times in miliseconds and the percentage of packet loss.
软件安装
apt-get install mtr –y[yum install mtr -y]
当前版本:
mtr 0.85
使用说明
各主要参数解释如下:
--report 追踪结果以报告模式输出
--report-cycles=COUNT 定义追踪的次数,默认为16
--raw 使结果以原始格式输出
--split 将每次追踪的结果分别列出来,不像--report一样,统计整个结果
--no-dns 只显示ip地址,不解析ip地址对应的主机名
--psize=bytes/-s bytes 定义数据包的大小,单位是字节
示例:
mtr –o “LSD NBAW” 8.8.8.8
参数说明
1、用来指定ICMP数据包的大小为BYTES
mtr –s BYTES
2、指定发送数据包的个数为COUNT,默认每秒发送1个
mtr –c COUNT
3、不对IP地址做域名解析
mtr –n no-dns
3、使用这个参数来设置ICMP发送间隔,默认是1秒
mtr –i SECONDS
案例一:mtr可以做路由图供我们分析哪里出现故障或者是否存在有网络拥塞的情况
在实时监测中,如果发现丢失率和时延的陡增说明网络环境的急剧恶化。
案例二:使用命令测试到google DNS的连通性
说明:
第一列:显示的是IP地址和本机域名,
第二列:snt:10 设置每秒发送数据包的数量,默认值是10 可以通过参数 -c来指定。其中-c的说明是:–report-cycles COUNT
第三列:是显示的每个对应IP的丢包率
第四列:显示的最近一次的返回时延
第五列:是平均值 这个应该是发送ping包的平均时延
第六列:是最好或者说时延最短的
第七列:是最差或者说时延最长的
第八列:是标准偏差
案例二:发送5个包,生成报告
mtr --report –c 5 –n 192.168.1.114
案例三:生成测试报告
测试1:使用ICMP
使用默认的ICMP ECHO,发现到达第五个路由的时候,ICMP全部挂了……
测试2:使用UDP
改用UDP方式,就可以直达到百度主的IP:119.75.218.70
换一个京东试试看:
依然能够完美运行,只不过这次经过的路由器跳数多了一点。
测试3:使用TCP
先测试百度,效果很UDP的方式相差无几。这里需要注意到的是,这里使用的是TCP发送的SYN包,里面不包含有任何的数据。
最后,再次测试一下京东,同样是经过17跳才到达,在不可识别的IP位置包几乎全部丢失了……
案例四:使用图形管理工具实时监测:
mtr 8.8.8.8
在图形化用户管理窗口中,Hostname可以设置主机IP,选择框可以设置发送的时间间隔,进而可以实时的查看网络包的发送情况。
三、批量主机服务扫描
目的:
1、批量主机存活扫描
2、针对主机服务扫描
作用:
1、能更加方便快捷地获取网络中主机的存活情况
2、更加细致、智能获取主机服务侦查情况
典型命令:nmap、ncat
1、批量主机服务扫描命令之nmap
安装:获取rpm:
1 [root@yujd /]#nmap -sP 192.168.1.0/24 2 [root@yujd /]#netstat -ltpn //探测本地主机的TCP端口使用情况 3 [root@yujd /]#nmap -sS 192.168.1.114 //探测远程的某台主机的TCP端口使用情况,默认是1024以下端口以及以上的部分常用端口,如HTTP 8000 4 [root@yujd /]#nmap -sS -p 0-30000 192.168.1.114 5 [root@yujd /]#nmap -sT -p 0-30000 192.168.1.114 6 [root@yujd /]#nmap -sU 192.168.1.114
2、批量主机服务扫描命令之ncat
组合参数:
-w 设置超时时间
-z 一个输入输出模式
-v 显示命令的详细执行过程
预防策略
常见攻击方式:
1、SYN攻击
2、DDOS攻击
3、恶意扫描
1、SYN攻击介绍
TCP三次握手
SYN攻击原理
SYN攻击基本原理:
伪造源IP hping -h
目标机器将一直往backlog里面添加记录
导致出现的问题:
1、backlog队列溢出
2、目的主机一直处于回包等待的状态,系统资源耗尽,系统导致无法响应正常请求,造成延机
3、网络带宽跑满
解决问题的基本思路:
1、适当增加backlog队列的长度——默认512,设置到2048
2、将目标机器重试的次数减少——默认为5
3、不进行第三次握手,直接进行数据通信——SYN cookie ,利用一些Hash的算法,不再进行等待了