Description:
目前市面上支援 WiFi 802.11x 的產品有越來越多的趨勢,這已經是一個不可阻擋的趨勢,所以小弟也來架個 AP 玩玩,小弟還是選擇在 FreeBSD 上來架,目前 FreeBSD 6.0 之後的版本已經對無線網路的支援增加了,不過還是有些許不足,像是在無線網卡的驅動程式支援部份就有些不足,但是還是有辦法可以解決,只要有 Wndows XP 的 Dirver 還是可掛到 FreeBSD 上使用,只是這樣會比較麻煩些,所採用的是 方式將 Windows XP 中的 dirver 拿到 FreeBSD 中使用,安裝方式可參考官方 在文件中的後半段有詳細說明。
台灣目前能買到有支援 FreeBSD 6.0 然後又便宜的網卡還真的不多,小弟只找到 D-Link 的網卡算是最便宜而且有支援到 802.11g 的無線網卡,小弟要找的是 PCI 介面的網卡,型號為 DWL-G510、DWL-G520、DWL-AG520 這三片,這三片網卡的晶片組都是 Atheros 的,chipset 只要是 AR5210, AR5211, and AR5212 chips 都有支援,FreeBSD 只認晶片不認網卡廠商,要特別注意的是 DWL-G520+ 這片網卡是不支援 FreeBSD ,因為它是 IT 的晶片組而非 Atheros 的晶片組。
說明一下自架 AP 的好處:
〈1〉‧省錢只要買一片 PCI 的無線網卡加到原本的 FreeBSD 上就可動作,價格約在 NT$1250 左右( 基本條件是原本就有台 FreeBSD Server 不然 NT$1250 是不夠的 )。
〈2〉‧網路使用的靈活度大可用 bridge mode 也可使用 routing mode 讓兩個區網相連。
〈3〉‧可以學習到的無線網路知識更多,讓你更了解 Wireless 的細部運作。
Environment :
硬體:i386 PC Intel P3 500
記憶體:256M RAM
網卡:3 片網卡 ( 兩片一般 100M 網卡 + 一片 D-Link DWL-G520 54G無線網卡 )
作業系統:FreeBSD 6.0 Release
Wireless LAN ath0 IP:10.88.88.254
General LAN de0 IP:10.77.77.254
WAN xl0 IP:88.88.88.88
Setp 1.
《1》、重新編譯 Kernel,FreeBSD 在預設下裝完 OS 是抓不到無線網卡的,所以我們要自行 Compiler 才能驅動這個硬體,順便也啟動 PF 防火牆。
#cd /usr/src/sys/i386/conf
#cp GENERIC /etc/WIFI
#ln -s /etc/WIFI
#vi WIFI # kernel 的社定檔要加入以下的設定
# wireless suport
device ath # Atheros IEEE 802.11 wireless network driver
device ath_hal # Atheros Hardware Access Layer
device ath_rate_sample # John Bicket's SampleRate control algorithm.
device wi
device wlan # 802.11 support (Required)
device wlan_wep # WEP crypto support for 802.11 devices
device wlan_ccmp # AES-CCMP crypto support for 802.11 devices
device wlan_tkip # TKIP and Michael crypto support for 802.11 devices
device wlan_xauth # External authenticator support for 802.11 devices
device wlan_acl # MAC-based ACL support for 802.11 devices
# packet filter firewall suport
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
#config WIFI # 一切就緒開始編譯核心
#cd ../compile/WIFI
#make cleandepend; make depend all install
#vi /boot/loader.conf # 讓開機就自動載入無線網路的 funtion
wlan_wep_load="YES"
wlan_tkip_load="YES"
wlan_ccmp_load="YES"
wlan_xauth_load="YES"
wlan_acl_load="YES"
Setp 2.
《1》、設定啟動 Packet Filter 之 ( NAT ) 及 ( 防火牆 ) 功能
#vi /etc/sysctl.conf # 開啟 NAT 功能讓封包可轉出去
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1
#vi /etc/inetd.conf # 開啟 ftp 代理,這是 PF 比較特殊的一點,一定要開啟這個 Intranet 的 ftp client 才能出得去
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
#vi /etc/pf.conf # 加入 PF 防火牆之規則,因為我們只做基本測試所以防火牆規則全開,若要更多的限制請自己學習 PF 規則。
ext_if="xl0"
int_if="de0"
int2_if="ath0"
#
nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $ext_if from $int2_if:network to any -> ($ext_if)
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
rdr on $int2_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
#
pass in all
pass out all
《2》、架設 DHCP Server 自動發放 IP 給 Wireless LAN ath0 及 General LAN de0
#cd /usr/ports/net/isc-dhcp3-server # 安裝設定 ISC 版本的 DHCP Server
#make install clean
#cd /usr/local/etc
#cp dhcpd.conf.sample dhcpd.conf
#true > dhcpd.conf # 清掉裡面的設定值我要自行寫入
#vi dhcpd.conf
default-lease-time 6000;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option domain-name-servers 203.107.34.10,168.95.1.1;
option domain-name "ntut.idv.tw";
option routers 10.88.88.254;
option broadcast-address 10.88.88.255;
option interface-mtu 1500;
option perform-mask-discovery on;
option mask-supplier on;
ddns-update-style none;
# Wireless LAN 自動發放 IP 的區段
subnet 10.88.88.0 netmask 255.255.255.0 {
option routers 10.88.88.254;
option broadcast-address 10.88.88.255;
range 10.88.88.50 10.88.88.200;
}
# General LAN 自動發放 IP 的區段
subnet 10.77.77.0 netmask 255.255.255.0 {
option routers 10.77.77.254;
option broadcast-address 10.77.77.255;
range 10.77.77.50 10.77.77.200;
}
# 用不到介面也要定義的介面卡資料
subnet 88.88.88.0 netmask 255.255.255.192 {
}
#touch /var/db/dhcpd.leases # 查看 DHCP Client 租約記錄
#vi /etc/hosts # DHCP 由 255.255.255.255 做廣撥
255.255.255.255 For-DHCP
#route add -host DHCP -interface ath0 # 指定 Wireless LAN ath0 提供 DHCP 服務
#/usr/local/etc/rc.d/isc-dhcpd.sh status # 查看 dhcp 的 pid
dhcpd is running as pid 484.
#vi /etc/rc.conf # 增加開機自動啟動的服務項目
ifconfig_xl0="inet 88.88.88.88 netmask 255.255.255.192"
ifconfig_de0="inet 10.77.77.254 netmask 255.255.255.0"
ifconfig_ath0="inet 10.88.88.254 netmask 255.255.255.0"
sshd_enable="YES"
inetd_enable="YES"
pf_enable="YES"
pflog_enable="YES"
dhcpd_enable="YES"
#reboot # 重開機讓改有的服務都跑起來
Setp 3.
《1》、開起 Wireless LAN 卡運行 Access Point 模式
#ifconfig ath0 ssid NTUT channel 11 mode 11g mediaopt hostap # 採用一般無加密方式任何人只要搜尋到 SSID 就可使用
# ifconfig ath0
ath0: flags=8843 mtu 1500
inet6 fe80::213:46ff:fe78:743c%ath0 prefixlen 64 scopeid 0x1
inet 10.88.88.254 netmask 0xffffff00 broadcast 10.88.88.255
ether 00:13:46:78:74:3c
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: associated
ssid ERA channel 11 bssid 00:13:46:78:74:3c
authmode OPEN privacy OFF txpowmax 29 protmode CTS dtimperiod 1
bintval 100
#ifconfig ath0 ssid NTUT wepmode on wepkey 12345 mode 11g mediaopt hostap # 採用 WEP 一般 ASCII 64 bit 加密模式 只要輸入 5 碼數字的密碼即可
#ifconfig ath0 ssid NTUT wepmode on wepkey 0x1234567890 mode 11g mediaopt hostap # 採用 WEP 16 進位 64 bit 加密模式則要輸入 0x 再加 10 碼數字
#ifconfig ath0
ath0: flags=8843 mtu 1500
inet6 fe80::213:46ff:fe78:743c%ath0 prefixlen 64 scopeid 0x1
inet 10.88.88.254 netmask 0xffffff00 broadcast 10.88.88.255
ether 00:13:46:78:74:3c
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: associated
ssid NTUT channel 11 bssid 00:13:46:78:74:3c
authmode OPEN privacy ON deftxkey UNDEF wepkey 1:40-bit txpowmax 29
protmode CTS dtimperiod 1 bintval 100
#cd /usr/local/etc/rc.d
#vi ap.sh # 加入設定檔讓重開機後自動 up 不用手動加入,上行標記起來的是不加密下行則為 ASCII 64 bit 加密
#ifconfig ath0 ssid NTUT channel 11 mode 11g mediaopt hostap
ifconfig ath0 ssid NTUT channel 11 wepmode on wepkey 12345 mode 11g mediaopt hostap
#chmod 755 ap.sh # 改變權限重開機時會自動執行
《2》、Wireless Client 端的設定
WindosXP Client
桌面 > 網路上的芳鄰 > 右建 ( 內容 ) > 無線網路連線 > 右建 ( 內容 ) > 無線網路 ( 即可設定 SSID 跟 WEP 加密 )
FreeBSD Client
#ifconfig ath0 up scan # 搜尋所有的 SSID domain
NTUT 00:13:46:49:41:76 6 54M 29:0 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M 22:0 100 EPS WPA
#vi /etc/rc.conf # 設定 DHCP 自動取得 IP
ifconfig_ath0="DHCP"
ifconfig_ath0="NTUT DHCP"
#/etc/rc.d/netif start # 重新起動網卡
#ifconfig ath0 inet 10.88.88.201 netmask 255.255.255.0 ssid NTUT # 手動設定 SSID 及 IP
參考資料:
阅读(1176) | 评论(0) | 转发(0) |