Mikrotik HotSpot: различия между версиями
Sirmax (обсуждение | вклад) (→Ссылки) |
Sirmax (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | [[Категория:Networking]] |
||
+ | [[Категория:Mikrotik]] |
||
=Mikrotik HotSpot= |
=Mikrotik HotSpot= |
||
Задача: Хочу настроить гостевую сетьт с лимитом по скорости и показывать рекламу/свою страничку раз в N минут |
Задача: Хочу настроить гостевую сетьт с лимитом по скорости и показывать рекламу/свою страничку раз в N минут |
Текущая версия на 16:42, 26 октября 2023
Mikrotik HotSpot
Задача: Хочу настроить гостевую сетьт с лимитом по скорости и показывать рекламу/свою страничку раз в N минут
Базовая настройка сети (VirtualAP или Multi SSID)
У меня 2 SSID - для меня и гостевой (sirmax и FreeWiFi)
[sirmax@MikroTik] > /interface wireless print Flags: X - disabled, R - running 0 R name="FreeWiFi" mtu=1500 mac-address=D6:CA:6D:7C:A6:66 arp=enabled interface-type=virtual-AP master-interface=wlan1 ssid="CloudTechMeetup" wds-mode=disabled wds-default-bridge=none wds-ignore-ssid=no bridge-mode=enabled default-authentication=yes default-forwarding=yes default-ap-tx-limit=0 default-client-tx-limit=0 hide-ssid=no security-profile=default 1 R name="sirmax1" mtu=1500 mac-address=D6:CA:6D:7C:A6:65 arp=enabled interface-type=virtual-AP master-interface=wlan1 ssid="sirmax1" wds-mode=disabled wds-default-bridge=none wds-ignore-ssid=no bridge-mode=enabled default-authentication=yes default-forwarding=yes default-ap-tx-limit=0 default-client-tx-limit=0 hide-ssid=no security-profile=WPA_SPK_2
- mode=ap-bridge — работа в качестве точки доступа. Так же может быть bridge и wifi-клиентом.
- frequency=2412 — ровно то же, что и «каналы» в SOHO-роутерах. Предварительно сканируем и выбираем самый незанятый
- band=2ghz-b/g/n — режим работы. Можно, например, цеплять только g-клиентов
- channel-width=20/40mhz-ht-above — ширина канала. Для дома можно оставить только 20mhz
- bridge-mode=enabled — бриджевать пакеты, что нам и требуется
- hide-ssid=no — не скрывать SSID, чтобы к ней было проще подключиться.
На своей сети:
/interface wireless security-profiles print name="WPA_SPK_2" mode=dynamic-keys authentication-types=wpa-psk,wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm wpa-pre-shared-key="Key2" wpa2-pre-shared-key="Key2" supplicant-identity="MikroTik" eap-methods=passthrough tls-mode=no-certificates tls-certificate=none mschapv2-username="" mschapv2-password="" static-algo-0=none static-key-0="" static-algo-1=none static-key-1="" static-algo-2=none static-key-2="" static-algo-3=none static-key-3="" static-transmit-key=key-0 static-sta-private-algo=none static-sta-private-key="" radius-mac-authentication=no radius-mac-accounting=no radius-eap-accounting=no interim-update=0s radius-mac-format=XX:XX:XX:XX:XX:XX radius-mac-mode=as-username radius-mac-caching=disabled group-key-update=5m management-protection=disabled management-protection-key=""
- mode=dynamic-keys — включаем WPA-режим.
- authentication-types=wpa-psk,wpa2-psk,wpa-eap,wpa2-eap — поддерживаемые методы авторизации
- unicast-ciphers=aes-ccm — шифрование
- wpa-pre-shared-key=Key1 — WPA-ключ
- wpa2-pre-shared-key=Key2 — WPA2-ключ
Обратить внимание на authentication-types=wpa-psk,wpa2-psk - тут не надо писать лишнего, если это не корпоративная сеть.
Так же возможна RADIUS-авторизация, но в рамках пока не настраивал. Хотя использовать OpenWRT в качестве радиуса скорее всего возможно.
Перенаправлени на страничку с "рекламой"
Теперь задача - всем клиентам кто ходит через "безплатную" сеть показать рекламу.
Т.к. у нас нет вебсервера то используем страничку ошибки встроенного в кикротик сквида:
- Включаем Web Proxy без кеша
/ip proxy set enabled=yes port=8080
- Редактируем страничку с ошибкой
/file print # NAME TYPE SIZE CREATION-TIME 1 um-before-migration.tar .tar file 16.5KiB jan/02/1970 02:00:30 ... 3 webproxy directory jan/02/1970 06:35:41 4 webproxy/error.html .html file 783 jan/02/1970 02:40:51 [sirmax@MikroTik] > /file edit number: 4
И пишем то что сичтаем нужным.
Настройку DHCP сервера я опускаю, она тривиальна. Отмечу только что у меня клиентская сеть - 192.168.100.0/24
Собственно перенаправление
Правила такие:
/ip firewall nat> print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=masquerade src-address=192.168.100.0/24 src-address-list=FreeWiFi_Notification out-interface=ether1-gateway 1 chain=dstnat action=redirect to-addresses=192.168.100.254 to-ports=8080 protocol=tcp src-address=192.168.100.0/24 src-address-list=!FreeWiFi_Notification dst-port=80
/ip firewall filter print Flags: X - disabled, I - invalid, D - dynamic 0 chain=input action=add-src-to-address-list protocol=tcp src-address=192.168.100.0/24 address-list=FreeWiFi_Notification address-list-timeout=20m dst-port=8080
Логика работы:
- Клиент пытается зайти на любой сайт
- NAT смотрит что его нет в address-list под именем "FreeWiFi_Notification" и его запрос редиректит на прокси
- Прокси его не пускает и выдает error.html с ообщением. Не пускает потому что никого не пускает - такая полиси настроена.
- При этом когда NAT отредиректил юзера на прокси, сработало правило в filter и добавило его ip в address-list "FreeWiFi_Notification".
- При обновлении странички никакого редиректа не произойдет так как пользователь уже в address-list FreeWiFi_Notification
- Записи из FreeWiFi_Notification удаляются address-list-timeout=20m через 20 минут
О безпроводных сетях
- http://wiki.mikrotik.com/wiki/Manual:Interface/Wireless
- http://wiki.mikrotik.com/wiki/802.11n_Setup_Guide
- http://nix.khd.ru/?p=157 - базовая настройка (как в вике но на русском) http://nix.khd.ru/?p=1998 - WDS
- http://habrahabr.ru/post/150179/ - Хорошо о шифровании
- http://wiki.mikrotik.com/wiki/Manual:IP/DHCP_Server
- http://wiki.mikrotik.com/wiki/Manual:Interface/Wireless
- http://wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features