先谢慕课网
/**
* 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后续)
*/

Linux_09------Linux上系统扫描和安全策略的更多相关文章

  1. linux上如何安装postgresql

    安装对应的postgresql的yum源 rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64 ...

  2. Linux系统扫描技术及安全防范

    1.概述 一.主机扫描 二.路由扫描 三.批量服务扫描 四.linux防范恶意扫描安全策略 一个典型的网络安全事件 ·案例:通过网络扫描方式获取某运营商核心设备管理权限 step01:通过tracer ...

  3. 安卓手持智能POS端上能扫描开单的软件-店面销售开单系统

    安卓移动POS终端上能扫描开单的软件: 一.登录验证,以业务员.密码登录: 二.订单列表,显示相关信息,包括日期.单据号.客户名.金额.单据状态.有新增订单及按特定条件查询订单的功能(日期.客户等). ...

  4. Linux Centos 系统上安装BT客户端 Transmission

    Linux Centos 系统上安装BT客户端 Transmission   Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面,以MIT许可证和G ...

  5. 如何在 Linux 上复制文件/文件夹到远程系统?

    从一个服务器复制文件到另一个服务器,或者从本地到远程复制是 Linux 管理员的日常任务之一. 我觉得不会有人不同意,因为无论在哪里这都是你的日常操作之一.有很多办法都能处理这个任务,我们试着加以概括 ...

  6. Linux CentOS系统上安装Eclipse

    Linux CentOS系统上安装Eclipse 1. 下载Eclipse软件 下载网址:http://www.eclipse.org/downloads/packages/release/Juno/ ...

  7. sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用

    12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...

  8. [apue] Linux / Windows 系统上只能建立不超过 PATH_MAX / MAX_PATH 长度的路径吗?

    问题的提出 在处理文件系统路径的时候,我们一般会先开辟一块内存区,用来接收路径.或者拼接好路径传递给系统调用.这是因为路径在各个系统上都有最大长度限制,在 Windows 上这个值是 MAX_PATH ...

  9. 如何在 Windows 和 Linux 上确定系统使用的是 MBR 分区还是 GPT 分区详细步骤!!!

    在 Windows 上检查系统使用的是 MBR 分区还是 GPT 分区 点击放大镜搜索输入disk 点击打开 进入之后,右键点击你想要检查分区方案的磁盘,在右键菜单里选择属性! 在属性窗口,切换到卷, ...

随机推荐

  1. crontab 移动日志-超越昨天的自己系列(12)

    linux上定时执行某些脚本是管理服务器的时候比较常用的场景,比如定时检查进程是否存在,定时启动或关闭进程,定时检查日志删除日志等. 当我打开google百度crontab时长篇大论的一大堆,详细解释 ...

  2. Centos Python2 升级到Python3

    1. 从Python官网到获取Python3的包, 切换到目录/usr/local/src #wget https://www.python.org/ftp/python/3.5.1/Python-3 ...

  3. Hive 实战(2)--hive分区分桶实战

    前言: 互联网应用, 当Mysql单机遇到性能瓶颈时, 往往采用的优化策略是分库分表. 由于互联网应用普遍的弱事务性, 这种优化效果非常的显著.而Hive作为数据仓库, 当数据量达到一定数量时, 查询 ...

  4. python学习笔记 ——python写的猜数字游戏 002

    from sys import exit import random def Arrfor(str): #CONTST = CONTST + 1 artificial = input("请输 ...

  5. LeetCode 【190. Reverse Bits】

    Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...

  6. LeetCode【169. Majority Element】

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  7. 2016HUAS_ACM暑假集训2E - I Hate It

    又是一个线段树的应用,不过跟上一题(D-排兵布阵)不同的是,这次是求某段区间上的最值,而不是某段区间和.当然,数据更新是必须的.D题注释已经很详细了,所以这题注释少点. 大致题意:给你N个已经排好的学 ...

  8. spring 3 mvc hello world + mavern +jetty

    Spring 3 MVC hello world example By mkyong | August 2, 2011 | Updated : June 15, 2015 In this tutori ...

  9. PageRank与TrustRank影响因素分析

    PageRank(PR)里的page不是指网页,而是指Google创始人拉里?佩奇(Larry Page),是他在2001年申请的专利中以自己名字命名的,Google的PageRank根据网站的外部链 ...

  10. Node.js知识点

    1. 入口文件app.js里的路由,按顺序执行: 2.