作者 主題: [轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕  (閱讀 28686 次)

0 會員 與 1 訪客 正在閱讀本文。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
"衡山飛狐" <flyfox@bbs.openfind.com.tw> 撰寫於郵件 news:0BJF9KP$0001HT5$1@bbs.openfind.com.tw...
> Linux Solution -- VPN架設 〔固定IP對固定IP〕 VADOC:03073001
> 作者:衡山飛狐 flyfox@virtualage.homelinux.net
>
> 一:【前言】
> VPN〔Virtual Private Network〕虛擬私有網路,乃指在公眾網路架構上所建立的私有網路;一般說來,VPN分硬體式VPN系統,軟體式VPN系統以及與防火牆相結合的VPN系統,本篇則介紹在Linux以軟體架設VPN系統,其優點為成本低,不需硬體設備及專線需求,透過一些技巧,浮動式IP亦可架設專屬VPN,而本文先就固定IP對固定IP之VPN做一實作。
>
> 二:【軟體】
> vpnd-1.1.0.tar.gz:http://virtualage.homelinux.net/DownLoad/Linux/vpn/vpnd-1.1.0.tar.gz
> 三:【環境】
> 1.Linux Server X2 [VPN Server & VPN Client]
> 2.固接ADSL
> 3.雙邊皆有對內即對外固定IP(兩張網卡)〔對內:虛擬固定IP,對外:真實固定IP〕
>
> 四:【安裝】
> 1.下載vpnd-1.1.0.tar.gz。
> 2.tar zxvf vpnd-1.1.0.tar.gz。
> 3.以下為安裝步驟:
>
> [root@virtualage vpn]# tar zxvf vpnd-1.1.0.tar.gz
> [root@virtualage vpn]# cd vpnd
> [root@virtualage vpnd]# ./configure
> [root@virtualage vpnd]# make
> [root@virtualage vpnd]# cp vpnd /usr/sbin
> [root@virtualage vpnd]# chmod +x /usr/sbin/vpnd
> [root@virtualage vpnd]# cp vpnd.conf vpnd.chat /etc
> [root@virtualage vpnd]# chmod 644 /etc/vpnd.conf /etc/vpnd.chat
> [root@virtualage vpnd]# chown root.root /etc/vpnd.conf /etc/vpnd.chat
> [root@virtualage vpnd]# ./vpnd -m
> [root@virtualage vpnd]# chmod 400 /etc/vpnd.key
> [root@virtualage vpnd]# mkdir vpnd_client
> [root@virtualage vpnd]# cp -a /etc/vpnd.* vpnd_client
> [root@virtualage vpnd]# cp -a /usr/local/sbin/vpnd vpnd_client
> [root@virtualage vpnd]# tar zcvf vpnd_client.tgz vpnd_client
>
> 〔說明〕
> (1)vpnd -m 是為產生/etc/vpnd.key 檔。
> (2)vpnd_client.tgz修改後供client端使用。
> 4.假設Server端為virtualage電腦,其真實固定IP為61.59.208.118;對應VPN IP為192.168.0.1,Client端為flyfox電腦,其固定IP為203.73.56.29;對應VPN IP為192.168.1.2。
>
> [root@virtualage vpnd]# vi /etc/vpnd.conf
>
> ------------- begin Server vpnd.conf ----------------
>
> mode server
> client 203.73.56.29 10001
> server 61.59.208.118 10001
> local 192.168.0.1
> remote 192.168.1.2
> keyfile /etc/vpnd.key
> route1 192.168.1.0 255.255.255.0 192.168.1.2
> nocompress
> autoroute
>
> ------------- end Server vpnd.conf ------------------
>
> 5.將vpnd_client.tgz傳至Client端flyfox電腦,並將之解壓。
> 6.將解壓過的檔案位置放置與Server端位置相同的目錄。
> 7.[root@flyfox /root]# vi /etc/vpnd.conf
>
> ------------- begin Client vpnd.conf ----------------
>
> mode client
> client 203.73.56.29 10001
> server 61.59.208.118 10001
> local 192.168.1.2
> remote 192.168.0.1
> keyfile /etc/vpnd.key
> route1 192.168.0.0 255.255.255.0 192.168.0.1
> nocompress
> autoroute
>
> ------------- end Client vpnd.conf ------------------
>
> 8.在VPN Server端(virtualage電腦)執行 /usr/sbin/vpnd -f /etc/vpnd.conf
> 9.在VPN Client端(flyfox電腦)執行 /usr/sbin/vpnd -f /etc/vpnd.conf
> 10.互ping 192.168.1.2 & 192.168.0.1,若可以表示成功。
> 11.執行ifconfig可看到多了一個TCP/IP interface。
>
> Server
>
> sl0 Link encap:VJ Serial Line IP
> inet addr:192.168.0.1 P-t-P:192.168.1.2 Mask:255.255.255.255
> UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> compressed:0
> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 compressed:0 txqueuelen:10
> RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
>
> Client
>
> sl0 Link encap:VJ Serial Line IP
> inet addr:192.168.1.2 P-t-P:192.168.0.1 Mask:255.255.255.255
> UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
> RX packets:166791 errors:0 dropped:0 overruns:80199 frame:0
> compressed:0
> TX packets:126467 errors:0 dropped:0 overruns:13839 carrier:0
> collisions:15 compressed:0 txqueuelen:10
>
> 執行netstat -na | more可發現vpnd利用port 1001建立雙邊的Tunnel 。
>
> 12.結束連線 killall vpnd 。
> 13.將 /usr/sbin/vpnd -f /etc/vpnd.conf 寫入 /etc/rc.d/rc.local,開機即可自動執行 。
>
> 文章出處:http://virtualage.homelinux.net/
>
> --
> ---
> 虛擬年代工作室
> http://virtualage.homelinux.net/
> Hot!!!免費email申請中!!!!
>

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
引述: "netman"
8.在VPN Server端(virtualage電腦)執行 /usr/sbin/vpnd -f /etc/vpnd.conf

請教netman大大,此步驟執行後
VPN SERVER上如果有跑WEB服務
則WEB服務會無法連上,這是正常的嗎?
VPN SERVER是不是就應該單純跑VPN就好了!?
沒碰過VPN,所以請多指教 :)

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
想了想覺得自己這個問題太笨了
VPN既然是私人用的虛凝網路
就不會和公用服務放在一起
只是這個說法弟沒有十足的把握
這幾天應該可以架起來試試看!
有哪位學長可以指教一下我的觀念是否正確嗎?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
嗯... 關鍵還是在 routing 啦...

