)配置samba服務器
(
)構建基於Linux的VPN網絡
構建VPN幾乎是Linux的最高級應用之一了
學會了這項技術
是足以使你自豪的資本
VPN的主要用途就是建立一個加密的通信機制
然後通過把所有的你的子網的信息按照特定的方式加密傳輸
構成一個邏輯上的虛擬的網絡
簡單的說
就是一個Linux系統的IP層加密解決方案
這裡面需要用到不少組件
下面一一介紹
准備工作和安裝
.
從下載
X的內核
除了
版本(該版本有一個致命錯誤)
然後把該內核放置到
/usr/src中
(這裡我們使用Linux
tar
gz)
然後釋放
tar zxvf linux
tar
gz
.
刪除原來的連接rm linux
.
ln –s linux
tar
gz linux
.
檢查當前的網卡和SCSI的型號(參見內核升級一章)
.
cd linux (進入linux
目錄)
.
make menugonfig
.
make dep
.
make bzImage
.
編譯工作做到這裡就打住!
.
從下載gmp庫的最新版本到/usr/local/src
.
tar zxvf gmp
tar
gz
.
cd gmp
.
/configure
.
make
.
make install
.
從下載freeswan
tar
gz(我們這裡使用的版本)到/usr/local/src
.
tar zxvf freeswan
tar
gz
.
從下載x
patch
freeswan
tar
gz
這個是補丁文件
釋放
進入x
補丁目錄
復制freeswan
diff到外面的freeswan源目錄
然後回到freeswan源目錄中運行
patch –p
< freswan.diff
1.19 從下載openssl-0.9.6b版本到/usr/local/src,釋放,進入目錄
1.20 ./config (如果原來系統中有openssl需要先uninstall再安裝,不過一般情況下你可能uninstall不下來8-)。Tw.WinGWit.CoM如果無法uninstall,找到他們的路徑,在這裡通過—prefix=參數指定路徑覆蓋舊版本的文件。這裡嚴重建議:如果你沒有把握確定路徑,最好這樣做:到你用的發行包的開發商的FTP站點(如果你用turbolinux就去用redhat就去),用anonymous用戶和隨便一個電子郵件作為密碼登陸,找到你用的發行包版本的生機目錄,然後下載相應的RPM包,注意:這裡的包至少應該是0.9.6b1以上的i386版本。下載完畢後用rpm –Uvh更新。這樣做完了很干淨。
1.21 make (如果你用rpm包升級就不用這個步驟了)
1.22 make test (如果你用rpm包升級就不用這個步驟了)
1.23 make install (如果你用rpm包升級就不用這個步驟了)安裝完了以後執行openssl命令,輸入version看看是不是你剛剛安裝的版本。如果不是,可能沒有覆蓋原來安裝的舊版本。從1.20重新來過
1.24 然後回到freeswan的源目錄,運行:make menugo,在networking options中選擇關於iptables和ipsec相關的所有選項。其中ipsec是freeswan加上的,最好把前面括號中M(模塊方式)換成*(編譯進內核)。下列內核選項應該選上:
進入:Networking Options至少選擇上:
[aidcode]
Network packet filtering (replaces ipchains)
Network packet filtering debugging (NEW) 進入:IP: Netfilter Configuration ---> <*> Connection tracking (required for masq/NAT) (NEW) FTP protocol support (NEW) IRC protocol support (NEW) [/aidcode]
注意
如果你需要使用DHCP功能
需要增加Pachet Socket mmapped IO和Socket Filtering兩個選項
參見DHCP一章
等等……
把下面的選項全部標記<*>
返回上一層菜單後
把列表選項最下面的凡是IPSEC相關的選項全部選為<*>
另外的
如果你打算使用撥號連接請在網絡設備支持菜單選擇ppp支持(注意
你用的ppp程序一定要
版本以上的)
.
然後檢查網卡和硬盤選項是否正確
如果沒有問題就逐層退出
然後保存配置
.
退出後將自動編譯內核
等待……
.
編譯完成後
來到/usr/src/linux目錄
運行
make modules;make modules_install
.
cp System
map /boot/System
map
vpn
.
cd arch/i
/boot
.
cp bzImage /boot/vmlinuz
vpn
.
cd /boot
.
rm System
map
.
ln –s System
map
vpn System
map
.
vi /etc/nf
增加一段
[aidcode] boot=/dev/sda map=/boot/map install=/boot/boot
b prompt timeout=
lba
default=linux
vpn image=/boot/vmlinuz label=linux initrd=/boot/initrd read
only root=/dev/sda
image=/boot/vmlinuz
vpn label=linux
vpn initrd=/boot/initrd read
only root=/dev/sda
[/aidcode]
.
運行lilo更新數據
.
reboot
.
啟動後
運行
ipsec setup restart 應該不報任何錯誤而正常出現freeswan的版本
注意
還有一些必要的內核參數配置
這些配置可以在rc
local中實現
他們是
[aidcode] echo
> /proc/sys/net/ipv
/conf/eth
/rp_filter echo
> /proc/sys/net/ipv
/ip_forward [/aidcode]
如果你把下面兩項編譯成模塊(前面擴號是M而不是*)
[aidcode] FTP protocol support (NEW) IRC protocol support (NEW) [/aidcode]
你需要在rc
local中加上:
[aidcode] modprobe ip_nat_ftp [/aidcode]
安裝完了
接下來我們將說明幾種VPN的玩法
配置Frees/wan用於支持雙網關通信
也就是兩個異地的子網通過一對ipsec的VPN網關進行交互訪問
第一種玩法是網絡對網絡的VPN
一般的
某企業在甲乙兩地(距離相當遠)各有一個辦公室
每個辦公室各有一套LAN
他們分別通過專線連接到internet網絡上
甲LAN上是企業的管理中心
運行著企業的管理系統
而乙LAN上的用戶也需要使用該管理系統
盡管乙LAN可以通過internet(公網)連接過去
但是企業的老板說不行!我們的數據不能暴露在公網上
必須加密!好了
我們的VPN網絡就可以應用於該企業的這種需求
首先在甲乙兩個LAN的出口各放置一台我們的Linux服務器
他們都安裝好了ipsec(前面說的安裝步驟一個都不少)
兩個LAN的數據分別通過各自的這台機器(ipsec gateway)進入公網
凡是經過該網關的數據全部都是加密的
在效果上
兩個LAN的用戶可以互相ping到對方的機器
盡管他們可能一個是
/
網段
另一個是
/
網段的
他們好像在同一個局域網中工作
沒有界限
公共網絡的加密部分對他們來說也是透明的
而兩個LAN在公共網絡上交換的數據是密文的
這就是虛擬專用網VPN
但願你已經按照前面的步驟順利的安裝好了兩台機器
下面我告訴你怎樣配置成網對網的環境
.
我們先配置甲網的ipsec網關(該網關有兩個網卡
我們配置他們的地址分別為eth
:
和eth
:
)
安裝完成後
我們首先要做的事情是生成CA證書
(用到剛才安裝的openssl)
.
找到f文件
一般在/etc/ssl/中
也可能在/var/ssl中或/usr/ssl中(實在不行你就find /
name
f
找找嘛!)
要是有好幾個
你要搞清楚哪個是你安裝的版本
改動其中的default_bits選項的值從
到
然後改動default_days的值到
讓期限為
年!保存退出
.
在/var/中建立一個目錄
/var/sslca
改變該目錄的權限為
(chmod
/var/sslca)
.
在你安裝的openssl目錄中找到CA
sh腳本
注意
應該是你當前運行的openssl版本的CA
sh
.
cd /var/sslca 進入到你剛才建立的目錄
.
比如你剛才找到的CA
sh在/usr/lib/ssl/misc/
那麼就輸入/usr/lib/ssl/misc/CA
sh –newca
接下來你會被問到一系列問題
問題和回答類似於下面的樣子
如果你確認哪些你有把握更改就改
比如公司名稱
郵件
密碼等
不能確定的就按照下面的樣子抄上即可
[aidcode] ~/sslca#/usr/lib/ssl/misc/CA
sh
newca CA certificate filename (or enter to create) (enter) Making CA certificate
Using configuration from /usr/lib/ssl/f Generating a
bit RSA private key
+++
+++ writing new private key to
/demoCA/private/
/cakey
pem
Enter PEM pass phrase:(enter password) Verifying password
Enter PEM pass phrase:(e
From:http://tw.wingwit.com/Article/program/Oracle/201311/17409.html