Mikrotik HotSpot: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория:Networking]]
  +
[[Категория:Mikrotik]]
 
=Mikrotik HotSpot=
 
=Mikrotik HotSpot=
 
Задача: Хочу настроить гостевую сетьт с лимитом по скорости и показывать рекламу/свою страничку раз в N минут
 
Задача: Хочу настроить гостевую сетьт с лимитом по скорости и показывать рекламу/свою страничку раз в N минут
   
  +
===Базовая настройка сети (VirtualAP или Multi SSID)===
   
  +
У меня 2 SSID - для меня и гостевой (sirmax и FreeWiFi)
Перво-наперво, настраиваем, собственно, wifi. Т.к. за пример мы берем RB751U-2HnD, у которого внутри неонка одна wifi-карточка, то и интерфейс у нас один.
 
  +
<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
[admin@MikroTik] > /interface wireless set 0 name="wlan1" mode=ap-bridge ssid="private" frequency=2412 band=2ghz-b/g/n channel-width=20/40mhz-ht-above bridge-mode=enabled hide-ssid=no security-profile=default
 
  +
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, чтобы к ней было проще подключиться.
   
  +
На своей сети:
mode=ap-bridge — работа в качестве точки доступа. Так же может быть bridge и wifi-клиентом.
 
  +
<PRE>
frequency=2412 — ровно то же, что и «каналы» в SOHO-роутерах. Предварительно сканируем и выбираем самый незанятый
 
  +
/interface wireless security-profiles print
band=2ghz-b/g/n — режим работы. Можно, например, цеплять только g-клиентов
 
 
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"
channel-width=20/40mhz-ht-above — ширина канала. Для дома можно оставить только 20mhz
 
  +
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=""
bridge-mode=enabled — бриджевать пакеты, что нам и требуется
 
  +
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
hide-ssid=no — не скрывать SSID, чтобы к ней было проще подключиться.
 
  +
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=""
ssid=»private» — собственно, SSID
 
  +
</PRE>
security-profile=default — способ авторизации (см. ниже)
 
 
* 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> - тут не надо писать лишнего, если это не корпоративная сеть.
Авторизация может быть любая — открытая, WEP, WPA,WPA2 и т.д.
 
  +
<BR>
  +
Так же возможна RADIUS-авторизация, но в рамках пока не настраивал. Хотя использовать OpenWRT в качестве радиуса скорее всего возможно.
   
  +
==Перенаправлени на страничку с "рекламой"==
[admin@MikroTik] > /interface wireless security-profile set 0 name="default" mode=dynamic-keys authentication-types=wpa-psk,wpa2-psk,wpa-eap,wpa2-eap unicast-ciphers=aes-ccm group-ciphers=aes-ccm wpa-pre-shared-key="PaSsWoRd" wpa2-pre-shared-key="PaSsWoRd"
 
  +
Теперь задача - всем клиентам кто ходит через "безплатную" сеть показать рекламу.
  +
<BR>Т.к. у нас нет вебсервера то используем страничку ошибки встроенного в кикротик сквида:
   
  +
* Включаем Web Proxy без кеша
mode=dynamic-keys — включаем WPA-режим.
 
  +
<PRE>
authentication-types=wpa-psk,wpa2-psk,wpa-eap,wpa2-eap — поддерживаемые методы авторизации
 
  +
/ip proxy set enabled=yes port=8080
unicast-ciphers=aes-ccm — шифрование
 
  +
</PRE>
wpa-pre-shared-key=»PaSsWoRd» — WPA-ключ
 
  +
* Редактируем страничку с ошибкой
wpa2-pre-shared-key=»PaSsWoRd» — WPA2-ключ
 
  +
<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 минут
   
Так же возможна RADIUS-авторизация, но в рамках этой статьи мы ее касаться не будем. Подробнее о настройке wireless-интерфейсов можно почитать вот тут
 
 
==О безпроводных сетях==
 
==О безпроводных сетях==
 
* http://wiki.mikrotik.com/wiki/Manual:Interface/Wireless
 
* http://wiki.mikrotik.com/wiki/Manual:Interface/Wireless
Строка 34: Строка 90:
 
* http://nix.khd.ru/?p=157 - базовая настройка (как в вике но на русском) http://nix.khd.ru/?p=1998 - WDS
 
* http://nix.khd.ru/?p=157 - базовая настройка (как в вике но на русском) http://nix.khd.ru/?p=1998 - WDS
 
* http://habrahabr.ru/post/150179/ - Хорошо о шифровании
 
* 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://wifi-mac.blogspot.ru/2013/03/80211d-macos.html
  +
* http://habrahabr.ru/post/131295/

Текущая версия на 17: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 минут

О безпроводных сетях

Ссылки