Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

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

  • вы обслуживаете необходимо обслуживать значительное число небольших площадок (мест оказания услуги), подключенных через сеть Интернет;
  • подключения площадок осуществляется через сеть Интернет стороннего провайдера Интернет;
  • вы используете используется в качестве хотспотов устройства, установленные непосредственно на площадках клиента - маршрутизаторы 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 (для поддержки выписывания сертификатов Let's Encrypt);

...

  • имя сервера vpn.provider.ru, резолвится

...

  • (разрешено) в 1.2.3.4 (для поддержки клиентских VPN подключений);

...

  • адрес туннельного интерфейса сервера - 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.

Image RemovedImage Added

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

Необходимо установить сетевые интерфейсы:

  •  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:
Для удобства работы скопируйте дистрибутив easy-rsa в папку etc

cp -r /usr/share/easy-rsa /etc

Далее перейдите в скопированную папку:

cd /etc/easy-rsa

Теперь создайте центр сертификации (CA):

./easyrsa init-pki
touch pki/.rnd
./easyrsa build-ca

На запрос Image Added нужно ввести пароль, который далее будет использоваться для генерации сертификатов.
Далее на запрос Image Addedвведите наименование центра сертификации, например WNAM.
После этого сгенерируйте файл параметров Диффи-Хеллмана dh.pem

./easyrsa gen-dh

Затем создайте сертификат и ключ для сервера:

./easyrsa gen-req ovpn-server nopass
./easyrsa sign-req server ovpn-server

Выпущенные сертификаты будут располагаться в pki/issued.

Теперь скопируйте сертификат и ключ в конфигурационную папку openvpn:

mkdir /etc/openvpn/keys
cp pki/ca.crt pki/dh.pem /etc/openvpn/keys
cp pki/private/ovpn-server.key pki/issued/ovpn-server.crt /etc/openvpn/keys

Далее следует отредактировать Отредактируйте файл /etc/openvpn/server.conf:

mode server
dev tun
proto tcp-server
tls-server
port 1194
topology subnet
ca keys/ca.crt
cert keys/

...

ovpn-server.crt
key keys/

...

ovpn-server.key
dh keys/

...

dh.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
verify-client-cert

...

 none
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:.

systemctl daemon-reload
systemctl restart openvpn

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

Настройку маршрутизатора Микротик будем демонстрировать Настройка маршрутизатора Mikrotik будеn демонстрироватьcz на примере первого клиента, имеющего 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 

Интерфейс для OpenVpn подключения к серверу системы WNAM: 

/interface ovpn-client
add auth=md5 cipher=aes128 connect-to=vpn.provider.ru name=wnam password=ate45cf7y345c5y2x3 user=vpn1

Настройка 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
Warning

...

Статической DNS записью

...

переопределяется (для абонентов) адрес сервера авторизации с той целью, чтобы трафик авторизации

...

проходил в VPN-туннеле.

Настройка трансляции Затем следует настроить трансляцию адресов (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

Теперь Необходимо со стороны хотспота надо проверить , что портал доступность портала авторизации доступен:

/ping wnam.provider.ru src-address=10.1.1.1
/system telnet wnam.provider.ru port=80 

Настройка Radius Затем следует настроить RADIUS клиента и Netflow-NetFlow клиента:

/radius
add address=wnam.provider.ru domain=wnam secret=wnam_radius service=hotspot
/ip traffic-flow
set interfaces=ether1-gateway
/ip traffic-flow target
add dst-address=wnam.provider.ru port=20002 version=5

...

Необходимо настроить конфигурацию хотспота:

/ip hotspot
add disabled=no idle-timeout=none interface=bridge name=mk-wnam profile=mk-profile-wnam
/ip hotspot profile
add dns-name=mk.provider.ru hotspot-address=10.1.1.1 html-directory=hotspot login-by=http-pap name=mk-profile-wnam radius-default-domain=wnam radius-interim-update=5m 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

Содержимое файла После проведенных настроек файл hotspot/rlogin.html должен содержать строки вида:

<html><head><title>...</title>
<meta

...

http-equiv="pragma"

...

content="no-cache">
<meta

...

http-equiv="expires"

...

content="-1">
</head>
<body>
<form

...

name="wnamlogin"

...

action="http://wnam.provider.ru/cp/mikrotik"

...

method="post">

...

 <input type="hidden"

...

name="dst"

...

value="$(link-orig)"

...

/>

...

 <input type="hidden"

...

name="username"

...

value

...

=

...

"user"/>

...

 <input type="hidden"

...

name="password"

...

value

...

=

...

"password"

...

/>

...

 <input type="hidden"

...

name="mac"

...

value

...

=

...

"$(mac)"

...

/>

...

 <input type="hidden"

...

name="ip"

...

value

...

=

...

"$(ip)"

...

/>

...

 <input type="hidden"

...

name="server-name"

...

value

...

=

...

"$(server-name)"

...

/>

...

 <input type="hidden"

...

name="server-address"

...

value

...

=

...

"$(server-address)"

...

/>

...

 <input type="hidden"

...

name="client-id"

...

value="$(client-id)"/>

...

 <input type="hidden"

...

name="site-id"

...

value="$(site-id)"/>
</form>
<script

...

type="text/javascript">
<!--

...

 document.wnamlogin.submit();
//-->
</script>
</body>
</html>

Конфигурация системы WNAM

Настройка сервера доступа

Тип: Mikrotik

...

Для конфигурации системы следует настроить сервер доступа:

  • установить тип сервера - Mikrotik;
  • установить адрес (туннельный адрес хотспота) - 10.1.0.1

...

  • ;
  • установить чекбоксы: "Использовать счетчики аккаутинга", "

...

  • Определять имена абонентов",

...

  • "Принимать детализацию потоков NetFlow.

Настройка площадки:

Присвоенная IP подсеть: А также следует произвести настройку площадки. Для этого установить IP-адрес подсети 10.1.1.0/24 (диапазон IP-адресов клиентов) .