TP-Link Archer C7 安裝 Openwrt

李松錡
9 min readJul 8, 2017

--

大家常常會說 “我家需要 wifi,所以我去買了一個 wifi 路由器” 等類似的話,然後就買了一台類似這樣的東西

這是我在用 TP-LINK Archer C7 還有很搶眼的 pusheen 跟 摩茲小暴龍

然後大家就可以開開心心的上網了~~

然而,事實真是如此嗎?

這台路由器是你家所有封包出去的必經之處,只要有不肖廠商,或是廠商的 firmware 是有問題,那就勢必會遇到各式各樣的資安問題。而且這樣的事件還不少,下面提供幾個很慘的事實給大家:

  1. 從華碩路由器要被美國政府稽核20年
  2. 記得升級!解決 TP-LINK Router 後門漏洞洩私隱問題
  3. 研究人員:至少數十萬台Netgear路由器含有密碼外洩漏洞

在這邊只提供三個連結讓大家看這些路由器到底多麼的有問題,其他沒提到的廠牌也未必就是安全的,可以自己去 google 就知道隨便一抓就有一把的問題了。

程式是人寫,只要是人寫的,就肯定會有漏洞。廠商做的東西有漏洞也許不能過度苛責,但有漏洞還不發 patch 就真的有點不 OK。另外有些資安問題是廠商當初設計的後門,這個… 除非廠商被抓包點名,不然沒事他們是不會想修這個問題的 (他們就是要你的資料啊 也許不是直接的敏感資料,但如果你不想給,你應該有說不的權利)。那我們該怎麼解決這樣的問題呢? 路由器其實也是一台能力很弱的電腦,也許不能讓你跑 windows 玩遊戲,但他裡面其實還是有一個簡單的作業系統的。因此我們其實可以透過安裝第三方作業系統進去路由器裡面,這樣就可以不使用廠商提供的韌體,進而保護好自己的隱私 (而且有些第三方作業系統更新的速度還比廠商快)。

安裝新的作業系統到路由器中,一般我們都會透過大家口中所說的 “刷機” 來完成。而大家常使用的第三方作業系統有 Openwrt, Tomato, dd-wrt, Gargoyle (石像鬼), Merlin (梅林) 等等。在我們今天的文章中,就要教大家怎麼安裝 Openwrt 進你自己的 router 中。

Openwrt

Openwrt 最早是從 GNU 底下的一個計畫出來的,基本上他是一個 Linux 系統。相較於 dd-wrt 來說,他非常的輕量。根據使用者自己的需求以及 Linux 功力,可以安裝自己想要的東西上去,跑自己想要的服務 (例如可以架站,或是讓你的 router 變成一個動物下載機等等)。

安裝的第一步: 確認你的 router 是否已經有別人製作好的安裝檔

在 Openwrt 的官方網站中,我們可以先去下載頁面找找看是否有你的 router 的型號。通常因為路由器晶片組的關係,所以你的路由器不一定能支援。根據 Openwrt 的開發團隊表示,後期的 Broadcom 由於對於開發者的不友善,所以比較難以製作出適用於這些路由器的 Openwrt 系統。我自己曾經有過幾台路由器 (TP-Link Archer C7, TP-Link MR-3020, TP-Link WDR-4300, TP-Link 1043ND v1等,),Openwrt 在這些路由器上面跑都是很穩定的。我目前所使用的就是 TP-Link Archer C7 v2。

如果自己的路由器並沒有在列表上,通常可以先 google 看看,有些人會私下做一個 firmware 出來,但可能還沒有上傳上去。另外還有一些機器能力問題的因素,像 TP-Link Archer C2 (大黑特這台),很久以前因為他會莫名其妙對我做 MITM,然後還有一些詭異的現象,那時我去查了一陣子,發現因為他的 on chip memory 太小,所以裝不上去 (後來是看到有人有成功 port 到可以開機,但後面的網路孔 driver 問題沒解決所以網路孔通通失效)。而如果你夠厲害的話,是可以去 Openwrt 的官網上找 Compile 包,自己拉下來,選好你的 driver 後,在自己的電腦上做 cross-compile,把 firmware 的 binary (.bin) 檔案產出來,一樣可以安裝。

Archer C7 v2 本來在一兩年前,還在 Openwrt 的社群中被不少人推薦為 “與 Openwrt 最相容的機種”,但 TP-Link 公司似乎對 2016 年的底之後出產的 Archer C7 v2,偷偷的把 v2 版本裡面的 flash chip 做了更換,但從型號上是完全看不出來的,所以如果你直接拿 Openwrt 官網上下載那個刷進去的話,會跟我之前遇到一樣的問題: 開機到一半無法開機,用 serial port 進去看會看到詭異的 error。這邊有一篇 post 在討論這件事,裡面也有提供他自己根據新的 flash chip,重新 compile 了一份 binary 的 firemware 可以下載。

開始安裝 Openwrt 囉!

