Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18926021
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-04-08 10:31:41

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) |
给主人留下些什么吧!~~