[ESR] Фильтрация по спискам url при работе с BRAS
Принцип конфигурирования:
- На ESR настраивается функционал BRAS с указанием параметров RADIUS-сервера с настройками абонентов и WEB-сервера содержащего списки разрешенных/запрещенных url.
- Для абонента BRAS, в настройках RADIUS описываются именf файлов содержащих разрешенные и запрещенные ресурсы.
- На WEB-сервере размещаются списки разрешенных/запрещенных url с именами, соответствующими настройкам в RADIUS.
Принцип работы функционала:
- При авторизации абонента на BRAS:
- ESR получает от RADIUS-сервера имена имена списков разрешенных/запрещенных url;
- Скачивает и применяет соответствующие списки разрешенных/запрещенных url для абонента.
- В момент, когда абонент BRAS запрашивает в интернете тот или иной ресурс, происходит проверка по примененным для него спискам разрешенных/запрещенных url.
Есть возможность составлять списки разрешенных/запрещенных url в формате regexp.
1) Конфигурация BRAS на ESR.
object-group url defaultserv
url https://eltex-co.ru/
exit
syslog console debug
username techsupport
password encrypted
$6$dArYxEkFjWgMtgf8$gtlzWm1YLBrFhqmVdzKu6B7CCBV4TPnYeDK6zCGF3.LuN2NNwFSPZCGatezKJolD4VzeqCKNpNdvOf7q3tF/I1
exit
aaa authentication login auth_test radius
radius-server host 192.168.0.1
key ascii-text encrypted 8CB5107EA7005AFF
source-address 192.168.0.10
exit
aaa radius-profile bras_radius
radius-server host 192.168.0.1
exit
aaa radius-profile bras_radius_servers
radius-server host 192.168.0.1
exit
das-server das
key ascii-text encrypted 8CB5107EA7005AFF
exit
aaa das-profile bras_das
das-server das
exit
line telnet
login authentication auth_test
exit
tech-support login enable
ystem fan-speed auto
vlan 10
exit
ip access-list extended BYPASS
rule 1
action permit
match protocol udp
match source-port 68
match destination-port 67
enable
exit
rule 2
action permit
match protocol udp
match destination-port 53
enable
exit
rule 3
exit
exit
ip access-list extended INTERNET
rule 1
action permit
enable
exit
exit
subscriber-control filters-server-url http://192.168.0.1:8000/ # запрос списков url с http/https сервера(web сервера)
subscriber-control
aaa das-profile bras_das
aaa sessions-radius-profile bras_radius
aaa services-radius-profile bras_radius_servers
nas-ip-address 192.168.0.10
session ip-authentication
bypass-traffic-acl BYPASS
default-service
class-map BYPASS
filter-name local defaultserv
filter-action permit
default-action redirect https://eltex-co.ru/
session-timeout 121
exit
enable
exit
bridge 10
description LocalNetwork
vlan 10
ip firewall disable
ip address 172.16.0.1/24
ip helper-address 192.168.16.1
service-subscriber-control any
location USER
enable
exit
interface gigabitethernet 1/0/1
description to_FreeRadius
ip firewall disable
ip address 192.168.0.10/24
exit
interface gigabitethernet 1/0/3.10
bridge-group 10
ip firewall disable
exit
interface gigabitethernet 1/0/4
description WAN
ip firewall disable
ip address <ipaddr>
exit
security passwords history 0
nat source
ruleset factory
to interface gigabitethernet 1/0/4
rule 10
description "replace 'source ip'by outgoing interface ip address"
action source-nat interface
enable
exit
exit
exit
ip route 0.0.0.0/0 <>
Диагностика:
esr-1200# show subscriber-control sessions status
Session id User name IP address MAC address Interface Domain
-------------------- --------------- --------------- ----------------- ------------------ ---------------
1224979098644774945 Bras_user 172.16.0.20 a8:f9:4b:ac:9f:33 gi1/0/3.10 --
1224979098644774944 Bras_user_2 172.16.0.10 a8:f9:4b:ab:a9:ae gi1/0/3.10 --
esr-1200# show subscriber-control services status
ervice id Session id Service name User name Quota volume Quota time
(Bytes) (Seconds)
-------------------- -------------------- --------------- --------------- -------------- --------------
1261007895663738900 1224979098644774935 A INTERNET Bras_user -- --
1261007895663738899 1224979098644774934 A INTERNETDY Bras_user_2 -- --
esr-1200# clear subscriber-control sessions
Включение debug:
esr-1200# debug
esr-1200(debug)# debug bras error
esr-1200(debug)# debug bras debug
esr-1200(debug)# debug bras coa
esr-1200(debug)# debug bras radius
esr-1200(debug)# debug bras radius-err
esr-1200(debug)# debug bras netlink
esr-1200(debug)# debug bras netlink-err
esr-1200(debug)# debug bras warn
esr-1200(debug)# end
2) Конфигурация freeradius:
freeradius/users:
"172.16.0.20" Cleartext-Password := "172.16.0.20"
User-Name = "Bras_user",
Session-Timeout = 259200,
Idle-Timeout = 259200,
Cisco-Account-Info = "AINTERNET" # INTERNET - название сервиса для клиента с ip 172.16.0.20
"172.16.0.10" Cleartext-Password := "172.16.0.10"
User-Name = "Bras_user_2",
Session-Timeout = 259200,
Idle-Timeout = 259200,
Cisco-Account-Info = "AINTERNETDY" # AINTERNETDY - название сервиса для клиента с ip 172.16.0.10
INTERNET Cleartext-Password := "INTERNET"
User-Name = "INTERNET",
Cisco-AVPair = "subscriber:traffic-class=INTERNET", #INTERNET - название acl на esr(bras)
Cisco-AVPair += "subscriber:filter-id=white;subscriber:filter-action=permit", # white - имя списка доступа url, разрешенных для данного сервиса(INTERNET)
Cisco-AVPair += "subscriber:filter-id=black;subscriber:filter-action=deny", # black - имя списка доступа url, запрещенных для данного сервиса(INTERNET)
Cisco-AVPair += "subscriber:flow-status=enabled"
INTERNETDY Cleartext-Password := "INTERNETDY"
User-Name = "INTERNETDY",
Cisco-AVPair = "subscriber:traffic-class=INTERNET", #INTERNET - название acl на esr(bras)
Cisco-AVPair += "subscriber:filter-id=white;subscriber:filter-action=permit", # white - имя списка доступа url, разрешенных для данного сервиса(INTERNETDY)
Cisco-AVPair += "subscriber:filter-id=black_2;subscriber:filter-action=deny", # black_2 - имя списка доступа url, запрещенных для данного сервиса(INTERNETDY)
Cisco-AVPair += "subscriber:flow-status=enabled"
freeradius/clients.conf:
client BRAS {
ipaddr = 192.168.0.10
secret = password
}
freeradius -X - запуск freeradius в режиме отладки
3) HTTP/HTTPS(WEB) сервер:
Запуск web сервера на Linux из деректории /Документы/http
root@comp:~/Документы/http# python3 -m http.server 8000
В директории /Документы/http хранятся списки доступа с именами black/black_2/white. URL в списках доступа рекомендуется хранить в формате regexp.
Источник:
docs.eltex-co.ru