Aruba ClearPass 學習

ClaerPass是個認證與策略管控的產品。在網路安全上,對於使用者(User)會給予不同的權限,權限決定能存取(Access)甚麼資源。像是訪客(Guset)就不應該能存取內部資源,以被限制的速率連上網際網路(Internet)瀏覽網頁等。

Aruba Certified ClearPass X系列的認證,並沒有出一本官方指南,只有操作手冊等,並不容易快速上手。當然,初學者想要使用ClearPass也不是那麼容易的事情,因為一個能用的情境,需要很多環節的設定。

最近考ACCA沒有通過,自身對於ClearPass其實也不是特別熟悉,因此決定要寫一些公開文章來紮實這類認證角色的相關知識。

要學習ClearPass的準備,建議要有一整套Aruba的環境:無線存取點(Access Point)、網路交換器(Switch)、無線控制器(Controller)、ClearPass,然後還要有License,不過這只要在經營Aruba品產的公司,就很容易解決。

首先要先安裝ClearPass,需要注意:

  1. 虛擬機的配置需求
  2. 虛擬機的硬體配置,要有兩個儲存空間

參考以下的影片,相信就能順利的完成。

ClearPass 6.9 User Guide

https://www.arubanetworks.com/techdocs/ClearPass/6.9/PolicyManager/Content/CPPM_UserGuide/About%20ClearPass/Intro_ClearPass.htm

如何成為網路工程師

個人還在成為一個成熟的網路工程師路上,但由於需要招募新人,換一個角度重新看待網路工程師,簡單地概述在三階段的角色。

規劃篇

弄清設備大致所需數目,檢查BOM表(Bill Of Material,物料清單),以及要用什麼概念去解決客戶需求。總之,規劃要具有可行性,擋下不可行的。

這階段與客戶之間的溝通主要是由業務進行,不過由於業務並不擅於網路專業而無法判斷數目或可行性,就會請工程師幫忙檢查與規劃。

在此,工程師要有遠見,推測進展與困難處,以及最後是否能做到解決客戶需求。這需要經驗跟專門技能兼具,也會是三塊之中,成熟最慢的部分。

施工篇

在業務送出報價單且被核准之後,施工篇就要開始了。

開始安排各週工程進度,順便跟客戶討實際明確設定規劃。經過一番等待,終於等到設備的到來。為了減少在客戶端安裝的時間,若客戶不介意,可以先在公司設定。

這時候是最好的學習機會,每個型號的指令不盡相同,有Edge到Core級的網路交換器,角色不同,功能不同。配合證照指南,在上面嘗試,可以平衡觀念與實際的落差。

經過前處理後把設備運到客戶那,目標則為安裝快且穩,追求更好效率的路上是無盡頭的。

維護篇

施工完成,照著招標需求驗收,驗收完成,就進入了維護階段。

不一定施工完後都會有維護,這要看案戶有沒有跟公司簽維護,多半在一開始談的時候就會有確定需不需維護。

維護不是去保養機器,多半是檢查設備設定跟記錄。在客戶有問題的時候,提供技術支援。

維護期,客戶多半是小問題,容易解決。設備故障就送修,並做設備歸來的重上線計劃。

這期間也是磨鍊心志跟基礎技術的好機會。

需要怎樣的技能才能勝任網路工程師

網路技術是相當廣的,因此只需要能擔下一階段的任務時,就可以勝任網路工程師。

經驗與學習是最重要,累積年資跟技術也是給自己薪水的保障。

技術需求最低的是「維護」,因為做好的東西通常不改是不會出問題。真有處理不來的問題,也還有技術更高的工程師可以請教,只要具有學習的心態,很快就能勝任。

接著是人格特質︰喜歡邏輯推理,化繁為簡,條理分明。最後工作上要看很多英文,所以英文程度好是很大的加分。

如何成為網路工程師

這是給沒有經歷的人,想要換工作的人。

基本網路知識是門檻,而基本網路知識可以從證照CCNA或是其它有系統的教材學來,如果是踏實學習,在實戰上不至於會過於無助跟挫折。

網路是經常變化的,新技術跟新問題也是不斷出現,保持一顆學習的心,一路學習,勇敢學習,即使是跨出自己負責的範圍也學一點,也許哪天遇到的問題就要需要各範圍的技術才能解決。

QR Code替換

QR code掃描出來的結果只是一串文字,而這串文字通常具有意義,如果這串文字能被解讀,就會再執行某些功能。

