You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Для организации провайдером услуги СМС-авторизации на основе хотспотов, подключенных через Интернет, ООО "Нетамс" рекомендует придерживаться описанной ниже схемы.

Данный сценарий подходит, если:

  • вы обслуживаете значительное число небольших площадок (мест оказания услуги), подключенных через Интернет
  • подключения площадок осуществляется через сеть стороннего провайдера Интернет
  • вы используете в качестве хотспотов устройства, установленные непосредственно на площадках клиента - маршрутизаторы Mikrotik со встроенной точкой доступа, либо точки доступа, перепрошитые на OpenWrt или dd-wrt

Сценарий не подходит вам, если вы используете:

  • профессиональное Wi-Fi оборудование, управляемое контроллером (выполняющим роль хотспота)
  • вы обеспечиваете прозрачный (Layer-2) транспорт сетей с площадок клиентов, в центральный узел вашей сети, где установлен большой хотспот (маршрутизатор Mikrotik, Cisco ASR, Alcatel и т.п.)
  • у вас одна площадка оказания услуги (корпоративная сеть)

Рекомендуемая схема предполагает:

  1. Установку маршрутизатора-хотспота на каждой площадке оказания услуги. Внешний (WAN) интерфейс хотспота подключается к местному провайдеру Интернет, внутренний (LAN) интерфейс либо не используется, либо к нему подключена локальная сеть с точками доступа
  2. Хотспот либо содержит в себе встроенную точку доступа, либо не содержит радио-модуля. В последнем случае Wi-Fi доступ обеспечивается подключенными к LAN-порту любыми точками доступа Wi-Fi, работающими в режиме "access point".
  3. Для управления радио-ресурсами (каналы, SSID и т.п.) в случае применения внешних точек доступа рекомендуется использовать Uniquity UniFi. При этом контроллер точек доступа UniFi может располагаться на сервере WNAM. На контроллере должен быть отключен "гостевой доступ"
  4. Для обеспечения надежности и безопасности обмена информацией между хотспотами и центральным узлом вашей сети требуется настроить VPN-туннели. В противном случае вам придется открыть доступ к порталу авторизации абонентов, и к RADIUS-серверу, для всего Интернета
  5. Трафик авторизации абонентов (страницы приветствия, реклама), трафик RADIUS и NetFlow будут идти до сервера WNAM в туннеле, а остальной абонентский трафик (доступ в интернет) - напрямую через локального провайдера Интернет
  6. В качестве VPN-сервера используется OpenVPN с парольной авторизацией
Для настройки площадок рекомендуется придерживаться непересекающейся схемы IP-адресации клиентских подсетей. Адресация - частная. В данном примере пусть:
Внешний (публичный) адрес сервера 1.2.3.4
Имя сервера wnam.provider.ru, резолвится в 1.2.3.4
Адрес туннельного интерфейса сервера - 10.1.0.255/24, также будет задействован служебный адрес 10.1.0.254
Адреса туннельных интерфейсов клиентских хотспотов - 10.1.0.1 - 10.1.0.253/24
Адреса LAN-интерфейсов клиентских хотспотов - 10.1.1.1/24 - 10.1.253.1/24 соответственно. Таким образом, вы можете подключить 253 площадки оказания услуги, с внутренним адресом 10.1.N.1/24, диапазоном адресов для клиентов 10.1.N.2-10.1.N.254 и туннельным адресом 10.1.0.N

Конфигурация интерфейсов на сервере

 eth0: 1.2.3.4

 tun0: 10.1.0.255

Конфигурация OpenVPN сервиса на сервере

Установите пакет openvpn:

 apt-get install openvpn easy-rsa

Создайте сертификаты согласно инструкции отсюда: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-debian-8#step-5-—-configure-and-build-the-certificate-authority

Отредактируйте файл /etc/openvpn/server.conf

mode server
dev tun
proto tcp-server
tls-server
port 1194
topology subnet
ca keys/ca.crt
cert keys/wnam.provider.ru.crt
key keys/wnam.provider.ru.key
dh keys/dh2048.pem
cipher AES-128-CBC
auth md5
keepalive 10 120
status /var/log/openvpn-status.log
log /var/log/openvpn.log
user nobody
group nogroup
persist-key
persist-tun
ifconfig 10.1.0.255 10.1.0.254
ifconfig-pool 10.1.0.1 10.1.0.253
route 10.1.0.0 255.255.0.0
push "route 10.1.0.255"
ifconfig-pool-persist ipp.txt 0
auth-user-pass-verify /etc/openvpn/verify.sh via-file
script-security 2
client-cert-not-required
username-as-common-name
verb 2

