Cisco ACL для офисной сети: как я закрываю доступ к серверам клиентов
Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. Я уже 15 лет занимаюсь корпоративными сетями в Москве и Подмосковье. Под моим обслуживанием 28 офисов с Cisco-оборудованием — от ISR 4321 в нотариальной конторе до Catalyst 9300 в производственной компании на 50 рабочих мест. Расскажу, как реально применяются ACL в живых офисах, без академических примеров про класс A.
Зачем ACL малому и среднему бизнесу
Самый частый вопрос от руководителей: «А зачем нам этот ACL, у нас же есть Касперский на каждом компьютере?» Я обычно отвечаю одним кейсом из 2024 года.
Клиент — производство мебели в Москве, 32 рабочих места. Гостевой Wi-Fi не был отделён от корпоративной сети, и роутер был открыт даже на гостевой сегмент по адресу 192.168.1.1 с дефолтным паролем admin/admin. В кабинете директора стоял сервер 1С с базами клиентов и финансовыми отчётами. Однажды на встречу пришёл подрядчик, подключился к гостевому Wi-Fi, через 15 минут сидел в админке роутера, через 20 — выкачал базу 1С. Узнали об этом через полгода, когда конкуренты начали обзванивать клиентов с предложениями по их собственным заказам.
После этого случая в каждом офисе с серверами 1С я ставлю минимум одну ACL — изоляцию гостевого сегмента. И это даже не про «защиту от хакеров», это просто про разделение трафика, чтобы случайный человек в офисе не видел ваши сервера.
Корпоративная сеть в офисе из 25–50 рабочих мест без сегментации — это плоская сеть, где любой подключённый кабель видит все устройства. Бухгалтер видит сервер 1С (это нормально), уборщица с гостевой Wi-Fi видит сервер 1С (это уже плохо), сетевой принтер с уязвимой прошивкой видит сервер 1С (это совсем плохо). ACL — основной инструмент Cisco для разделения этого хаоса.
Стандартные vs расширенные ACL: разница на пальцах
В Cisco IOS есть два основных типа списков доступа. Запутаться легко, поэтому объясняю на реальных задачах.
Стандартный ACL — простой как палка. Фильтрует только по адресу источника, не различает протоколы и порты. Номера 1–99 и 1300–1999. Пример:
access-list 10 permit 192.168.10.0 0.0.0.255
access-list 10 deny any log
Это значит: пропускать пакеты с источниками из подсети 192.168.10.0/24, всё остальное — блокировать с логированием. Полезно для очень простых задач: например, ограничить доступ к management VLAN только из конкретной подсети.
Расширенный ACL — основной рабочий инструмент. Номера 100–199 и 2000–2699 либо именованные. Различает протоколы, источники, назначения, порты. Пример из моей практики (изоляция гостевого Wi-Fi):
ip access-list extended GUEST-OUT
deny ip any 192.168.10.0 0.0.0.255 log
deny ip any 192.168.20.0 0.0.0.255 log
permit ip any any
Этот ACL блокирует трафик от гостей в корпоративные подсети 10 и 20, но пропускает их в интернет. Применяется на интерфейсе vlan гостевого Wi-Fi на исходящем направлении.
Шесть рабочих сценариев из моих проектов
Сценарий 1: изоляция гостевого Wi-Fi
Базовый сценарий, который я делаю на каждом проекте. Гостевая сеть в VLAN 99, корпоративные подсети — VLAN 10 (пользователи), VLAN 20 (серверы), VLAN 30 (IP-камеры).
ip access-list extended GUEST-FILTER
remark Block internal access from guest network
deny ip any 10.0.0.0 0.255.255.255 log
deny ip any 172.16.0.0 0.15.255.255 log
deny ip any 192.168.0.0 0.0.255.255 log
remark Allow DNS to corporate DNS
permit udp any host 10.20.0.10 eq 53
remark Allow everything else (Internet)
permit ip any any
!
interface Vlan99
ip access-group GUEST-FILTER in
Сценарий 2: доступ к серверу 1С только из бухгалтерии
Бухгалтерия в подсети 192.168.10.0/24, сервер 1С на 192.168.20.10, порт 1541 (стандартный для сервера 1С). Остальные пользователи не должны видеть базу напрямую — они работают через тонкие клиенты на терминальном сервере.
ip access-list extended PROTECT-1C
remark Allow accountants
permit tcp 192.168.10.0 0.0.0.255 host 192.168.20.10 eq 1541
permit tcp 192.168.10.0 0.0.0.255 host 192.168.20.10 eq 1560
permit tcp 192.168.10.0 0.0.0.255 host 192.168.20.10 range 1561 1591
remark Allow terminal server
permit tcp host 192.168.20.20 host 192.168.20.10 eq 1541
permit tcp host 192.168.20.20 host 192.168.20.10 eq 1560
permit tcp host 192.168.20.20 host 192.168.20.10 range 1561 1591
remark Allow admin from management
permit tcp 192.168.30.0 0.0.0.255 host 192.168.20.10 eq 3389
deny ip any host 192.168.20.10 log
permit ip any any
!
interface Vlan20
ip access-group PROTECT-1C in
Сценарий 3: блокировка SMB/RDP в гостевой Wi-Fi
Даже если гость случайно попал в корпоративный сегмент (например, через ошибку настройки коммутатора), он не должен иметь возможности подключиться к шарам или RDP. Делаю превентивный ACL на уровне уагрегации:
ip access-list extended BLOCK-RANSOMWARE
remark Block SMB ports across segments
deny tcp any any eq 445 log
deny tcp any any eq 139 log
deny udp any any eq 137
deny udp any any eq 138
remark Block RDP except from helpdesk
deny tcp any any eq 3389 log
permit tcp 192.168.30.0 0.0.0.255 any eq 3389
permit ip any any
Этот ACL применяется на vlan-интерфейсах не-серверных подсетей и режет латеральное распространение шифровальщиков. После атаки в одном из офисов в 2025 году я везде стал ставить такую защиту.
Сценарий 4: VTY ACL — защита от подключения к маршрутизатору
Это первое, что я делаю на любом новом маршрутизаторе. Без него к консоли можно подключиться откуда угодно.
ip access-list standard VTY-ALLOW
permit 192.168.30.0 0.0.0.255
permit host 10.20.30.40
deny any log
!
line vty 0 4
access-class VTY-ALLOW in
transport input ssh
login local
line vty 5 15
access-class VTY-ALLOW in
transport input ssh
login local
Сценарий 5: блокировка известных вредоносных IP
Я веду собственный список IP, с которых были атаки на клиентов АйТи Фреш. Раз в месяц обновляю ACL на пограничных маршрутизаторах:
ip access-list extended BLACKLIST-IN
deny ip 185.244.25.0 0.0.0.255 any log
deny ip 45.153.160.0 0.0.0.255 any log
deny ip 89.248.165.0 0.0.0.255 any log
permit ip any any
!
interface GigabitEthernet0/0/0
description WAN to ISP
ip access-group BLACKLIST-IN in
Сценарий 6: time-based ACL для гостевого Wi-Fi только в рабочее время
У клиента — салон красоты в центре Москвы. Гости подключаются с обеда, к вечеру половина «гостей» — соседи из соседнего здания, которые экономят на своём интернете. Включаем гостевой Wi-Fi только в рабочее время:
time-range WORKING-HOURS
periodic weekdays 9:00 to 21:00
periodic Saturday 10:00 to 20:00
!
ip access-list extended GUEST-TIME
permit ip any any time-range WORKING-HOURS
deny ip any any
!
interface Vlan99
ip access-group GUEST-TIME in
Грабли при работе с ACL
За 15 лет я наступал на каждые из этих граблей минимум по пять раз. Делюсь, чтобы вы не повторяли.
- Implicit deny в конце. В каждом ACL в конце неявно стоит
deny ip any any. Если забыть финальныйpermit ip any any, отрежете весь трафик. Особенно болезненно при удалённой настройке. - Wildcard mask vs subnet mask. В ACL используется wildcard (инверсия маски). Подсеть 192.168.10.0/24 в ACL пишется как
192.168.10.0 0.0.0.255, а не255.255.255.0. Перепутать легко, отлаживать тяжело. - Порядок правил имеет значение. ACL обрабатывается сверху вниз, при первом совпадении работа прекращается. Если поставить
permit ip any anyпервой строкой, всё остальное игнорируется. - Применение в обоих направлениях. Часто забывают, что ACL ограничивает трафик в одном направлении. Для двусторонней защиты нужны два ACL — на in и на out.
- Обновление существующего ACL. На IOS до версии 12.3 при удалении строки удалялся весь ACL. На современных IOS можно добавлять/удалять отдельные строки через sequence numbers, но если вы редактируете критичный ACL — сначала сохраните копию через
show run | section. - Логирование любого правила. Опция
logзаставляет CPU обрабатывать каждый матч в software вместо hardware. На больших объёмах трафика это валит маршрутизатор. Лог только на отладке или для критичных правил.
Отладка ACL: как понять, что работает
Самые полезные команды для отладки:
show ip access-list NAME— счётчики совпадений по каждому правилу.show access-list NAME | include matches— фильтр строк со счётчиками больше нуля.clear access-list counters NAME— обнуление счётчиков перед тестом.debug ip packet detail NAME— детальный лог каждого пакета (только для маленького тестового трафика, иначе CPU умрёт).show ip interface VlanX— показывает, какой ACL применён на интерфейсе.
Стандартный мой workflow при отладке нового ACL: применяю, очищаю счётчики, генерирую тестовый трафик с проверочной машины, смотрю счётчики через show ip access-list. Если ожидаемое правило не сработало или сработало не то, что нужно — сразу видно по нулевым/ненулевым счётчикам.
Документирование: то, что отличает мастера от шабашника
Любой ACL должен иметь remark-комментарии. Через полгода вы сами не вспомните, зачем поставили эту строку. Через два года придёт новый администратор и сломает всё.
Кроме remarks в конфиге, я веду отдельный документ для каждого клиента в Confluence: матрица доступа в табличном виде. Кто откуда куда может ходить и зачем. Пример строки матрицы:
| Откуда | Куда | Порт | Зачем | ACL |
|---|---|---|---|---|
| 192.168.10.0/24 (бухгалтерия) | 192.168.20.10 (сервер 1С) | TCP 1541, 1560-1591 | Доступ к 1С | PROTECT-1C |
| 192.168.30.0/24 (IT) | 192.168.20.0/24 (серверы) | TCP 22, 3389, 443 | Управление | — |
| 192.168.99.0/24 (гости) | любой 192.168.0.0/16 | — | ЗАПРЕТ | GUEST-FILTER |
Cisco vs Mikrotik: честное сравнение для SMB
Cisco — отличное оборудование, но дорогое. ISR 4321 в 2026 году стоит от 380 тыс. руб., а Mikrotik CCR2004 покрывает большинство задач офиса на 50 ПК и стоит 65 тыс. руб. Я часто рекомендую клиентам Mikrotik как замену Cisco — функционально firewall и filter rules в RouterOS делают всё то же самое, что ACL в IOS, плюс stateful inspection из коробки.
Cisco остаётся оправдан, когда:
- Уже есть парк Cisco, и менять его дороже, чем поддерживать.
- Нужна интеграция с Cisco ISE для NAC.
- Есть требование заказчика на «корпоративное» оборудование (часто бывает в госконтрактах).
- Скорости 10/40 Gbps на агрегации в офисе с тяжёлыми проектными задачами (видеомонтаж, CAD).
Настроим безопасность вашей сети без потери работоспособности
Я лично провожу аудит сетевой инфраструктуры и составляю матрицу доступов под ваши бизнес-процессы. Бесплатный выезд по Москве и в радиусе 50 км от МКАД, гарантия по договору на отсутствие простоев при внедрении.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по Cisco ACL
- Чем отличается стандартный ACL от расширенного?
- Стандартный ACL фильтрует только по IP-адресу источника. Расширенный — по источнику, назначению, протоколу и порту. В корпоративных сетях я почти всегда использую только расширенные — они дают полный контроль над трафиком.
- Где лучше применять ACL — на входе или выходе интерфейса?
- По возможности — на входе ближе к источнику. Это разгружает CPU маршрутизатора, потому что нежелательный трафик отфильтровывается до маршрутизации. Расширенные ACL по cisco best practice применяются ближе к источнику.
- Сколько ACL можно повесить на интерфейс?
- Только по одному в каждом направлении: один на in, один на out. Это ограничение архитектуры IOS. Если нужно несколько правил — объединяйте в один ACL.
- Влияет ли ACL на производительность маршрутизатора?
- На современных Cisco ISR 4000-й серии — почти нет, обработка идёт в hardware. На старых 1900-х/2900-х серии большие ACL (300+ записей) могут давать просадку 10–15 % при пиковом трафике.
- Можно ли заменить Cisco ACL на Mikrotik firewall?
- Функционально — да, у Mikrotik firewall rules делает всё то же самое, плюс stateful inspection. Часто переход на Mikrotik экономит клиенту 50–70 % бюджета на оборудование без потери функциональности для офисов до 50 пользователей.