現實中QR Code的應用廣泛,產品上,廣告上,還是應用程式之中,都可以見到其足跡。QR code有一個很重要的特性,它是可以被還原的,即使部分圖像被汙漬蓋住,仍然藉由演算法校正,還原出本身資訊。

只要不破壞過度,放上LOGO之類的,QR Code依舊可以正確掃出資訊。

有些訊息不方便明說,會想要藏匿於訊息之中,一般無心人不會察覺,便可在無形之中傳遞訊息給特定人。

QR Code很常見,如果不是需要,人們並不會對QR Code特別起注意,難道你會看到QR Code就掃嗎?

有一種方法:用QR Code替換QR Code,把現實場景的QR Code換成帶有訊息的QR Code。這樣只需要:將QR Code重製、一點修圖能力,就可以藏得很完美。

QR Code 掃碼器QR碼產生器

找一張原圖,帶有可正常掃瞄的QR Code。

首先要先將QR Code還原成文字,把QR Code圖片傳到電腦,使用 QR Code 掃碼器 ,就可以得到文字。

接下來,使用 QR碼產生器 並輸入文字,對照要被替換的QR Code調整參數到相似,然後產生QR Code。

編輯兩個QR Code,把被替換的QR Code的Logo放到新QR Code上,並把新QR Code調整成跟被替換的QR Code相近的大小。

最後在原圖上做QR Code替換。

網路證照考試通用準備指南

目前有ACSA ACMA ACMP CCNA CCNP證照,除了為公信力的證明之外,對我來說,有時候是門消遣。

正因為多次的準備經驗,這裡訂出一套指南,給各位參考,同時也給以後的自己一個明確的方針。

步驟︰

  1. 瞭解要考的科目
  2. 制定準備的流程
  3. 反覆練習,驗證與筆記
  4. 考前調整
  5. 考後檢視

瞭解要考的科目

有三個基本︰考試代碼、測驗目標與考試範圍、及格分數。

考試代碼是報考的依據,有時候會改版,因此使代碼變動,萬一只看名稱就決定,可能會意外地弄錯!走錯路的話只能重走。

測驗目標與考試範圍是重要的方向,有時候會以為看書就夠了,反而放錯重點,在不重要的部分花太多時間,沒有準備到要考的部分,因此可能看到題目才意識到慘了。

及格分數是絕對的標準,能決定得要花多少時間準備,如果有很多容錯空間,意味著更多的的信心,即使沒有全部準備好,也可以提前去考。

制定準備的流程

就像攻略一座山嶺,不過這座山的全貌未知,也許有先人建好的登山路徑,或沒有。先不要急著開始,這樣多半會走很多的彎路。

鳥瞰這座證照山,這座山並不想考倒人,是張開雙手歡迎有毅力的登山客。大略看一下考試範圍,試想一下 實際的應用 ,這些多半是來自於為了解決一些處境,當你瞭這些,就能隱約領會到思路,照著思路,通常會很順利地攻頂。

拿出設備玩,或是打開程式,也許你不瞭該做些什麼,沒有關係,隨意點點,如果可以就隨意改改設定,再搭配鳥瞰圖看看,會記住有些地點(專有名詞),這樣子之後在準備時看到,很快就能反應過來。

下一步是安排登山路線,如果有官方指南,就跟著章節走,如果沒有,就跟著考試範圍走。先從基礎開始,再看需要基礎的部分,如果看不懂,就得退回到基礎,不要把有看過當成進度,懂的部分,能解釋脈絡的部分,才是真正的進度。這點在初學者上特別常見。

筆記很重要,像是個登山點。知識會隨著時間淡去,日後難免會回頭,若沒筆記,就得從最一開始的入口爬起。筆記只有一個重點,就是要自己一讀能懂、一思就能想到。目錄也是個很棒的途徑。總之,當有需要回頭的時候,能馬上想到在哪裡找,就合格了。

反覆練習,驗證

把題目做成習題是很有幫助的,像是VCE這類的模擬考試。

反覆練習直到不會因為一時失誤就低於了及格分數。

到了這一步,如果有設備跟程式,就能驗證題目的內容。驗證的能力即為證照應具備的能力,如果不做驗證,多半禁不起考驗。

考前調整

從上一步能發現自己的弱點,再檢視一下考試說明跟課本,如果看到一個詞就能想到延伸概念,準備已夠。這時面對不足,可能無法從書中得到解答,再找其它的資源,超出範圍也無所謂,弄懂它。

然後不要把自己弄得太累,不要太緊繃,因為差不多定形了,讓自己精神好,反而會是增加分數的最好方法。

考後檢視

