我們有個閑置的USB無線適配器(WIFI適配器),而我們的ISP路由器卻是有線的。怎樣把我們的家庭NAS服務器變成無線訪問點(WAP),在不用買額外的WPA盒子的情況下,在Debian或Ubuntu系統下使用無線設備訪問到它?
你需要使用hostapd作為訪問點和認證服務器。它實現了IEEE 802.11訪問點管理,IEEE802.1X/WPA/WPA2/EAP授權,RADIUS客戶端,EAP服務器和RADIUS授權服務器。最新版本支持Linux:
1、Host AP
2、madwifi
3、mac80211-based
你可以使用USB或PCI/Mini-PCI接口的網卡。請注意不是所有的網卡活驅動支持AP模式。
案例安裝
1、wlan0 - 連接到Linux的無線PCI或USB設備,在AP模式里能夠使用a/b/g和WPA2。
2、eth0 - 有線網卡,端口連接於尚有路由器或交換機,具有internet訪問。
案例網絡
Internet \ \\ |\ +------------+ RJ-11/ADSL-線路 \-----+ ISP 路由器 | +--------+ +------------+ RJ-45 (eth0) -------+ 交換機| 192.168.1.2 +--------+ 有 DNS/DHCPD | 服務 + +----> 筆記本無線 防火牆 | +----> 家庭 nas 服務器 無線網卡 wlan0 和 eth0 有線網卡 | 配置 192.168.1.11 靜態 IP +----> 台式機有線 | +----> HP 打印機有線 | +----> Andriod 平板無線 | +----> Andriod 手機無線等
步驟1: 安裝hostapd
輸入命令:# apt-get install hostapd
輸出示例:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: hostapd 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 346 kB of archives. After this operation, 877 kB of additional disk space will be used. Get:1 http://debian.osuosl.org/debian/ squeeze/main hostapd amd64 1:0.6.10-2 [346 kB] Fetched 346 kB in 2s (151 kB/s) Selecting previously deselected package hostapd. (Reading database ... 267669 files and directories currently installed.) Unpacking hostapd (from .../hostapd_1%3a0.6.10-2_amd64.deb) ... Processing triggers for man-db ... Setting up hostapd (1:0.6.10-2) ...
步驟2: 配置hostadp
編輯 /etc/default/hostapd,鍵入:
# vi /etc/default/hostapd
去掉DAEMON_CONF 前的注釋,並設置它的值為hostapd配置文件的絕對路徑,這樣hostapd會隨系統一起啟動:
DAEMON_CONF="/etc/default/hostapd.conf"
保存,關閉文件。接着創建一個文本文件: /etc/hostapd/hostapd.conf,鍵入:
設接口名稱:
### Wireless network name ###
interface=wlan0 ### Set your bridge name ### bridge=br0
設驅動名稱
driver=nl80211
設國家名稱代碼,格式遵循ISO/IEC 3166-1格式。這樣做用來設定管理域。根據需要設定,以說明設備在哪個國家操作。這會限定可用的頻道和發射功率。
### (IN == INDIA, UK == United Kingdom, US == United Stats and so on ) ### country_code=IN
設定你的SSID:
ssid=nixcraft
設定操作模式(a=IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g):
channel=6
設定wpa模式為2:
wpa=2
設定你的密碼短語(Wifi連接密碼):
wpa_passphrase=MyWiFiPassword
為WPA2設定密鑰和認證管理選項
## 密鑰管理算法 ##
wpa_key_mgmt=WPA-PSK ## Set cipher suites (encryption algorithms) ## ## TKIP = Temporal Key Integrity Protocol ## CCMP = AES in Counter mode with CBC-MAC wpa_pairwise=TKIP rsn_pairwise=CCMP ## 共享密鑰認證 ## auth_algs=1 ## 接受所有mac訪問 ### macaddr_acl=0
保存並關閉這文件。
我怎樣啟動/停止/重啟AP?
使用下列命令:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: bridge-utils 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 32.7 kB of archives. After this operation, 176 kB of additional disk space will be used. Get:1 http://debian.osuosl.org/debian/ squeeze/main bridge-utils amd64 1.4-5 [32.7 kB] Fetched 32.7 kB in 1s (25.5 kB/s) Selecting previously deselected package bridge-utils. (Reading database ... 267692 files and directories currently installed.) Unpacking bridge-utils (from .../bridge-utils_1.4-5_amd64.deb) ... Processing triggers for man-db ... Setting up bridge-utils (1.4-5) ...
編輯 /etc/network/interfaces, 輸入:
# vi /etc/network/interfaces
修改,或設置其配置如下:
auto lo br0
iface lo inet loopback
# wireless wlan0
allow-hotplug wlan0
iface wlan0 inet manual
# eth0 connected to the ISP router
allow-hotplug eth0
iface eth1 inet manual
# Setup bridge
iface br0 inet static
bridge_ports wlan0 eth0
address 192.168.1.11 netmask 255.255.255.0 network 192.168.1.0 ## isp router ip, 192.168.1.2 also runs DHCPD ## gateway 192.168.1.2 dns-nameservers 192.168.1.2
保存並並關閉文件。到此,我建議你重啟計算機,或者像下面那樣重啟所有的服務(使用遠端ssh會話可能不工作):
# /etc/init.d/networking restart
# /etc/init.d/hostapd restart
或者:
# reboot
關於DHCPD 的注意
既然你讓WAP跑在橋接(br0)模式,在WAP上DHCPD不是必需的。它可以使用LAN內任意地方的DHCPD服務器。在本例子中 192.168.1.2是一個ISP路由器,它提供了DHCPD服務。如果你沒有使用DHCPD服務器,參照以下安裝:
關於防火牆的注意
你可以安裝防火牆來抵御進攻。參閱這里:install shorewall on Debian or Ubuntu Linux.
如何處理WAP問題?
WPA的日志信息在 /var/log/syslog文件中:
# tail -f /var/log/syslog
檢查DHCPD中繼是否工作:
# tcddump -n port 67 或 ort 68
確定防火牆沒有阻止需要的端口:
# /sbin/iptables -L -n -v | less
確定br0的mac地址正確,並且它已經在運行:
brctl show
- Linux kernel
- Wireless card drivers and firmware
- hostapd