Mikrotik RouterOS設定OpenVPN,支援Windows、macOS、Android、與iOS

設備:Mikrotik RouterBoard RB2011UiAS-RM
1111_l

RouterOS版本:v.6.37.3 Released on 2016-Nov-28

  1. 首先於RouterOS設置Certificate憑證,這是設定OpenVPN最重要的步驟,Mikrotik介紹兩種方式,詳情參考這個網頁,一種透過CACert.org,另一種由OpenVPN提供的工具easy-rsa工具來產生的certificate憑證。這裡介紹第二種easy-rsa的方式,並且在windows上的openvpn client來產生的憑證。
  2. 到OpenVPN網站下載OpenVPN Client for Windows,下載安裝後,假設安裝的目錄於C:\Program Files\OpenVPN
  3. 以Administrator(系統管理者)的權限打開cmd視窗,然後cd到C:\Program Files\OpenVPN\easy-rsa目錄。
  4. 執行以下指令:
      1. init-config (只要執行一次即可,主要是複製環境設置的批次程式)。
      2. vars(設定環境設置)
      3. clean-all清除
      4. build-dh(產生表頭DH檔案)
      5. build-ca(產生CA,Certificate Authority憑證)

    snip20161214_1
    snip20161214_2

  5. 產生的憑證存在於keys這個子目錄,D:\Program Files\OpenVPN\easy-rsa\keys,將這個目錄下的ca.crt與ca.key取出來,準備上傳到RouterOS。
    snip20161214_3
  6. 上傳到RouterOS的檔案夾之後,開啟終端機(terminal)執行下面兩個指令將憑證匯入到系統裡:
    [jerry@routeros] /certificate>import file=ca.crt
    [jerry@routeros] /certificate>import file=ca.key
  7. 在Winbos或網頁管理介面檢查是否匯入正常
    snip20161214_4
  8. 若匯入正常則前面標籤為KT。
  9. 接著設定OPENVPN,利用WINBOS/網頁,按下PPP –> OVPN Server,再依照下面圖示輸入並選擇:PORT, Mode, Certificate的憑證,以及最後面支援的認證加密方式即可。
    snip20161214_7
  10. 設定帳號、Profile、IP POOL、與防火牆就不在此多做敘述,可參考這個地方

Windows客戶端設置:

  1. 先下載客戶端軟體:點擊到下載處,下載後安裝過程不再敘述。
  2. 將RouterOS的ca.crt與ca.key兩個檔案下載,並存放到客戶端軟體安裝目錄下的config位置,例如D:\Program Files\OpenVPN\config,另外製作一個auth.cfg,這檔案存放登入的帳號密碼,格式如下:
    user1
    1234
    

    user1:帳號, 1234:密碼

  3. 在同一個目錄再製作設定檔,副檔名必須為ovpn例如client.ovpn,內容如下範例:
    client
    dev tun
    proto tcp
    remote "xxx.xxx.xxx.xxx" 1194
    ca ca.crt
    keepalive 10 120
    cipher AES-256-CBC
    auth SHA1
    auth-user-pass auth.cfg 
    verb 5
    ;push "redirect-gateway local def1"
    ;push redirect-gateway
    route 0.0.0.0 0.0.0.0 192.168.89.1
    
  4. remote 後面接routeros的網址,後面連接的Port位置。
  5. ca 就是告知憑證的地方
  6. auth-user-pass告知採用帳密方式登入,帳密則儲存於auth.cfg這個檔案。
  7. 一般採用push redirect-gateway或push redirect-gateway local def1就可以指定把所有流量導入vpn接口,但有時候採用無線網路或其他網路會更改WAN時無效,所以可以加入route指令強迫將default gateway轉入。
  8. 到此基本上已經完成,只要在下面的icon點擊,按右鍵在按下connect即可連線。

snip20161214_8

snip20161214_9

最後確認是否連線,只要打開cmd視窗,執行tracert www.hinet.net看看是否從routeros出去即可。

