一 局域網拓撲圖算法
局域網環境搭建步驟:安全
(升級最新版本 ,恢復出廠設置後) 服務器
1 兩臺網關wan口直連,分別接兩臺pc ,網絡
2 局域網網絡測試,正常狀況下PC1 和PC2 互通 ,測試經過在進行ipsec的配置ide
(參考 http://blog.csdn.net/zhangyang0402/article/details/5730123)測試
3 常見問題 兩臺電腦 有一邊能ping通,又一邊ping不通 ,多是兩張網卡的緣由, 有線 無線 ui
route print 查看路由狀況 加密
一臺電腦兩張網卡,兩個網關, 你的數據出去該走那個呢? 有個優先級, 這裏注意兩個網關的問題, 最好就用有線鏈接 .net
因爲是兩臺電腦, 兩臺電腦的防火牆都要關掉, 這樣才能夠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 訪問興趣流觸發隧道,兩個內網地址之間訪問