返回列表 發帖

用noip當通行證,不讓陌生人連接ovpn-server

本帖最後由 gfx86674 於 2015-8-21 20:48 編輯

打開Log看快暈了,竟有人不斷的trying小弟ovpn-server

雖然ovpn-server有憑證和密碼保護著,但被洗Log看了也很不爽,所以...

乾脆將ovpn port鎖起來,只允許手機例外(假設手機public-ip為1.1.1.1)



但手機public-ip怎麼可能為1.1.1.1 ,而且又是固定ip.
所以啊,這得請ddns來幫忙.
小弟請的是no-ip ,使用上需裝ddns-client app.


因小弟用的是Android手機,所以安裝NO-IP Updater這個app.

完成安裝並設定後,手機只要一連上網路,不管是Wifi或者4G網路,
都會將public-ip更新到noip-ddns上.


回到Router部份 ,總要將1.1.1.1更新成手機public-ip吧.
所以一樣得用Script ,將舊public-ip更新掉

首先,我們得知道/ip firewall filter src-address="!1.1.1.1" 的array位置.
所以在命令視窗運行:

put [/ip firewall filter find src-address="!1.1.1.1"]
如圖所顯示,所得的值是*68 (每台RouterOS裝置都會不同,這動作是必要的)

知道array的位置,複製Script將內容放到排程去.
(記得array 與ddns-host是個人的,要先修改才能貼上)

假設Router的網路接口為pppoe-out1 ; ddns-host為abcd1234.no-ip.org
  1. :local routerip [/ip address get [find interface="pppoe-out1"] address]
  2. :set routerip [:pick $routerip 0 [:find $routerip "/"]]
  3. :local phone ("!".[:resolve abcd1234.no-ip.org])
  4. :if (([/ip firewall filter get *68 src-address]!=$phone)&&($routerip!=$phone)) \
  5. do={/ip firewall filter set src-address=$phone}
複製代碼
新增排程:

如果Script有發揮作用,很快的src-address="!1.1.1.1"即被更新成其它address囉
這樣也代表除手機目前所使用地址,其它對ovpn-server的連線皆不合法的.
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

或許懂Script的人看得出有做Router-ip比對的動作,但是為何呢?

原因是連上ovpn後,手機的ddns-client仍會持續更新.
但更新的不是外地網路,而是ovpn-server的ip....這就糟了!

因為您不是真的與ovpn-server同一地,而是在別的地方.
所以比對router-ip的目的即當手機連上ovpn後,若更新的ip與Router相同,將不予理會.

若不這麼做等手機ddns-client一旦更新與Router同,ovpn將直接斷線!!

TOP

返回列表