CentOS6.x下用ipsec加密GRE隧道

楔子

前面的文章:Linux下用GRE隧道直接聯(lián)通兩個私網(wǎng)里講了怎樣用在兩個獨立的私網(wǎng)間打洞(GRE tunnel)來直接連通兩個不同的私網(wǎng),進階需求就是希望能把這個tunnel加密一下。否則铡买,有心的壞人可能會在外部線路上竊聽到很多敏感的信息端圈。因此楞泼,本文將要講的,算是前一文章的進階部分:給打洞的隧道加密垛贤!

Why "GRE over IPSec"

光是說加密隧道的話卧须,方案有好幾種:

  • IPSec tunnel
  • GRE over IPSec
  • IPSec over GRE
  • ......

我們?yōu)槭裁催x用GRE over IPSec呢另绩?
跟單純的IPSec tunnel比,優(yōu)勢在于:

  • 方案更靈活花嘶,我們可以靈活的把要加密的流量路由到GRE隧道上
  • 而且IPSec不支持多播,像OSPF或其他高大上的路由協(xié)議沒法玩兒

IPSec over GRE比:

  • 更安全蹦漠。整個上公網(wǎng)的流量都是加密的椭员,但從外部根本都不知道跑的是GRE協(xié)議。

接下來笛园,我們主要就是要講的方案是:GRE over IPSec

環(huán)境

對象 備注
NETA 10.0.0.0/24的一個私網(wǎng)隘击,網(wǎng)關(guān)是GWA
NETB 10.0.1.0/24的一個私網(wǎng),網(wǎng)關(guān)是GWB
NETC 節(jié)點都能互通的一個網(wǎng)絡(luò)研铆,可以認為是公網(wǎng)
GWA ip:10.0.0.1(NETA)埋同、1.1.1.1(NETC),CentOS6.x
GWB ip:10.0.1.1(NETB)棵红、2.2.2.2(NETC)凶赁,CentOS6.x
greB GWA上的虛擬網(wǎng)絡(luò)接口,GRE隧道名
greA GWB上的虛擬網(wǎng)絡(luò)接口,GRE隧道名
eth0 GWA連NETA虱肄、GWB連NETB的網(wǎng)絡(luò)設(shè)備名
eth1 GWA和GWB連NETC的網(wǎng)絡(luò)設(shè)備名

具體步驟

準備工作

分別在GWA和GWB兩臺機上執(zhí)行:

