如何将Ubuntu设置为无线访问点?


25

如何设置WiFi用作Ubuntu服务器上的无线访问点?

我有一个本地Ubuntu服务器,其中有一个无线网卡(802.11a / b / g / n),我真的想将其设置为802.11n访问点,因为我的普通访问点不支持N。

它也需要充当交换机,因此我可以连接并获得DHPC。

编辑:我不认为Network Manager是一个好的解决方案,因为它依赖于许多X11程序包,而且我不希望在服务器上使用它。


Answers:



5

单击面板中的NetworkManager图标,然后选择“创建无线网络...”。您应该能够将其设置为“系统”(而不是“用户”)连接。

您说这是在服务器上,所以也许您仅通过SSH访问服务器。在这种情况下,您可以尝试一些远程X连接。或尝试通过命令行配置NetworkManager(如果很简单的话)应该可以。


可能,但是我不希望NetworkManager
LassePoulsen 2010年

天哪,它有效!WPA1&2和WEP遇到了问题,但没有加密,则可以正常工作。
WitchCraft 2014年


-1

这是一篇不错的文章(如果过时了[如果2006年过时了]),概述了如何从命令行执行此操作。

http://www.linux.com/archive/feed/55617

假设您的无线设备可以正常工作,那么您可能可以直接进入桥接部分,大约一半。


Wi-Fi保护访问版本2(WPA2)已成为确保无线网络安全的事实上的标准,并且是Wi-Fi联盟认证的所有新Wi-Fi产品的强制性功能。我们都知道其前身WEP的安全漏洞;这次他们做对了。以下是在Linux主机上实现WPA2协议并为您的网络创建安全的无线访问点(WAP)的方法。

大多数消费级商业WAP都以相同的简单方式操作:它们在有线(以太网)网络接口和无线接口之间建立了桥梁。这正是我们也会做的。WAP部分将由hostapd处理守护程序,因此您必须选择它支持的无线接口。支持的网卡包括Prism 2 / 2.5 / 3,Atheros ar521x和Prism GT / Duette / Indigo芯片组。在hostapd主页上有一个列表,以及每个芯片组的Linux驱动程序链接。我在WAP上安装了基于Atheros AR5212的PCI卡,hostapd支持该卡。尽管任何奔腾(或更新的)系统都可以使用,但是某些PCI无线卡需要PCI 2.2才能运行,因此请确保在购买前检查系统的主板规格。您还需要Linux支持的以太网接口,以将WAP连接到LAN。大多数板载接口都可以正常工作。

我的设置基于Debian Testing(Etch),但是任何具有最新2.6内核的GNU / Linux发行版都可以使用。内核必须支持802.1d以太网桥接(CONFIG_BRIDGE)和无线LAN(CONFIG_NET_RADIO)。大多数默认的股票内核都启用了这些功能,但是如果您希望构建自己的内核,请确保包括这些选项。除了hostapd之外,您需要安装的唯一其他软件包是bridge-utilswireless-tools。主要的GNU / Linux发行版为所有这些程序提供二进制程序包,但是如果您希望从源代码构建它们,则可以在其主页上找到更多信息。

在将两个接口连接在一起之前,我们必须将无线接口(在我的情况下为ath0;根据您的设置进行调整)处于hostap或Master模式。通常,这很简单,就像运行iwconfig ath0模式主服务器一样简单,但是由于Linux中的wlan支持尚未标准化,因此某些驱动程序可能需要其他配置。如果您具有基于Atheros的界面,则还需要运行以下命令:wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode apiwconfig命令之前。之后,运行iwconfig ath0将返回mode:Master,等等。

现在让我们创建桥。我们假设以太网接口是eth0:

ifconfig eth0 0.0.0.0 up
ifconfig ath0 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0

为了停止桥梁,您应该运行:

ifconfig br0 down
ifconfig eth0 0.0.0.0 down
ifconfig ath0 0.0.0.0 down
brctl delif br0 eth0
brctl delif br0 ath0
brctl delbr br0

如果要通过网络(例如使用SSH)访问WAP主机,则可以选择为br0接口提供IP地址。每个发行版都提供了自己的配置网络的方式。如果您使用Debian(或任何基于Debian的发行版,例如Ubuntu),则可以通过简单地将以下内容添加到/etc/network/interfaces文件中来包装所有先前的命令:

