Настройка WiFi AP с помощью hostapd и isc-dhcp-server [Xubuntu 14.04]

Вопрос или проблема

Я пробовал использовать ap-hotspot от WebUpd8, и он не работал у меня на 13.10 или 14.04, поэтому я работал над тем, чтобы вручную настроить hostapd, используя isc-dhcp-server, так как dnsmasq у меня вызывал конфликты. Мне удалось подключиться к AP и получить IP, но маршрутизация, кажется, не работает. Вот мой лог сборки и руководства, которыми я следовал:

Конфигурационные файлы:

/etc/network/interfaces:

auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
hostapd -dd /etc/hostapd/hostapd.conf
address 10.10.0.1
netmask 255.255.255.0

/etc/default/hostapd:

RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_OPTS="-dd"

/etc/hostapd/hostapd.conf:

# WiFi Hotspot
interface=wlan0
driver=nl80211
#Access Point
ssid=workshop
hw_mode=g
# WiFi Channel:
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=mypass
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

/etc/dhcp/dhcpd.conf:

ddns-update-style none;
#default-lease-time 600;
#max-lease-time 7200;
log-facility local7;
subnet 10.10.0.0 netmask 255.255.255.0 {
    range 10.10.0.2 10.10.0.32;
    option domain-name-servers 208.67.222.222, 208.67.220.220;
    option routers 10.10.0.1;
}

/etc/rc.local:

iptables -t nat -A POSTROUTING -s 10.10.0.0/32 -o eth1 -j MASQUERADE
exit 0

Были выполнены следующие команды:

sudo ifconfig wlan0 10.10.0.1
sudo sysctl net.ipv4.ip_forward=1
sudo ip link set dev wlan0 up
sudo service hostapd start

Я установил bridge-utils, но еще не добавил br0, потому что не уверен, как изменить другие части моей конфигурации, чтобы отразить это…

Редактировать:
После повторной проверки моих конфигураций через другое (более старое) руководство, попробовал снова и решил добавить то, что отображается в логах, когда что-то подключается. Устройство, подключающееся, — мой андроид-телефон, который нормально подключается через обычные маршрутизаторы.

(Я понимаю большую часть того, что происходит в логах, и старт выглядит хорошо. Затем случайное пролистывание…)

Добавить случайность: count=52 entropy=51
mgmt::auth
authentication: STA=a0:f4:50:18:a2:c3 auth_alg=0 auth_transaction=1 status_code=0 wep=0
  Новый STA
wlan0: STA a0:f4:50:18:a2:c3 IEEE 802.11: аутентификация OK (открытая система)
wlan0: STA a0:f4:50:18:a2:c3 MLME: MLME-AUTHENTICATE.indication(a0:f4:50:18:a2:c3, OPEN_SYSTEM)
wlan0: STA a0:f4:50:18:a2:c3 MLME: MLME-DELETEKEYS.request(a0:f4:50:18:a2:c3)
ответ аутентификации: STA=a0:f4:50:18:a2:c3 auth_alg=0 auth_transaction=2 resp=0 (IE len=0)
Добавить случайность: count=53 entropy=52
mgmt::auth cb
wlan0: STA a0:f4:50:18:a2:c3 IEEE 802.11: аутентифицирован
mgmt::assoc_req
запрос ассоциации: STA=a0:f4:50:18:a2:c3 capab_info=0x431 listen_interval=20
  новый AID 1
wlan0: STA a0:f4:50:18:a2:c3 IEEE 802.11: ассоциация OK (aid 1)
Добавить случайность: count=54 entropy=53
mgmt::assoc_resp cb
wlan0: STA a0:f4:50:18:a2:c3 IEEE 802.11: ассоциирован (aid 1)
wlan0: STA a0:f4:50:18:a2:c3 MLME: MLME-ASSOCIATE.indication(a0:f4:50:18:a2:c3)
wlan0: STA a0:f4:50:18:a2:c3 MLME: MLME-DELETEKEYS.request(a0:f4:50:18:a2:c3)
wpa_driver_nl80211_set_key: ifindex=3 alg=0 addr=0x9f8ac90 key_idx=0 set_tx=1 seq_len=0 key_len=0
   addr=a0:f4:50:18:a2:c3
wlan0: STA a0:f4:50:18:a2:c3 WPA: уведомление события 1
wpa_driver_nl80211_set_key: ifindex=3 alg=0 addr=0x9f8ac90 key_idx=0 set_tx=1 seq_len=0 key_len=0
   addr=a0:f4:50:18:a2:c3
