|
Description:
目前市面上支援 WiFi 802.11x 的產品有越來越多的趨勢,這已經是一個不可阻擋的趨勢,所以小弟也來架個 AP 玩玩,小弟還是選擇在 FreeBSD 上來架,目前 FreeBSD 6.0 之後的版本已經對無線網路的支援增加了,不過還是有些許不足,像是在無線網卡的驅動程式支援部份就有些不足,但是還是有辦法可以解決,只要有 Wndows XP 的 Dirver 還是可掛到 FreeBSD 上使用,只是這樣會比較麻煩些,所採用的是 ndiscvt 方式將 Windows XP 中的 dirver 拿到 FreeBSD 中使用,安裝方式可參考官方 wireless 文件 在文件中的後半段有詳細說明。
台灣目前能買到有支援 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<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> 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 <hostap> 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<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> 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 <hostap> 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
參考資料:
http://www.freebsdmall.com/~loader/en_US.ISO8859-1/articles/wireless/article.html http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-wireless.html
|