Модифицированный скриптовый шлюз для DES-3526 и подобных

Материал из BiTel WiKi

Перейти к: навигация, поиск

Данный скрипт написан на основе скрипта Реалиазация_скриптовго_шлюза_для_коммутаторов_DES-3526,_DES-3550,_DES-3828,_DES-3852,_DGS-3200-10_и_им_подобных.

Содержание

Задача

При разработке данного скрита решались следующие задачи:
1)уменьшение объема скрипта за счет унификации кода, выполняемого при разных командах (открытие, закрытие, удаление);
2)разделение кода скрипта и правил для коммутатора;
3)возможность добавления нескольких IP-адресов на один порт.

Недостатки и недоделки

1) правила для коммутатора вводятся все-таки в текст скрипта, а не в конфигурацию шлюза
2) нельзя прописать один порт для разных договоров
3) все манипуляции с IP-адресами договора надо проводить при состоянии его шлюза в положении удален (иначе некоторые записи в коммутаторе останутся до его перезагрузки)
4) подключение к свитчу занимает 5 секунд (наверное это уже проблема в в биллинге - возможно он лезет к DNS)
5) скрипт не проверяет текущее состояние коммутатора, а каждый раз загружает в него нужные команды
6) в боевом режиме оно еще не проверялось
7) не проверялось работа с ipn_dhcp (option82) - предполагается что при одном адресе на порт клиент будет автоматически получать IP, а при нескольких адресах (а это не является массовой услугой) прописывать адреса вручную

Предварительная настройка коммутатора

# этим правилом мы будем разрешать arp_reply c адресом абонента 
# это правила нужно тк абоненты (или вирусы на их компах) частенько присваивают себе адрес шлюза
create access_profile packet_content_mask offset_0-15  0x0  0x0  0x0  0x0 offset_16-31  0xFFFF0000  0x0  0xFFFF0000  0x0 offset_32-47  0xFFFFFFFF  0x0  0x0  0x0 profile_id 20
 
#блокировка dhcp ответов и разрешение dhcp запросов (они могут отправляться не с адреса пользователя)
create access_profile ip udp dst_port_mask 0xFFFF profile_id 30
config access_profile profile_id 30 add access_id 1 ip udp dst_port 68 port 1 deny
...
config access_profile profile_id 30 add access_id 24 ip udp dst_port 68 port 24 deny
config access_profile profile_id 30 add access_id 101 ip udp dst_port 67 port 1 permit
...
config access_profile profile_id 30 add access_id 124 ip udp dst_port 67 port 24 permit
 
#правило для разрешения доступа пользователя к сети
create access_profile ip source_ip_mask 255.255.255.255 profile_id 40
 
#правило для разрешения доступа пользователя к статистике
create access_profile ip source_ip_mask 255.255.255.255 destination_ip_mask 255.255.255.0 profile_id 50
 
#разрешение arp-запросов
 
 
#блокируем всю остальную активность пользователя 
create access_profile ethernet source_mac 00-00-00-00-00-00 profile_id 200
config access_profile profile_id 200 add access_id 1 ethernet source_mac 00-00-00-00-00-00 port 1 deny
config access_profile profile_id 200 add access_id 24 ethernet source_mac 00-00-00-00-00-00 port 24 deny

коммутатор будет работать с профилями с номерами 20, 40, 50 при открытии шлюза добавляются правила 20, 40 и удаляется правило 50 при закрытии шлюза добавляются правила 20, 50 и удаляется правило 40 при удалении шлюза удаляются правила 20, 40, 50

Текст скрипта

Личные инструменты