zoukankan      html  css  js  c++  java
  • IPsec分析/测试/

    一   局域网拓扑图

    局域网环境搭建步骤:

               (升级最新版本 ,恢复出厂设置后) 

              1 两台网关wan口直连,分别接两台pc ,

              2 局域网网络测试,正常情况下PC1 和PC2 互通 ,测试通过在进行ipsec的配置

              (参考     http://blog.csdn.net/zhangyang0402/article/details/5730123)

             3 常见问题 两台电脑 有一边能ping通,又一边ping不通  ,可能是两张网卡的原因, 有线 无线 

                route print 查看路由情况  

            

               一台电脑两张网卡,两个网关, 你的数据出去该走那个呢? 有个优先级, 这里注意两个网关的问题, 最好就用有线连接 

                由于是两台电脑, 两台电脑的防火墙都要关掉, 这样才可以ping的通  ,

                wan口有向外ping包检测机制, 抓WAN口的包能看到ICMP 

    二    IPSec配置  

           配置流程:首先配置【IKE提议】 -> 然后【IKE策略】 -> 【IPSec提议】 -> 【IPSec策略】 ->最后【启用IPSec功能】

           配置修改:对流程配置里的任意一个环节进行修改,请点击IPSec策略重新生成配置文件

           传输模式和隧道模式的区别 : 这个很重要的, 涉及到NAT,在中国人那么多, 地址转换就很必要的

              

         1. 配置文件说明: 

            具体参数说明参考:  https://www.freebsd.org/cgi/man.cgi?query=racoon.conf&sektion=5&apropos=0 英文资料, 很详细的,最后面还有个例子教你怎么配置 

                                           常用指令说明 :  https://www.freebsd.org/cgi/man.cgi?query=setkey&sektion=8

            原版的才是最好的,我就个人观点仅供参考 :

            racoon.conf  配置文件分析: 

    log notify;    // 
    log info;       //启动后会显示日记记录, 这个方便调试 ,日志的等级, 等级越高方便调试, 默认值是info

    remote anonymous{               // 就按字面意思翻译, 远端匿名主机 
      exchange_mode main;   // 交互模式,有两种, 主模式,疯狂模式/积极模式 区别的话看下文 
      my_identifier asn1dn;     // The type is an ASN.1 distinguished name. Ifstring is omitted,racoon(8) will get the DN fromthe Subject field in the certificate

      ca_type x509 "cacert.pem";     //这个是根证书,X.509是一种非常通用的证书格式。所有的证书都符合ITU-T X.509国际标准,
      certificate_type x509 "mycert.pem" "mykey.pem";   //这个而是本设备证书 本设备秘钥 
      generate_policy on;                //  按名字翻译即可, 和下面一个参数配合,能够自动生成策略 
      passive on;                             //   被动 打开 ,这个打开就是个服务器 , 
      verify_cert on;                        //   证书检查 ,如果不了解证书 请参考 :  http://blog.csdn.net/oldmtn/article/details/52208747  对作者表示感谢!
      proposal_check claim;           //   
      ph1id 7665;                           // 第一阶段id  这个参数很重要, 两侧必须一致, 否则协商不了的
      nat_traversal on;                  // NAT穿越 , 如果不了解NAT ,那就没办法了....
      script "/usr/sbin/phase1-up.sh" phase1_up;          //第一阶段起来了 执行的脚本, 第一阶段进行的是网络秘钥交换  IKE 
      script "/usr/sbin/phase1-down.sh" phase1_down; //  ... 
      script "/usr/sbin/phase1-down.sh" phase1_dead;  // ...  翻译单词就行 起来了 ,倒下了,然后死了  ....  

      proposal {
        encryption_algorithm 3des;     // 加密算法 3des  什么是3des? 将des算法执行3次  什么是des算法? 有兴趣研究下吧  
        hash_algorithm md5;               //  验证算法 md5  这个比较常用, 只是听到的比较多而已....
        authentication_method rsasig; // 这个参数是授权方式, 两端选择用什么方式进行授权 , 一般为两种, 预共享秘钥 证书  ,那这个是? 查下rsasig单词吧,再分析下证书就会明白
        dh_group modp768;                 // DH组的本质是使用非对称密钥来加密对称密钥  

        lifetime time 86400 sec;            //这个翻译即可  
      }
    }
    sainfo address 10.10.10.0/24 any address 192.168.10.0/24 any  // 重要概念 SA 安全通道  就表示两个局域网之间建立隧道  
    {
      remoteid 7665;                                    //和这个ph1id   有关系                                      
      pfs_group 2;
      authentication_algorithm hmac_md5;// 不解释了...
      lifetime time 28800 sec;
      encryption_algorithm des;                 // 有没有感觉和上面的一样?
      compression_algorithm deflate;        //  压缩算法 算法问题不懂 .... 
    }
    sainfo anonymous {                                 // 有没有发现和上面的是一样的呢? 这个最好还是有个, 对端的匹配不到上面的就会来匹配这个 ,备胎?
      remoteid 7665;
      pfs_group 2;
      authentication_algorithm hmac_md5;
      lifetime time 28800 sec;
      encryption_algorithm des;
        compression_algorithm deflate;

    }

    ipsec.conf 

      spdadd 192.168.0.0/24 192.168.1.0/24 any -P in  ipsec esp/transport//require

      spdadd 192.168.1.0/24 192.168.0.0/24 any -P out ipsec esp/transport//require 

    spd : SPD 的内容用来存放IPSec 的规则,而这些规则用来定义哪些流量需要走IPSec,这些信息有目的端IP、来源端IP、只执行AH 或ESP、同时执行AH 及ESP、目的端Port、来源端Port、          走Transport 或Tunnel 模式  这个就是定义兴趣流的 ,所谓兴趣流就是就是我对你访问这个地址感兴趣 ,比如上面 你访问 192.168.1.2  就在我的兴趣中  ,命中兴趣之后就走隧道  

            这个概念一定要先建立起来 , 隧道是单向的  就好比双车道 , 进来的数据走一个隧道,出去的走一个隧道, 

       

      2 .常用指令(详细及准确参考  -------------> https://www.freebsd.org/cgi/man.cgi?query=setkey&sektion=8)

          setkey -D   看建立状态    

          setkey -DP  看spd  

          setkey -DF  清除策略

          setkey -FP  清除spd 

          setkey -C   手动加spd

    3 . 防火墙说明 

         IPtable 的参数说明后面补上 , 

    4 信息来源与网络,回报给网络 ,

      启动的流程:
        1 通过uci生成配置文件racoon.conf
        2 增加防火墙的规则,打开端口4500 与500 ,增加策略 执行的脚本 racoon_ipsec_ipt.sh
        3 清除原有的所有策略,兴趣流,停止进程,预共享秘钥需要权限600/400,然后再把进行拉起来, 再增加策略执行的脚本是racoon_restart.sh 就是一次重启
        4 访问兴趣流触发隧道,两个内网地址之间访问

         

       

      

              

             

       

  • 相关阅读:
    面向对象设计大作业第二阶段:图书馆系统
    OO之接口-DAO模式代码阅读及应用
    OO设计-有理数类的设计
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS01——线性表
    c博客06-结构体&文件
    C语言博客作业05——指针
  • 原文地址:https://www.cnblogs.com/xiaohuamao/p/7905155.html
Copyright © 2011-2022 走看看