При работе BRAS на ESR, есть возможность разрешить или запретить доступ для требуемых url с использованием внешнего HTTP/HTTPS(WEB) сервера, на котором будут храниться списки разрешенных/запрещенных url.
Принцип конфигурирования:
- На ESR настраивается функционал BRAS с указанием параметров RADIUS-сервера с настройками абонентов и WEB-сервера содержащего списки разрешенных/запрещенных url.
- Для абонента BRAS, в настройках RADIUS описываются имены файлов содержащих разрешенные и запрещенные ресурсы.
- На 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 system 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 Service 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.