IEEE 802.1X: Игнорировать STA - 802.1X не включен или принудительно для WPS
wlan0: STA a0:f4:50:18:a2:c3 WPA: начать аутентификацию
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние INITIALIZE
wpa_driver_nl80211_set_key: ifindex=3 alg=0 addr=0x9f8ac90 key_idx=0 set_tx=1 seq_len=0 key_len=0
   addr=a0:f4:50:18:a2:c3
wlan0: STA a0:f4:50:18:a2:c3 IEEE 802.1X: деауторизация порта
WPA: a0:f4:50:18:a2:c3 WPA_PTK_GROUP переходит в состояние IDLE
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние AUTHENTICATION
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние AUTHENTICATION2
WPA: Повторная инициализация GMK/Счетчика при первом подключении
Получить случайность: len=32 entropy=54
GMK - hexdump(len=32): [УДАЛЕНО]
Получить случайность: len=32 entropy=22
Счетчик Ключа - hexdump(len=32): [УДАЛЕНО]
Получить случайность: len=16 entropy=0
GTK - hexdump(len=16): [УДАЛЕНО]
wpa_driver_nl80211_set_key: ifindex=3 alg=3 addr=0x80dd6be key_idx=1 set_tx=1 seq_len=0 key_len=16
   ключ широковещательной рассылки
WPA: Назначить ANonce - hexdump(len=32): 12 53 6f 26 8a a3 87 09 b4 31 e2 81 ef c3 ea 3e 6c 3d 0c a5 fb 85 07 f2 0a 2a 4a 5e a2 00 59 e9
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние INITPSK
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние PTKSTART
wlan0: STA a0:f4:50:18:a2:c3 WPA: отправка 1/4 сообщения 4-Way Handshake
WPA: Отправка EAPOL(version=2 secure=0 mic=0 ack=1 install=0 pairwise=8 kde_len=0 keyidx=0 encr=0)
WPA: Использовать тайм-аут EAPOL-Key 100 мс (счетчик повторных попыток 1)
nl80211: Сообщение события доступно
nl80211: Новая станция a0:f4:50:18:a2:c3
IEEE 802.1X: a0:f4:50:18:a2:c3 TX статус - version=2 type=3 length=95 - ack=1
WPA: EAPOL-Key TX статус для STA a0:f4:50:18:a2:c3 ack=1
WPA: Увеличить начальный тайм-аут EAPOL-Key 1/4 на 1000 мс из-за подтвержденного кадра
IEEE 802.1X: 121 байт от a0:f4:50:18:a2:c3
   IEEE 802.1X: version=1 type=3 length=117
WPA: Получен EAPOL-Key от a0:f4:50:18:a2:c3 key_info=0x10a type=2 key_data_length=22
WPA: Получен Nonce Ключа - hexdump(len=32): 7c 4d 99 9f 10 56 93 84 a9 8a f8 15 d8 8e 1e 6d 2f 39 95 8f bc 99 9a 4c 06 3d 37 65 e6 db 49 fa
WPA: Получен Счетчик Повторов - hexdump(len=8): 00 00 00 00 00 00 00 01
Добавить случайность: count=55 entropy=0
wlan0: STA a0:f4:50:18:a2:c3 WPA: получен кадр EAPOL-Key (2/4 Pairwise)
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние PTKCALCNEGOTIATING
WPA: Производство PTK - A1=90:4c:e5:55:94:4d A2=a0:f4:50:18:a2:c3
WPA: Nonce1 - hexdump(len=32): 12 53 6f 26 8a a3 87 09 b4 31 e2 81 ef c3 ea 3e 6c 3d 0c a5 fb 85 07 f2 0a 2a 4a 5e a2 00 59 e9
WPA: Nonce2 - hexdump(len=32): 7c 4d 99 9f 10 56 93 84 a9 8a f8 15 d8 8e 1e 6d 2f 39 95 8f bc 99 9a 4c 06 3d 37 65 e6 db 49 fa
WPA: PMK - hexdump(len=32): [УДАЛЕНО]
WPA: PTK - hexdump(len=48): [УДАЛЕНО]
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние PTKCALCNEGOTIATING2
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние PTKINITNEGOTIATING
wlan0: STA a0:f4:50:18:a2:c3 WPA: отправка 3/4 сообщения 4-Way Handshake
WPA: Отправка EAPOL(version=2 secure=1 mic=1 ack=1 install=1 pairwise=8 kde_len=46 keyidx=1 encr=1)
Открытые данные EAPOL-Key Ключа - hexdump(len=56): [УДАЛЕНО]
WPA: Использовать тайм-аут EAPOL-Key 100 мс (счетчик повторных попыток 1)
IEEE 802.1X: a0:f4:50:18:a2:c3 TX статус - version=2 type=3 length=151 - ack=1
WPA: EAPOL-Key TX статус для STA a0:f4:50:18:a2:c3 ack=1
IEEE 802.1X: 99 байт от a0:f4:50:18:a2:c3
   IEEE 802.1X: version=1 type=3 length=95
