2014年7月27日 星期日

架PPTP Server (VPN) 在OpenWrt

PPTP (Point to Point Tunneling Protocol) 是我最常看到的VPN (Virtual Private Network),幾乎所有系統內建支援,甚至貴一點的Route都看得到它的影子,說它是"通用的VPN"也不為過。

虛擬私人網路(英語:Virtual Private Network,簡稱VPN),是一種常用於連線中、大型企業或團體與團體間的私人網路的通訊方法。虛擬私人網路的訊息透過公用的網路架構(例如:網際網路)來傳送行內網的網路訊息。它利用已加密的通道協議(Tunneling Protocol)來達到保密、傳送端認證、訊息準確性等私人訊息安全效果。這種技術可以用不安全的網路(例如:網際網路)來傳送可靠、安全的訊息。需要注意的是,加密訊息與否是可以控制的。沒有加密的虛擬私人網路訊息依然有被竊取的危險。
以日常生活的例子來比喻,虛擬私人網路就像:甲公司某部門的A想寄信去乙公司某部門的B。A已知B的位址及部門,但公司與公司之間的信不能註明部門名稱。於是,A請自己的秘書把指定B所屬部門的信(A可以選擇是否以密碼與B通訊)放在寄去乙公司位址的大信封中。當乙公司的秘書收到從甲公司寄到乙公司的信件後,該秘書便會把放在該大信封內的指定部門信件以公司內部信件方式寄給B。同樣地,B會以同樣的方式回信給A。
在以上例子中,A及B是身處不同公司(企業網路路)的計算機(或相關機器),透過一般郵寄方式(公用網路)寄信給對方,再由對方的秘書(例如:支援虛擬私人網路的路由器或防火牆)以公司內部信件(內部網路)的方式寄至對方本人。請注意,在虛擬私人網路中,因應網路架構,秘書及收信人可以是同一人。許多現在的作業系統,例如Windows及Linux等因其所用傳輸協議,已有能力不用透過其它網路設備便能達到虛擬私人網路連接。(Wikipedia)

在OpenWrt架PPTP,可參考OpenWrt HOWTOs,它並沒有GUI可用,必須用ssh來設定

安裝
opkg install pptpd kmod-mppe

啟用
/etc/init.d/pptpd enable
/etc/init.d/pptpd start

預設IP是172.16.1.1,想用其它IP,修改/etc/ppp/options.pptpd檔案,應該是第一行,像這樣子
172.16.1.1:

再來設定/etc/pptpd.conf加入下面二行...
localip 172.16.1.1
remoteip 172.16.1.100-109
localip在OpenWrt HOWTOs解釋上、應該可以不必加入,作用應該跟修改/etc/ppp/options.pptpd是一樣意思,似乎是版本上不同問題,保險起見、還是加入吧。
remoteip是設定當USER登入後、配發IP的範圍。

在/etc/ppp/chap-secrets設帳號...
#USERNAME  PROVIDER  PASSWORD  IPADDRESS
帳號 * 密碼 *
新增多個直接新增下一行。

設定好之後,重新啟動pptpd就OK了!!
可以用Windows來連線試試看!!

PS:要對外連線,記得設定防火牆

已知問題:

  1. 架好之後、無法連線,還是用自己電腦直接連線測試
    在同區段網路不會有防火牆問題,這是pptpd沒啟動。
    這是軟體BUG,從SSH登入,下pptpd指令,就可以連線了。
    我目前用(12.09, r36088)並無這個問題,目前遇到是trunk版有這問題。
    可以直接在/etc/rc.local裡exit 0之前輸入pptpd  或在網頁上System ==> Startup 下設定
  2. 連線後、無法上網
    在防火牆插入iptables -A forwarding_rule -s 192.168.125.0/24 -j ACCEPT 紅字部分請改你的IP區段

沒有留言:

張貼留言