Debian/Ubuntu Linux:使用Hostapd设置无线访问点(WAP)

时间:2020-01-09 10:38:03  来源:igfitidea点击:

我有一个备用的USB无线适配器(WIFI适配器/加密狗),我的ISP路由器不支持无线选项。
如何将我的家庭nas服务器变成无线接入点(WAP),允许无线设备在Debian或Ubuntu Linux操作系统下使用Wi-Fi连接到有线网络,而无需购买额外的WPA盒?
如何在Debian或Ubuntu Linux操作系统上设置访问点(AP)模式Wi-Fi热点?

您需要使用hostapd服务器作为访问点和身份验证服务器。
它实现IEEE 802.11接入点管理,IEEE 802.1X/WPA/WPA2/EAP身份验证器,RADIUS客户端,EAP服务器和RADIUS身份验证服务器。
当前版本支持Linux:

  • 主机AP
  • madwifi
  • 基于mac80211

您可以使用基于USB或PCI/Mini-PCI的网卡。
请注意,并非所有网卡或驱动程序都支持AP模式。

拓扑图

  • wlan0在AP模式下以a/b/g和WPA2支持连接到Linux的无线PCI或USB设备。
  • eth0有线以太网端口,连接到上游路由器/交换机以进行Internet访问。

示例网络图:

Internet
  \
    \
    |\      +------------+ RJ-11/ADSL-line
      \-----+ ISP Router |                     +--------+
            +------------+ RJ-45 (eth0) -------+ Switch |
             192.168.1.2                       +--------+
             with DNS/DHCPD                    |
             server +                          +----> Laptop wireless 
             Firewall                          |      
                                               +----> Home nas server with wifi card wlan0 and eth0 wired 
                                               |      with 192.168.1.11 static IP
                                               +----> Desktop wired 
                                               |
                                               +----> HP Printer wired
                                               |
                                               +----> Andriod tablet wireless
                                               |
                                               +----> Andriod mobile phone wireless and so on

步骤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:配置hostapd

编辑/etc/default/hostapd,输入:

# vi /etc/default/hostapd

取消注释并将DAEMON_CONF设置为hostapd配置文件的绝对路径,并且hostapd将在系统引导期间启动:

DAEMON_CONF="/etc/hostapd/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=theitroad

设置操作模式(a = IEEE 802.11a,b = IEEE 802.11b,g = IEEE 802.11g)

hw_mode=g

设置通道号(某些驱动程序将仅使用0作为值)

channel=6

将wpa模式设置为2:

wpa=2

设置密码(WiFi密码):

wpa_passphrase=MyWiFiPassword

设置WPA2的密钥和身份验证选项管理:

## Key management algorithms ##
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
 
## Shared Key Authentication ##
auth_algs=1
 
## Accept all MAC address ###
macaddr_acl=0

保存并关闭文件。

如何启动/停止/重启AP?

使用以下命令:

# /etc/init.d/hostapd start
# /etc/init.d/hostapd stop
# /etc/init.d/hostapd restart

步骤3:配置/etc/network/interfaces

您可以在独立模式下设置wlan0或与eth0桥接。
桥接模式将打开您的无线客户端以访问LAN的其余部分,并且您将能够连接到Internet。
大多数用户将无线接口与AP的Internet连接接口桥接。

将br0(wlan0 + eth0)设置为桥接模式

您需要安装bridge-utils软件包以配置Linux以太网桥:

# apt-get install bridge-utils

输出示例:

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 eth0 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服务器的说明

由于您正在网桥(br0)模式下运行WAP,因此WAP上不需要DHCPD。
它可以使用位于LAN上任何位置的DHCPD服务器。
在此示例中,192.168.1.2是运行DHCPD的ISP路由器。
如果不使用DHCPD服务器,请按以下步骤进行设置:

  • Ubuntu/Debian Linux:为您的网络设置一个ISC DHCP服务器

关于防火墙的注意事项

您可以安装防火墙以防止受到攻击。
了解如何在Debian或Ubuntu Linux上安装Shorewall。

如何解决WAP问题?

您可以在/var/log/syslog文件中找到WPA身份验证日志信息:

# tail -f /var/log/syslog

找出DHCPD中继是否正常工作:

# tcpdump -n port 67 or port 68

确保防火墙未阻止所需的端口:

# /sbin/iptables -L -n -v | less

确保分配了正确的mac地址,并且br0已启动并正在运行:

# ifconfig br0
# ifconfig | grep HW
# brctl show
# brctl showmacs br0

使用以下8个Linux命令来找出无线网络速度,信号强度和其他信息:

最后,请确保您使用以下软件的最新版本

  • Linux内核
  • 无线网卡驱动程序和固件
  • hostapd