На работе нам часто приходится изменять наш список контроля доступа (ACL), чтобы блокировать любые компьютеры с нарушениями безопасности, пока мы не исправим проблему. В настоящее время мы используем компьютер, подключенный к нашему основному сетевому коммутатору. Мы удаляем старый список (команда «no access-list 101») и копируем и вставляем новый измененный ACL в командную строку коммутатора. Мы делаем эту часть 40 или около того, разрешить / разрешить команды ip за раз. Есть ли альтернативный способ, чтобы мы могли бы просто указать коммутатору разрешить / разрешить определенные IP-адреса, вместо этого удалив исходный и вставив новый? РЕДАКТИРОВАТЬ: Используемый нами коммутатор - это cisco по бренду, не уверены в модели
Судя по вашему синтаксису, я предполагаю, что вы говорите о Cisco IOS. Если у вас средний уровень кода, то вместо
access-list 101 deny ip 10.1.1.1 any
access-list 101 permit ip any any
ты можешь сделать:
ip access-list extended Name-of-ACL
deny ip 10.1.1.1 any
permit ip any any
и когда вы его "покажете", будет список доступа с номерами строк:
show ip access-lists
Extended IP access list Name-of-ACL
10 deny ip 10.1.1.1 any
20 permit ip any any
Затем, когда вы хотите вставить другой IP-адрес, вы возвращаетесь к редактированию ACL, но на этот раз добавляете порядковый номер:
ip access-list extended Name-of-ACL
15 deny ip 192.168.1.1 any
И он вставит его в это место в ACL. Вы даже можете использовать слово «замечание» вместо «разрешить» или «запретить», чтобы разместить комментарий в списке.
show ip access-lists
Extended IP access list Name-of-ACL
10 deny ip 10.1.1.1 any
15 deny ip 192.168.1.1 any
20 permit ip any any
Одна альтернативная модель, которую вы можете сделать, - использовать одну VLAN для незараженных машин и одну для зараженных машин. Для этого, вероятно, потребуется использовать DHCP, поэтому на зараженной машине необходимо выполнить минимальную реконфигурацию. На этом этапе вы можете использовать ACL из субинтерфейса VLAN в сеть, чтобы заблокировать доступ в Интернет, при этом (в идеале) оставив достаточно дыр для загрузки исправлений или обновлений вирусов.
Если все, что вас интересует, это убедиться, что сеанс TCP не может быть установлен извне, вы всегда можете просто использовать маршрут черной дыры (маршрут в Null0) и в сочетании с проверкой обратного пути на интерфейсе входящего маршрутизатора, это должно быть в состоянии чтобы остановить ВСЕ исходящий трафик с хостов, которые вы хотите изолировать. Это может даже вызвать меньшую нагрузку на маршрутизатор, поскольку он использует механизм пересылки вместо списков контроля доступа (хотя это зависит от специфики оборудования маршрутизатора, некоторые из более крупных комплектов Cisco могут фильтровать списки ACL на проводной скорости путем составления ACL и запустить его на ASIC).
Один из способов сделать это, который мне действительно нравится, - это вместо того, чтобы пытаться отредактировать список на месте, чтобы заменить его новым списком, который включает отметку времени, когда он был создан.
ip access-list extended acl_name-date_time
Этот процесс становится легко автоматизировать с помощью нескольких простых сценариев, чтобы отправить новый acl на устройство, а затем переключить интерфейс на использование нового списка.
Дополнительные функции, которые такая система могла бы включать в себя: использование БД для хранения всех правил ACL и веб-интерфейса для их обновления. Затем вы можете отслеживать, кому принадлежит это правило, возможно, связать его с заявкой в своей системе отслеживания заявок, чтобы знать, почему оно было добавлено. Вы также можете установить срок действия, чтобы временные правила удалялись, когда они больше не нужны.
К сожалению, чтобы удалить записи, я думаю, вам нужно «запретить» ACL, чтобы очистить его.
Я написал много PHP для отправки команд на оборудование Cisco с использованием Telnet и SNMP, было бы очень легко автоматизировать эту задачу.
Я могу выкопать пример, если вам интересно.
я в заключение придумали полурешение, которое, по крайней мере, делает редактирование нашего ACL менее болезненным. Мы изменили настройки ASCII, так что адрес для нашего ACL ставится медленнее, и мы можем просто скопировать и вставить список и уйти на некоторое время.
Мне нравится держать ACL на центральном сервере под контролем версий. Каждый ACL находится в отдельном файле с именем «router-interface-ingress» или «router-interface-egress». (Входящий / исходящий относится к нашей среде, а не к направлению интерфейса маршрутизатора). Имя маршрутизатора обычно изменено, потому что два маршрутизатора с одинаковыми именами получают каждый ACL.
Сами ACL выглядят так:
no IP access-list extended router-interface-ingress
IP access-list extended router-interface-ingress
permit.....
permit....
deny IP any any
Затем, чтобы отправить их на маршрутизатор, мы «копируем scp: run» на маршрутизатор. ACL каждый раз удаляется и создается заново из мастера RCS.
Один из приемов - создать культуру, в которой инженеры знают, что нужно редактировать ACL на сервере, а не на маршрутизаторе. Любые изменения acl на маршрутизаторе будут отменены следующим нажатием с сервера.