若你成功的將 vpn 兩個 peer 接起來,接下來就不是 vpn 而是其他問題了...

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
剛剛測試了
原本server上的對外服務依然正常
但有新的疑問
vpn通道建立起來後
兩端的ifconfig已經有了新的網路介面

sl0       Link encap:VJ Serial Line IP
          inet addr:192.168.1.1  P-t-P:192.168.120.17  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
             compressed:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 compressed:0 txqueuelen:10
          RX bytes:0 (0.0 b)  TX bytes:2965 (2.8 Kb)

但兩端vpn ping 不到
防火牆已經都開放了,不知是哪的問題!? :(
route table看起來也都正常
以下是vpn client 的部分
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.17  *               255.255.255.255 UH    0      0        0 sl0
211.22.27.144   *               255.255.255.248 U     0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.120.0   192.168.120.17  255.255.255.0   UG    0      0        0 sl0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         211.22.27.145   0.0.0.0         UG    0      0        0 eth0

各位大大們,應該再檢查哪些地方呢?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
routing 是"雙向"的哦...

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
發現vpn client執行有誤

Jan 31 17:54:07 vpn-client vpnd[3353]: version 1.1.0 (compression enabled) starting.
Jan 31 17:54:07 vpn-client vpnd[3353]: slip link established.
Jan 31 17:54:08 vpn-client vpnd[3353]: crypto init failed, reason=1, will retry in 10 seconds.

查看vpnd.conf卻看不出哪裡錯,以下為client設定檔

 mode client
 client 211.22.27.150
 server 61.56.146.168
 local 192.168.1.1
 remote 192.168.120.17
 keyfile /etc/vpnd.key
 route1 192.168.120.0 255.255.255.0 192.168.120.17
 nocompress
 autoroute

請大大們指教!另外netman大指的"routing 是"雙向"的..."
弟資質魯鈍,可以說詳細點嗎!?thanks

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
嗯... 若 siteA 用 hostA 與 siteB 的 hostB 建立起 vpn ,且 firewall 與 nat 也解決了...

那,hostA 必須知到連往 siteB 的 gw 是 hostB,
反過來, hostB 必須知到連往 siteA 的 gw 是 hostA。
而且,siteA 的所有機器必須知到連往 siteB 的 gw 是 hostA,(不是 hostB﹗)
但,siteB 的所有機器必須知到連往 siteA 的 gw 是 hostB,(不是 hostA﹗)

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
謝謝netman大的提示
看來是我的routing有問題
等過幾天有空後,弟會再好好檢查一下

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
引述: "netman"
嗯... 若 siteA 用 hostA 與 siteB 的 hostB 建立起 vpn ,且 firewall 與 nat 也解決了...

那,hostA 必須知到連往 siteB 的 gw 是 hostB,
反過來, hostB 必須知到連往 siteA 的 gw 是 hostA。
而且,siteA 的所有機器必須知到連往 siteB 的 gw 是 hostA,(不是 hostB﹗)
但,siteB 的所有機器必須知到連往 siteA 的 gw 是 hostB,(不是 hostA﹗)

抱歉,問個笨問題
如果以兩台linux的主機來作vpn
都有裝兩張網卡
那host A 和host B所代表的可以是兩台主機的對內網卡嗎?
還是一定要找兩台機器來當host A和host B
請指教! :-?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #10 於: 2004-02-04 14:51 »
hostA 有兩個 IP :
1) 跟 hostB 連的那片(有可能是 ppp 或 slip 界面,假設為 1.2.3.4),
2) 及跟 siteA 連(假設為 4.3.2.1)。
從 hostB 看 hostA ,是指 1.2.3.4 ,
從 siteA 看 host A ,指  4.3.2.1 。

