緣起
經(jīng)常遇到網(wǎng)站被封,前段時(shí)間連sf.net&gmail.com都封了,實(shí)在受不了,找個(gè)資料都得上3389肉雞找了。
一:背景
對(duì)VPN的分類什么的有個(gè)大概的了解,知道是個(gè)大概怎么回事,如果不大清楚的朋友可以google一下,喜歡看英文文檔的朋友可以看下面兩個(gè)文檔對(duì)VPN的介紹,很清晰。本文就不對(duì)這些內(nèi)容進(jìn)行具體的介紹了。
http://hmyblog.vmmatrix.net/sdbwww/pub/books/
Packt.Publishing.OpenVPN.Building.And.Integrating.Virtual.Private.Networks.Mar.2006.pdf
http://hmyblog.vmmatrix.net/sdbwww/pub/books/
Packt.Publishing.Building.And.Integrating.Virtual.Private.Networks.With.Openswan.Jan.200620060628185701.rar
說到這里,忍不住要打個(gè)岔,如果是剛接觸一個(gè)新領(lǐng)域新知識(shí)的話,最好少看中國大陸人寫的技術(shù)文檔,那信不過,一來說不清楚(比如本文,呵呵),二來很多地方忽悠人,說不定他自己也不清楚,亂寫一氣,要不就在關(guān)鍵的地方漏一點(diǎn)或者改一點(diǎn),照搬人家老外的東西連目錄文件名不改竟然還叫原創(chuàng)。具體大家在搜索 swan +vpn的時(shí)候就有機(jī)會(huì)遇到了。反正不想被帶著瞎走就最好看英文文檔或者中國臺(tái)灣人寫的東西,比如那個(gè)叫鳥哥的人寫的文章還不錯(cuò),雖然很基礎(chǔ),但講的很清楚,他出了本書,叫《鳥哥的私房菜》來著,很適合linux的入門者閱讀。另外一些大點(diǎn)的程序在官方網(wǎng)站都有DOCUMENT或者HOWTO,F(xiàn)AQ什么之類的,認(rèn)真看看哪怕不去做也會(huì)收獲不少,起碼知道那軟件大概是怎么回事。
我大致的看了一下上面的兩個(gè)PDF,收益良多,再次推薦一下,對(duì)VPN和openswan,openvpn介紹的十分詳細(xì)。
目標(biāo)系統(tǒng) red hat linux 9默認(rèn)安裝
二:需求
說白了就是用肉雞做加密代理
1:對(duì)系統(tǒng)盡可能小的改變,包括添加文件和系統(tǒng)日志,因?yàn)槲覀冇玫氖侨怆u。 :)
2:是client-->server的模式,而不是net-net的模式,瀏覽網(wǎng)頁而已。
3:無論server還是client都要配置方便,簡單好用,我們要的是快速。
三:選型(這里的優(yōu)缺點(diǎn)都是我自己認(rèn)為的,事實(shí)上可能不是那樣)
1:*swan
A:ipsec vpn的代表,默認(rèn)端口tcp/udp 500
B:優(yōu)點(diǎn):加密強(qiáng),對(duì)網(wǎng)絡(luò)游戲什么的支持好(我們用不上)
C:缺點(diǎn):部署麻煩,配置麻煩,關(guān)鍵是他的nat-t,就是nat穿越功能需要打內(nèi)核補(bǔ)丁,重新編譯內(nèi)核才行,這事在肉雞做不得,呵呵。具體的可以看上面的那個(gè)openswan的rar,講的十分詳細(xì)。大概的說說swan系列吧,最開始是freeswan,然后貌似在2004年停止開發(fā)了,衍生出 openswan和strongswan兩個(gè)分支,我看了一下,貌似openswan發(fā)展的不錯(cuò),strongswan連個(gè)rpm包都沒,當(dāng)然,那是貌似。因?yàn)槲也欢胏ode,說啥都得加貌似二字的,不過千萬別小看scriptkid哦,因?yàn)槟悴恢朗裁磿r(shí)候他就在你的系統(tǒng)里用uid0在 script,雖然我還是多次被別人B4,呵呵。繞回來……swan系列分兩塊,一個(gè)是用戶空間程序,一個(gè)是內(nèi)核空間程序。用戶空間程序叫p什么來o來著,至于到底是p什么o,你裝裝就知道了,要不裝,知道了也沒啥意義。:)內(nèi)核空間的包括模塊和補(bǔ)丁,大概就那么回事。就是說,要做到nat-t,就需要用戶空間程序,lkm和內(nèi)核補(bǔ)丁,需要重新編譯內(nèi)核,這個(gè)我們在肉雞沒法做,drop之。還有他要用root運(yùn)行。
2:pptpd
A:pptp vpn的典型代表,默認(rèn)端口tcp 1723
B:優(yōu)點(diǎn):windows帶了他的client,安裝也方便,就幾個(gè)rpm,配置也不難
C:缺點(diǎn):一撥進(jìn)去他就會(huì)改缺省網(wǎng)關(guān),很煩,要么撥進(jìn)去自己route add/delete幾下改改,一直別斷開,看個(gè)網(wǎng)站犯得著那么麻煩嗎
3:openvpn
A:SSL VPN的典型代表,默認(rèn)端口tcp/udp 1194
B:優(yōu)點(diǎn):簡單好裝,一個(gè)rpm搞定,要壓縮的話多一個(gè)lzo的rpm包。配置也是簡單的很,就生成一個(gè)static.key,還可以chroot,并且可以以nobody運(yùn)行,肉雞的安全也是很重要的,保管不好就被搶了,還可以chroot一下。
還有就是撥進(jìn)VPN之后,他不會(huì)改你默認(rèn)網(wǎng)關(guān),免去了折騰的煩惱,我們可以把sf.net的地址加到靜態(tài)路由去。
在server那邊只需要開一個(gè)udp or tcp端口就可以了,不怎么需要去動(dòng)別人的iptables。
貌似好象還有負(fù)載均衡什么的,這個(gè)和我們的目的差距有點(diǎn)大了,ignore之。
C:缺點(diǎn):除了要額外裝一個(gè)client之外,相對(duì)我們的需求來說貌似沒什么缺點(diǎn)了。