標題:
用noip當通行證,不讓陌生人連接ovpn-server
[打印本頁]
作者:
gfx86674
時間:
2015-8-19 20:00
標題:
用noip當通行證,不讓陌生人連接ovpn-server
本帖最後由 gfx86674 於 2015-8-21 20:48 編輯
打開Log看快暈了,竟有人不斷的trying小弟ovpn-server
[attach]3689[/attach]
雖然ovpn-server有憑證和密碼保護著,但被洗Log看了也很不爽,所以...
乾脆將ovpn port鎖起來,只允許手機例外(假設手機public-ip為1.1.1.1)
[attach]3690[/attach]
[attach]3691[/attach]
但手機public-ip怎麼可能為1.1.1.1 ,而且又是固定ip.
所以啊,這得請ddns來幫忙.
小弟請的是no-ip ,使用上需裝ddns-client app.
因小弟用的是Android手機,所以安裝
NO-IP Updater
這個app.
[attach]3692[/attach]
完成安裝並設定後,手機只要一連上網路,不管是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位置.
所以在命令視窗運行:
[attach]3693[/attach]
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
:local routerip [/ip address get [find interface="pppoe-out1"] address]
:set routerip [:pick $routerip 0 [:find $routerip "/"]]
:local phone ("!".[:resolve abcd1234.no-ip.org])
:if (([/ip firewall filter get *68 src-address]!=$phone)&&($routerip!=$phone)) \
do={/ip firewall filter set src-address=$phone}
複製代碼
新增排程:
[attach]3694[/attach]
如果Script有發揮作用,很快的src-address="!1.1.1.1"即被更新成其它address囉
這樣也代表除手機目前所使用地址,其它對ovpn-server的連線皆不合法的.
作者:
gfx86674
時間:
2015-8-21 21:00
或許懂Script的人看得出有做Router-ip比對的動作,但是為何呢?
原因是連上ovpn後,手機的ddns-client仍會持續更新.
但更新的不是外地網路,而是ovpn-server的ip....這就糟了!
因為您不是真的與ovpn-server同一地,而是在別的地方.
所以比對router-ip的目的即當手機連上ovpn後,若更新的ip與Router相同,將不予理會.
若不這麼做等手機ddns-client一旦更新與Router同,ovpn將直接斷線!!
歡迎光臨 電訊茶室 (http://telecom-cafe.com/forum/)
Powered by Discuz! 7.2