安裝 Openwrt 有幾種方法:

  1. 透過原來廠商韌體的 “更新介面”,把 Openwrt 安裝檔上傳上去: 這是最簡的安裝方法
  2. 有些 router 有類似救援模式,可以按住某顆鍵開機以後,強制透過已經插在上面用有線網路連接的裝置去抓 firmwarm 來安裝
  3. 根據 Openwrt 每個 router 各自的頁面,有提及到不同 router 透過 serial port 來下指令的安裝方法。例如前面提到的 TP-Link WRD4300 跟 TP-Link 1043ND v1,是可以直接拆開外殼,連接晶片然後透過 serial port 去控制上面的晶片,要求他直接更新韌體,然透趁機把你的 firmware 裝上去,然後你就有一台乾淨的 Openwrt router
這就是我當初在刷 WDR4300 跟 1043ND v1 的場景

對於 Archer C7 來說,我最推薦的方式還是透過 TP-Link 內建的升級介面,也就是第一個安裝方式,直接把在前面提到的 firmware 上傳上去安裝就可以了

安裝完 Openwrt,我可以幹嘛?

安裝完後的地一件事,當然就是先登入來改改設定,把 wifi 打開等。首先先把路由器的 LAN 孔接到你的電腦上,確定電腦的第一網路來源是那台 router 以後,打開瀏覽器,輸入

http://openwrt/

這樣就可以進去管理介面

預設介面是一個 bootstarp css 的畫面

一開始 root 是沒有密碼的,進去後首先可以到 System > Administration 裡面設定 root 密碼。

然後也可以去 Network 底下調整網路連接的方式,例如設定與中華電信連接的 PPPoE,設定自己的 wifi。

後記

到這邊大家已經有一台比較安全的 Linux router 啦~ 既然他是一台 Linux,我們就有很多花樣可以在上面玩。不過如果大家下個指令

$ df -h

會看到一個非常令人吃驚的事情,就是通常你的儲存空間都少得可憐,只有幾 MB 左右可以用,而且如果你下

$ free

的話也會看到 ram 少得可憐。沒辦法,人家就只是一台 router 而已啊~

因此一般在灌好 Openwrt 後,我通常會建議大家做的第一件事就是把整個系統改裝到外接的 usb 裝置 (我自己就是買一張 8G 的 USB 隨身碟插上去當系統碟用)。然後有了這台 Linux router,我自己最常玩的花樣大概有以下幾個:

  1. 把整個 Openwrt 系統移到外接的 USB 裝置上: 此舉不但可以擴大系統容量,package 隨便你裝到爽,還可以切一些空間出來當 swap 用
  2. DDNS: 我家是用種花電信,沒有申請固定 IP,因此要連接自己家中的 server,可以採用 DDNS 的技術。外面有些 DDNS 的服務商會提供一個帳號可以有 3 ~ 5 組免費使用的額度,不過每個月要 confirm 你還要繼續用這樣。這樣你人就算出去,也還是可以 ssh 回自己的 server 喔
  3. WOL: 我在家是有一台桌機當 server 在用的,可是沒事一直開著其實蠻耗電的,因此我通常會讓電腦進入休眠 (Linux 系統),然後在我要用的時候,才使用 WOL (Wake On LAN) 的方式把 Linux 主機叫起來,讓我跑研究或者做作業這樣。Wake on LAN 除了省電以外,也可以避免當人在外時,只能 Wake on WAN 從外網把你的機器叫起來,讓對外的連接程度擴到大不必要的程度。此外因為主機在睡眠中,所以別人要來 try 你的 Linux 主機,他也是不會回的~ 有點變相的 port knocking 保護
  4. 把你的手機 (或 4G USB 網卡) 插上去變成 WAN 端網路: 最近我也要畢業,也要把家中的網路退掉了等著被徵招入伍了 (順便抱怨一下,種花電信的網路實在是很怪,有些國外網站連就是比學網慢)。在這個期間,因為我有一台桌機跟一台 Macbook 要用網路,又不想再辦個一年的網路來用。我有 4G 網路,可是 iPhone 的網路分享就是怪怪的,用無線分享 Macbook 有時後都連不上,更不要說有時候有人來我家找,看到那台 Archer C7 就說: wifi 借我用~,然後只能很沮喪的跟他說我不確定你連不連得上我的 iPhone。在偉大的 Linux 及套件開發者的努力下,我現在是把 iPhone 用 USB 線接上路由器後面的 USB 孔,然後分享網路給路由器用,這樣別的設備要接網路就連路由器就好,如此 iPhone 的網路分享再怪,或接收 4G 的那台手機如果運算效能沒有很好,也可以把很多的工作都丟給路由器先處理。
自從退掉種花電信以後,我現在能上網都靠他們三個 (Minch A 來的摩茲小恐龍,Minch做的畢業帽,Minch 送的 pusheen 還有我自己的手機 (誤)

之後有空再來把後面提到的東西分享給大家~

2018/04/03 更新: Openwrt (LEDE) 安裝教學

--

--