WPA: Получен EAPOL-Key от a0:f4:50:18:a2:c3 key_info=0x30a type=2 key_data_length=0
WPA: Получен Nonce Ключа - hexdump(len=32): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
WPA: Получен Счетчик Повторов - hexdump(len=8): 00 00 00 00 00 00 00 02
wlan0: STA a0:f4:50:18:a2:c3 WPA: получен кадр EAPOL-Key (4/4 Pairwise)
WPA: a0:f4:50:18:a2:c3 WPA_PTK переходит в состояние PTKINITDONE
wpa_driver_nl80211_set_key: ifindex=3 alg=3 addr=0x9f8ac90 key_idx=0 set_tx=1 seq_len=0 key_len=16
   addr=a0:f4:50:18:a2:c3
wlan0: AP-STA-CONNECTED a0:f4:50:18:a2:c3
wlan0: STA a0:f4:50:18:a2:c3 IEEE 802.1X: авторизация порта
wlan0: STA a0:f4:50:18:a2:c3 RADIUS: начало сеанса учёта 536C1843-00000000
wlan0: STA a0:f4:50:18:a2:c3 WPA: завершена рукопожатие между парами ключей (RSN)
Добавить случайность: count=56 entropy=1

(больше случайности, пока я ctrl+c)

Попробуйте следующее

sudo apt-get install hostapd dnsmasq dhcp3-server isc-dhcp-server haveged

Настройка hostapd

hostapd предназначен для функциональности беспроводного маршрутизатора:

leafpad /etc/hostapd.conf

Общие настройки точки доступа:

Определите интерфейс

interface=wlan#
bridge=br0

Выберите драйвер:

driver=nl80211

Установите аппаратный режим точки доступа на 802.11a/b/g/n (аппаратное обеспечение поддерживает?):

hw_mode=g
logger_stdout=-1
logger_stdout_level=2
require_ht=0
ht_capab= [HT40+] [HT40-] [SHORT-GI-40] [RX-STBC1]
ieee80211d=1
ieee80211n=1
macaddr_acl=0
wmm_enabled=1

Настройте беспроводные характеристики:

beacon_int=50
country_code=US
disassoc_low_ack=1

Установите Wi-Fi канал:

channel=6

Установите имя точки доступа:

ssid=nametobroacdcast
ignore_broadcast_ssid=0

Установите стандарт шифрования (1 для WPA, 2 для WPA2, 3 для WPA + WPA2):

auth_algs=1
wpa=3
wpa_passphrase=yourpassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

Другие опции для wpa_key_mgmt=WPA-EAP WPA-PSK-SHA256 WPA-EAP-SHA256


Создайте и сохраните скрипт ./######.sh

#!/bin/bash
# Настроить IP-адрес для WLAN
sudo ifconfig wlan0 up 192.168.3.1 netmask 255.255.255.0
sleep 2

# Запустить сервер DHCP/DNS (можно заменить `dnsmasq` на `dhcpd` или `isc-hdcp-server`):
sudo service dnsmasq restart

# Замените строку "dnsmasq restart" выше этой областью между ## ##, если это не сработает
if [ “$(ps –e | grep dhcpd)” == “” ]; then
dhcpd $1 &
fi

# Включите маршрутизацию
sudo sysctl net.ipv4.ip_forward=1

# Включите NAT (преобразование адресов сети)
sudo iptables --flush
sudo iptables –-table nat --flush
sudo iptables --delete-chain
sudo iptables --table nat --delete-chain
sudo iptables --table nat --flush
sudo iptables -t nat -A POSTROUTING --out –interface $1 -j MASQUERADE

# “$1” = компьютер, выступающий в роли выходного интерфейса AP (в интернет)
sudo iptables –A FORWARD –in-interface $2 –j ACCEPT

# “$2” = входной интерфейс клиента (к клиенту)
echo 1 > /proc/sys/net/ipv4/ipforward

# Запустите демон точки доступа
sudo hostapd /etc/hostapd.conf

# Остановка сервера DHCP/DNS

# Отключить NAT
sudo iptables -D POSTROUTING -t nat -o ppp0 -j MASQUERADE

# Отключить маршрутизацию
sudo sysctl net.ipv4.ip_forward=0

# Отключить сервер DHCP/DNS
sudo service dnsmasq stop
# Можно заменить на “dhcpd” или “isc-hdcp-server”

