zoukankan      html  css  js  c++  java
  • 当网卡收到一个包的目的地址是本主机其他接口的IP时.2

    arp包进入主机后要经过的过滤是:rp_filter

    rp_filter会过滤网段

    所以说不要在进行arp_ignore测试的时候把rp_filter设置成2, 此时就不会对源地址进行路由的检查了

    然后进行试验

    1) 设置arp_ignore = 1,此时网卡会会返回一个arp的回应信息;【注意,这里由于ICMP报文没有回应,所以从ping的角度看仍然是没有反应,可以直接看wireshark的结果】

    2) 设置arp_ignore = 2,此时网卡不会回应;

     这里的rp_filter是啥,为什么会有这么举足轻重的位置?

    rp_filter是说内核是否开启对数据包源地址的校验;

     说起来就是进行反向路径检查,如果没有反向路径的检查,即从本网卡能不能到目标的ip;

    rp_filter可以设置三个值

    0的话是不做任何的校验,这样应该安全通过才对呀,为啥还会被block住呢

    1是进行严格的检查,即最后的路径就是我收到的接口;

    2是进行松散的检查,这个源IP地址可以从本地路由出去;

    按理说设置成0和2不就是最安全的了么,现在来看设置成2是很安全的,但是设置成1直接丢包了,设置成0,我理解是不做任何的校验了,为啥也不行呢?

    别用systemTap抓了:

    Current recommended practice in RFC3704 is to enable strict mode
    	to prevent IP spoofing from DDos attacks. If using asymmetric routing
    	or other complicated routing, then loose mode is recommended.
    
    	The max value from conf/{all,interface}/rp_filter is used
    	when doing source validation on the {interface}.
    
    	Default value is 0. Note that some distributions enable it
    	in startup scripts
    

     使用all和interface中的最大值来作为这个值真正的设置,同理也对ignore生效;所以。。。。

    The max value from conf/{all,interface}/arp_ignore is used
    	when ARP request is received on the {interface}
    

     所以我如果在我本地上做试验,还需要把all借口的这个值设置成0才好!!!!!!

  • 相关阅读:
    Java-DatabaseConnectionPool工具类
    Java-收邮件
    Java-发邮件
    Java-ZipUtil工具类
    Java-WebServiceUtil工具类
    Java-FtpUtil工具类
    Java-Base64Fiend工具类
    Java-ConnectDB工具类
    Java-UploadHelper工具类
    Java-生成缩略图工具类
  • 原文地址:https://www.cnblogs.com/honpey/p/8447722.html
Copyright © 2011-2022 走看看