yum -y install libreswan iptables;
rm -rf /etc/ipsec.d/*db; # 刪除原有自帶的db文件
ipsec initnss; # 重新初始化db
checonfig ipsec on; # 這一步也可以后面再做

正常打洞

GWA上執(zhí)行:

cat << EOF | tee /etc/sysconfig/network-scripts/ifcfg-greB
DEVICE=greB
ONBOOT=yes
TYPE=GRE
PEER_OUTER_IPADDR=2.2.2.2
PEER_INNER_IPADDR=10.0.1.0/24
MY_OUTER_IPADDR=1.1.1.1
MY_INNER_IPADDR=10.0.0.1
KEY=http://haw-haw.org
BOOTPROTO=none
EOF

ifup greB;

同樣致板,在GWB上執(zhí)行:

cat << EOF | tee /etc/sysconfig/network-scripts/ifcfg-greA
DEVICE=greA
ONBOOT=yes
TYPE=GRE
PEER_OUTER_IPADDR=1.1.1.1
PEER_INNER_IPADDR=10.0.0.0/24
MY_OUTER_IPADDR=2.2.2.2
MY_INNER_IPADDR=10.0.1.1
KEY=http://haw-haw.org
BOOTPROTO=none
EOF

ifup greA;

這樣,其實打洞就基本上已經(jīng)完成了咏窿,現(xiàn)在從NETA和NETB的網(wǎng)絡(luò)里隨便找兩臺機器斟或,都應該能互通了。

GRE over IPSEC

配置GWA

在GWA上執(zhí)行:

ipsec newhostkey \
--configdir /etc/ipsec.d \
--random /dev/urandom \
--output /etc/ipsec.d/GWA.secrets \
--verbose;
# 上面的"--random /dev/urandom"的參數(shù)比用缺省的效率要高很多集嵌!
ipsec showhostkey --left;
# 記下輸出中“l(fā)eftrsasigkey=”這一行
# 這將用于本機(GWA)的/etc/ipsec.d/greB.conf文件中
ipsec showhostkey --right;
# 記下輸出中“rightrsasigkey=”這一行
# 這將用于對端機器(GWB)的/etc/ipsec.d/greA.conf文件中
vim /etc/ipsec.d/greB.conf # 建立配置文件greB.conf

內(nèi)容如下:

conn greB
    type=transport
    left=10.0.0.1
    leftrsasigkey=......
    leftprotoport=gre
    right=10.0.1.1
    rightrsasigkey=......
    rightprotoport=gre
    authby=rsasig
    auto=start

注意:

  • 這里的greB是隨便取的萝挤,只是因為GWA上的隧道設(shè)備名為greB,所以就沿用了這個名字
  • leftrsasigkey=是來自于上面ipsec showhostkey --left命令
  • rightrsasigkey=是來自于GWB上執(zhí)行命令ipsec showhostkey --right的結(jié)果

配置GWB

依葫蘆畫瓢根欧,在GWB上執(zhí)行:

ipsec newhostkey \
--configdir /etc/ipsec.d \
--random /dev/urandom \
--output /etc/ipsec.d/GWB.secrets \
--verbose;
ipsec showhostkey --left;
# 記下輸出中“l(fā)eftrsasigkey=”這一行
# 這將用于本機(GWB)的/etc/ipsec.d/greA.conf文件中
ipsec showhostkey --right;
# 記下輸出中“rightrsasigkey=”這一行
# 這將用于對端機器(GWA)的/etc/ipsec.d/greB.conf文件中
vim /etc/ipsec.d/greA.conf
# 建立配置文件greA.conf怜珍,因為tunnel設(shè)備名叫g(shù)reA

內(nèi)容如下:

conn greA
    type=transport
    left=10.0.1.1
    leftrsasigkey=......
    leftprotoport=gre
    right=10.0.0.1
    rightrsasigkey=......
    rightprotoport=gre
    authby=rsasig
    auto=start

注意:

  • 這里的greA是隨便取的,只是因為GWB上的隧道設(shè)備名為greA咽块,所以就沿用了這個名字
  • leftrsasigkey=是來自于上面ipsec showhostkey --left命令
  • rightrsasigkey=是來自于GWA上執(zhí)行命令ipsec showhostkey --right的結(jié)果

Iptables

本來在前面正常GRE打洞測步驟里其實也有iptables相關(guān)設(shè)置绘面,這里就都整合到這一部分統(tǒng)一說了

在GWA和GWB上分別執(zhí)行:

iptables -A INPUT -i eth1 -p gre -j ACCEPT;
iptables -A INPUT -i eth1 -p udp \
    -m state --state NEW \
    -m udp \
    -m multiport --dports 50,51,500,4500 \
    -j ACCEPT;
iptables -A INPUT -i eth1 -p tcp \
    -m state --state NEW \
    -m tcp \
    -m multiport --dports 50,51 \
    -j ACCEPT;
iptables -t mangle -A FORWARD \
    -p tcp -m tcp --tcp-flags SYN,RST SYN \
    -j TCPMSS --clamp-mss-to-pmtu;
/etc/init.d/iptables save; # 將iptables規(guī)則存入配置文件

啟動服務(wù)

分別在GWA和GWB的機器上執(zhí)行:

/etc/init.d/ipsec start;
ipsec auto --add greB; # 僅GWA上執(zhí)行
ipsec auto --up greB; # 僅GWA上執(zhí)行
ipsec auto --add greA; # 僅GWB上執(zhí)行
ipsec auto --up greA; # 僅GWB上執(zhí)行
chkconfig ipsec on;
# 如果前面沒有執(zhí)行這句的這里執(zhí)行一下,
# 以后ipsec就會隨機器啟動起起來侈沪,
# 而且不再需要ipsec auto --add和ipsec auto --up了

簡單測試

要檢驗是否成功設(shè)置揭璃,可以分別在GWA和GWB上聽包:

tcpdump -nn -i eth1 host 1.1.1.1 and host 2.2.2.2;

會發(fā)現(xiàn)包都是ESP加密過的了。

然后分別在GWA和GWB上干掉ipsec對greB和greA的加密干掉

ipsec auto --delete greB; # 僅在GWA上執(zhí)行
ipsec auto --delete greA; # 僅在GWB上執(zhí)行

然后再重復上面的聽包命令:

tcpdump -nn -i eth1 host 1.1.1.1 and host 2.2.2.2;

會發(fā)現(xiàn)加密包沒有了亭罪,取而代之是GRE包瘦馍,而且明顯能看到GRE包里封裝的內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末应役,一起剝皮案震驚了整個濱河市情组,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌箩祥,老刑警劉巖院崇,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異袍祖,居然都是意外死亡底瓣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門蕉陋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捐凭,“玉大人,你說我怎么就攤上這事凳鬓∽鲁Γ” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵缩举,是天一觀的道長垦梆。 經(jīng)常有香客問我匹颤,道長,這世上最難降的妖魔是什么奶赔? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任惋嚎,我火速辦了婚禮,結(jié)果婚禮上站刑,老公的妹妹穿的比我還像新娘另伍。我一直安慰自己,他們只是感情好绞旅,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布摆尝。 她就那樣靜靜地躺著,像睡著了一般因悲。 火紅的嫁衣襯著肌膚如雪堕汞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天晃琳,我揣著相機與錄音讯检,去河邊找鬼。 笑死卫旱,一個胖子當著我的面吹牛人灼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播顾翼,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼投放,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了适贸?” 一聲冷哼從身側(cè)響起灸芳,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拜姿,沒想到半個月后烙样,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡蕊肥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年误阻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晴埂。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寻定,靈堂內(nèi)的尸體忽然破棺而出儒洛,到底是詐尸還是另有隱情,我是刑警寧澤狼速,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布琅锻,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏恼蓬。R本人自食惡果不足惜惊完,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望处硬。 院中可真熱鬧小槐,春花似錦、人聲如沸荷辕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疮方。三九已至控嗜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骡显,已是汗流浹背疆栏。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惫谤,地道東北人壁顶。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像石挂,于是被迫代替她去往敵國和親博助。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容