В наших материалах по Cisco, посвященных конфигурации сетевых устройств мы часто встречаемся со стандартными листами (списками) контроля доступа. А теперь поговорим о расширенных. Расширенные листы могут также фильтровать трафик по следующим параметрам:
- IP-адреса - фильтрация на основе IP-адреса источника и адреса назначения;
- Порты - фильтрация на основе порта источника / порта назначения;
- Тип протокола TCP/IP - протоколы TCP, UDP, IP и так далее;
Что делать?
Для начала необходимо создать лист. Сделаем это с помощью команды:
access list NUMBER permit|deny IP_PROTOCOL SOURCE_ADDRESS WILDCARD_MASK [PROTOCOL_INFORMATION] DESTINATION_ADDRESS WILDCARD_MASK PROTOCOL_INFORMATION
Синтаксис команды следующий:
- NUMBER - номер листа;
- PERMIT/DENY - разрешение или запрет трафика;
- SOURCE/DESTINATION ADDRESS - адреса источника и назначения;
- WILDCARD_MASK - обратная маска;
- PROTOCOL_INFORMATION - название или номер протокола TCP, UDP, IP и так далее;
Кстати, для расчета wildcard (обратной) маски, вы можете воспользоваться нашим калькулятором подсетей:
Следующим шагом необходимо применить наш свежесозданный лист на интерфейс и его направление (на вход или выход):
ip access-group NUMBER out
Параметры in и out определяют направление, на котором будет применен лист контроля доступа
Для нумерации расширенных листов контроля доступа необходимо использовать следующую нумерацию: со 100 до 199 и с 2000 до 2699
Пример настройки (сценарий №1)
В топологии указанной ниже, нам нужно разрешить пользователям из подсети 10.0.0.0/24 доступ к серверу S2 (адрес 192.168.0.1), но не к серверу S1 (адрес 172.16.0.1/24).
Для начала, напишем ACL и разрешим доступ к серверу S2. Сделаем это мы следующей командой:
access-list 100 permit ip 10.0.0.0 0.0.0.255 192.168.0.1 0.0.0.0
Данная команда разрешает весь трафик из подсети 10.0.0.0 на хост 192.168.1.0. Затем, запретим доступ к серверу S1:
access-list 100 deny ip 10.0.0.0 0.0.0.255 172.16.0.1 0.0.0.0
Наконец, применим данные листы контроля доступа на интерфейсе R1:
int fa0/0 ip access-group 100 in
Пример настройки (сценарий №2)
Приведем иной пример использования расширенных листов контроля доступа: У нас снова есть сеть 10.0.0.0/24 и сервер S1, который слушает порт 80. Нам нужно разрешить пользователям доступ к веб-ресурсам на данном сервере, но также необходимо запретить какой-либо другой доступ, к примеру Telnet.
Для начала, нам нужно разрешить трафик из пользовательской подсети к веб-серверу на порту 80, что выполняется командой
access-list 100 permit tcp 10.0.0.0 0.0.0.255 172.16.0.1 0.0.0.0 eq 80
Используя ключевое слово TCP, мы можем фильтровать пакеты по портам источника и назначения. В примере выше, мы разрешили путь трафику из подсети 10.0.0.0 на хост 172.16.0.1 на порт 80 (веб-порт).
Теперь нужно запретить Telnet трафик из подсети 10.0.0.0 в подсеть 172.16.0.1. Для этого нужен еще один аксес-лист, на этот раз с запрещающим выражением:
access-list 100 deny tcp 10.0.0.0 0.0.0.255 172.16.0.1 0.0.0.0 eq 23
Далее, применим его на интерфейс с помощью следующих команд:
int fa0/0 ip access-group 100 in
Как мы уже описывали в предыдущей статье, в конце каждого листа всегда есть всезапрещающее правило. После применения первого правила, весь остальной трафик ходить не будет.