auto ath0 br0

iface ath0 inet manual
        pre-up wlanconfig ath0 destroy
        pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap
        post-down wlanconfig ath0 destroy
        wireless-mode master

iface br0 inet manual
        bridge_ports eth0 ath0

请注意,它将ifupdown自动处理eth0,因此您不需要在其中单独添加一个节/etc/network/interfaces。要验证网桥配置正确,请运行brctl show。作为回报,您应该得到如下信息:

bridge name     bridge id               STP enabled     interfaces
br0             8000.00032f2481f0       no              ath0
                                                        eth0

在开始迷惑hostapd之前,我们需要为WPA2设置密码。与所有密码一样,它应该是随机的,因此很难猜测。获取随机口令的一种好方法是访问Gibson Research Corp.的超高安全性密码生成器,并使用它创建的第三个密码-一个标题为63个随机字母数字字符(az,AZ,0-9)的密码。使用包含非字母数字ASCII字符(例如!,@等)的密码短语可能很诱人,但是某些客户端(例如Windows XP)似乎并不喜欢它们。

现在创建一个名为的新文本文件/etc/hostapd/wpa_psk,并将您的密码短语粘贴为:

00:00:00:00:00:00 PASSPHRASE

带有零的第一部分意味着“匹配所有MAC地址”,并且确实做到了这一点。您还可以为每个客户端使用不同的密码,方法是在文件中添加新行以及每个客户端的MAC地址及其密码。通过运行确保只有root可以访问该文件chmod 600 /etc/hostapd/wpa_psk

现在,创建hostapd的主配置文件的备份/etc/hostapd/hostapd.conf,并通过运行使其作为参考mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig。创建一个新的hostapd.conf文件,并将以下行粘贴到其中:

interface=ath0
bridge=br0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=My_Secure_WLAN
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
stakey=0

用与您的设置匹配的信息替换斜体部分。如果只允许特定的客户端连接,请从上面两行中删除#字符,然后将这些客户端的MAC地址复制到/etc/hostapd/accept,并使该文件只能由root用户访问(chmod 600)。有关使用的选项的更多信息,请阅读先前创建的备份文件(hostapd.conf.orig)中的注释。

启动hostapd守护程序(/etc/init.d/hostapd start),并检查/var/log/daemon.log其是否有效。如果守护程序没有启动,请将调试级别(option debug=在hostapd.conf中)提高到4,然后重试。

现在,如果您从客户端扫描可用的无线网络,则应该看到您的ESSID。要从Linux客户端连接到WAP,您需要安装wpa_supplicant并创建一个配置文件wpa_supplicant.conf(在Debian中,在中安装/etc/wpa_supplicant/),如下所示:

update_config=1
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1

network={
        ssid="My_Secure_WLAN"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        psk="PASSPHRASE"
        priority=5
}

再次替换成斜体的部分以匹配您的设置并运行wpa_supplicant -i eth1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf(用eth1您的网卡的wlan接口名称替换wext,并使用相应的驱动程序替换wext;运行wpa_supplicant而无需任何选项以获取更多信息)。此命令在前台启动wpa_supplicant并尝试连接到WAP。如果输出如下所示,则说明一切就绪:

Trying to associate with 00:11:22:33:44:55 (SSID='My_Secure_WLAN' freq=0 MHz)
Associated with 00:11:22:33:44:55
WPA: Key negotiation completed with 00:11:22:33:44:55 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed (auth) [id=0 id_str=]

为您的无线接口提供一个静态IP地址(或运行DHCP客户端),然后尝试ping局域网内的主机以验证连接是否正常。

恭喜,您已经为自己构建了高度可定制的无线接入点。尽管此设置非常适合家庭或小型办公室使用,但您需要在企业中更强大的功能,并需要使用RADIUS服务器或更好的VPN进行身份验证。


1
自那时以来,内核无线驱动程序堆栈已经发生了变化!
LassePoulsen

的确如此,但是桥接和wpa_supplicant东西(起步所需的原始东西)很有用。
popey 2010年

1
该页面是我的404。-1。如果您汇总了链接中包含的信息,则您的答案仍然有效。
马可(Marco)


死链接......
obayhan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.