一 局域網拓撲圖

局域網環境搭建步驟:
(升級最新版本 ,恢復出廠設置后)
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 訪問興趣流觸發隧道,兩個內網地址之間訪問