macOS客戶端設置:

    1. 首先,下載客戶端軟體:按這裡
    2. Tunnelblick.com是個開放原始碼的軟體,好用又方便,比OpenVPN Connect好用許多。
    3. 下載安裝後,仍採用ovpn設定檔進行匯入,設定檔的範例如下:
      client
      dev tun
      proto tcp
      remote xxx.xxx.xxx.xxx 998
      ca /Users/xxxxx/openvpn_files/ca.crt
      keepalive 10 120
      cipher AES-256-CBC
      auth SHA1
      auth-user-pass /Users/xxx/openvpn_files/auth.cfg
      verb 5
      push redirect-gateway
      
    4. 首先也是要把routeros的ca.crt與ca.key放到一個指定目錄,例如:自身的目錄底下做一個openvpn_files的子目錄,把ca.crt, ca.key放到這裡,另外,帳密檔案(前面已述)也放在同一個目錄,然後依照上面的設定檔指定位置即可。
    5. 另外,auth.cfg如windows所述,也要放在同一個目錄下。
    6. 最後用push redirect-gateway來告知流量都要往vpn導入,但是還有個地方必須設定才可以,在設定裡要把第一項,如下圖,打勾才行!!snip20161214_10
    7. 以上設定好基本上就已經完成,再依照下面方式點擊登入即可。

snip20161214_11

 

Android客戶端設置:

首先,須先製作一個設定檔,此設定檔可以提供Android與iOS來使用,除了類似Windows/macOS的寫法外,最主要把ca內容也寫進去,就不再提供ca.crt/ca.key兩個檔案了。因此,只要匯入此設定檔與auth.cfg即可。

client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 998
keepalive 10 120
cipher AES-256-CBC
auth SHA1
auth-user-pass auth.cfg
verb 5
redirect-gateway
<ca>
-----BEGIN CERTIFICATE-----
MIID6TCCA1KgAwIBAgIJAMdQ8zo5QJVoMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYD
VQQGEwJUVzELMAkGA1UECBMCVFcxDzANBgNVBAcTBlRhaXBlaTEiMCAGA1UEChMZ
<<<< ca.crt裡面的內容拷貝複製到這個地方>>>>
yWXDkv30Z7gfDCiZcJcF5PfROJeDpPQoVIgRTOzCAz8N3+awWIkRLUyFCk3FWiBH
CO6mikuz8szxhtNNZZkntnEsFyjW3s0aGuYSzQAJ3Rp2XRiYm7X5sPerBGTL
-----END CERTIFICATE-----
</ca>

<key>
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOmHGjK2riMqBq4+
JgSUNJqKoz9fz9SY3Wsol423syUZNNX4htlLP/XtJ6U9r0f4Rqr+P/YaXb4c8AAc
<<<< ca.key裡面的內容拷貝複製到這個地方>>>>
gw7RBGga25wpEyRFyPIoGP5oG7uEsBlv0wRdzLr/7dqORIXWVXH01xkCQDpWw9zW
J+3h8UyEWKIaeIMsffxchQzjpxFqr5w/NBAcZdJUndExpPb5c6dDWT5la0wjo/un
up1QejfWdFR9vuU=
-----END PRIVATE KEY-----
</key>
接著到GOOGLE PLAY下載軟體:GOOGLE PLAY
然後,將此設定檔(xxx.ovpn)與auth.cfg透過usb,拷貝到一個目錄下,然後打開openvpn app,進行匯入
import --> import Profile from SD card,然後選擇所存放的目錄,找到該ovpn檔案,進行匯入即可。
接著按下Connect即可連線到RouterOS的VPN Server

iOS客戶端設置:

App下載網址:iTunes App Store

iOS的設定檔與Android可共用,就不再多述。只要將設定檔與auth.cfg匯入即可。方法如下:

將iPhone/iPad連到電腦,打開iTunes,然後將這設定檔與auth.cfg複製到OpenVPN的地方,如下所示,即可。

