[service acl–server]
[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 и делали бы блокировку на удаленной машине.