拿到成績單,會有各部分的對錯題數,回想起在作答過程中有哪些不確定,是否與錯題數可以對上。

馬上紀錄下自己在意的部份,在考完六小時內完成。考不過也不要太難過,如果扎實做好,下次一定會更高的分。

電腦版Chrome長截圖

如果頁面不長,可以使用內建工具。三個步驟,參考

  1. 按下F12,叫出開發人員工具。
  2. 按下Ctrl+Shift+P,叫出開發人員工具命令列
  3. 輸入「full」,按下Enter。※full為 Capture full size screenshot的縮寫。

網頁長截圖會以下載的方式保存。

試過一些方式,這一套是最簡潔的流程。最近瀏覽不少設定的操作步驟,指令簡單的話,看純文字是比較好操作跟記憶的。

近期在著手evernote到onenote的轉換,相容性蠻不合,但只是要保存過去的紀錄,用圖片格式儲存紀錄,也沒有甚麼關係。

身為工程師,就是要懶一下,把一切都變成一鍵完成才過癮!
寫了python,搭配QuickTextPaste,不過礙於環境參數不同,只有自己能用,無法共享給別人。

如果頁面過長,就會發現內建工具並無法擷取下來,最底下會被砍掉部分(超越20480px)。

可以從擴充功能去安裝Chrome FireShot,參考

安裝完後,在該擴充功能的設定打開存取權。

接著使用 Ctrl + Shift + Y,就可以看到以滾動頁面的方式進行長截圖。

完成後有圖片跟pdf兩種格式可以下載。

2021-05 近期簡述

自從上一篇公告發出後,還是沒有很認真照著架構填起,生活總有比較優先的事情,所以不是那麼在意這邊的雜亂以及人氣的低下。

對於目前的人生規劃,要把部落格振興可能得看向年底了,這有好有壞,好是我遇到很多更重要的事情,壞是我沒能在社會認可的價值這塊繼續成長。

工作忙的時候,為了最優先的事情:保持個好狀況,把一些想寫的文章拖延了好幾周,結果現在可以寫的時候,卻沒有了想寫的衝勁。

最近很忙,除了案子之外,還有好幾張證照排隊,念書又有點倦怠,效率不怎樣,加上其他的規劃,已經去了大半閒閒的日子。每天都有該做的事情,專注力也不是那麼好,使得寫一篇文章都很像是奢侈。

這一兩個月有做出一個改變,就是盡可能把知識記在「OneNote」,並且做了比較認真的分類,之後會把公開連結分享在這裡,對於有使用onenote的朋友,就可以把感興趣的筆記本納入自我的懷抱,方便參考。

時間越是忙碌,就越想要得到優質的知識。我盡量在有限的時間寫出有幫助的文章跟紀錄,其實寫文章為了不只是幫閱讀者節省時間,也是替自己留下日後可查詢的紀錄,對大家都好。

希望有機會盡快趕快安排振興計畫,如果時間充裕的話。

Python NTP對時

對於自動化,時間準確是很重要的,如果運作在虛擬機上,尤其是重新啟動的時候,系統時間很容易跑掉,然後發生意外跟紀錄上的不準確。所以在執行自動化之前,先跑對時,是很重要的環節。

python指令碼設定系統時間的兩種方法

上方連結是參考,裡面有兩種code,都可以用,只是都不是臺灣版本。所以下方會放上改成臺灣版本的code,以及在python3上可運作的語法。

這裡要以 watch.stdtime.gov.tw 為準,使用 nslookup 去查詢得到 IP 為 118.163.81.63 。

如果要修改系統時間,那麼在執行的時候,請記得使用「管理員權限」。

import socket 
import struct 
import time 
import win32api 
TimeServer = '118.163.81.63' #watch.stdtime.gov.tw
Port = 123 
def getTime(): 
    TIME_1970 = 2208988800
    client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
    data = b'\x1b' + b'\0'*47 
    client.sendto(data, (TimeServer, Port)) 
    data, address = client.recvfrom(1024) 
    data_result = struct.unpack('!12I', data)[10] 
    data_result -= TIME_1970 
    return data_result 
def setSystemTime(): 
    tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst = time.gmtime(getTime()) 
    win32api.SetSystemTime(tm_year, tm_mon, tm_wday, tm_mday, tm_hour, tm_min, tm_sec, 0) 
    print("Set System OK!")
if __name__ == '__main__': 
    setSystemTime() 
    print("%d-%d-%d %d:%d:%d" % time.localtime(getTime())[:6])

NTPlIB

