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 访问兴趣流触发隧道,两个内网地址之间访问

     

   

  

          

         

   

原文地址:https://www.cnblogs.com/xiaohuamao/p/7905155.html