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