Это довольно хорошая (если немного устарела [если 2006 год устарела]) статья, в которой рассказывается, как это сделать из командной строки.
http://www.linux.com/archive/feed/55617
Предполагая, что ваше беспроводное устройство работает нормально, вы, вероятно, можете погрузиться прямо в секцию моста примерно на полпути вниз.
Защищенный доступ Wi-Fi версии 2 ( WPA2 ) становится стандартом де-факто для защиты беспроводных сетей и обязательной функцией для всех новых продуктов Wi-Fi, сертифицированных Альянсом Wi-Fi . Все мы знаем слабые места безопасности его предшественника, WEP; на этот раз они поняли это правильно. Ниже описано, как реализовать протокол WPA2 на хосте Linux и создать безопасную точку беспроводного доступа (WAP) для вашей сети.
Большинство коммерческих WAP потребительского уровня работают одинаково просто: они создают мост между проводным (Ethernet) сетевым интерфейсом и беспроводным. Это именно то, что мы тоже будем делать. Часть WAP будет обрабатываться hostapddaemon, поэтому вы должны выбрать беспроводной интерфейс, который он поддерживает. В число поддерживаемых сетевых адаптеров входят чипсеты Prism 2 / 2.5 / 3, Atheros ar521x и Prism GT / Duette / Indigo; список доступен на домашней странице hostapd вместе со ссылками на драйверы Linux для каждого чипсета. На моем WAP установлена PCI-карта на базе Atheros AR5212, которая поддерживается hostapd. Хотя любая система Pentium (или более новая) будет работать, для работы некоторых беспроводных карт PCI требуется PCI 2.2, поэтому перед покупкой обязательно проверьте характеристики материнской платы вашей системы. Вам также понадобится интерфейс Ethernet, который поддерживается Linux для подключения вашего WAP к локальной сети; большинство бортовых интерфейсов будет работать просто отлично.
Моя установка основана на Debian Testing (Etch), но подойдет любой дистрибутив GNU / Linux с последним ядром 2.6. Ядро должно поддерживать 802.1d Ethernet Bridging (CONFIG_BRIDGE) и беспроводную локальную сеть (CONFIG_NET_RADIO). В большинстве стандартных ядер по умолчанию эти функции включены, но если вы предпочитаете собирать свое собственное ядро, обязательно включите эти опции. Кроме hostapd вам необходимо установить только другие пакеты - bridge-utils и wireless-tools . Основные дистрибутивы GNU / Linux предлагают бинарные пакеты для всех этих программ, но если вы предпочитаете собирать их из исходного кода, вы можете найти больше информации на их домашних страницах.
Перед соединением двух интерфейсов мы должны перевести беспроводной интерфейс (в моем случае ath0; настроить его в соответствии с вашими настройками) в режим hostap или Master. Обычно это так же просто, как запуск мастера iwconfig ath0 в режиме Master, но поскольку поддержка wlan в Linux еще не стандартизирована, некоторым драйверам может потребоваться дополнительная настройка. Если у вас есть интерфейс на основе Atheros, вам также нужно выполнить следующее: wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode ap
перед iwconfig
командой. После этого бег iwconfig ath0
вернется mode:Master
, среди прочего.
Теперь давайте создадим мост. Предположим, что интерфейс Ethernet имеет вид 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
При желании вы можете назначить IP-адрес интерфейсу br0, если хотите получить доступ к WAP-хосту из сети, используя, например, SSH. Каждый дистрибутив предлагает свой собственный способ настройки сети; если вы используете 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. Чтобы подключиться к WAP из клиента Linux, вам необходимо установить 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 с соответствующим драйвером для вашей карты; запустите 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) и попробуйте проверить связь с хостом в вашей локальной сети, чтобы убедиться, что соединение работает.
Поздравляем, вы только что создали себе настраиваемую беспроводную точку доступа. Хотя эта настройка идеально подходит для использования дома или в небольшом офисе, вам нужно что-то более надежное на предприятии с аутентификацией на сервере RADIUS или, что еще лучше, VPN.