一 局域网拓扑图
局域网环境搭建步骤:
(升级最新版本 ,恢复出厂设置后)
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 访问兴趣流触发隧道,两个内网地址之间访问