Ссылки:
https://openwrt.org/toh/mikrotik/common
https://openwrt.org/toh/mikrotik/common#saving_mikrotik_routerboard_license_key_using_winbox_and_windows
https://openwrt.org/toh/mikrotik/common#saving_mikrotik_routerboard_license_key_without_using_winbox
https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/
https://downloads.openwrt.org/releases/22.03.0-rc3/targets/ipq40xx/mikrotik/
https://openwrt.org/ru/toh/mikrotik/common
https://wiki.archlinux.org/title/Preboot_Execution_Environment_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
https://github.com/klukonin/Mikrotik-researcher-tools
https://habr.com/ru/post/315960/
https://wiki.archlinux.org/title/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Wireless_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC_%D1%81_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0%D0%BC%D0%B8_%D0%B8_%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8
https://wiki.archlinux.org/title/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Wireless_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
https://wiki.archlinux.org/title/Wpa_supplicant
https://wiki.archlinux.org/title/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Wireless_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
http://linux-wless.passys.nl/
https://wireless.wiki.kernel.org/en/users/drivers
https://en.wikipedia.org/wiki/Wi-Fi
https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless
Сохранение файла с лицензией MikroTik RouterOS
0. Подключаемся на микротик и выполняем в терминале:
/system license output
/file print
1. Любым доступным способом забираем файл лицензии с микротика
mikrotik подготовка
0. Подключаемся к микротику и открываем его терминал
1. Выполняем следующие
/system routerboard settings set boot-device=try-ethernet-once-then-nand
2. Выключаем микротик
/system shutdown
dnsmasq подготовка DHCP+TFTP
0. Устанавливаем dnsmasq и останавливаем его демон
apt install dnsmasq
systemctl stop dnsmasq && systemctl disable dnsmasq
2. скачиваем прошивки
!!! initramfs нужна для загрузки по tftp (эта прошивка загружается в оперативную память и ничего не ломает)
!!! sysupgrade установка прошивки (заменяет прошивку микротика)
cd /srv/tftp
wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-initramfs-kernel.bin
wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-squashfs-sysupgrade.bin
3. Запускаем tftp
dnsmasq -i enp0s20f0u2 --dhcp-range=192.168.88.64,192.168.88.128 --dhcp-boot=openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-initramfs-kernel.bin --enable-tftp --tftp-root=/srv/tftp/ -d -u nobody -p0 -K --log-dhcp --bootp-dynamic --dhcp-host=DC:2C:6E:68:AF:B9
4. На микротике:
0) вытаскиваем питание
1) Зажимаем кнопку reset
2) Включаем питание
3) Ждем 3 сек и отпускаем кнопку reset
Установка постоянной прошивки на openwrt:
0. Любым способом копируем на openwrt прошивку
wget:
cd /tmp
wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-squashfs-sysupgrade.bin
ssh openwrt:
ssh root@192.168.1.1
cd /tmp
scp user@192.168.1.10:/home/user/file.bin .
ssh:
scp sysupgrade.bin root@192.168.1.1:/tmp
1. устанавливаем прошивку
/sbin/sysupgrade sysupgrade.bin
Примеры конфигов hostapd \ wpa_supplicant
cd /etc
wget https://raw.githubusercontent.com/klukonin/Mikrotik-researcher-tools/master/files/etc/wpa_supplicant.conf
wget https://raw.githubusercontent.com/klukonin/Mikrotik-researcher-tools/master/files/etc/hostapd.conf
Клиент Client:
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
Точка доступа AP:
hostapd -B /etc/hostapd.conf
openwrt regenerate configuration wifi / сброс wifi
rm -f /etc/config/wireless
wifi config
ip / ifconfig
ifconfig wlan0 192.168.2.1 # Set an IP
ifconfig wlan0 down
ifconfig wlan0 up
ip link set wlan0 up
iwconfig
!!! iwlist - команда устарела и рекомендуется использовать iw вместо ее
Сканировать wifi и вывести имена сетей:
iwlist wlan0 scan | grep ESSID
Сканирование сети:
iwlist scan
Получить инфу по wlan0:
iwconfig wlan0
Если вы можете получить IP для проводного интерфейса, но не можете для беспроводного, попробуйте отключить энергосберегающие функции вашей беспроводной карты:
iwconfig wlan0 power off
Ели вы получаете timeout ошибку из-за waiting for carrier проблемы, возможно вам понадобится установить канал в auto для конкретного устройства:
iwconfig wlan0 channel auto
iwconfig wlan0 - получение состояния соединения
iwlist wlan0 scan - сканирование доступных точек доступа
iwconfig wlan0 mode ad-hoc - установка режима работы ad-hoc
iwconfig wlan0 essid ваш_essid - подключение к открытой сети
iwconfig wlan0 essid ваш_essid freq 2432M - подключение к открытой сети с указанием канала
iwconfig wlan0 essid ваш_essid key ваш_ключ - подключение к сети с WEP шифрованием шестнадцатеричным ключом
iwconfig wlan0 essid ваш_essid key s:ваш_ключ - подключение к сети с WEP шифрованием ASCII-ключом
iwconfig wlan0 power on - включение режима энергосбережения
iw / iwinfo / iwlist
!!! iwlist - команда устарела и рекомендуется использовать iw вместо ее
Сканирование сети:
iw dev scan
iw dev wlan0 link - получение состояния соединения
iw dev wlan0 scan - сканирование доступных точек доступа
iw dev wlan0 set type ibss - установка режима работы ad-hoc
iw dev wlan0 connect ваш_essid - подключение к открытой сети
iw dev wlan0 connect ваш_essid 2432 - подключение к открытой сети с указанием канала
iw dev wlan0 connect ваш_essid key 0:ваш_ключ - подключение к сети с WEP шифрованием шестнадцатеричным ключом
iw dev wlan0 set power_save on - включение режима энергосбережения
iw phy phy0 interface add moni0 type monitor
iw dev
iw dev wlan0 link
iw dev wlan0 scan
iw phy0 info
iw wlan0 info
iw reg get
iwinfo
Подключение к сети wi-fi с помощью iw:
iw dev wlan0 del
iw phy phy0 interface add wlan0 type ibss
ifconfig wlan0 up
iw dev wlan0 scan
iw dev wlan0 ibss join AdHocNetworkName 2412
rfkill
Во многих ноутбуках присутствует аппаратный переключатель (или кнопка) питания беспроводной карты, однако она может быть также заблокирована и ядром.
Используйте rfkill, чтобы посмотреть текущий статус:
rfkill list
Если карта заблокирована аппаратно (hard blocked), используйте переключатель (кнопку), чтобы разблокировать её.
Если же карта заблокирована не аппаратно, a программно (soft blocked), используйте следующую команду:
rfkill unblock wifi
hostapd
Пример простой 1 802.11b/g/n with WPA2-PSK and CCMP:
vim /etc/hostapd/hostapd.conf
-----------------------------
# the interface used by the AP
interface=wlan0
# "g" simply means 2.4GHz band
hw_mode=g
# the channel to use
channel=10
# limit the frequencies used to those allowed in the country
ieee80211d=1
# the country code
country_code=FR
# 802.11n support
ieee80211n=1
# QoS support, also required for full speed on 802.11n/ac/ax
wmm_enabled=1
# the name of the AP
ssid=somename
# 1=wpa, 2=wep, 3=both
auth_algs=1
# WPA2 only
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=somepassword
-----------------------------
Пример простой 2 802.11a/n/ac with WPA2-PSK and CCMP:
/etc/hostapd/hostapd.conf
-------------------------
interface=wlan0
# "a" simply means 5GHz
hw_mode=a
# the channel to use, 0 means the AP will search for the channel with the least interferences (ACS)
channel=0
ieee80211d=1
country_code=FR
ieee80211n=1
# 802.11ac support
ieee80211ac=1
wmm_enabled=1
ssid=somename
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=somepassword
-------------------------
Пример простой 3 802.11b/g/n triple AP:
/etc/hostapd/hostapd.conf
-------------------------
interface=wlan0
hw_mode=g
channel=10
ieee80211d=1
country_code=FR
ieee80211n=1
wmm_enabled=1
# First AP
ssid=test1
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=somepassword
# Second AP
# the name of the new interface hostapd will create to handle this AP
bss=wlan1
ssid=test2
auth_algs=1
wpa=1
wpa_key_mgmt=WPA-PSK
wpa_passphrase=someotherpassword
# Third AP
# the name of the new interface hostapd will create to handle this AP
bss=wlan2
ssid=test3
# since there is no encryption defined, none will be used
-------------------------
wpa_supplicant / wpa_cli
Запуск wpa_supplicant:
wpa_supplicant -Dnl80211 -iwlan0 -C/var/run -u &
wpa_cli -p/var/run
Пример минимальной настройки:
wpa_cli
add_network
set_network 0 ssid "MYSSID"
set_network 0 key_mgmt NONE
enable_network 0
Пример:
wpa_cli
add_network
set_network 0 ssid "name of AP"
set_network 0 key_mgmt WPA-PSK
set_network 0 pairwise TKIP
set_network 0 psk "key"
enable_network 0
Пример для закрытой WPA2 сети:
wpa_cli
add_network
set_network 0 ssid "name of AP"
set_network 0 key_mgmt WPA-PSK
set_network 0 pairwise CCMP
set_network 0 psk "key"
enable_network 0
wpa_supplicant.conf
cat /etc/wpa_supplicant.conf
----------------------------
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
#
# home network; allow all valid ciphers
network={
ssid="home"
scan_ssid=1
key_mgmt=WPA-PSK
psk="very secret passphrase"
}
----------------------------
!!! Первая строка необходима, без ctrl_interface программа даже не запустится.
!!! GROUP=wheel нужно для того, чтобы запускать из под обычного пользователя в графическом интерфейсе wpa_gui.
!!! Поэтому рекомендуется менять на рутовый GROUP=0
!!! Каждой сети в файле настроек должен соответствовать блок network {}
!!! ap_scan=0 #драйвер сканирует точку доступа
!!! ap_scan=1 #wpa_supplicant сканирует точку доступа, используется по-умолчанию
!!! ap_scan=2 #как 0, но еще учитывает политики безопасности и SSID, работает с ndiswrapper
!!! bssid — The Basic Service Set Identifier (BSSID), физический адрес точки доступа.
!!! key_mgmt — Протоколы аутентификации.
!!! pairwise — Для WPA2 укажите CCMP, а для WPA — TKIP.
!!! proto — WPA/WPA2.
!!! psk — Хэш пароля PreShared Key.
!!! ca_cert — Абсолютный путь к CA-сертификату в формате PEM или DER, необходим для возможности подтверждения сертификата сервера.
!!! ca_path — Абсолютный путь к директории, где хранятся файлы CA-сертификатов (в формате PEM), которые вы хотите добавить в список доверенных.
!!! client_cert — Абсолютный путь к клиентскому сертификату в формате PEM или DER.
!!! eap — Разделенный пробелами список поддерживаемых методов EAP: MD5, MSCHAPV2, OTP, GTC, TLS, PEAP, или TTLS.
!!! identity — Идентификации EAP, например имя пользователя.
!!! password — Пароль EAP.
Рекомендованный конфиг WPA-PSK:
cat /etc/wpa_supplicant.conf
----------------------------
ctrl_interface_group=0
ap_scan=1
ctrl_interface=/var/run/wpa_supplicant
network={
proto=WPA2
pairwise=CCMP
key_mgmt=WPA-PSK
priority=5
ssid="MYSSID"
bssid=44:b0:51:dc:ba:f8
psk=ce55977186ae1df2dffeb571acee8dacd92f49edddbdef53623132e3c24567ae
}
----------------------------
Рекомендованный конфиг WPA-EAP:
cat /etc/wpa_supplicant.conf
----------------------------
network = {
ssid="Company WPA2 EAP"
key_mgmt=WPA-EAP
pairwise=TKIP
group=TKIP
eap=PEAP
identity="username@domain"
password="your_passphrase"
ca_cert="/etc/cert/ca.pem"
phase1="peapver=0"
phase2="MSCHAPV2"
}
----------------------------
Рекомендованный конфиг WPA2 TLS:
cat /etc/wpa_supplicant.conf
----------------------------
network = {
ssid="Company WPA2 TLS"
key_mgmt=WPA-EAP
pairwise=CCMP
group=CCMP
eap=TLS
ca_cert="/etc/cert/ca.pem"
private_key="/etc/cert/privkey.p12"
private_key_passwd="your_passphrase PKCS#12"
}
----------------------------
openwrt wi-fi
type string yes (autodetected) The type is determined on firstboot during the initial radio device detection - it is usually not required to change it.
Used values are broadcom on brcm47xx, or mac80211 for all other platforms
band string no (driver default) Specifies the band, possible values are 2g for 2.4 GHz, 5g for 5 GHz, 6g for 6 GHz and 60g for 60 GHz. (NEW since 21.02.2, replaces hwmode)
htmode string no (driver default) Specifies the high throughput mode, used to control 802.11n (HT), 802.11ac (VHT) and 802.11ax (HE). The channel width used for these depends on this configuration.
See this section for details. Possible values are: HT20, HT40-, HT40+, HT40, or VHT20, VHT40, VHT80, VHT160, NOHT disables 11n and 11ac, HE20, HE40, HE80, HE160
txpower integer no (driver default) Specifies the maximum desired transmission power in dBm. The actual txpower used depends on regulatory requirements.
vim /etc/config/wireless
------------------------
config wifi-device 'radio0'
option type 'mac80211'
option channel '2'
option hwmode '60g'
option path 'pci0000:00/0000:00:00.0'
option htmode 'HT20'
option country 'US'
config wifi-iface
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrt'
option encryption 'none'
config wifi-iface
option device 'radio0'
option mode 'ap'
option ssid 'My-WiFi-Home'
option network 'lan'
option encryption 'psk2'
option key 'WiFipassword'
option ieee80211w '0'
option wps_pushbutton '1'
------------------------
Пример wi-fi wpa_supplicant настройки в debian:
vim /etc/network/interfaces
---------------------------
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
---------------------------
wifi логи:
Следим за логами:
logread -f
Отслеживать сообщения ядра:
dmesg -w
Проверьте сообщения ядра на предмет загрузки прошивки:
dmesg | grep firmware
Если там нет интересующей вас информации, проверьте сообщения подробного вывода, относящиеся к определённому вами ранее модулю (например iwlwifi)
dmesg | grep iwlwifi
modinfo iwlwifi
В ситуации, когда вы не можете определить ошибку, запустите wpa_supllicant напрямую с ключом -dd:
wpa_supplicant -Dnl80211 -iwlan0 -C/var/run/wpa_supplicant/ -c/etc/wpa_supplicant/wpa_supplicant.conf -dd
Если вы используете какую-то утилиту для управления сетью, то же самое можно сделать с помощью systemd:
journalctl -f
journalctl -xb
Проверка состояния драйвера:
lspci -k
Наблюдаем за событиями wi-fi:
iw event
iw event -f
iw event -t
openwrt /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config device
option name 'eth0'
option macaddr 'dc:2c:6e:68:af:b9'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ip6assign '60'
list ipaddr '192.168.1.1/24'
list ipaddr '192.168.127.70/24'
option gateway '192.168.1.10'
list dns '192.168.1.1'
list dns '192.168.16.254'
Файлы firmware для wil6210 для запуска wifi lhgg-60ad
!!! https://forum.openwrt.org/t/support-for-mikrotik-wap-60g/30752/95
!!! https://forum.openwrt.org/t/support-for-mikrotik-wap-60g/30752/7
!!! https://github.com/openwrt/openwrt/pull/2417
!!! https://forum.openwrt.org/t/solved-archer-c7-v2-wireless-died-daemon-notice-hostapd-handle-probe-req-send-failed/65837
!!! https://forum.openwrt.org/t/support-for-mikrotik-rb3011uias-rm/4064/399?page=20
!!! из ссылок выше мы узнаем что:
!!! драйвер wil6210.fw в openwrt как заглушка
!!! luci не работает с 60Ghz (не проверял, может и работает на новых прошивках)
!!! ошибка никуда не исчезнет (wil6210 0000:01:00.0: Direct firmware load for wil6210_sparrow_plus.fw failed with error -2)
Описание:
https://github.com/IMDEANetworksWNG/Mikrotik-researcher-tools
Старые прошивки на котором запустилось 60Ghz (!!! внимание на прошивку надо ставить\докидывать файл wil6210, см описание ниже):
https://github.com/IMDEANetworksWNG/Mikrotik-researcher-tools/releases
Новые прошивки openwrt 22.03.0-rc3 на котором запустилось 60Ghz (!!! внимание на прошивку надо ставить\докидывать файл wil6210, см описание ниже):
https://downloads.openwrt.org/releases/22.03.0-rc3/targets/ipq40xx/mikrotik/
Файл hosapd:
https://raw.githubusercontent.com/IMDEANetworksWNG/Mikrotik-researcher-tools/main/files/etc/hostapd.conf
Файл wpa_supplicant.conf:
https://github.com/IMDEANetworksWNG/Mikrotik-researcher-tools/blob/main/files/etc/wpa_supplicant.conf
0. Скачиваем и распаковываем
https://download.mikrotik.com/routeros/6.40.9/all_packages-arm-6.40.9.zip
1. Распаковываем all_packages-arm-6.40.9.zip
unzip all_packages-arm-6.40.9.zip
2. Переходим в каталог all_packages-arm-6.40.9
cd all_packages-arm-6.40.9
3. Распаковываем бинарник wireless-6.40.9-arm.npk
binwalk -e wireless-6.40.9-arm.npk
4. Переходим _wireless-6.40.9-arm.npk.extracted/squashfs-root/lib/firmware/
cd _wireless-6.40.9-arm.npk.extracted/squashfs-root/lib/firmware/
5. Интересует файл wil6210-d0.fw
6. Достовляем его на openwrt с заменой файла wil6210.fw
scp wil6210-d0.fw root@192.168.1.1:/lib/firmware/wil6210.fw
7. На одном устройстве подымаем клиента STA
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
8. На втором устройстве подымаем сервер AP
hostapd -B /etc/hostapd.conf
Пример hostapd.conf без шифрования lhgg-60ad
ctrl_interface=/var/run/hostapd
interface=wlan0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ssid=Mikrotik
country_code=DE
hw_mode=ad
channel=2
beacon_int=100
Пример wpa_supplicant.conf без шифрования lhgg-60ad
network={
ssid="Mikrotik"
key_mgmt=NONE
}