首页 > 技术文章 > Linux_09------Linux上系统扫描和安全策略

eis13 2016-09-09 12:04 原文

先谢慕课网
/**
* linux系统扫描技术
*
* 主机扫描、路由扫描、批量服务扫描、系统安全策略(防SYN和ddos攻击)
*/

/**
* 主机扫描
* ping fping hping
*
* fping
* fping安装
* 下载:
* (mkdir /Services && cd /Services)
* wgget http://www.fping.org/dist/fping-3.13.tar.gz
* 解压:
* tar -zxvf ./fping-3.13.tar.gz
* 安装:
* cd fping-3.13
* ./configure
* make
* make install
*
* fping参数
* -h
* -a 只显示出存活的主机
* -u 只显示出不存活的主机
* -g 支持主机段的方式
* -f 支持文件的方式
*
* fping +IP1 + IP2
* fping -g 192.168.1.1 192.168.1.255
* fping -g 192.168.1.1/24
* fping -f filename
* fping -a -g 120.77.140.1 120.77.140.10 > alive.log
*
*
* hping
* icmp包被屏蔽时,用hping,支持TCP/IP数据包组装
* hping安装
* 下载:
* wget https://github.com/antirez/hping/archive/master.zip
* 解压:
* unzip master.zip
* 安装:
* error: pcap.h: No such file or directory ->需要依赖包(pcap)
* yum list |grep pcap
* yum -y install "*pcap*"
* error: net/bpf.h: No such file or directory->找不到bpf.h
* find / -name bpf.h
* ln -sf /usr/include/pcap/bpf.h /usr/include/net/bpf.h
* /usr/bin/ld: cannot find -ltcl->需要安装ltcl
* yum list |grep tcl
* yum -y install "*tcl*"
* ./configure
* make
* make strip
* make install
*
* hping参数
* 对特定目标发起tcp探测
* -p 端口 探测目标主机的端口
* -S 设置TCP模式 SYN包
* -a 伪造ip 伪造来源IP,模拟ddos攻击
*
* hping -p 22 -S 121.43.156.66
* ping 121.43.156.33
* 可以ping通,
* 连接上121.43.156.66:sysctl -w net.ipv4.icmp_echo_ignore_all=1 禁ping
* 再次通过hping和ping发现ping不通了但是hping还是可以通的。
*
* 在121.43.156.66上通过tcpdump -np -ieth1 src host 120.76.140.88抓取120.76.140.88发送过来的包
* hping -p 22 -S 121.43.156.66 -a 121.76.140.88
*/

/**
* 路由扫描
* 查询一个主机到另一个主机经过的路由跳数,及数据延迟情况
* tracert ntr
* mtr能测试出一个主机到每一个路由间的连通性
*
* tracerout
* 默认已经安装的
* 1.默认使用的是UDP协议(30000以上的读研口)
* 2.使用TCP协议 -T -P
* 3.使用ICMP协议 -I
*
* traceroute www.baidu.com
* traceroute -n www.baidu.com
* traceroute -T -p 80 -n www.baidu.com
*
* mtr
* 默认已经安装
* mtr www.baidu.com
* loss项
*
* 查看路由跳数,丢包情况。
*/

/**
* 批量主机服务扫描
* 目的:批量主机存活扫描、针对主机服务扫描
* 能快捷获取网络中主机的存活状态
* 更加细致、只能获取主机服务侦查情况
* nmap ncat
*
* nmap
* -P ICMP协议类型 ping扫描
* -sS TCP SYN扫描 TCP半开放扫描
* -sT TCP connect()扫描 TCP全开放扫描
* -sU UDP扫描 UDP协议扫描
*
* nmap -sP 120.76.140.1/24 主机段扫描,查看存活的主机
* name -sS 120.76.140.1/24 没有建立三次握手,只发送SYN包
*
* nmap -sS 121.43.156.66 查看主机开启的端口(通常扫描到1024及常用端口)
* nmap -sS -p 0-30000 121.43.156.66 指定扫描端口范围
*
* nmap -sT -p 0-30000 121.43.156.66 建立全握手,模拟真实的用户请求
*
* nmap -sU 121.43.156.66 有效透过防火墙,但是比较慢
*
* ncat
* 安全测试的工具
* -w 设置超时时间
* -z 一个输入输出模式
* -v 显示命令执行过程
*
* * yum -y install nc
* 方式一、基于tcp协议(默认)
* nc -v -z -w2 121.43.156.66 1-50
* 方式二、基于udp协议-u
* nc -v -u -z -w2 121.43.156.66 1-50->要等待很久
*/

/**
* 预防策略
* 常见的攻击方法:SYN攻击、DDOS攻击、恶意扫描
*
* SYN攻击:
* 利用TCP协议缺陷,导致系统服务停止,网络带宽跑满或者响应缓慢
* 攻击的机器伪造一个源IP(hping -a),目标机器回应给伪造IP,增加记录到backlog,但是目标机器无法获得第三次响应,
* 会不断重试,一直处于等待,backlog无法删除,导致带宽跑满等问题。
* 1.增加backlog队列长度
* 2.调节重试的次数
* 3.拒绝第三次握手
* DDOS攻击:
* 分布式访问拒绝服务(多个访问,海量访问导致服务响应不过来)
*
* (永久生效需要修改/etc/sysctl.config文件,减少到3次)
* 方式一:减少发送syn+ack包时的重试次数
* sysctl -w net.ipv4.tcp_synack_retries=3
* sysctl -w net.ipv4.tcp_syn_retries=3
* 方式二:SYN cookies技术
* sysctl -w net.ipv4.tcp_syncookies=1
* 方式三:增加backlog队列长度
* sysctl -w net.ipv4.tcp_max_syn_backlog=2048
* 这个值和内存有关。
*
* 其他预防策略
* 1.关闭icmp协议请求
* sysctl -w net.ipv4.icmp_echo_ignore_all=1
* 2.通过iptables方式拒绝扫描
* iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT
* iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT
* iptables -A FORWARD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT
* (iptables后续)
*/

推荐阅读