Mikrotik HotSpot: различия между версиями
Sirmax (обсуждение | вклад) (→Ссылки) |
Sirmax (обсуждение | вклад) |
||
(не показано 16 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Networking]] |
||
+ | [[Категория:Mikrotik]] |
||
=Mikrotik HotSpot= |
=Mikrotik HotSpot= |
||
+ | Задача: Хочу настроить гостевую сетьт с лимитом по скорости и показывать рекламу/свою страничку раз в N минут |
||
+ | ===Базовая настройка сети (VirtualAP или Multi SSID)=== |
||
+ | |||
+ | У меня 2 SSID - для меня и гостевой (sirmax и FreeWiFi) |
||
+ | <PRE> |
||
+ | [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 |
||
+ | </PRE> |
||
+ | |||
+ | * 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, чтобы к ней было проще подключиться. |
||
+ | |||
+ | На своей сети: |
||
+ | <PRE> |
||
+ | /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="" |
||
+ | </PRE> |
||
+ | * 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-ключ |
||
+ | |||
+ | Обратить внимание на <B>authentication-types=wpa-psk,wpa2-psk</B> - тут не надо писать лишнего, если это не корпоративная сеть. |
||
+ | <BR> |
||
+ | Так же возможна RADIUS-авторизация, но в рамках пока не настраивал. Хотя использовать OpenWRT в качестве радиуса скорее всего возможно. |
||
+ | |||
+ | ==Перенаправлени на страничку с "рекламой"== |
||
+ | Теперь задача - всем клиентам кто ходит через "безплатную" сеть показать рекламу. |
||
+ | <BR>Т.к. у нас нет вебсервера то используем страничку ошибки встроенного в кикротик сквида: |
||
+ | |||
+ | * Включаем Web Proxy без кеша |
||
+ | <PRE> |
||
+ | /ip proxy set enabled=yes port=8080 |
||
+ | </PRE> |
||
+ | * Редактируем страничку с ошибкой |
||
+ | <PRE> |
||
+ | /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 |
||
+ | </PRE> |
||
+ | И пишем то что сичтаем нужным. |
||
+ | <BR> |
||
+ | Настройку DHCP сервера я опускаю, она тривиальна. Отмечу только что у меня клиентская сеть - 192.168.100.0/24 |
||
+ | ===Собственно перенаправление=== |
||
+ | Правила такие: |
||
+ | <PRE> |
||
+ | /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 |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | /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 |
||
+ | </PRE> |
||
+ | Логика работы: |
||
+ | * Клиент пытается зайти на любой сайт |
||
+ | * 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/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 |
||
==Ссылки== |
==Ссылки== |
||
− | http://habrahabr.ru/post/175303/ |
+ | * http://habrahabr.ru/post/175303/ |
+ | * http://wifi-mac.blogspot.ru/2013/03/80211d-macos.html |
||
+ | * http://habrahabr.ru/post/131295/ |
Текущая версия на 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