网络安全初探

linux系统扫描技术简单介绍

fping 主机扫描命令

  • 概述: 可以测试主机存活情况,相比ping,它可以批量主机扫描(同时ping多台机器),并行发送,结果易读
  • 安装:源码包方式安装,获取源码包(http://fping.org/), 然后./configure-make-make install三部曲安装
  • 参数使用:
    1.-a 只显示存活的主机(相反参数 -u)
    2.标准输入方式 fping + ip1 +ip2
    -g 支持主机段的方式 192.168.1.1 192.168.1.255
    3.通过读取一个文件中的ip内容 fping -f filename

hping 主机扫描命令

  • 概述: 支持使用的tcp/ip数据包组装(而fping和ping是通过icmp数据包),分析工具
  • 安装: 源码包方式安装(http://www.hping.org/), 然后./configure-make-make install三部曲方式安装
  • 参数使用 :
    1.对制定的目标端口发起tcp探测。-p 端口,-S 设置TCP模式SYN包
    2.伪造来源ip,模拟DDoS攻击。-a,伪造ip地址(如:hping -p 22 -S 10.10.163.233 -a 10.10.163.235)

traceroute 路由扫描

  • 作用: 查询一个主机到另一个主机的经过的跳数,即数据延迟情况
  • 参数使用:
    1.默认使用的是UDP协议(30000以上的端口)
    2.使用TCP协议 -T -p(最终能到达目标主机,如:traceroute -T -p 80 www.baidu.com)
    3.使用ICMP协议介绍 -I

nmap ncat 批量主机服务扫描

  • 目的: 1.批量主机存活扫描(和fping作用差不多)。 2.针对主机服务扫描
  • 作用:
    1.能方便快捷获取网络中的主机存活状态。
    2.更加细致,智能获取主机服务侦查情况

  • nmap
    1.概述:功能非常强大,常常作为黑客的工具,对端口的扫描在原理上或者是在命令上都是用的nmap这个工具
    2.使用介绍:

扫描类型描述特点命令举例及说明
ICMP协议类型(-sP)ping扫描简单,快捷,有效nmap -sP 10.10.163.0/24 (扫描主机存活状态)
TCP SYN扫描(-sS)TCP半开放扫描高效,不易被检测,通用nmap -sS [-p 0-30000] 10.10.163.233 (扫描主机开启的服务,[]中的为可选参数,表示扫描端口范围)
TCP connect(-sT)扫描TCP全开放扫描真实,结果可靠nmap -sT [-p 0-30000] 10.10.163.233 (建立tcp全握手,时间相对较长)
UDP扫描(-sU)UDP协议扫描有效透过防火墙策略nmap -sU 10.10.163.233 (有些网络系统管理员忽略掉UPD协议的扫描,所以用UDP有时候过更加可以扫描出一些想要的结果,但在Linux系统下UDP的响应时间会很慢,耗时很长)

- ncat

1.概述:被称为“瑞士军刀”,杀伤力极其厉害
2.使用介绍:
组合参数:-w设置的超时时间, -z一个输入输出模式 ,-v系那是命令执行过程
方式一,基于TCP协议(默认),如:nc -v -z -w2 10.10.163.233 1-50(1-50表示扫描的 端口范围)
方式二,基于UDP协议-u,r如:nc -v -u -z -w2 10.10.163.233 1-50

常见的网络攻击及防范策略

DDoS攻击

  • 简介:分布式拒绝服务攻击,就是正常的服务在同一时间接受到了很多个类似于正常的请求,有可能是完全正常的请求,但大部分是恶意的请求,消耗系统资源,导致服务响应不过来。分布式是指有很多个访问过来,是分布式的,是海量的。拒绝服务是指服务器响应不过来,无法接收和回应正常的访问。
  • 攻击手段
    1.SYN攻击:主要通过向目标主机发送大量伪造ip和源端口的SYN包,导致主机资源被耗尽或者忙于发送回应包而造成拒绝服务
    2.TCP全连接攻击:这种攻击是为了绕过常规防火墙而设计的,攻击就是通过不断地与受害服务器建立大量的TCP连接,知道服务器内存等资源被耗尽,无法提供正常的服务
    3.刷script脚本攻击:主要针对ASP,PHP,JSP等CGI脚本程序,通过与服务器建立正常的TCP连接,不断向脚本程序提交查询,列表等大量消耗数据库资源的调用,从而达到消耗服务器系统资源的目的
  • 防御基础
    1.采用高性能的网络设备引
    2.尽量避免NAT的使用
    3.充足网络带宽保证
    4.升级主机服务器的硬件
    5.尽量把网站做成静态页面
  • 针对上面SYN攻击类型的DDoS攻击做详细介绍及在服务器Linux系统下相应的防范措施
    tcp的三次握手:攻击机器(ip1)会发送一个SYN包给目标服务器(ip2),这是第一次握手。在目标服务器接收到这个包以后会向ip1回一个SYN包+ACK包,完成第二次握手,此时目标机器会进入一个SYN RECV的状态,等待…….。在linux系统下有一个backlog队列,是一个缓冲区,在进行第二次握手时,它会向backlog中增加缓冲记录,增加记录的目的是什么呢?ip2一直在等待ip1机器回ACK包过来,当这台ip1机器把ACK包过来时,它才把backlog队列中增加的记录删除,这个时候双方都进入一个监听的状态,开始正常的数据通讯,三次握手就完成了
    SYN攻击:以上是正常的tcp协议,而SYN攻击则是利用tcp协议的缺陷,那他们的区别在哪里呢?首先攻击的机器(ip1)发送SYN包过来,这是没有问题的,属于正常的第一次握手。然后目标机器(ip2)向攻击机器回SYN包ACK包,然而那个攻击机器的地址是一个不存在的地址,那什么时候目标机器(ip2)会向一个不存在的地址回包呢?那是因为攻击的机器伪造了原ip地址,(上面所介绍的hping加一个-a参数就可以伪造ip地址)。这样向一个不存在的地址回包,就肯定得不到第三次请求。下面来介绍一下其影响,首先目标机器会一直向backlog队列中写状态,如果攻击的机器有很多,就会把队列写满,无法再通讯啦,第二个,由于找不到原ip,目标服务器会频繁的重试发送,一重试发送就会导致目标服务器处于等待状态,加入攻击的机器非常多的话就会导致目标服务器长时间的处于延机状态,导致系统资源用完。服务器一直回包的话也会造成网络带宽跑满。
    防御:针对以上SYN攻击造成的问题给出相应的办法。
    1.减少发送SYN+ACK包的重复次数
    styctl -w net.ipv4.tcp_synack_retries=3
    sysctl -w net.ipv4.tcp_syn_retries=3
    以上两行命令是临时性的修改,如果要长期性改变,就要修改相关的配置文件
    2.SYN cookies技术,不建立第三次握手,不做等待了
    sysctl -w net.ipv4.tcp_syncookies=1
    3.增加backlog队列
    sysctl -w net.ipv4.tcp_max_syn_back=2048( 默认是512)

IP欺骗

  • 简介:上面的SYN类型的DDOS攻击中已经提到了ip欺骗,ip欺骗攻击是一种黑客通过向服务端发送虚假的包以欺骗服务器的做法。具体说,就是将包中的源IP地址设置为不存在或不合法的值(hping可以实现)。服务器一旦接受到该包便会返回接受请求包,但实际上这个包永远返回不到来源处的计算机。这种做法使服务器必需开启自己的监听端口不断等待,也就浪费了系统各方面的资源。
  • 防范:一方面需要目标设备采取更强有力的认证措施,不仅仅根据源IP就信任来访者,更多的需要强口令等认证手段;另一方面采用健壮的交互协议以提高伪装源IP的门槛。

中间人攻击

  • 简介:就是通过拦截正常的网络通讯数据,进行数据的篡改和嗅探,但是通信书双方却毫不知情
    攻击方式及其防御:
  • 基于监听的信息窃取
    在同一个冲突域的局域网中,攻击者只要把网卡设为混杂模式,就可以监听网络中的一些流量,通过一些攻击软件如Wireshark,zANTI等可以过滤出密码等敏感信息,实现攻击。由于很多协议都是以明文来进行传输的,如http,ftp 等,一旦数据被监听,就会造成很大的影响。这种攻击通过集线器连接的以太网络或是以太网线路中被恶意物理接入集线器及监听节点,防御方法就是确保物理连接不被改动,不存在第三方的节点
  • 基于监听的身份仿冒
    介绍一下典型的http cookie攻击:网站用户在访问网站前常常需要输入用户名与密码。网站会为通过验证的登录用户建立会话,一般会用Cookie(网站储存在用户本地浏览器上的数据,并在每次访问时提交给网站)保持对会话以确认访问者的身份及登陆状态,并根据身份及登录状态为访问者设置访问网站资源的权限。当会话结束时,登陆信息就会被清除,但Cookie可能不会马上失效。访问者在浏览网站过程中通常没有意识到这种会话的存在,但它发生在每一次的链接点击过程中,是网站中最常见的会话形式。如果能够获取用于维持浏览器和登陆网站间会话状态的Cookie,攻击者可以模拟真实用户的访问,将窃取的Cookie发给网站服务器,这样就能冒充合法的会话连接获得在网站资源的相应权限。攻击者一旦通过窃取Cookie完成对网站服务器的会话欺骗,受害者在网站上的个人数据将被任意查看和修改,受害者的帐号也可能被用于基于社交网络的攻击与诈骗。防御办法是服务器端把Cookie的有效时间设置为较短时间,以使已经结束会话的缓存状态尽快失效,作为Web用户,在登录后结束浏览时,应该使用退出功能明确通知服务器会话已经结束,使Cookie立即失效
  • 基于中间代理的中间人攻击
    ARP欺骗:欺骗主要有仿冒网关或仿冒用户两类,由于子网内的主机与外网通信均需要经过网关,仿冒网关的攻击较为常见。攻击主机仿冒网关向主机发送了伪造的网关ARP报文,导致主机的ARP表中记录了错误的网关地址映射关系,正常的数据从而不能被网关接收。主机原本通过网关发送到外网的所有数据报文都按照接收到的错误ARP表项发送到了攻击者控制的主机,此时攻击主机可以把主机的报文解析修改后转发给网关,并在后续将网关转回的外网回应报文解析修改后转发给主机。防御办法是通过主机ARP防护软件或交换机、路由器对ARP进行过滤及安全确认
    DNS欺骗:是攻击者冒充域名服务器让目标主机把域名转换成错误ip的一种欺骗行为,让受害主机把通过域名查询到的ip地址设为攻击者所控制的主机ip地址,这样用户通过域名连接到的目标服务器就被替换成了攻击者的机器。它经常与钓鱼网站相配合,如将用户对网银主页的访问重定向到钓鱼网站,骗取重要的信息

sql注入

  • 简介:sql注入是利用网站程序设计的缺陷(即代码编写的漏洞),通过精心设计的sql语句,插入到网站代码中,达到窃取数据库信息,或修改破坏数据库的目的
  • 防范:对用户输入的url和表单信息进行长度检测,拦截非法的的输入,例如有些网站在文件上传时设置并没有设置后缀名格式,那么有些非法用户就会上传以写如.php , .jsp , .asp 等文件对网站成破坏,所以要开启相应的拦截功能,拦截非法的url。设置sql注入防范规则,永远不要相信用户的输入,要对用户的输入进行过滤,根据实际的需要对输入的内容进行新增,修改,删除

xss攻击
- 简介:跨站脚本攻击,它类似于上面所说的sql注入攻击,在攻击之前,先找到一个有漏洞的网站,理论上所有可以输入数据的地方,都会存在xss漏洞。攻击者向有漏洞的网站的传入恶意的代码,当用户浏览该网站时,该段恶意代码就会被执行,达到攻击者的目的,如盗取cookie,破坏网站页面,重定向到其他钓鱼网站等
- 防范
1.对用户输入数据进行过滤,验证,包括对url,http头,post数据等,仅仅接受制定长度范围内,采用适当格式,采用所预期的内容提交,对其他的字符一律过滤
2.实现session标记,http引用头检查,以防止被第三方网站执行
3.确认接收到的内容被妥善的规范化,去掉任何远程内容的引用,特别是Javascript,仅保留只小的最安全的信息

跨站请求(csrf)

  • 介绍:跨站请求看起来和跨站脚本攻击(xss)有些相似,但在原理上却不相同,xss是利用站内信任的用户,而csrf则通过伪装来自受信任的用户的请求来利用受信任的网站。其原理:假设用户浏览器为C,信任的网站(正常的合法网站)为A,攻击者设置的而已网站为B。1.用户登录到信任网站A 2.网站A通过对C的验证,并在C处生cookie 3.用户在没有登出A的情况下访问恶意网站B 4.B要求访问第三方站点A,发出一个请求 5.根据B在4中的请求,浏览器带着2产生的cookie访问A 6.由于5中发出的请求是带者cookie的所以A会根据用户的权限处理5的请求,这样B就达到了模拟用户操作的目的
    这里写图片描述
    防御(服务器端)
    1.验证http来源地址(Referer)
    2.在请求地址中添加token并验证
    3.在http头中自定义属性并验证

用iptables建立一套强大的安全防护盾**

关于:是常见的Linux的系统下的应用层防火墙工具
iptables的组成和规则
1.netfilter和iptables:netfilter是Linux系统核心层内部的一个数据包处理模块。iptables和netfilter的关系:iptables是一个命令,它实际上是通过调用netfilter模块进行工作的
2.iptables的规则组成:组成部分是四张表 + 五条链 + 规则。四张表:filter表(常用),nat表(常用),mangle表,raw表。五条链:INPUT OUPUT FORWARD PREROUTING POSTROUTING.filter表:访问控制和规则匹配,nat表:地址转发。数据包在这四张表和五条链中的流向这里不做介绍。
iptables规则如下:

  • 数据包的访问控制:ACCEPT(接收数据包,允许通过),DROP(将数据包丢弃,不会给客户端返回消息),REJECT(拒绝,但回去给客户端返回消息)
  • 数据修改:SNAT(发起端的地址改写),DNAT(目标地址的改写)
  • 信息记录:LOG(记录访问的情况)
  • iptables命令组成如下表
tablecommandchainParameter&Xmatchtargetexample
iptables-t filter/nat-A(新追加一个规则,加在后面) -D(删除) -L(显示当前规则的情况) -F(清除现有的规则) -P -I(在前面上加入一个规则) -R -nINPUT FORWARD OUTPUT PREROUTING POSTROUTING-p(协议tcp等) -s(发起地址) -d(目标地址) –sport(发起端口) –dport(目标端口) –dports(目标端口段) -m(信息补充)-j(规则ACCEPT,DROP,REJECT,DNAT,SNAT)

iptables防攻击

  • iptables防CC攻击
    1.connlimit模块
    作用:用于限制每一个客户端ip并发连接数
    参数:-connlimit-above n #限制并发个数
    如:iptables -I INPUT -p tcp –syn –dport 80 -m connlimit -connlimit-above 100 -j REJECT
    该条命令的意思:限制并发个数为100个,超过100个的就拒绝
    2.limit模块
    作用:限速,控制流量
    如:iptables -A INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT
    该条命令的表达的意思:数据包在10个内是放行的,超过了10个就只允许每分钟一个数据包通过(可用ping测试)
    –limit-brust 默认值是10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值