Создайте скрипт, выполняющий проверку логина-пароля /etc/openvpn/verify.sh 

#!/bin/sh
USERS=`cat /etc/openvpn/user.pass`
vpn_verify() {
if [ ! $1 ] || [ ! $2 ]; then
#echo "No username or password: $*"
exit 1
fi
## it can also be done with grep or sed
for i in $USERS; do
if [ "$i" = "$1:$2" ]; then
## you can add here logging of users
## if you have enough space for log file
#echo `date` $1:$2 >> your_log_file
exit 0
fi
done
}
if [ ! $1 ] || [ ! -e $1 ]; then
#echo "No file"
exit 1
fi
## $1 is file name which contains
## passed username and password
vpn_verify `cat $1`
#echo "No user with this password found"
exit 1

Затем выполните:

chmod +x /etc/openvpn/verify.sh 

Создайте файл с IP-адресами клиентов /etc/openvpn/user.pass

vpn1,10.1.0.1
vpn2,10.1.0.2
vpn3,10.1.0.3

Создайте файл с логинами-паролями VPN клиентов /etc/openvpn/ipp.txt 

vpn1:ate45cf7y345c5y2x3
vpn2:r2d346c34t4356yucf
vpn3:23cxterthure5y2yw3

Перезапустите сервис openvpn, проконтролируйте успешность запуска в файле /var/log/openvpn.log:

Конфигурация интерфейсов на хотспоте

Настройку маршрутизатора Микротик будем демонстрировать на примере первого клиента, имеющего vpn-имя vpn1.

В качестве WAN интерфейса используется ether1-gateway с настройками от локального провайдера Интернет: 

/ip address
add address=272.16.130.9/24 interface=ether1-gateway network=272.16.130.0

/ip route
add distance=1 gateway=272.16.130.1

В качестве LAN/WLAN интерфейса используется bridge с такими настройками: 

/ip address
add address=10.1.1.1/24 interface=bridge-guest network=10.1.1.0

Настройка DHCP и DNS:

/ip dhcp-server
add address-pool=dhcp-1 disabled=no interface=bridge lease-time=1h name=server

/ip dhcp-server network
add address=10.1.1.0/24 dns-server=8.8.4.4 gateway=10.1.1.1

/ip pool
add name=dhcp-102 ranges=10.1.1.2-10.1.1.254

/ip dns
set allow-remote-requests=yes servers=8.8.4.4

/ip dns static
add address=10.1.0.255 name=wnam.provider.ru

Настройка трансляции адресов (NAT):

/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=ether1-gateway
add action=masquerade chain=srcnat out-interface=wnam src-address=10.1.1.0/24

Конфигурация OpenVPN клиента на хотспоте

 

/interface ovpn-client
add auth=md5 cipher=aes128 connect-to=1.2.3.4 name=wnam password=ate45cf7y345c5y2x3 user=vpn1

Конфигурация хотспота

/ip hotspot
add disabled=no idle-timeout=none interface=bridge name=mk-wnam profile=mk-profile-wnam

/ip hotspot profile
set [ find default=yes ] dns-name=mk.k18.netams.com hotspot-address=10.130.3.1 login-by=http-pap name=mk1 radius-default-domain=k18 radius-interim-update=5m use-radius=yes
add dns-name=mk.k18.netams.com hotspot-address=10.130.102.1 html-directory=hotspot-hch login-by=http-pap name=mk-profile-hotelchat radius-default-domain=k18 radius-interim-update=10m use-radius=yes

/ip hotspot user profile
set [ find default=yes ] add-mac-cookie=no name=default1 shared-users=unlimited status-autorefresh=1h

/ip hotspot walled-garden
add dst-host=*.gosuslugi.ru dst-port=443
add dst-host=ocsp.int-x3.letsencrypt.org dst-port=80
add dst-host=cert.int-x3.letsencrypt.org dst-port=80
add dst-host=*.provider.ru dst-port=443
add dst-host=provider.ru dst-port=443
add dst-host=*.provider.ru dst-port=80
add dst-host=provider.ru dst-port=80
add dst-host=10.1.0.255 dst-port=80

 

 

  • No labels