import os 
import time 
import ntplib 

c = ntplib.NTPClient() 
response = c.request('watch.stdtime.gov.tw') 
ts = response.tx_time 
_date = time.strftime('%Y-%m-%d',time.localtime(ts)) 
_time = time.strftime('%X',time.localtime(ts)) 
print('date {} && time {}'.format(_date,_time))

Home Assistant:簡介、目標與系統選擇

本人最近踩坑,有鑑於臺灣的教學實在很少,可能稍嫌過時,所以決定把最新的經驗寫下來,供「沒有任何經驗的初學者」參考,可以少走一點冤枉路,會玩得比較順一點。

關於 Home Assistant 是什麼?它是智慧控制系統中樞,類似米家、Homekit,可以控制裝置或者取得資訊。因為它的支援度相當高且多,因此當家中有許多不同廠牌的裝置時,使用 Home Assistant 就可以一肩攬起中控的責任。

自由度高,也意味著會需要一定的知識背景支持,所以入門到堪用並不容易。除非都是買一些好納入的設備,不然很難順利。這裡建議先學習python跟yaml,只要能初階看懂就可以了。

個人使用:樹梅派4B 8GB、Home Assistant Operating System(HAOS)。

官方文件

Taiwan Home Assistant 同好交流

簡介

Home Assistant(HA) 是系統家族的名稱,衍生的子系統都有些許不同,功能也不同,差別在哪?這點可以從官方文件下方找到表格說明。

Operating System: 主要作業系統或是虛擬機
Container: 以Docker架設,架設出來的是Core。
Core: 以Python架設。
Supervised: 以Docker架設,接入Core後,能使用Supervisor的功能。

Home Assistant Community Store(HACS)是一個由各路大神製作的成品商店,由於 Home Assistant 並未能把每套智控系統完美接入,所以得自製套件去接入那些系統,尤其是米家設備,如果沒有HACS去下載整合,是很難輕鬆地接入米家設備。此外還有主題跟Lovelace UI,對於美化面板是很實用的。

Home Assistant Supervisor能安裝第三方的套件,讓HA具有其他非智控的功能,像是SSH、DNS等,重要性取決於自己對於HA有沒有要勝任其他角色,如果沒有,其實也不用Supervisor。當然最好是有,以後才方便做一些延伸。

如果HA會需要使用Wifi或是藍牙,不論是VM、Container還是Core都會有使用權限跟連接問題,因此直接安裝OS會比較容易上手些。

目標

個人使用Home Assistant是為了要整合住處的米家,雖然是米家全家餐,不過有些地方的控制並不是很到位,尤其是多條件的判斷,這使得用HA會比較容易進行。

規劃好目標是很重要的,尤其是HA擔任的角色,要整入那些設備?與要使用的功能,有沒有用加一點特別的功能?這會影響到系統選擇,要是之後才發現自己安裝的系統不支援,就會花上很大的工夫去嘗試或重灌,重灌也意味著進度歸零。

確定好要納入的設備,就能照著以下的主要步驟進行,這會讓你打造一個屬於自己風格的HA。

  1. 整入設備
  2. 美化面板
  3. 設定智慧

系統選擇

建議直接使用OS,OS的功能是最齊全的。

硬碟配置單位大小與讀寫速度測試

今天在整理檔案,發現行動硬碟有個autorun.inf刪不掉,實在很礙眼,只好先把檔案取出來,再來格式化。

要測試的主角是ST1000LM024 HN-M101MBB 1000.2 GB,這顆行動硬碟從大學就買了,已經過了好幾年。宣稱可以持續傳輸145MBps,實際使用也差不多在100MBps以上,速度很穩定,不會亂飄,不像是迷你隨身碟,一開始很快,後面一熱就廢掉了。

搭配的測速是CrystalDiskMark8_0_1 ,會試著用各種檔案配置單位大小去做測試。每種測試5種,測試檔案大小為1GB,速度單位為MB/s,連續測試。

檔案系統 配置單位大小 SEQ1M
Q8T1
Read
SEQ1M
Q8T1
Write
SEQ1M
Q1T1
Read
SEQ1M
Q1T1
Write
RND4K
Q32T1
Read
RND4K
Q32T1
Write
RND4K
Q1T1
Read
RND4K
Q1T1
Write
NTFS 4KB 120.46 118.63 119.30 119.43 0.54 1.03 0.46 1.04
NTFS 8KB 120.51 120.06 119.39 120.11 0.55 1.03 0.45 1.03
NTFS 16KB 120.78 120.33 119.32 119.45 0.53 1.00 0.44 1.02
NTFS 32KB 120.53 122.42 119.19 119.08 0.54 0.86 0.45 0.99
NTFS 64KB 120.32 120.07 119.39 118.88 0.54 0.88 0.46 1.02

