在行動裝置成為人類必需的隨身裝備之一,企業無可避免的直接面對這股浪潮,然而在智慧型行動裝置進入企業環境之後,各種資料安全與機密防護問題該如何解決呢?昨天提到了 NAC 網路存取控制,那麼今天接著討論於行動裝置管理上的各種需求。
不論是公務裝置或是私人裝置,勢必要採用相對應的解決方案,才能讓企業管理者有所掌握。
方案介紹
在過去所認知的印象裡,大都是商業等級產品方能做到行動裝置管理 (MDM,Mobile Device Management),而且都有一定的費用門檻。
其實,在開源的世界裡也有不錯的方案可以做為參考,它的名字是 WSO2 IoT。
WSO2 IoT 的前身是 WSO2 EMM,WSO2 IoT 加入了更多 IoT 物聯網裝置的管理能力,我稍加整理它的主要功能:
- 全 Web 化的管理介面
- 提供裝置資產管理功能
- 提供 App 管理與派送功能
- 為裝置上的資料進行加密
- 由管理中心將裝置鎖定
- 依據策略決定裝置的網路設定
- 遠端進行裝置資料抹除
- 行動裝置位置追蹤
- 裝置內建硬體管理控制
- 回收裝置相關資訊
- 提供完整 API 相關功能
安裝方式
WSO2 IoT 伺服器是以 Java 開發,安裝好 JDK 與相關環境參數,依據官方文件所述,將專案檔下載後解壓縮即可準備使用,我是以 Ubuntu 18.04 為伺服器。
apt update apt install openjdk-8-jdk unzip
安裝完 openjdk-8-jdk,它的路徑應該會在 /usr/lib/jvm/java-8-openjdk-amd64/。
下載與解開 WSO2 IoT Server
cd /opt wget https://github.com/wso2/product-iots/releases/download/v3.1.0-update1/wso2iot-3.1.0-update1.zip apt install unzip unzip wso2iot-3.1.0-update1.zip mv wso2iot-3.1.0-update1 wso2
修改 Server 連線資訊
# 第一道問題輸入 localhost # 第二道問題請輸入此伺服器的 fqdn,絕對不要用 ip.. 這搞了我好久 /opt/wso2/script/change-ip.sh
接著,我們要把 WSO2 IoT 安裝為 Linux Service,請依據實際 JDK 路徑進行調整。
安裝 Service (存為 /opt/wso2/wso2server)
#! /bin/sh export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/" export PATH=${JAVA_HOME}/bin:${PATH} startcmd='/opt/wso2/bin/iot-server.sh start > /dev/null &' restartcmd='/opt/wso2/bin/iot-server.sh restart > /dev/null &' stopcmd='/opt/wso2/bin/iot-server.sh stop > /dev/null &' case "$1" in start) echo "Starting the WSO2 Server ..." ${startcmd} ;; restart) echo "Re-starting the WSO2 Server ..." ${restartcmd} ;; stop) echo "Stopping the WSO2 Server ..." ${stopcmd} ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac
將這個檔案存成 /opt/wso2/wso2server (請依實際位置調整) 後,連結到 /etc/init.d 中,最後再將此指令碼註冊至啟動位置。
chmod a+x /opt/wso2/wso2server ln -snf /opt/wso2/wso2server /etc/init.d/wso2server update-rc.d wso2server defaults
確認沒有問題以後,就可以啟動服務啦。
service wso2server start
如有正確啟動,WSO2 Iot 會監聽以下這些連接埠並提供連線:
HTTP
- 管理主控台:http://
:9763/carbon - 裝置管理主控台:http://
:9763/devicemgt - 裝置監視資訊看版:http://
:9763/portal
HTTPS
- 管理主控台:https://
:9443/carbon - 裝置管理主控台:https://
:9443/devicemgt - 裝置監視資訊看版:https://
:9443/portal
這兩個主控台安裝完成後的預設帳密都是 admin。
主要功能
要將行動裝置納入管理並不困難,我們以 Android 裝置做為範例。在裝置主控台 [DEVICES] 區塊按下 [Add] 按鈕。
首先掃描伺服器端產生的 QR Code 二維條碼,即可進入下載 Agent 代理程式的畫面。
經過一步一步的點選安裝完成後,啟動此 App 並輸入帳號密碼,我手上這支 ASUS Zenfone 3 就可以被管理中心所控管。
在這個畫面上,我們可以很容易的掌握這部裝置的所有資訊,從最基本的電池容量、CPU 使用率、記憶體使用率、儲存使用率等,以及裝置目前的狀態是否符合政策規範。
在畫面上也提供許多功能操作項目,可以從管理中心遠端對該裝置進行響鈴、裝置鎖定、取得位置、清除密碼、傳送訊息、升級韌體、靜音、重新啟動、資料抹除、程式移除或派送等等。
同樣的,iOS 也可以被 WSO2 IoT 所集中管理,不過依據作業系統所開放的程度不同,iOS 可以遠端操作的管理功能也少了一些,不過在資料安全上所需要的抹除等機制仍然俱備。
提醒,要啟用 iOS 支援之前,需要先寄信至官方窗口取得 ios-feature-deployer 包,接著還要搞定 CSR 憑證、Apple Developer ID、MDM APNS 等複雜的東西,詳情可看文末參考資料的「Enrolling With the iOS Agent」連結。
軟體中心
軟體中心的功能相當實用,企業可以建立屬於自己的 App 軟體中心,將自行開發的 App 上架讓使用者自行選擇安裝,可以減輕 IT 人員部署的工作負擔與難度。
以 Android 要建立 App 上架為例,連接到伺服器的發佈頁面 https://
結論
在員工自行攜入行動裝置的風潮無法改變下,企業必需因應 BYOD (Bring Your Own Device) 所帶來的新挑戰,以及企業內部因為使用需求而產生的各種行動裝置。
WSO2 IoT 是一款值得企業嘗試的開源套件,更有趣的是,它除了可以控管 Android、iOS 等大家熟知的行動裝置以外,更開始支援 IoT 相關裝置,例如 Raspberry Pi、Arduino 等等,協助企業 IT 提升管理能力,降低工作負擔。
後記:照著官方文件安裝,絕對執行不起來的 (暈)
參考資料
- WSO2 IoT Server - Flexible Open Source IoT Platform
https://wso2.com/iot/
- Android - IoT Server 3.3.0 - WSO2 Documentation
https://docs.wso2.com/display/IOTS330/Android
- iOS Device - IoT Server 3.2.0 - WSO2 Documentation
https://docs.wso2.com/display/IOTS330/iOS
- Enrolling With the iOS Agent
https://docs.wso2.com/display/IOTS330/Enrolling+With+the+iOS+Agent#EnrollingWiththeiOSAgent-ConfiguringiOSsupportinWSO2IoTServer