snip20161214_12 然後在iPhone/iPad打開openvpn,即會出現設定檔的名稱,加入即可。

最新高清高畫質HDMI/HD-SDI完全支持IPTV Internet TV影音編碼器正式上市

1/4/16 Channels HDMI/HD-SDI H.264 IPTV Encoder

snip20161020_2 snip20161020_3

高畫質IPTV影音編碼器,支持HDMI或HD-SDI輸入,可同時9路影音透過IPTV格式輸出。

1157164384

<每一個HDMI/HD-SDI輸入,可以透過RTMP同時傳送到YouTube、Twitch、UStream或其他CDN服務公司的影音平台,以及提供最佳化的動態碼流率(Adaptive Bit-Rate, ABR)讓您的影音內容可依照客戶端不同頻寬與裝置,收看最佳的影音畫質。

可支持1/4/16路HDMI或HD-SDI輸入訊號源,經過編碼器編碼後,轉換以RTMP、RTSP、UDP(Unicast or Multicast)、HTTP方式輸出到IPTV廣播系統,例如:YouTube、UStream、各種影音平台,或洽詢本公司幫您架構最佳的IPTV網路直播影音系統。

無論您要經營IPTV電視平台、電競交友線上直播平台、或是任何網路直播影音系統,可與我們聯繫,提供您最佳解決方案!!

有關詳細的規格,可按下這裡下載。

此產品於2016年10月正式發售,提供最優惠的價格,請以電子郵件發送到[email protected] 或透過這個網頁 與我們聯繫。

 

Mac OS X 設定NAT與port forwarding

Mac OS X版本:OS X El Capitan 10.11

Mac OS 的防火牆軟體在10.10已經將IPFW取消,改用OpenBSD的PF,有關PF的User guide 可參考:https://www.openbsd.org/faq/pf/,或在此下載PDF說明。

PF 原則上在Mac OS X都會自動啟動,如果不讓PF於開機時啟動,可以執行下面的指令:

# rcctl disable pf

重啟Mac即可生效。

下面二個指令可啟動與關閉PF功能:

# pfctl -e
# pfctl -d

PF於系統開機時(Booting),會讀取pf.conf這個設定檔(位於 /etc/pf.conf),透過rc的scripts來載入的。主要也是透過pfctl這個指令來執行設置。其他常用的pfctl指令如下:

# pfctl -f /etc/pf.conf 載入pf.conf這個設定檔
# pfctl -nf /etc/pf.conf 解析/etc/pf.conf這個設定檔,但不載入
# pfctl -sr 顯示目前防火牆的設置
# pfctl -ss 顯示現在連線狀態
# pfctl -si 顯示過濾狀態以及統計
# pfctl -sa 顯示所有狀態訊息
其他完整的指令可按下這裡進行詳閱

以下僅針對pf.conf有關NAT與Port Forwarding的防火牆設置的簡單說明:

順序很重要,Port Forwarding的指令必須在NAT之前,否則會出現錯誤訊息

Port forwarding:

若要將ppp連線或對外接口的特定port轉換到內網某個特定IP的特定port,例如:tcp 9922轉換到內網192.168.1.5的ssh (port 22)則設定為:

rdr on ppp0 proto tcp from any to 222.3.15.2port 9922 -> 192.168.1.5 port 22

外網的IP為222.3.15.2,當外面連接這個地址port 9922則轉到192.168.1.5 port 22這個位址:

rdr on ppp0 proto tcp from any to 222.3.15.2 port 1935 -> 192.168.1.18

則連接到外網222.3.15.2的port 1935則轉到192.168.1.18的相同位址(port 1935)。

NAT讓內網可以透過這台MAC連上Internet

nat on ppp0 from 192.168.1.0/24 to any -> 222.3.15.2
pass from 192.168.1.0/24 to any keep state