測試結果沒有太大的差異,可能是因為這是一顆傳統硬碟(HDD),所以配置單位大小會選用4KB,以節省不必要的空間浪費。

(本文是為了紀錄要如何產生測試報告

快速打開網路內容

身為一個網路相關的工作者,打開網路內容是家常便飯,每次要點個好幾次,再測試的時候動不動就要點出來,真的很累人。

在Windows有個指令可以打開控制台,網路內容在控制台內,應該也有相對應的指令。

按下 win+R 輸入cmd,再輸入以下指令,就可以打開網路內容。

control ncpa.cpl

更多指令參考:如何藉由輸入指令來執行控制台工具

接著把指令做成批次檔(.bat),然後產生捷徑改圖案,釘選在開始功能表,就可以只用兩次點擊就能開啟網路內容。

用批次檔開啟服務後執行程式

一台電腦裝了很多程式之後,除了開機時執行程式,也可能會順帶執行自身的服務。如VMware跟線上銀行元件等,要是沒有把服務手動中止,電腦開機之後就會一直執行不常用到的服務。

有鑑於筆電效能越來越慢,所以把服務手動中止,等到要使用時才去開啟服務。不過每次都要從服務海中去搜尋,實在很慢。

寫一個批次檔(.bat),先執行服務後,再開啟執行檔(.exe),就能順利執行。當然也可以寫個關閉服務的。

流程如下:

  1. 撰寫批次檔(.bat)
  2. 產生捷徑,修改成管理員權限跟更改icon。

啟用服務是需要管理員權限,而且批次檔是無法從檔案內容去更改icon,所以產生捷徑就能解決這些要求。

撰寫批次檔(.bat)

範例

net start "服務名稱" "服務名稱"
start "" "執行檔位置"

以VMware Workstation為例

net start "VMAuthdService" "VMAuthdService"
net start "VMnetDHCP" "VMnetDHCP"
net start "VMware NAT Service" "VMware NAT Service"
net start "VMUSBArbService" "VMUSBArbService"
net start "VMwareHostd" "VMwareHostd"
start "" "D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"

net start是啟用服務。而start是執行後馬上繼續下一行,這能讓cmd可以順利關掉。

start帶空格的參考

捷徑的icon

產生捷徑跟預設成以管理員權限執行的方法就不贅述了。

這裡要提icon,捷徑最好的icon就是執行檔icon,所以要去撈出icon來。

以VMware為例,在「內容」>「變更圖示」,貼上執行檔路徑「 D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe 」,按「確定」,就會抓到 vmware.exe 裡面的icon,也包含其正在使用的icon。

只要帶有icon的執行檔,這招通常八成可以取得出來,如果沒有成功,就要進執行檔去看圖示的位置。

用筆電發出帶802.1Q的tag封包

今天碰到一個情境,有一台設備的管理IP在VLAN20,只有一Port為trunk,其餘皆為Access Default Vlan(1),為了測試設定有沒有正常,尤其是管理IP能不能通,就需要想辦法讓筆電發出帶tag的封包,能Ping到管理IP就沒有問題了。

關於Windows10,正常情況下已經不支援發出帶tag的,但是可以接收。網路上關於windows的教學都是舊的Windows,這邊就不再琢磨。

今天要完成,需要藉助VM,使用非Windows系統的去做到這件事情。

個人使用:kali linux。 參考

步驟如下:

首先提高權限,(kali的預設密碼為kali)

sudo su

如果使用外接網卡,直接切換去跟VM做連結。如果使用VM網卡,那就用在連外網卡上使用Bridge模式。

下指令看一看目前的網路介面卡,可以取得網路介面卡的ID。

ifconfig

接著使用vconfig,去添加子介面,這跟路由器的設定很像。

vconfig <interface id> add <vlan>

如果是eth0、vlan100,會新增一個 eth0.100 網路介面卡。而這個卡有沒有添加成功?可以用下列指令去查詢。

ifconfig -a |grep -i <interface id>

接著下指令,指定子介面的IP位置。

ifconfig <interface id> <ip address> netmask <netmask>

網路線接在Trunk Port,最後測試ping管理ip,有成功。馬上再安裝telnet,連線進去,也順入看到要求輸入帳號的訊息,代表筆電有順利發出帶tag的封包。