последняя стабильная
    версия: 3.4.0rc1
    главная     скачать     документация     поддержка     форум     разработка

Документация

Releases

База знаний

Примеры конфигурации

 

service acl-server


Сервис acl-server занимается контролем доступа клиентов через удаленный маршрутизатор. В общем случае для источников данных типов netflow, ulog и libpcap управление трафиком невозможно, т.к. эти источники являются "односторонними", предоставляя данные по трафику безо всякой возможности воздействовать на сам процесс доставки этого трафика. С помощью данного сервиса можно организовать передачу команд вида "открыть-закрыть" на расположенный где-то в сети роутер. Это может быть маршрутизатор Cisco, PC-роутер с генератором потока netflow, или даже локальная машина (роутер/бридж) с настроенным data-source libpcap.

Сервис acl-server появился в NeTAMS начиная с версии 3.3.0 (build 2710). В настоящий момент поддерживается только управление удаленным роутером Cisco по протоколу RSH с набором некоторых стандартных команд. Они передаются на роутер при:
  • (пере)запуске NeTAMS
  • перезагрузке удаленного роутера
  • при изменении системной политики
Эти правила действуют на юниты типа USER и HOST, у которых установлены IP-адреса.

Для начала вам необходимо настроить маршрутизатор Cisco:
no ip rcmd domain-lookup
ip rcmd rsh-enable
ip rcmd remote-host netams 192.168.0.10  root enable
!
ip flow-export source FastEthernet0/1
ip flow-export version 5
ip flow-export destination 192.168.0.10 20001
!
access-list 100 dynamic NETAMS deny   ip any any
access-list 100 permit ip any any
!
interface FastEthernet0/1
 ip address 192.168.0.1 255.255.255.0
 ip access-group 100 in
!
В данном случае внутренний IP-адрес маршрутизатора равен 192.168.0.1, к интерфейсу fa0/1 подключена внутреняя сеть, а в этой сети на адресе 192.168.0.10 висит UNIX-компьюер с запущенным NeTAMS. Поток статистики netflow отправляется роутером туда же.
Хотя и считается, что протокол RSH небезопасный, на самом деле не все так плохо. Если вы явно указали разрешенный IP-адрес, с которого можно принимать команды, и на этом компьютере нет "лишних" клиентов, то все в порядке.

acl-server работает путем установки динамических списком доступа (access-lists) на роутере Cisco, это значит что перезагрузке роутера список потеряется (но будет восстановлен вновь). В данном примере список доступа имеет номер 100, и его динамическая часть имеет имя NETAMS. Обратите внимание на то, что все попадающие в этот список записи будут иметь политику DENY, в то время как сам список будет иметь политику ALLOW. Это значит, что при пустом списке доступа будет разрешен весь трафик, а добавление каких-то новых записей (IP-адресов) будет означать их блокировку. Далее, этот список доступа ставится на "вход" внутреннего интерфейса.

Справочник команд сервиса acl-server:

hostname AAAA [NN]
Задает имя или IP-адрес удаленного маршрутизатора, которым управляем. Опциональный параметр NN - номер TCP-порта, на котором роутер по принимает команды по протоколу RSH (по умолчанию 514).

direction { src|dst }
Определяет, в какое поле (src или dst) записи access-template будет вставлен IP-адрес юнита. Применять совместно направлением access-group на интерфейсе роутера. Например, если у вас записано:

interface FastEthernet0/1
  ip access-group 100 in

то для конструкции "direction src" и IP-адреса юнита 192.168.0.10 в случае его блокировки будет исполнена команда:
access-template 100 NETAMS host 192.168.0.10 any

Аналогично, для "direction dst" будет:
access-template 100 NETAMS host any 192.168.0.10

При разблокировании юнита будет послана команда:
clear access-template 100 NETAMS ...


dynamic-name AAAA
Задает имя динамической части списка доступа (в данном примере NETAMS)

acl-number NNN [cisco]
Задает номер списка доступа access-list (в данном примере 100), значение по умолчанию: 180. Ключевое слово "cisco" определяет, что удаленная сторона представляет из себя роутер Cisco, а не что-то иное (в данной версии других вариантов нет, так что указывать обязательно).

delay NNN
Задает промежуток времени между периодическими проверками состояния роутера и подачи команд его управления (в секундах). Рекомендуется значение порядка 300 секунд (значение по умолчанию).

set-uptime NNN
Позволяет вручную выставить параметр uptime удаленного роутера, полезно для отладки. NNN - время работы роутера в секундах, с момента последней его перезагрузки.

debug aclserver
Включает отладку сервиса aclserver (это команда сервиса main, НЕ acl-server).



Пример рабочей конфигурации сервиса acl-server, для вышеописанного примера настройки Cisco:
#NeTAMS version 3.3.0 (build 2710) compiled by root@localhost
#configuration built Sun Sep 18 04:15:20 2005
#begin
...
service acl-server 0
hostname 192.168.0.1
direction src
dynamic-name NETAMS
acl-number 100 cisco
delay 100

#end
Пример вывода debug aclserver:
|aclserver: acl server checking every 10 seconds
|aclserver: known: 1, remote uptime: CISCO2 6 5 9 15 4094100 
|aclserver: queue u=0F8AEA flag=0 sp_now=0
|aclserver: queue u=03A4C4 flag=0 sp_now=0
|aclserver: message ip=192.168.0.11 action=REMOVE
|aclserver: message ip=192.168.0.12 action=REMOVE
|aclserver: messages processed: 2, failed: 0
|aclserver: acl server checking every 10 seconds
|aclserver: known: 4094102, remote uptime: CISCO26 5 9 15 4094160 
|aclserver: messages processed: 0, failed: 0
|aclserver: acl server checking every 10 seconds
|aclserver: known: 4094162, remote uptime: CISCO26 5 9 15 4094160 
|aclserver: messages processed: 0, failed: 0
Известные проблемы и направления развития:
  • Сделать поддержку нескольких удаленных устройств, различая принадлежность юнитов через ds-list.
  • Сделать "обратное" включение, когда политика основного accessl-list по умолчанию - deny, динамического - allow, и добавление записей в список происходит для НЕБЛОКИРОВАННЫХ юнитов.
  • Написать клиентские программы для linux, freebsd, solaris, которые работали бы как клиенты сервиса acl-server и делали бы блокировку на удаленной машине.

Рейтинг@Mail.ru