- Вопрос или проблема
- Настройка hostapd
- Начать настройку DNS/DHCP
- Разрешить запуск созданного скрипта ./#####.sh
- Ответ или решение
- Шаг 1: Установка необходимых пакетов
- Шаг 2: Настройка конфигурационного файла hostapd
- Шаг 3: Настройка isc-dhcp-server
- Шаг 4: Настройка интерфейса сети
- Шаг 5: Настройка маршрутизации и NAT
- Шаг 6: Запуск сервисов
- Шаг 7: Проверка и отладка
- Заключение
Вопрос или проблема
Я пробовал использовать ap-hotspot от WebUpd8, и он не работал у меня на 13.10 или 14.04, поэтому я работал над тем, чтобы вручную настроить hostapd, используя isc-dhcp-server
, так как dnsmasq у меня вызывал конфликты. Мне удалось подключиться к AP и получить IP
, но маршрутизация, кажется, не работает. Вот мой лог сборки и руководства, которыми я следовал:
- https://askubuntu.com/a/180734/279108
- http://thenewbieblog.wordpress.com/2012/05/01/wifi-hotspot-setup-on-ubuntu/
- http://danbishop.org/2011/12/11/using-hostapd-to-add-wireless-access-point-capabilities-to-an-ubuntu-server/
Конфигурационные файлы:
/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: Проверка и отладка
Если у вас возникают проблемы с подключением клиентов или маршрутизацией, выполните следующие команды для диагностики:
-
Проверьте, что dhcpd запущен и функционирует корректно:
sudo systemctl status isc-dhcp-server
-
Проверьте логи hostapd, чтобы убедиться в отсутствии ошибок:
sudo journalctl -u hostapd
-
Просмотрите логи dhcp сервера:
cat /var/log/syslog | grep dhcpd
Заключение
Если вы все сделали правильно, ваш WiFi AP должен быть доступен, а клиенты должны получать IP-адреса с корректной маршрутизацией. Убедитесь, что в конфигурации нет синтаксических ошибок, и что все службы запускаются без ошибок. Если маршрутизация по-прежнему не работает, вы можете проверить настройки на вашем маршрутизаторе или файрволе, которые могут блокировать трафик.
Запомните, если у вас есть дополнительные вопросы или возникают сложности, не стесняйтесь обращаться на форумы или в сообщества, уважающие пользователей Linux.