# Запустите HOSTAPD
sudo service hostapd start

Начать настройку DNS/DHCP

dnsmasq dhcp3-server isc-dhcp-server предназначен для функциональности DNS/DHCP (выберите одно):

Пример:

leafpad /etc/dhcp/dhcpd.conf

Общие настройки DHCP:

ddns-update-style none;
ignore clients-updates;
authoritative;
option local-wpad code 252 = test;
log-facility local7;
default-lease-time 3600;
max-lease-time 7200;
subnet
192.168.3.0 netmask 255.255.255.0 {
    # Широковещательный адрес
    option broadcast-address 192.168.3.2;
    # Сетевой маска
    option subnet-mask 255.255.255.0;
    # Шлюз по умолчанию
    option routers 192.168.3.1;

    # DNS-серверы для направления трафика клиентов 
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option time-offset 0;

    # Установите диапазон IP-адресов, доступных для клиентов
    range 192.168.3.2, 192.168.3.100;
}

Разрешить запуск созданного скрипта ./#####.sh

Сделайте hostapdfilecreated.sh исполняемым:

sudo chmod +x nameoffilecreated.sh

Вы должны находиться в каталоге, где находится файл ######.sh, перейдите в него через cd, затем выполните команду.

Выполните скрипт, чтобы начать трансляцию точек доступа на основе компьютера:

sudo ./nameoffilecreated.sh

Ответ или решение

Настройка точки доступа WiFi с использованием hostapd и isc-dhcp-server на Xubuntu 14.04 может быть довольно сложной задачей, особенно если возникают проблемы с маршрутизацией. В этом ответе мы шаг за шагом рассмотрим, как правильно настроить конфигурацию, чтобы все заработало без проблем.

Шаг 1: Установка необходимых пакетов

Сначала убедитесь, что на вашем устройстве установлены необходимые программные пакеты. Выполните следующую команду в терминале:

sudo apt-get install hostapd isc-dhcp-server

Шаг 2: Настройка конфигурационного файла hostapd

Откройте файл конфигурации hostapd:

sudo nano /etc/hostapd/hostapd.conf

Содержимое файла должно включать следующие настройки:

interface=wlan0
driver=nl80211
ssid=workshop
hw_mode=g
channel=1
wpa=2
wpa_passphrase=mypass
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
macaddr_acl=0
ignore_broadcast_ssid=0

Шаг 3: Настройка isc-dhcp-server

Теперь перейдем к файлу конфигурации DHCP-сервера:

sudo nano /etc/dhcp/dhcpd.conf

Пример содержимого файла:

ddns-update-style none;
authoritative;
subnet 10.10.0.0 netmask 255.255.255.0 {
    range 10.10.0.2 10.10.0.32;
    option routers 10.10.0.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 208.67.222.222, 208.67.220.220;
}

Шаг 4: Настройка интерфейса сети

Настройте файл сетевых интерфейсов:

sudo nano /etc/network/interfaces

Добавьте/измените в соответствии с вашим сетевым адаптером:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 10.10.0.1
    netmask 255.255.255.0

Шаг 5: Настройка маршрутизации и NAT

Убедитесь, что маршрутизация и NAT включены. Откройте файл /etc/rc.local:

sudo nano /etc/rc.local

Добавьте следующие строки перед строкой exit 0:

iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Шаг 6: Запуск сервисов

Теперь вы можете запустить сервисы. Обычно это делается следующими командами:

sudo service hostapd start
sudo service isc-dhcp-server start

Шаг 7: Проверка и отладка

Если у вас возникают проблемы с подключением клиентов или маршрутизацией, выполните следующие команды для диагностики:

  1. Проверьте, что dhcpd запущен и функционирует корректно:

    sudo systemctl status isc-dhcp-server
  2. Проверьте логи hostapd, чтобы убедиться в отсутствии ошибок:

    sudo journalctl -u hostapd
  3. Просмотрите логи dhcp сервера:

    cat /var/log/syslog | grep dhcpd

Заключение

Если вы все сделали правильно, ваш WiFi AP должен быть доступен, а клиенты должны получать IP-адреса с корректной маршрутизацией. Убедитесь, что в конфигурации нет синтаксических ошибок, и что все службы запускаются без ошибок. Если маршрутизация по-прежнему не работает, вы можете проверить настройки на вашем маршрутизаторе или файрволе, которые могут блокировать трафик.

Запомните, если у вас есть дополнительные вопросы или возникают сложности, не стесняйтесь обращаться на форумы или в сообщества, уважающие пользователей Linux.

Оцените материал
Добавить комментарий

Капча загружается...