222.3.15.2為外網IP,以上定義內網192.168.1.0/24皆可轉為222.3.15.2外網IP直接連上Internet

 

『華藏淨宗學會』專用播放器開發完成

滑動2

個人第一次以Adobe Flash Builder開發的Adobe AIR for Desktop應用程式,也學習了許多Flex開發所需要的編程技巧。例如,利用Flex外掛as3corelib.swc  用來解析JSON (JavaScript Object Notation)、Flash HTTPService的安全性問題、VideoPlayer物件在進行Live直播所遭遇到bug,因而改用VideoDisplay進行開發播放器、檔案管理、下載文件…等等問題。都在此次編程1200多行程序列裡,鍛煉自己在編程上的功夫。

程式碼(源代碼)有興趣的,可發郵件一起分享。已編譯好的程式,可在下面連結,直接下載:

http://www.thesolarsystems.net/downloads/hwadzan.exe — Windows環境安裝程式。

http://www.thesolarsystems.net/downloads/hwadzan.dmg — MacOS環境安裝程式。

http://www.thesolarsystems.net/downloads/hwadzan.air — 若已安裝Adobe AIR可直接下載此程式快速安裝。

爾後不定時發佈此程式源代碼的部分說明,請先進不吝賜教。

VLC 2.1.x版到Windows的交叉編譯-Cross Compile

官方說明:http://wiki.videolan.org/Win32Compile

以Ubuntu 12.04.2 LTS i686平台進行編譯,以下說明,最重要是第二項,在VLC官方網站沒有說明。而Ubuntu 12.04也正在改版,而且Mingw-w64在Debian也在修改。所以,避免花費太多時間,一定得去清楚明瞭MINGW的版本。

安裝必要工具

1. 安裝Mingw-64相關工具

$ sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w64
$ sudo apt-get install mingw-w64
$ sudo apt-get install mingw-w64-tools

2. 到Debian.ORG去查看是否有最新版本的Mingw-w64, 在VLC 2.0.x以後版本必須使用Mingw-w64 3.0以上的工具才行, 查看網址:http://ftp.debian.org/debian/pool/main/m/mingw-w64/ , 以2013/6/30編譯時,所查到的版本軟體為 mingw-w64-i686-dev_3.0~svn5915-1_all.deb, 所以以下面方式下載並安裝

$ wget http://ftp.debian.org/debian/pool/main/m/mingw-w64/mingw-w64-i686-dev_3.0~svn5915-1_all.deb
$ sudo dpkg -i mingw-w64-i686-dev_3.0~svn5915-1_all.deb

則與更新為最新版本。接下來就依據官方網站的方式進行編譯,但是需要把 i586-mingw32msvc 改為i686-w64-mingw32

3. 安裝其他相關程式、軟體、相依程式庫。。。等

$ sudo apt-get install git lua5.1 libtool automake autoconf make gettext pkg-config qt4-dev-tools subversion cmake cvs zip p7zip nsis bzip2
$ sudo apt-get install p7zip-full

7zip-full需要安裝才可以提供完整7z的指令。
4. 下載VLC程式碼

$ git clone git://git.videolan.org/vlc.git vlc

5. 開始進行編譯

$ cd vlc
$ mkdir -p contrib/win32
$ cd contrib/win32
$ ../bootstrap --host=i686-w64-mingw32
$ make prebuilt
$ cd -
$ ./bootstrap
$ mkdir -p win32 && cd win32
$ ../extras/package/win32/configure.sh --host=i686-w64-mingw32
$ make

包裝 VLC

以下的方式可以進行封裝VLC的方式:

Command Description
make package-win-common Creates a subdirectory named vlc-x.x.x with all the binaries. You can run VLC directly from this directory.
make package-win-strip Same as above but will create ‘stripped’ binaries (that is, smallest size, unusable with a debugger).
make package-win32-7zip Same as above but will package the directory in a 7z file.
make package-win32-zip Same as above but will package the directory in a zip file.
make package-win32 Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.