Це досить гарна (якщо трохи застаріла [якщо 2006 рік застаріла]) стаття, в якій описано, як це зробити з командного рядка.
http://www.linux.com/archive/feed/55617
Якщо припустити, що ваш бездротовий пристрій працює нормально, ви, можливо, можете зануритися прямо на перемикаючий ділянку приблизно на півдорозі вниз.
Wi-Fi Protected Access, версія 2 ( WPA2 ) стає фактичним стандартом для забезпечення бездротових мереж, і є обов'язковою функцією для всіх нових продуктів Wi-Fi, сертифікованих Альянсом Wi-Fi . Всі ми знаємо слабкі місця безпеки свого попередника, WEP; цього разу вони правильно зрозуміли. Ось як реалізувати протокол WPA2 на хості Linux та створити захищену бездротову точку доступу (WAP) для вашої мережі.
Більшість комерційних WAP-систем комерційних потреб працюють таким же простим чином: вони створюють міст між провідним мережевим інтерфейсом (Ethernet) та бездротовим. Саме так ми і зробимо. Частина WAP буде оброблятися hostapdдемон, тому ви повинні вибрати бездротовий інтерфейс, який він підтримує. Серед підтримуваних NIC є такі з 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 (Etch), але будь-який дистрибутив GNU / Linux із останнім ядром 2.6 працює. Ядро повинно підтримувати перемикання Ethernet 802.1d (CONFIG_BRIDGE) та бездротову локальну мережу (CONFIG_NET_RADIO). У більшості ядер для запасів за замовчуванням увімкнено ці функції, але якщо ви вважаєте за краще створити власне ядро, обов'язково включіть ці параметри. Єдині інші пакети, які вам потрібно встановити, окрім hostapd, - це місткі утиліти та бездротові інструменти . Основні дистрибутиви GNU / Linux пропонують бінарні пакети для всіх цих програм, але якщо ви віддаєте перевагу створення їх з джерела, ви можете знайти більше інформації на їх домашніх сторінках.
Перш ніж з'єднати два інтерфейси, ми повинні перевести бездротовий інтерфейс (у моєму випадку ath0; налаштувати його відповідно до вашої настройки) у режим hostap або Master. Зазвичай це так просто, як запуск майстра iwconfig ath0 mode 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 та натисніть відповідним драйвером для вашої картки; запустіть 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.