class="152933">
一:背景
對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;
說到這裡,baoz忍不住要打個岔,如果是剛接觸一個新領域新知識的話,最好少看中國大陸人寫的技術文檔,那信不過,一來說不清楚(比如本文,呵呵),二來很多地方忽悠人,說不定他自己也不清楚,亂寫一氣,要不就在關鍵的地方漏一點或者改一點,照搬人家老外的東西連目錄文件名不改竟然還叫原創。具體大家在搜索swan;+vpn的時候就有機會遇到了。反正不想被帶著瞎走就最好看英文文檔或者中國台灣人寫的東西,比如那個叫鳥哥的人寫的文章還不錯,雖然很基礎,但講的很清楚,他出了本書,叫《鳥哥的私房菜》來著,很適合linux的入門者閱讀。另外一些大點的程序在官方網站都有DOCUMENT或者HOWTO,FAQ什麼之類的,認真看看哪怕不去做也會收獲不少,起碼知道那軟件大概是怎麼回事。;
baozi大致的看了一下上面的兩個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就沒必要了,有興趣的朋友可以自己搞搞:);ldd一下把要的東西都丟到一個地方然後加上配置文件就差不多了,再改改啟動腳本。;
還有就是撥進VPN之後,他不會改你默認網關,免去了折騰的煩惱,我們可以把sf.net的地址加到靜態路由去。;
在server那邊只需要開一個udp;or;tcp端口就可以了,不怎麼需要去動別人的iptables。;
貌似好象還有負載均衡什麼的,這個和我們的目的差距有點大了,ignore之。;
C:缺點:除了要額外裝一個client之外,相對我們的需求來說貌似沒什麼缺點了。