# 4.3 無線網絡--以筆記本電腦為例
## 4.3 無線網絡--以筆記本電腦為例
除了使用實體 RJ-45 線路來連接網絡之外,由于現在筆記本電腦漸漸廣為使用,因此在筆記本電腦上面的無線網絡 (Wireless Local Area Network, WLAN) 也越來越重要啰~針對無線網絡所提出的標準中,早期是 IEEE 802.11b / 802.11g 較為重要,其中 802.11g 這個標準的傳輸速度已經可以達到 54Mbps 的水平。不過,近期以來還有新的標準,那就是 802.11n ([注3](#ps3)) ,這個標準的理論傳輸速度甚至可達 300Mbps 哩!所以啰,我們也得稍微介紹一下無線網絡啦!
**Tips:** 無線網絡的機制非常多,我們現在常聽到的主要有 Wi-Fi (可想成是 802.11 相關標準) 以及 WiMAX (802.16, [注4](#ps4)) 等, 在底下我們主要介紹的是目前使用較廣泛的 Wi-Fi 相關無線網卡喔!可不要搞錯啰!

- - - - - -
### 4.3.1 無線網絡所需要的硬件: AP、無線網卡
我們知道在 RJ-45 的以太網絡聯機環境中,以 switch/hub 以及網絡卡與網絡線最重要,該架構中主要以 switch/hub 串接所有的網絡設備。那么在無線網絡中,當然也需要一個接收訊號的裝置,那就是無線基地臺 (Wireless Access Point, 簡稱 AP) 了!另一個裝置當然就是安裝在計算機主機上面的無線網卡啰!
其實無線基地臺本身就是個 IP 分享器了,他本身會有兩個接口,一個可以與外部的 IP 做溝通,另外一個則是作為 LAN 內部其他主機的 GATEWAY 啰!那其他主機上面只要安裝了無線網卡,并且順利的連上 AP 后,自然就可以透過 AP 來連上 Internet 啦!整個傳輸的情況可以用下圖來示意:

圖 4.3-1、無線網絡的聯機圖標
在上圖中,我們假設 PC A 與 PC B 這兩部主機都有安裝無線網卡,因此他們可以掃瞄到局域網絡內的 AP 存在,所以可以透過這個 AP 來連上 Internet 啊。在不考慮內部 LAN 聯機的情況下,AP 如何連上 Internet 呢?雖然每部 AP 的控制接口都不相同,不過絕大部分的 AP 都是提供 Web 接口來設定的,因此你可以參考每部 AP 的說明書來進行設定,在這里鳥哥就不多說了。
鳥哥就以手邊有的設備來說明這個項目,使用的設備如下:
- AP : TP-Link (TL-WR941ND)
- USB 的無線網卡: D-Link (DWA-140),使用 RT3070sta 驅動程序
比較凄慘的是,CentOS 6.x 預設不支持 DWA-140 這個 USB 的無線網卡,因此原本我們還得要自行手動下載 USB 無線網卡的驅動程序才行!更怪的是,我們的核心偵測到的模塊是 rt2870sta,但實際上該硬件使用的是 rt3070sta模塊... 為了這個,搞了鳥哥兩、三天的時間去解決問題...還好,由世界上熱心的網友回報支持 Linux 的無線網卡網站說明,發現這只 USB 是支援 Linux 的喔!如下網址所示。而且,已經有公司將這個網卡編譯成 CentOS 6.x 可以使用的 RPM 檔案啰!相關網址如下:
- 網友們熱心提供:[http://linux-wless.passys.nl/query\_part.php?brandname=D-Link](http://linux-wless.passys.nl/query_part.php?brandname=D-Link)
- 幫我們打包成 RPM 的公司:<http://rpm.pbone.net/index.php3>
- Ralink 官網的下載處:<http://www.ralinktech.com/support.php?s=2>
鳥哥最終由上面第二個網址下載的兩個檔案是:kmod-rt3070sta-2.5.0.1-2.el6.elrepo.x86\_64.rpm, rt2870-firmware-22-1.el6.elrepo.noarch.rpm。鳥哥將他放置于 /root 底下,等一下再來安裝。
**Tips:** 這張 USB 無線網卡讓鳥哥搞到一個頭兩個大!基本上,Linux 核心預設不支持的設備,建議不要購買啦! 否則很難處理!鳥哥覺得這個 DWA-140 感覺就是張惡魔卡~好怪~好難搞...

- - - - - -
### 4.3.2 關于 AP 的設定:網絡安全方面
如果你留心一下[圖 4.3-1](#fig4.3-1) ,那么就可以發現一件事情,那就是:『如果 AP 不設定任何聯機限制,那任何擁有無線網卡的主機都可以透過這個 AP 連接上你的 LAN 』, 要知道,通常我們都會認為 LAN 是信任網域,所以內部是沒有防火墻的,亦即是不設防的狀態,呵呵! 如果剛好有人拿著筆記本電腦經過你的 AP 可以接收訊號的范圍,那么他就可以輕易的透過你的 AP 連接上你的 LAN ,并且可以透過你的 AP 連上 Internet ,如果他剛好是個喜歡搞破壞的 cracker , 哈哈!那么當他使用你的 AP 去攻擊別人時,最后被發現的跳板是誰?當然是你的 AP! 那是誰會吃上官司?夠清楚了吧?而且你內部主機的數據也很有可能被竊取啊!
所以啦,『無線網絡的安全性一定是具有很大的漏洞的』,沒辦法, 因為無線網絡的傳輸并不是透過實體的網絡線,而是透過無線訊號,實體網絡線很好控制,無線訊號你如何偵測啊?對吧! 因此,請你務必在你的 AP 上面進行好聯機的限制設定,一般可以這樣做限制的:
- 在 AP 上面使用網卡卡號 (MAC) 來作為是否可以存取 AP 的限制:
如此一來,就只有你允許的網絡卡才能夠存取你的 AP ,當然會安全不少。不過這個方法有個問題, 那就是當有其他主機想要透過這個 AP 聯機時,你就得要手動的登入 AP 去進行 MAC 的設定, 在經常有變動性裝置的環境中 (例如公司行號或學校),這個方法比較麻煩~
- 設定你的 AP 聯機加密機制與密鑰:
另一個比較可行的辦法就是設定聯機時所需要的驗證密鑰!這個密鑰不但可以在網絡聯機的數據當中加密,使得即使你的數據被竊聽, 對方也是僅能得到一堆亂碼,同時由于 client 端也需要知道密鑰并且在聯機階段輸入密鑰, 因此也可以被用來限制可聯機的用戶啊!
當然,上面兩種方法你可以同時設定,亦即不但需要聯機的密鑰,而且在 AP 處也設定能夠存取的 MAC 網卡, 嘿嘿!這樣一來,就更安全的多了([注5](#ps5))。底下讓我們來介紹一下 AP 里面經常要了解的數據, 那就是 ESSID/SSID 啰!
- 關于 ESSID/SSID :
想一想,如果你有兩部 AP 在同一個局域網絡內,那么請問一下,當你的無線網卡在上網時,他會透過哪一個 AP 聯機出去呢?很困擾,對吧!其實每部 AP 都會有一個聯機的名字,那就是 SSID 或 ESSID,這個 SSID 可以提供給 client 端, 當 client 端需要進行無線聯機時,他必須要說明他要利用哪一部 AP ,那個 ESSID 就是那時需要輸入的數據了!在鳥哥的案例當中,我將我的 AP 設定為 vbird\_tsai 這個名字, 并且給予一個密鑰密碼,設定的方法如同下圖所示:

圖 4.3-2、無線網絡 AP 的 SSID 設定項目
如上圖,在登入了 AP 的設定項目后,依序 (1)先選擇無線網絡里面的『無線網絡設定』,然后在右邊的窗口當中 (2)填寫正確的 SSID 號碼,然后按下 (3)儲存即可。之后就是密碼項目啦!密碼項目的設定畫面如下:

圖 4.3-3、無線網絡 AP 的密鑰設定項目
我們先選擇 (1)無線網絡加密設定,然后在右邊窗口 (2)點選 WPA-PSK/WPA2-PSK 的加密方式,然后 (3)輸入加密的密鑰長度,鳥哥這里填寫的算是簡單到爆炸的密碼,小朋友不要學喔!填完后按下儲存即可。 這個時候我們就會有底下兩個數據:
- SSID: vbird\_tsai
- 密鑰密碼: 123456789aaa
這僅是個范例說明! AP 設定就到此為止,如果您的設定有不同的地方,請自行查詢您 AP 的操作手冊呦!
- - - - - -
### 4.3.3 利用無線網卡開始聯機
無線網卡有很多模式,鳥哥選擇的是 USB 無線網卡,所以想要知道有沒有捉到這張網卡,就得要使用 lsusb 來檢查, 如果核心預設不支持,還得要自行編譯驅動程序才行!如前所述,我們的驅動程序已經捉在 /root 底下了!
1. 檢查無線網卡的硬件裝置:
使用 USB 無線網卡的檢查方式如下:
```
[root@www ~]# lsusb
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 07d1:3c0a D-Link System DWA-140 RangeBooster
N Adapter(rev.B2) [Ralink RT2870]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# 是有捉到的!只是,有加載嗎?不知道呢!繼續往下檢查看看!
```
2. 察看模塊與相對應的網卡代號:(modinfo 與 iwconfig)
知道核心偵測到這張網卡,但是能不能正確的加載模塊呢?來瞧瞧:
```
[root@www ~]# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
# 要出現名為 wlan0 之類的網卡才是有捉到喔!所以沒有加載正確模塊啦!
```
因為沒有加載正確的驅動程序,現在讓我們來安裝剛剛下載的 RPM 驅動程序吧!請先將 USB 拔出來, 然后再安裝 RPM 檔案。安裝的方法不要說你忘記了!
```
[root@www ~]# rpm -ivh kmod-rt3070sta* rt2870-firmware*
# 這個動作會進行很久,似乎程序在偵測硬件的樣子!
# 這個咚咚做完之后,請將 USB 網卡插入 USB 插槽吧!
[root@www ~]# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
ra0 Ralink STA
```
這個 iwconfig 是用在作為無線網絡設定之用的一個指令,與 ifconfig 類似!不過,當我們使用 iwconfig 時,如果有發現上述的特殊字體,那就代表該網絡接口使用的是無線網卡的意思啊!雖然有時你會看到無線網卡為 wlan0 之類的代號,不過這張網卡卻使用 ra0 作為代號,挺有趣的!
3. 利用 iwlist 偵測 AP :
好了,接下來要干嘛?當然是看看我們的無線網卡是否能夠找到 AP 啊!所以,首先我們要啟動無線網卡,就利用 ifconfig 即可:
```
[root@www ~]# ifconfig ra0 up
```
啟動網卡后才能以這個網卡來搜尋整個區域內的無線基地臺啊!接下來,直接使用 iwlist 來使用這個無線網卡搜尋看看吧!
```
[root@www ~]# iwlist ra0 scan
ra0 Scan completed :
Cell 01 - Address: 74:EA:3A:C9:EE:1A
Protocol:802.11b/g/n
ESSID:"vbird_tsai"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100 Signal level=-45 dBm Noise level=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
....(底下省略)....
```
從上面可以看到 (1)這個無線 AP 的協議,并且也能夠知道 (2)ESSID 的名號是沒錯的!當然啦,(3)連加密的機制是 WPA2-PSK 也是能夠得知的!這與前一小節的 AP 設定是相符合的!(4)使用的無線頻道是 6 號,接下來呢?就得要去修改配置文件,這部份很麻煩,請參考如下的網頁來設定:
- <https://wiki.archlinux.org/index.php/Rt2870>
```
[root@www ~]# ifconfig ra0 down && rmmod rt3070sta
[root@www ~]# vim /etc/Wireless/RT2870STA/RT2870STA.dat
Default
CountryRegion=5
CountryRegionABand=7
CountryCode=TW <==臺灣的國碼代號!
ChannelGeography=1
SSID=vbird_tsai <==你的 AP 的 ESSID 喔!
NetworkType=Infra
WirelessMode=9 <==與無線 AP 支持的協議有關!參考上述網址說明
Channel=6 <==與 CountryRegion 及偵測到的頻道有關的設定!
....(中間省略)....
AuthMode=WPAPSK <==我們的 AP 提供的認證模式
EncrypType=AES <==傳送認證碼的加密機制啊!
WPAPSK="123456780aaa" <==密鑰密碼!最好用雙引號括起來較佳!
....(底下省略)....
# 鳥哥實際有修改的,就是上面有特別說明的地方,其余的地方都保留默認值即可。
# 更奇怪的是,每次 ifconfig ra0 down 后,這個檔案會莫名其妙的修改掉 @_@
[root@www ~]# modprobe rt3070sta && ifconfig ra0 up
[root@www ~]# iwconfig ra0
ra0 Ralink STA ESSID:"vbird_tsai" Nickname:"RT2870STA"
Mode:Auto Frequency=2.437 GHz Access Point: 74:EA:3A:C9:EE:1A
Bit Rate=1 Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
Link Quality=100/100 Signal level:-37 dBm Noise level:-37 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
```
如果順利出現上面的數據,那就表示你的無線網卡已經與 AP 接上線了~再來則是設定網絡卡的配置文件啰!^\_^
4. 設定網絡卡配置文件 (ifcfg-ethn)
因為我們的網絡卡使用的代號是 ra0,所以也是需要在 /etc/sysconfig/network-scripts 設定好相對應的檔案才行啊!而由于我們的這塊卡其實是無線網卡, 所以很多設定值都與原本的以太網絡卡不同,詳細的各項變量設定你可以自行參考一下底下的檔案:
- /etc/sysconfig/network-scripts/ifup-wireless
至于我的網絡卡設定是這樣的:
```
[root@www ~]# cd /etc/sysconfig/network-scripts
[root@www network-scripts]# vim ifcfg-ra0
DEVICE=ra0
BOOTPROTO=dhcp
ONBOOT=no <== 若需要每次都自動啟動,改成 yes 即可!
ESSID=vbird_tsai
RATE=54M <== 可以嚴格指定傳輸的速率,要與上面 iwconfig 相同,單位 b/s
```
要注意的是那個 ONBOOT=no 的設定,如果你想要每次開機時無線,網卡都會自動啟動, 那就將他設定為 yes 吧!否則就設定為 no 啰!要啟動再以 ifup ra0 來啟動即可! 呼呼!到此為止,你的無線網卡已經可以順利的給他啟動了喔!很快樂吧! ^\_^
**Tips:** 其實上面那個配置文件的內容都是在規劃出 iwconfig 的參數而已,所以你除了可以查閱 ifup-wireless 的內容外,可以 man iwconfig ,會知道的更詳細喔!而最重要的參數當然就是 ESSID 及 KEY 啰! ^\_^

1. 啟動與觀察無線網卡
要啟動就用 ifup wlan0 來啟動,很簡單啦!要觀察就用 iwconfig 及 ifconfig 分別觀察,底下你自己瞧瞧就好啊! ^\_^
```
[root@www ~]# ifup ra0
Determining IP information for ra0... done.
```
整個流程就是這么簡單喔!一般來說,目前比較常見的筆記本電腦內建的 Intel 無線網絡模塊 (Centrino) 適用于 Linux 的 ipw2200/ipw21000 模塊,所以設定上也是很快!因為 CentOS 6.x 預設就有支持,你不必重新安裝無線網卡驅動程序! 那直接透過上述的方式來處理你的無線網絡即可!很快速又方便吧!本章結尾的參考數據處, 鳥哥還是列出許多與無線網卡有關的連結,你可以自行前往查閱與你的無線網卡有關的信息喔([注6](#ps6))! ^\_^
- - - - - -
- 鳥哥的Linux私房菜:服務器架設篇 第三版
- 第一部份:架站前的進修專區
- 作者序
- 第一章、架設服務器前的準備工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架設服務器流程
- 1.3 自我評估是否已經具有架站的能力
- 1.4 本章習題
- 第二章、基礎網絡概念
- 2.1 網絡是個什么玩意兒
- 2.2 TCP/IP 的鏈結層相關協議
- 2.3 TCP/IP 的網絡層相關封包與數據
- 2.4 TCP/IP 的傳輸層相關封包與數據
- 2.5 連上 Internet 前的準備事項
- 2.6 重點回顧:
- 2.7 本章習題
- 2.8 參考數據與延伸閱讀
- 第三章、局域網絡架構簡介
- 3.1 局域網絡的聯機
- 3.2 本書使用的內部聯機網絡參數與通訊協議
- 第四章、連上 Internet
- 4.1 Linux 連上 Internet 前的注意事項
- 4.2 連上 Internet 的設定方法
- 4.3 無線網絡--以筆記本電腦為例
- 4.4 常見問題說明
- 4.5 重點回顧
- 4.6 本章習題
- 4.7 參考數據與延伸閱讀
- 第五章、 Linux 常用網絡指令
- 5.1 網絡參數設定使用的指令
- 5.2 網絡偵錯與觀察指令
- 5.3 遠程聯機指令與實時通訊軟件
- 5.4 文字接口網頁瀏覽
- 5.5 封包擷取功能
- 5.6 重點回顧
- 5.7 本章習題
- 5.8 參考數據與延伸閱讀
- 第六章、 Linux 網絡偵錯
- 6.1 無法聯機原因分析
- 6.2 處理流程
- 6.3 本章習題
- 6.4 參考數據與延伸閱讀
- 第二部分:主機的簡易資安防護措施
- 第七章、網絡安全與主機基本防護:限制端口, 網絡升級與 SELinux
- 7.1 網絡封包聯機進入主機的流程
- 7.2 網絡自動升級軟件
- 7.3 限制聯機埠口 (port)
- 7.4 SELinux 管理原則
- 7.5 被攻擊后的主機修復工作
- 7.6 重點回顧
- 7.7 課后練習
- 7.8 參考數據與延伸閱讀
- 第八章、路由觀念與路由器設定
- 8.1 路由
- 8.2 路由器架設
- 8.3 動態路由器架設:quagga (zebra + ripd)
- 8.4 特殊狀況:路由器兩邊界面是同一個 IP 網段: ARP Proxy
- 8.5 重點回顧
- 8.6 本章習題
- 8.7 參考數據與延伸閱讀
- 第九章、防火墻與 NAT 服務器
- 9.1 認識防火墻
- 9.2 TCP Wrappers
- 9.3 Linux 的封包過濾軟件:iptables
- 9.4 單機防火墻的一個實例
- 9.5 NAT 服務器的設定
- 9.6 重點回顧
- 9.7 本章習題
- 9.8 參考數據與延伸閱讀
- 第十章、申請合法的主機名
- 10.1 為何需要主機名
- 10.2 注冊一個合法的主機名
- 10.3 重點回顧
- 10.4 本章習題
- 10.5 參考數據與延伸閱讀
- 第三部分:局域網絡內常見的服務器架設
- 第十一章、遠程聯機服務器SSH / XDMCP / VNC / RDP
- 11.1 遠程聯機服務器
- 11.2 文字接口聯機服務器: SSH 服務器
- 11.3 最原始圖形接口: Xdmcp 服務的啟用
- 11.4 華麗的圖形接口: VNC 服務器
- 11.5 仿真的遠程桌面系統: XRDP 服務器
- 11.6 SSH 服務器的進階應用
- 11.7 重點回顧
- 11.8 本章習題
- 11.9 參考數據與延伸閱讀
- 第十二章、網絡參數控管者: DHCP 服務器
- 12.1 DHCP 運作的原理
- 12.2 DHCP 服務器端的設定
- 12.3 DHCP 客戶端的設定
- 12.4 DHCP 服務器端進階觀察與使用
- 12.5 重點回顧
- 12.6 本章習題
- 12.7 參考數據與延伸閱讀
- 第十三章、文件服務器之一:NFS 服務器
- 13.1 NFS 的由來與其功能
- 13.2 NFS Server 端的設定
- 13.3 NFS 客戶端的設定
- 13.4 案例演練
- 13.5 重點回顧
- 13.6 本章習題
- 13.7 參考數據與延伸閱讀
- 第十四章、賬號控管: NIS 服務器
- 14.1 NIS 的由來與功能
- 14.2 NIS Server 端的設定
- 14.3 NIS Client 端的設定
- 14.4 NIS 搭配 NFS 的設定在叢集計算機上的應用
- 14.5 重點回顧
- 14.6 本章習題
- 14.7 參考數據與延伸閱讀
- 第十五章、時間服務器: NTP 服務器
- 15.1 關于時區與網絡校時的通訊協議
- 15.2 NTP 服務器的安裝與設定
- 15.3 客戶端的時間更新方式
- 15.4 重點回顧
- 15.5 本章習題
- 15.6 參考數據與延伸閱讀
- 第十六章、文件服務器之二: SAMBA 服務器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服務器的基礎設定
- 16.3 Samba 客戶端軟件功能
- 16.4 以 PDC 服務器提供賬號管理
- 16.5 服務器簡單維護與管理
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考數據與延伸閱讀
- 第十七章、區網控制者: Proxy 服務器
- 17.1 什么是代理服務器 (Proxy)
- 17.2 Proxy 服務器的基礎設定
- 17.3 客戶端的使用與測試
- 17.4 服務器的其他應用設定
- 17.5 重點回顧
- 17.6 本章習題
- 17.7 參考數據與延伸閱讀
- 第十八章、網絡驅動器裝置: iSCSI 服務器
- 18.1 網絡文件系統還是網絡驅動器
- 18.2 iSCSI target 的設定
- 18.3 iSCSI initiator 的設定
- 18.4 重點回顧
- 18.5 本章習題
- 18.6 參考數據與延伸閱讀
- 第四部分:常見因特網服務器架設
- 第十九章、主機名控制者: DNS 服務器
- 19.1 什么是 DNS
- 19.2 Client 端的設定
- 19.3 DNS 服務器的軟件、種類與 cache only DNS 服務器設定
- 19.4 DNS 服務器的詳細設定
- 19.5 協同工作的 DNS: Slave DNS 及子域授權設定
- 19.6 DNS 服務器的進階設定
- 19.7 重點回顧
- 19.8 本章習題
- 19.9 參考數據與延伸閱讀
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服務器之三: FTP 服務器
- 21.1 FTP 的數據鏈路原理
- 21.2 vsftpd 服務器基礎設定
- 21.3 客戶端的圖形接口 FTP 聯機軟件
- 21.4 讓 vsftpd 增加 SSL 的加密功能
- 21.5 重點回顧
- 21.6 本章習題
- 21.7 參考數據與延伸閱讀
- 第二十二章、郵件服務器: Postfix
- 22.1 郵件服務器的功能與運作原理
- 22.2 MTA 服務器: Postfix 基礎設定
- 22.3 MRA 服務器: dovecot 設定
- 22.4 MUA 軟件:客戶端的收發信軟件
- 22.5 郵件服務器的進階設定
- 22.6 重點回顧
- 22.7 本章習題
- 22.8 參考數據與延伸閱讀