換成 hostB 與 siteB 呢?你自己舉例吧...

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #11 於: 2004-02-05 09:47 »
引述: "netman"
hostA 有兩個 IP :
1) 跟 hostB 連的那片(有可能是 ppp 或 slip 界面,假設為 1.2.3.4),
2) 及跟 siteA 連(假設為 4.3.2.1)。
從 hostB 看 hostA ,是指 1.2.3.4 ,
從 siteA 看 host A ,指  4.3.2.1 。

換成 hostB 與 siteB 呢?你自己舉例吧...


同理,hostB也有兩個ip :

1.跟hostA連的那片,設為5.6.7.8
2.跟siteB連的那片,設為8.7.6.5
從 hostA 看 host B ,是指 5.6.7.8 ,
從 siteB 看 host B  ,指 8.7.6.5 。

所以以兩台來作VPN,應該至少host A 連site A的IP
和host B 連site B的IP要可以PING的到!這樣說正確吧!

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #12 於: 2004-02-05 11:26 »
cd...

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #13 於: 2004-02-05 19:38 »
謝謝!netman大的指教
重新設定之後再測試
已經沒問題了!謝謝!! :lol:

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #14 於: 2004-02-08 09:23 »
hi , 各位大大!
弟又有新的疑問
針對這樣的vpn設定
iptables防火牆的設定應該著眼於哪些部分呢?
input.output.forward三各部分都要作設定嗎?
弟指的是以原則都為drop的情形下!!

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #15 於: 2004-02-08 16:25 »
將雙向 siteA to SitB & SiteB to SiteA 的連線設在 chain 頂端,先行 ACCEPT 即可。

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #16 於: 2004-02-09 11:34 »
如果SITE A為192.168.10.0/24
則在HOST B FIREWALL RULE 加入

INPUT:

$IPTABLES -A INPUT -i $INET_IFACE -s 192.168.10.0/24 -j ACCEPT

FORWARD:

$IPTABLES -A FORWARD -i $INET_IFACE -s 192.168.10.0/24 -j ACCEPT

OUTPUT:

$IPTABLES -A OUTPUT -o $INET_IFACE -s 192.168.10.0/24 -j ACCEPT

都是加在規則的第一條
$INET_IFACE指對外網卡
兩端都是這樣設的
如此還差什麼嗎?
目前這樣測試都PING不到
RULE ALL ACCEPT才能通 :cry:
怎辦?請大大們指教

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17351
    • 檢視個人資料
    • http://www.study-area.org
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #17 於: 2004-02-09 12:40 »
若你有在  nat 的  PRERTOUTING 及 POSTROUTING 設 nat 的話,
在 hostA 上得設:
iptables -t nat -I POSTROUTING -s $site_a -d $site_b -j ACCEPT

其它你自己慢慢補充吧...

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #18 於: 2004-02-09 17:49 »
謝謝netman大的提示
我再好好檢查firewall rule

fyfcc

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #19 於: 2004-08-27 17:40 »
小弟想問, 如果一端是固定 IP, 另一端是浮動 IP, 應該怎麼辦呢? client 1.2.3.4 10001 可以用 fqdn 嗎?

flyfox

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
    • http://happylinux.homeip.net/
[轉貼]Linux Solution -- VPN架設 〔固定IP對固定IP〕
« 回覆 #20 於: 2004-09-03 23:43 »
引述: "fyfcc"
小弟想問, 如果一端是固定 IP, 另一端是浮動 IP, 應該怎麼辦呢? client 1.2.3.4 10001 可以用 fqdn 嗎?

有另外一篇喔...自己找一下
ttp://happylinux.homeip.net/