Acl что это такое в роутере

Продолжаем развитие нашей маленькой уютной сети Лифт ми Ап. Мы уже обсудили вопросы маршрутизации и стабильности, и теперь, наконец, выросли для подключения к Интернету. Довольно заточения в рамках нашей корпоративной среды!
Но с развитием появляются и новые проблемы.
Сначала вирус парализовал веб-сервер, потом кто-то притаранил червя, который распространился в сети, заняв часть полосы пропускания. А ещё какой-то злодей повадился подбирать пароли на ssh к серверу.
А представляете, что начнётся, когда мы подключимся к Интернету?!
Итак, сегодня:
1) учимся настраивать различные списки контроля доступа (Access Control List)
2) пытаемся понять разницу между ограничением входящего и исходящего трафика
3) разбираемся с тем, как работает NAT, его плюсы, минусы и возможности
4) на практике организуем подключение к Интернету через NAT и увеличим безопасность сети, используя списки доступа.

Access Control List

Итак, что мы имеем сказать по спискам доступа? Вообще-то тема относительно простая и только ленивыми из курса CCNA не скопипащена. Но не разрывать же нам наше удивительное повествование из-за каких то предрассудков?

Каково предназначение списков доступа? Казалось бы, совершенно очевидный ответ — для ограничения доступа: кому-то что-то запретить, например. Вообще — это верно, но понимать нужно в более широком смысле: речь не только о безопасности. То есть, изначально, вероятно, так оно и было, отсюда permit и deny при настройке. Но на самом деле ACL — это универсальный и мощный механизм фильтрации. С их помощью можно определить на кого навешивать определённые политики, а на кого нет, кто будет участвовать в неких процессах, а кто нет, кого ограничиваем в скорость до 56k, а кого до 56M.
Чтобы было чуть-чуть понятнее, приведём простой пример. Опираясь на списки доступа, работает Policy-Based Routing (PBR). Можно сделать здесь так, чтобы пакеты приходящие из сети 192.168.1.0/24 отправлялись на next-hop 10.0.1.1, а из сети 192.168.2.0/24 на 10.0.2.1 (заметим, что обычная маршрутизация опирается на адрес назначения пакета и автоматически все пакеты отправляются на один next-hop):

В конце статьи пример настройки PBR и ограничения скорости на основе ACL.

Виды ACL

Ладно, забудем на время эту лирику.
Вообще говоря, списки доступа бывают разными:

— Стандартные
— Расширенные
— Динамические
— Рефлексивные
— Повременные

Мы своё внимание остановим сегодня на первых двух, а более подробно обо всех вы можете прочитать у циски.

Входящий и исходящий трафик

Для почину давайте-ка разберёмся с одной вещью. Что понимать под входящим и исходящим трафиком? Это нам в будущем понадобится. Входящий трафик — этот тот, который приходит на интерфейс извне.

Исходящий — тот, который отправляется с интерфейса вовне.

Список доступа вы можете применить либо на входящий трафик, тогда неугодные пакеты не будут даже попадать на маршрутизатор и соответственно, дальше в сеть, либо на исходящий, тогда пакеты приходят на маршрутизатор, обрабатываются им, доходят до целевого интерфейса и только на нём дропятся.

Стандартный список доступа проверяет только адрес отправителя. Расширенный- адрес отправителя, адрес получателя, а также порт. Стандартные ACL рекомендуется ставить как можно ближе к получателю (чтобы не порезать больше, чем нужно), а расширенные- ближе к отправителю (чтобы как можно раньше дропнуть нежелательный трафик).

Практика

Давайте сразу к практике. Что бы нам такого наограничивать в нашей маленькой сети “Лифт ми Ап”?

а) WEB-сервер. Разрешить доступ всем по порту TCP 80 (протокол HTTP). Для того устройства, с которого будет производиться управление (у нас же есть админ) нужно открыть telnet и ftp, но ему мы дадим полный доступ. Всем остальным отбой.

б) Файловый сервер. На него у нас должны попадать резиденты Лифт ми Ап по портам для общих папок, а все остальные по FTP.

в) Почтовый сервер. Тут у нас запущены SMTP и POP3, то есть порты TCP 25 и 110. Так же для админа открываем доступ на управление. Других блокируем.

г) Для будущего DNS-сервера нужно открыть порт UDP 53

д) В сеть серверов разрешить ICMP-сообщения

е) Поскольку сеть Other у нас для всех беспартийных, кто не вошёл в ФЭО, ПТО и Бухгалтерию, то мы их всех ограничим, а некоторым только дадим доступ (в числе них мы и админ)

ё) В сеть управления нужно пускать опять же только админа, ну и конечно себя любимого.

ж) Не будем строить препоны общению между собой сотрудников отделов.

а) Доступ на WEB-сервер

Тут у нас работает политика запрещено всё, что не разрешено. Поэтому нам сейчас надо кое-что открыть, а всё остальное закрыть.
Поскольку мы защищаем сеть серверов, то и лист будем вешать на интерфейс, идущий в сторону них то есть, на FE0/0.3 Вопрос только на in или на out нам нужно это делать? Если мы не хотим пускать пакеты в сторону серверов, которые уже оказались на маршрутизаторе, то это будет исходящий трафик. То есть адреса назначения (destination) у нас будут в сети серверов (из них мы будем выбирать на какой именно сервер идёт трафик), а адреса источников (source) могут быть любыми — как из нашей корпоративной сети, так и из интернета.
Ещё одно замечание: поскольку фильтровать мы будем в том числе по адресу назначения (на WEB-сервер одни правила, на почтовый — другие), то список контроля доступа нам понадобится расширенный (extended), только он позволяет делать это.

Правила в списке доступа проверяются по порядку сверху вниз до первого совпадения. Как только одно из правил сработало, независимо от того permit это или deny, проверка прекращается и обработка трафика происходит на основе сработавшего правила.
То есть если мы хотим защитить WEB-сервер, то в первую очередь нам нужно дать разрешение, потому что, если мы в первой же строке настроим deny ip any any — то оно всегда будет срабатывать и трафик не будет ходить вообще. Any — это специальное слово, которое означает адрес сети и обратную маску 0.0.0.0 0.0.0.0 и означает, что под правило подпадают абсолютно все узлы из любых сетей. Другое специальное слово — host — оно означает маску 255.255.255.255 — то есть именно один единственный указанный адрес.
Итак, первое правило: разрешить доступ всем по порту 80

msk-arbat-gw1(config)# ip access-list extended Servers-out
msk-arbat-gw1(config-ext-nacl)# remark WEB
msk-arbat-gw1(config-ext-nacl)# permit tcp any host 172.16.0.2 eq 80

Разрешаем (permit) TCP-трафик от любого узла (any) на хост (host — именно один адрес) 172.16.0.2, адресованный на 80-й порт.
Пробуем повесить этот список доступа на интерфейс FE0/0.3:

msk-arbat-gw1(config)# int fa0/0.3
msk-arbat-gw1(config-subif)# ip access-group Servers-out out

Проверяем с любого из наших подключенных компьютеров:

Как видите страничка открывается, но что там у нас с пингом?

И так с любого другого узла?

Дело в том, что после всех правил в цисковских ACL в конце дописывается неявное deny ip any any (implicit deny). Что для нас это означает? Любой пакет, выходящий с интерфейса и не отвечающий ни одному правилу из ACL, подпадает под implicit deny и отбрасывается. То есть хоть пинг, хоть фтп, хоть что угодно здесь уже не пройдёт.

Идём дальше: надо дать полный доступ компьютеру, с которого будет производиться управление. Это будет компьютер нашего админа с адресом 172.16.6.66 из сети Other.
Каждое новое правило добавляется автоматически в конец списка, если он уже существует:

msk-arbat-gw1(config)# ip access-list extended Servers-out
msk-arbat-gw1(config-ext-nacl)# permit tcp host 172.16.6.66 host 172.16.0.2 range 20 ftp
msk-arbat-gw1(config-ext-nacl)# permit tcp host 172.16.6.66 host 172.16.0.2 eq telnet

Вот и всё. Проверяем с нужного узла (поскольку серверами в РТ не поддерживается телнет, проверяем на FTP):

То есть FTP-сообщение пришло на маршрутизатор и должно уйти с интерфейса FE0/0.3. Маршрутизатор проверяет и видит, что пакет подходит под добавленное нами правило и пропускает его.

А с постороннего узла

пакет FTP не попадает ни под одно из правил, кроме неявного deny ip any any и отбрасывается.

б)Доступ на файловый сервер

Тут бы надо в первую очередь определиться с тем, кто будет “резидентом”, кому нужно дать доступ. Конечно, это те, кто имеет адрес из сети 172.16.0.0/16 — только им и дадим доступ.
Теперь с общими папками. В большинстве современных систем уже используется для этого протокол SMB, которому нужен порт TCP 445. На более старых версиях использовался NetBios, который кормился аж через три порта: UDP 137 и 138 и TCP 139. Договорившись с нашим админом, настроим 445 порт (правда проверить в рамках РТ, конечно, не получится). Но кроме этого, нам понадобятся порты для FTP — 20, 21, причём не только для внутренних хостов, но и для соединений из интернета:

msk-arbat-gw1(config)# ip access-list extended Servers-out
msk-arbat-gw1(config-ext-nacl)# permit tcp 172.16.0.0 0.0.255.255 host 172.16.0.3 eq 445
msk-arbat-gw1(config-ext-nacl)# permit tcp any host 172.16.0.3 range 20 21

Тут мы повторно применили конструкцию range 20 21 — для того, чтобы в одной строке задать несколько портов. Для FTP, вообще говоря, недостаточно только 21-го порта. Дело в том, что если вы откроете только его, то авторизация у вас будет проходить, а передача файлов нет.

0.0.255.255 — обратная маска (wildcard mask). О том, что это такое, поговорим чуточку позже

в) Доступ на почтовый сервер

Продолжаем нарабатывать практику — теперь с почтовым сервером. В рамках того же списка доступа добавляем новые нужные нам записи.
Вместо номеров портов для широкораспространённых протоколов можно указывать их имена:

msk-arbat-gw1(config)# ip access-list extended Servers-out
msk-arbat-gw1(config-ext-nacl)#permit tcp any host 172.16.0.4 eq pop3
msk-arbat-gw1(config-ext-nacl)#permit tcp any host 172.16.0.4 eq smtp

г) DNS-сервер

msk-arbat-gw1(config)# ip access-list extended Servers-out
msk-arbat-gw1(config-ext-nacl)# permit udp 172.16.0.0 0.0.255.255 host 172.16.0.5 eq 53

д) ICMP

Осталось исправить ситуацию с пингом. Ничего страшного нет в том, чтобы добавить правила в конец списка, но как-то эстетически приятнее будет увидеть их вначале.
Используем несложный чит для этого. Для это можно воспользоваться текстовым редактором, например. Скопируйте туда из show run кусок про ACL и добавьте следующие строки:
no ip access-list extended Servers-out
ip access-list extended Servers-out
permit icmp any any
remark WEB
permit tcp any host 172.16.0.2 eq www
permit tcp host 172.16.6.66 host 172.16.0.2 range 20 ftp
permit tcp host 172.16.6.66 host 172.16.0.2 eq telnet
remark FILE
permit tcp 172.16.0.0 0.0.255.255 host 172.16.0.3 eq 445
permit tcp any host 172.16.0.3 range 20 21
remark MAIL
permit tcp any host 172.16.0.4 eq pop3
permit tcp any host 172.16.0.4 eq smtp
remark DNS
permit udp 172.16.0.0 0.0.255.255 host 172.16.0.5 eq 53

Первой строкой мы удаляем существующий список, далее создаём его заново и перечисляем все новые правила в нужном нам порядке. Командой в третьей строке мы разрешили проход всех ICMP-пакетов от любых хостов на любые хосты.

Далее просто копируем всё скопом и вставляем в консоль. Интерфейс интерпретирует каждую строку как отдельную команду и выполняет её. Таким образом, мы заменили старый список новым.
Проверяем, что пинг есть:

Прекрасно.

Данный “чит” хорош для первоначальной конфигурации или если вы точно понимаете, что делаете. На рабочей сети, когда вы настраиваете удалённо ACL, вы рискуете остаться без доступа на настраиваемую железку.

Чтобы вставить правило в начало или в любое другое нужное место, вы можете прибегнуть к такому приёму:
ip access-list extended Servers-out
1 permit icmp any any

Каждое правило в списке пронумеровано с определённым шагом и если перед словом permit/deny вы поставите число, то правило будет добавлено не в конец, а в нужное вам место. К сожалению, такая фича не работает в РТ.
Если будет вдруг необходимо (заняты все подряд идущие числа между правилами) вы всегда можете перенумеровать правила (в этом примере назначается номер первого правила 10(первое число) и инкремент 10):
ip access-list resequence Servers-out 10 10

В итоге Access List на серверную сеть будет выглядеть так:
ip access-list extended Servers-out
permit icmp any any
remark WEB
permit tcp any host 172.16.0.2 eq www
permit tcp host 172.16.6.66 host 172.16.0.2 range 20 ftp
permit tcp host 172.16.6.66 host 172.16.0.2 eq telnet
remark FILE
permit tcp 172.16.0.0 0.0.255.255 host 172.16.0.3 eq 445
permit tcp any host 172.16.0.3 range 20 21
remark MAIL
permit tcp any host 172.16.0.4 eq pop3
permit tcp any host 172.16.0.4 eq smtp
remark DNS
permit udp 172.16.0.0 0.0.255.255 host 172.16.0.5 eq 53

Сейчас наш админ имеет доступ только на WEB-сервер. Откройте ему полный доступ на всю сеть. Это первое домашнее задание.

е) Права пользователей из сети Other

До сих пор нам нужно было не впускать кого-то куда-то, поэтому мы обращали внимание на адрес назначения и список доступа вешали на исходящий с интерфейса трафик.

Теперь нам нужно не выпускать: никакие запросы от компьютеров из сети Other не должны выходить за пределы. Ну, конечно, кроме тех, которые мы специально разрешим.

msk-arbat-gw1(config)# ip access-list extended Other-in
msk-arbat-gw1(config-ext-nacl)# remark IAM
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.61 any
msk-arbat-gw1(config-ext-nacl)# remark ADMIN
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.66 any

Тут мы не могли сначала запретить всем, а потом разрешить избранным, потому что абсолютно все пакеты попадали бы под правило deny ip any any и permit не срабатывал бы вообще.
Применяем на интерфейс. На этот раз на вход:

msk-arbat-gw1(config)#int fa0/0.104
msk-arbat-gw1(config-subif)#ip access-group Other-in in

то есть все IP-пакеты от хоста с адресом 172.16.6.61 или 172.16.6.66 разрешено передавать куда бы они ни были предназначены. Почему мы тут используем тоже расширенный список доступа? Ведь, казалось бы, мы проверяем только адрес отправителя. Потому что админу мы дали полный доступ, а вот гостю компании “Лифт ми Ап”, например, который попадёт в эту же сеть совсем ни к чему доступ куда-либо, кроме как в Интернет.

ё) Сеть управления

Ничего сложного. Правило будет выглядеть так:

msk-arbat-gw1(config)# ip access-list extended Management-out
msk-arbat-gw1(config-ext-nacl)# remark IAM
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.61 172.16.1.0 0.0.0.255
msk-arbat-gw1(config-ext-nacl)# remark ADMIN
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.66 172.16.1.0 0.0.0.255

Данный ACL применяем на out на интерфейс FE 0/0.2:

msk-arbat-gw1(config)# int fa0/0.2
msk-arbat-gw1(config-subif)#ip access-group Management-out out

ж) Более никаких ограничений

Готово

Маска и обратная маска

До сих пор мы без объяснения давали странный параметр вида 0.0.255.255, подозрительно напоминающий маску подсети.
Немного сложная для понимания, но именно она — обратная маска — используется для определения хостов, которые подпадут под правило.
Чтобы понять что такое обратная маска, вы должны знать, что такое обычная.

Начнём с самого простого примера.

Обычная сеть на 256 адресов: 172.16.5.0/24, например. Что означает эта запись?
А означает она ровно следующее

IP-адрес. Десятичная запись 172 16 5 0
IP-адрес. Двоичная запись 10101100 00010000 00000101 00000000
Маска подсети. Двоичная запись 11111111 11111111 11111111 00000000
Маска подсети. Десятичная запись 255 255 255 0

IP-адрес — это параметр длиною 32 бита, поделенный на 4 части, который вы привыкли видеть в десятичной форме.
Маска подсети также имеет длину 32 бита — она фактически шаблон, трафарет, по которому определяется принадлежность адреса подсети. Там, где в маске стоят единицы, значение меняться не может, то есть часть 172.16.5 совершенно неизменна и она будет одинакова для всех хостов этой подсети, а вот та, где нули — варьируется.
То есть во взятом нами примере 172.16.5.0/24 — это адрес сети, а хосты будут 172.16.5.1-172.16.5.254 (последний 255 — широковещательный), потому что 00000001 — это 1, а 11111110 — 254 (речь о последнем октете адреса). /24 означает, что длина маски 24 бита, то есть у нас идёт 24 единицы — неизменная часть и 8 нулей.
Другой случай, когда маска у нас, например, 30 бит, а не 24.
К примеру 172.16.2.4/30. Распишем это так:

IP-адрес. Десятичная запись 172 16 2 4
IP-адрес. Двоичная запись 10101100 00010000 00000010 00000100
Маска подсети. Двоичная запись 11111111 11111111 11111111 11111100
Маска подсети. Десятичная запись 255 255 255 252

Как видите, для этой подсети могут меняться только последние два бита. Последний октет может принимать следующие 4 значения:
00000100 — адрес подсети (4 в десятичной системе)
00000101 — адрес узла (5)
00000110 — адрес узла (6)
00000111 — широковещательный (7)
Всё, что за пределами этого — уже другая подсеть

То есть теперь вам должно быть чуть-чуть понятно, что маска подсети — это последовательность 32-х бит, где сначала идут единицы, означающие адрес подсети, потом идут нули, означающие адрес хоста. При этом чередоваться нули и единицы в маске не могут чередоваться. То есть маска 11111111.11100000.11110111.00000000 невозможна

А что же такое обратная маска (wildcard)?
Для подавляющего большинства админов и некоторых инженеров — это не более, чем инверсия обычной маски. То есть нули вначале задают адрес части, которая должна совпадать обязательно, а единицы наоборот свободную часть.
То есть на взятом нами первом примере, если вы хотите отфильтровать все хосты из подсети 172.16.5.0/24, то вы зададите правило в Access-листе:
…. 172.16.5.0 0.0.0.255
Потому что обратная маска будет выглядеть так:

00000000.00000000.00000000.11111111

Во втором примере с сетью 172.16.2.4/30 обратная маска будет выглядеть так: 30 нулей и две единицы:

Обратная маска. Двоичная запись 00000000 00000000 00000000 00000011
Обратная маска. Десятичная запись 0 0 0 3

Соответственно параметр в access-листе будет выглядеть так:
…. 172.16.2.4 0.0.0.3
Позже, когда вы съедите собаку на просчётах масок и обратных масок, вы запомните самые употребляемые цифры, количество хостов в той или иной маске, поймёте, что в описанных ситуациях последний октет обратной маски получается вычитанием из 255 цифры последнего октета обычной маски (255-252=3) и т.д. А пока нужно много трудиться и считать)

Но на самом деле обратная маска — это несколько более богатый инструмент, здесь вы можете объединять адреса внутри одной подсети или даже объединять подсети, но самое главное отличие, вы можете чередовать нули и единицы. Это позволяет вам, например, отфильтровать определённый узел (или группу) в нескольких подсетях одной строкой.

Пример 1

Дано: сеть 172.16.16.0/24
Надо: отфильтровать первые 64 адреса (172.16.16.0-172.16.16.63)
Решение: 172.16.16.0 0.0.0.63

Пример 2

Дано: сети 172.16.16.0/24 и 172.16.17.0/24
Надо: отфильтровать адреса из обеих сетей
Решение: 172.16.16.0 0.0.1.255

Пример 3

Дано: Сети 172.16.0.0-172.16.255.0
Надо: отфильтровать хост с адресом 4 из всех подсетей
Решение: 172.16.16.0 0.0.255.4

Признаться ни разу в жизни не приходилось встречаться с последним сценарием применения. Это какие-то жутко специфические должны быть задачи.
Более подробно об обратных масках можно прочитать тут: http://habrahabr.ru/post/131712/

Работа ACL в картинках

Гипотетическая сеть:

1) На маршрутизаторе RT1 на интерфейсе FE0/1 на вход у нас разрешено всё, кроме ICMP.

2) На маршрутизаторе RT2 на интерфейсе FE0/1 на выход запрещены SSH и TELNET

Тесты
кликабельны
1) Пинг с компьютера ПК1 на Сервер1

2) TELNET с компьютера ПК1 на Сервер1

3) SSH с компьютера ПК1 на Сервер2

4) Пинг с Сервера2 на ПК1

Дополнения

1) Правила, действующие на исходящий трафик (out) не будут фильтровать трафик самого устройства. То есть, если нужно запретить самой циске доступ куда-либо, то вам придётся на этом интерфейсе фильтровать входящий трафик (ответный оттуда, куда надо запретить доступ).

2) C ACL надо быть аккуратнее. При небольшой ошибке в правиле, неправильном порядке настройки или вообще плохо продуманном списке вы можете остаться без доступа к устройству.
Например, вы хотите закрыть доступ куда угодно для сети 172.16.6.0/24, кроме своего адреса 172.16.6.61 и задаёте правила так:

deny ip 172.16.6.0 0.0.0.255 any
permit ip host 172.16.6.61 any

Как только вы примените ACL на интерфейс, вы сразу потеряете доступ к маршрутизатору, потому что вы попадаете под первое правило и второе даже не проверяется.
Вторая неприятная ситуация, которая может с вами приключиться: под ACL попадёт трафик, который не должен был попасть.
Вообразите такую ситуацию: у нас в серверной есть FTP-сервер в пассивном режиме. Для доступа к нему вы открыли 21-й порт в ACL Servers-out. После первичного установления соединения FTP-сервер сообщает клиенту порт, по которому он готов передавать/принимать файлы, например, 1523-й. Клиент пытается установить TCP-соединение на этот порт, но натыкается на ACL Servers-out, где такого разрешения нету — так и кончается сказка про успешный трансфер. В нашем примере выше, где мы настраивали доступ на файловый сервер, мы открыли доступ только по 20 и 21-му, потому что для примера этого достаточно. В реальной жизни придётся повозиться. Немного примеров конфигурации ACL для распространенных случаев.

3) Из 2-го пункта вытекает очень похожая и интересная проблема.
Вздумалось вам, например повесить на интерфейс в интернет такие вот ACL:

access-list out permit tcp host 1.1.1.1 host 2.2.2.2 eq 80
access-list in permit tcp host 2.2.2.2 any eq 80

Казалось бы: хосту с адресом 1.1.1.1 разрешён доступ по 80-му порту на сервер 2.2.2.2 (первое правило). И обратно от сервера 2.2.2.2 разрешены соединения внутрь.
Но нюанс тут в том, что компьютер 1.1.1.1 устанавливает соединение НА 80-й порт, но С какого-то другого, например, 1054, то есть ответный пакет от сервера приходит на сокет 1.1.1.1:1054, не подпадает под правило в ACL на IN и отбрасывается ввиду неявного deny ip any any.
Чтобы избежать такой ситуации, и не открывать всем пучком порты, можно прибегнуть к такой хитрости в ACL на in:

permit tcp host 2.2.2.2 any established.

Подробности такого решения в одной из следующих статей.

4) Говоря про современный мир, нельзя обойти такой инструмент, как объектные группы (Object-group).

Допустим, надо составить ACL, выпускающий три определенных адреса в интернет по трем одинаковым портам c перспективой расширения количества адресов и портов. Как это выглядит без знания объектных групп:

ip access-list extended TO-INTERNET
permit tcp host 172.16.6.66 any eq 80
permit tcp host 172.16.6.66 any eq 8080
permit tcp host 172.16.6.66 any eq 443

permit tcp host 172.16.6.67 any eq 80
permit tcp host 172.16.6.67 any eq 8080
permit tcp host 172.16.6.67 any eq 443

permit tcp host 172.16.6.68 any eq 80
permit tcp host 172.16.6.68 any eq 8080
permit tcp host 172.16.6.68 any eq 443

При увеличении количества параметров сопровождать такой ACL становится всё труднее и труднее, легко ошибиться при настройке.
Зато, если обратиться к объектным группам, то это приобретает следующий вид:

object-group service INET-PORTS
description Ports allowed for some hosts
tcp eq www
tcp eq 8080
tcp eq 443

object-group network HOSTS-TO-INET
description Hosts allowed to browse the net
host 172.16.6.66
host 172.16.6.67
host 172.16.6.68

ip access-list extended INET-OUT
permit object-group INET-PORTS object-group HOSTS-TO-INET any

на первый взгляд несколько угрожающе выглядит, но если разобраться, то это очень удобно.

4) Очень полезную для траблшутинга информацию можно получить из вывода команды show ip access-lists %имя ACL%. Кроме собственно списка правил указанного ACL, эта команда показывает количество совпадений по каждому правилу.

msk-arbat-gw1#sh ip access-lists nat-inet
Extended IP access list nat-inet
permit tcp 172.16.3.0 0.0.0.255 host 192.0.2.2 eq www
permit ip 172.16.5.0 0.0.0.255 host 192.0.2.3
permit ip 172.16.5.0 0.0.0.255 host 192.0.2.4
permit ip host 172.16.4.123 any
permit ip host 172.16.6.61 any
permit ip host 172.16.6.66 any (4 match(es))
permit ip host 172.16.16.222 any
permit ip host 172.16.17.222 any
permit ip host 172.16.24.222 any

А дописав в конце любого правила log, мы сможем получать сообщения о каждом совпадении в консоль. (последнее не работает в PT)

NAT

Network Address Translation — механизм в хозяйстве совершенно необходимый уже с 1994-го года. Много сессий об него сломано и пакетов потеряно.
Нужен он чаще всего для подключения вашей локальной сети к Интернету. Дело в том, что теоретически существует 255*255*255*255=4 228 250 625. 4 миллиарда адресов. Даже если бы у каждого жителя планеты был всего один компьютер, адресов бы уже не хватало. А тут разве что утюги к Интернету не подключаются. Умные люди сообразили это ещё в начале 90-х и как временное решение предложили разделить пространство адресов на публичные (белые) и приватные (частные, серые).
К последним относятся три диапазона:

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

Их вы свободно можете использовать в своей частной сети, и поэтому, разумеется, они будут повторяться. Как же быть с уникальностью? Кому будет отвечать WEB-сервер, которому пришёл запрос с обратным адресом 192.168.1.1? Ростелекому? Компании Татнефть? Или вашему комнатному Длинку? В большом интернете никто ничего не знает о приватных сетях — они не маршрутизируются.
Тут и выходит на сцену NAT. По большому счёту, это обман, подстава. На натирующем устройстве ваш приватный адрес, грубо говоря, просто подменяется на белый адрес, который и будет фигурировать далее в пакете, пока он путешествует до WEB-сервера. А вот белые адреса очень даже хорошо маршрутизируются, и пакет точно вернётся обратно на натирующее устройство.
Но как оно в свою очередь поймёт, что с ним делать дальше? Вот с этим и разберёмся.

Типы NAT

Статический

В этом случае один внутренний адрес преобразуется в один внешний. И при этом все запросы, приходящие на внешний адрес будут транслироваться на внутренний. Словно бы этот хост и является обладателем этого белого IP-адреса.

Настраивается следующей командой:

Router (config)# ip nat inside source static 172.16.6.5 198.51.100.2

Что происходит:
1) Узел 172.16.6.5 обращается WEB-серверу. Он отправляет IP-пакет, где в качестве адреса получателя стоит 192.0.2.2, а отправителя 172.16.6.5.

2) По корпоративной сети пакет доставляется к шлюзу 172.16.6.1, где и настроен NAT

3) Согласно настроенной команде, маршрутизатор снимает текущий заголовок IP и меняет его на новый, где в качестве адреса отправителя уже фигурирует белый адрес 198.51.100.2.

4) По большому Интернету обновлённый пакет достигает сервера 192.0.2.2.

5) Тот видит, что ответ надо слать на 198.51.100.2 И подготавливает ответный IP-пакет. В качестве адреса отправителя собственно адрес сервера 192.0.2.2, адрес назначения — 198.51.100.2

6) Пакет обратно летит через Интернет, причём не факт, что тем же путём.

7) На натирующем устройстве указано, что все запросы на адрес 198.51.100.2 нужно перенаправлять на 172.16.6.5. Маршрутизатор снова раздевает спрятанный внутри TCP-сегмент и задаёт новый IP-заголовок (адрес отправителя не меняется, адрес назначения 172.16.6.5).

8) По внутренней сети пакет возвращается инициатору, которому даже и невдомёк, какие чудеса с ним творились на границе.
И так будет с каждым.
При этом если соединение инициируется из Интернета, пакеты автоматически, проходя через натирующее устройство, попадают на внутренний хост.

Такой подход бывает полезным, когда у вас есть сервер внутри вашей сети, к которому необходим полный доступ извне. Разумеется, этот вариант вы не можете использовать, если хотите триста хостов выпустить в Интернет через один адрес. Такой вариант NAT’а никак не поможет сохранить белые IP-адреса, но тем не менее он бывает полезен.

Динамический

У вас есть пул белых адресов, например, провайдер выделил вам сеть 198.51.100.0/28 c 16-ю адресами. Два из них (первый и последний) — адрес сети и широковещательный, ещё два адреса назначаются на оборудование для обеспечения маршрутизации. 12 оставшихся адресов вы можете использовать для NAT’а и выпускать через них своих пользователей.
Ситуация похожа на статический NAT — один приватный адрес транслируется на один внешний, — но теперь внешний не чётко зафиксирован, а будет выбираться динамически из заданного диапазона.
Настраивается он так:

Router(config)#ip nat pool lol_pool 198.51.100.3 198.51.103.14

Задали пул (диапазон) публичных адресов, из которого будет выбираться адрес для натирования

Router(config)#access-list 100 permit ip 172.16.6.0 0.0.0.255 any

Задаём список доступа, который пропускает все пакеты с адресом источника 172.16.6.х, где х варьируется 0-255.

Router(config)#ip nat inside source list 100 pool lol_pool

Этой командой мы стыкуем созданный ACL и пул.

Этот вариант тоже не универсальный, своих 300 пользователей вы так же не сможете выпустить всех в Интернет, если у вас нет 300 внешних адресов. Как только белые адреса исчерпаются, никто новый уже не сможет получить доступ в Интернет. При этом те пользователи, что уже успели отхватить себе внешний адрес, будут работать. Скинуть все текущие трансляции и освободить внешний адреса вам поможет команда clear ip nat translation *
Помимо динамического выделения внешних адресов, этот динамически NAT отличается от статического тем, что без отдельной настройки проброса портов уже невозможно внешнее соединение на один из адресов пула.

Many-to-One

Следующий тип имеет несколько названий: NAT Overload, Port Address Translation (PAT), IP Masquerading, Many-to-One NAT.
Последнее название говорит само за себя — через один внешний адрес выходит в мир много приватных. Это позволяет решить проблему с нехваткой внешних адресов и выпустить в мир всех желающих.
Тут надо бы дать пояснение, как это работает. Как два приватных адреса транслируются в один можно представить, но как маршрутизатор понимает кому нужно переслать пакет, вернувшийся из Интернета на этот адрес?
Всё очень просто:
Предположим, что от двух хостов из внутренней сети приходят пакеты на натирующее устройство. Оба с запросом к WEB-серверу 192.0.2.2.
Данные от хостов выглядят так:

Адрес отправителя Порт отправителя Адрес получателя Порт получателя
172.16.6.5 23761 192.0.2.2 80
172.16.4.5 39800 192.0.2.2 80

Маршрутизатор расчехляет IP-пакет от первого хоста, извлекает из него TCP-сегмент, распечатывает его и узнаёт, с какого порта устанавливается соединение. У него есть внешний адрес 198.51.100.2, на который будет меняться адрес из внутренней сети.
Далее он выбирает свободный порт, например, 11874. И что он делает дальше? Все данные уровня приложений он упаковывает в новый TCP сегмент, где в качестве порта назначения по-прежнему остаётся 80 (именно на него ждёт коннектов WEB-сервер), а порт отправителя меняется с 23761 на 11874. Этот TCP-сегмент инкапсулируется в новый IP-пакет, где меняется IP-адрес отправителя с 172.16.6.5 на 198.51.100.2.
То же самое происходит для пакета от второго хоста, только выбирается следующий свободный порт, например 11875. “Свободный” означает, что он ещё не занят другими такими соединениями.
Данные, которые отправляются в интернет, теперь буду выглядеть так.

Адрес отправителя Порт отправителя Адрес получателя Порт получателя
198.51.100.2 11874 192.0.2.2 80
198.51.100.2 11875 192.0.2.2 80

В свою NAT-таблицу он заносит данные отправителей и получателей

Локальный адрес отправителя Локальный порт отправителя Глобальный адрес отправителя Глобальный порт отправителя Адрес получателя Порт получателя
172.16.6.5 23761 198.51.100.2 11874 192.0.2.2 80
172.16.4.5 39800 198.51.100.2 11875 192.0.2.2 80

Для WEB-сервера — это два совершенно разных запроса, которые он должен обработать каждый индивидуально. После этого он отсылает ответ, который выглядит так:

Адрес отправителя Порт отправителя Адрес получателя Порт получателя
192.0.2.2 80 198.51.100.2 11874
192.0.2.2 80 198.51.100.2 11875

Когда один из этих пакетов доходит до нашего маршрутизатора, тот сопоставляет данные в этом пакете со своими записями в NAT-таблице. Если совпадение найдено, происходит обратная процедура — пакету и TCP сегменту возвращаются его изначальные параметры только в качестве назначения:

Адрес отправителя Порт отправителя Адрес получателя Порт получателя
192.0.2.2 80 172.16.6.5 23761
192.0.2.2 80 172.16.4.5 39800

И теперь пакеты доставляется по внутренней сети компьютерам-инициаторам, которым и невдомёк даже, что где-то с их данными так жёстко обошлись на границе.

Каждое ваше обращение — это отдельное соединение. То есть попытались вы открыть WEB-страницу — это протокол HTTP, использующий порт 80. Для этого ваш компьютер должен установить TCP-сессию с удалённым сервером. Такая сессия (TCP или UDP) определяется двумя сокетами: локальный IP-адрес: локальный порт и удалённый IP-адрес: удалённый порт. В обычной ситуации у вас устанавливается одно соединение компьютер-сервер, в случае же NATа соединения будет как бы два:, маршрутизатор-сервер и компьютер думает, что у него есть сессия компьютер-сервер.

Настройка отличается совершенно незначительно: добавочным словом overload:

Router(config)#access-list 101 permit 172.16.4.0 0.0.0.255
Router(config)#ip nat inside source list 101 interface fa0/1 overload

При этом, разумеется, сохраняется возможность настроить пул адресов:

Router(config)#ip nat pool lol_pool 198.51.100.2 198.51.103.14
Router(config)#access-list 100 permit 172.16.6.0 0.0.0.255
Router(config)#ip nat inside source list 100 pool lol_pool overload

Перенаправление портов

Иначе говорят ещё проброс портов или mapping.
Когда мы только начали говорить про NAT, трансляция у нас была один-в-один и все запросы, приходящие извне автоматически перенаправлялись на внутренний хост. Таким образом можно было бы выставить сервер наружу в Интернет.
Но если у вас нет такой возможности — вы ограничены в белых адресах, или не хотите выставлять всем пучком портов его наружу, что делать?
Вы можете указать, что все запросы, приходящие на конкретный белый адрес и конкретный порт маршрутизатора, должны быть перенаправлены на нужный порт нужного внутреннего адреса.

Router(config)#ip nat inside source static tcp 172.16.0.2 80 198.51.100.2 80 extendable

Применение данной команды означает, что TCP-запрос, пришедший из интернета на адрес 198.51.100.2 по порту 80, будет перенаправлен на внутренний адрес 172.16.0.2 на тот же 80-й порт. Разумеется, вы можете пробрасывать и UDP и делать перенаправление с одного порта на другой. Это, например, может оказаться полезным, если у вас есть два компьютера, к которым нужен доступ по RDP извне. RDP использует порт 3389. Один и тот же порт вы не можете пробросить на разные хосты (при использовании одного внешнего адреса). Поэтому вы можете сделать так:

Router(config)# ip nat inside source static tcp 172.16.6.61 3389 198.51.100.2 3389
Router(config)# ip nat inside source static tcp 172.16.6.66 3389 198.51.100.2 3398

Тогда, чтобы попасть на компьютер 172.16.6.61 вы запускаете RDP-сессию на порт 198.51.100.2:3389, а на 172.16.6.66 — 198.51.100.2:3398. Маршрутизатор сам раскидает всё, куда надо.

Кстати, эта команда — частный случай самой первой: ip nat inside source static 172.16.6.66 198.51.100.2. Только в этом случае речь идёт о пробросе всего трафика, а в наших примерах — конкретных портов протокола TCP.

Вот так в общих чертах фунциклирует NAT. Про его особенности, плюсы/минусы написано куча статей, но не отметить их нельзя.

Слабости и силости NAT

+

— В первую очередь NAT позволяет сэкономить публичные IP-адреса. Собственно для этого он и был создан. Через один адрес, теоретически можно выпустить больше 65000 серых адресов (по количеству портов).
— Во-вторых, PAT и динамический NAT является в какой-то степени файрволом, препятствуя внешним соединениям доходить до конечных компьютеров, на которых может не оказаться своего файрвола и антивируса. Дело в том, что если извне на натирующее устройство приходит пакет, который тут не ожидается или не разрешён, он просто отбрасывается.
Чтобы пакет был пропущен и обработан, должны выполниться следующие условия:
1) В NAT-таблице должна быть запись для этого внешнего адреса, указанного как адрес отправителя в пакете
И
2) Порт отправителя в пакете должен совпадать с портом для этого белого адреса в записи
И
3) Порт назначения в пакете, совпадает с портом в записи.
ИЛИ
Настроен проброс портов.
Но не нужно рассматривать NAT именно как файрвол — это не более, чем дополнительная его плюшка.

— В-третьих, NAT скрывает от посторонних глаз внутреннюю структуру вашей сети — при трассировке маршрута извне вы не увидите ничего далее натирующего устройства.

Есть у NAT’а и минусы. Самые ощутимые из них, пожалуй, следующие:
— Некоторые протоколы не могут работать через NAT без костылей. Например, FTP или протоколы туннелирования (несмотря на то, как просто я настроил FTP в лабораторке, в реальной жизни это может создать кучу проблем)
— Другая проблема кроется в том, с одного адреса идёт много запросов на один сервер. Многие были свидетелем этого, когда заходишь на какой-нибудь Rapidshare, а он говорит, что с вашего IP уже было соединение, вы думаете, что “врёт, собака”, а это ваш сосед уже сосет. По этой же причине бывали проблемы c ICQ, когда сервера отказывали в регистрации.
— Не очень актуальная сейчас проблема: нагрузка на процессор и оперативную память. Поскольку объём работы довольно велик по сравнению с простой маршрутизацией (это надо не просто глянуть заголовок IP, надо его снять, TCP-заголовок снять, в таблицу занести, новые заголовки прикрутить) в мелких конторах с этим бывают проблемы.
Я сталкивался с такой ситуацией.
Одно из возможных решений — вынести функцию NAT на отдельный ПК либо на специализированное устройство, например Cisco ASA.
Для больших игроков, у которых маршрутизаторы ворочают по 3-4 BGP full-view, сейчас это не составляет проблем.

Что ещё нужно знать?
— NAT применяется в основном для обеспечения доступа в Интернет хостам с приватными адресами. Но бывает и иное применение — связь между двумя частными сетями с пересекающимися адресными пространствами.
Например, ваша компания покупает себе филиал в Актюбинске. У вас адресация 10.0.0.0-10.1.255.255, а у них 10.1.1.0-10.1.10.255. Диапазоны явно пересекаются, настроить маршрутизацию никак не получится, потому что один и тот же адрес может оказаться и в Актюбинске и у вас в штаб-квартире.
В таком случае на месте стыка настраивается NAT. Поскольку серых адресов у нас не мерено, можно выделить, к примеру, диапазон 10.2.1.0-10.2.10.255 и делать трансляцию один-в-один:
10.1.1.1-10.2.1.1
10.1.1.2-10.2.1.2

10.1.10.255-10.2.10.255

— В больших игрушках для взрослых NAT может быть реализован на отдельной плате (и часто так и есть) и без неё не заработает. А на офисных железках, напротив, есть почти всегда.

— С повсеместным внедрением IPv6 необходимость в NAT’e будет сходить на нет. Уже сейчас большие заказчики начинают интересоваться функционалом NAT64 — это когда у вас выход в мир через IPv4, а внутренняя сеть уже на IPv6

— Разумеется, это лишь поверхностный взгляд на NAT и есть ещё море нюансов, не утонуть в котором вам поможет самообразование.

Практика NAT

Чего от нас требует реальность?
1) Сеть управления не имеет доступа в интернет вообще
2) Хосты из сети ПТО имеют доступ только к профильным сайтам, например, Linkmeup.ru
3) Милым дамам из бухгалтерии нужно вырубить окно в мир клиент-банков.
4) ФЭО не выпускать никуда, за исключением финансового директора
5) В сети Other наш компьютер и компьютер админа — им дадим полный доступ в интернет. Всем остальным можно открывать по письменному запросу.
6) Не забудем про филиалы в Питере и в Кемерово. Для простоты настроим полный доступ для эникиев из этих подсетей.
7) С серверами отдельная песня. Для них мы настроим перенаправление портов. Всё, что нам нужно:
а) WEB-сервер должен быть доступен по 80-му порту
б) Почтовый сервер по 25-му и 110-му
в) Файловый сервер доступен из мира по FTP.
8) Компьютеры админа и наш должны быть доступны из Интернета по RDP. Вообще-то это неправильный путь — для удалённого подключения нужно использовать VPN-подключение и уже будучи в локальной сети использовать RDP, но это тема отдельной совсем другой статьи.

Сначала подготовим тестовую площадку:

Подключение к Интернету будет организовано через существующий линк, который предоставляет провайдер.
Он уходит в сеть провайдера. Напоминаем, что всё в этом облаке — это абстрактная сеть, которая на деле может состоять из десятков маршрутизаторов и сотен коммутаторов. Но нам нужно нечто управляемое и предсказуемое, поэтому водружаем сюда ещё маршрутизатор. С одной стороны в него линк из коммутатора, с другой сервера в Интернете.

Сервера нам понадобятся следующие:
1. Два клиент-банка для бухгалтеров (sperbank.ru, mmm-bank.ru)
2. Linkmeup.ru для ПТОшников
3. яндекс (yandex.ru)

Для такого подключения мы поднимем ещё один влан на msk-arbat-gw1. Его номер, разумеется, согласуется с провайдером. Пусть это будет VLAN 6
Предположим, провайдер предоставляет нам подсеть 198.51.100.0/28. Первые два адреса используются для организации линка (198.51.100.1 и 198.51.100.2), а оставшиеся мы используем, как пул для NAT’a. Впрочем, никто совершенно нам не мешает использовать и адрес 198.51.100.2 для пула. Так и сделаем: пул: 198.51.100.2-198.51.100.14
Для простоты предположим, что публичные сервера у нас находятся в одной подсети:
192.0.2.0/24.
Как настроить линк и адреса вы вполне уже в курсе.
Поскольку у нас только один маршрутизатор в сети провайдера, и все сети подключены непосредственно к нему, то необходимости настраивать маршрутизацию нету.
А вот наш msk-arbat-gw1 должен знать куда отправлять пакеты в Интернет, поэтому нам нужен маршрут по умолчанию:

msk-arbat-gw1(config)# ip route 0.0.0.0 0.0.0.0 198.51.100.1

Теперь по порядку

Во первых настроим пул адресов

msk-arbat-gw1(config)# ip nat pool main_pool 198.51.100.2 198.51.100.14 netmask 255.255.255.240

Теперь собираем ACL:

msk-arbat-gw1(config)# ip access-list extended nat-inet

1) Сеть управления

не имеет доступа в интернет вообще
Готово

2) Хосты из сети ПТО

Имеют доступ только к профильным сайтам, например, Linkmeup.ru

msk-arbat-gw1(config-ext-nacl)# permit tcp 172.16.3.0 0.0.0.255 host 192.0.2.2 eq 80

3)Бухгалтерия

Даём доступ всем хостам на оба сервера

msk-arbat-gw1(config-ext-nacl)# permit ip 172.16.5.0 0.0.0.255 host 192.0.2.3
msk-arbat-gw1(config-ext-nacl)# permit ip 172.16.5.0 0.0.0.255 host 192.0.2.4

4) ФЭО

Даём разрешение только финансовому директору — это только один хост.

msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.4.123 any

5) Other

Наши компьютеры с полным доступом

msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.61 any
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.66 any

6) Филиалы в Санкт-Петербурге и Кемерово

Пусть адреса эникиев будут одинаковыми: 172.16.х.222

msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.16.222 any
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.17.222 any
msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.24.222 any

Вот так выглядит сейчас ACL полностью:
ip access-list extended nat-inet
remark PTO
permit tcp 172.16.3.0 0.0.0.255 host 192.0.2.2 eq www
remark ACCOUNTING
permit ip 172.16.5.0 0.0.0.255 host 192.0.2.3
permit ip 172.16.5.0 0.0.0.255 host 192.0.2.4
remark FEO
permit ip host 172.16.4.123 any
remark IAM
permit ip host 172.16.6.61 any
remark ADMIN
permit ip host 172.16.6.66 any
remark SPB_VSL_ISLAND
permit ip host 172.16.16.222 any
remark SPB_OZERKI
permit ip host 172.16.17.222 any
remark KMR
permit ip host 172.16.24.222 any

Запускаем:

msk-arbat-gw1(config)# ip nat inside source list nat-inet pool main_pool overload

Но счастье не будет полным без настройки интерфейсов:
На внешнем интерфейсе нужно дать команду ip nat outside
На внутреннем: ip nat inside

msk-arbat-gw1(config)# int fa0/0.101
msk-arbat-gw1(config-subif)# ip nat inside
msk-arbat-gw1(config)# int fa0/0.102
msk-arbat-gw1(config-subif)# ip nat inside
msk-arbat-gw1(config)# int fa0/0.103
msk-arbat-gw1(config-subif)# ip nat inside
msk-arbat-gw1(config)# int fa0/0.104
msk-arbat-gw1(config-subif)# ip nat inside

msk-arbat-gw1(config)# int fa0/1.6
msk-arbat-gw1(config-subif)# ip nat outside

Это позволит маршрутизатору понять откуда ждать пакеты, которые нужно будет обработать и куда их потом слать.

Чтобы сервера в интернете были доступны по доменному имени, нам бы неплохо было обзавестись DNS-сервером в нашей сети:

Естественно его, нужно прописать на тех устройствах, с которых будем проверять доступ:

Show must go on!

С компьютера админа доступно всё:

Из сети ПТО есть доступ только на сайт linkmeup.ru по 80-му порту (HTTP):

В сети ФЭО в мир выходит только 4.123 (финдиректор)

В бухгалтерии работают только сайты клиент-банков. Но, поскольку разрешение дано полностью на протокол IP, то их можно и пинговать:

7) Cервера

Тут нам нужно настроить проброс портов, чтобы к ним можно было обращаться из Интернета:

a) Веб-сервер

msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.2 80 198.51.100.2 80

Сразу проверяем, например, мы можем это делать с тестового ПК c аресом 192.0.2.7.
Сейчас ничего не заработает, потому что для сети серверов у нас не настроен интерфейс на msk-arbat-gw1:

msk-arbat-gw1(config)# int fa0/0.3
msk-arbat-gw1(config-subif)# ip nat inside

А теперь:

б) Файловый сервер

msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.3 20 198.51.100.3 20
msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.3 21 198.51.100.3 21

Вот для этого в ACL Servers-out мы открывали также и 20-21-й порты для всех

в) Почтовый сервер

msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.4 25 198.51.100.4 25
msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.4 110 198.51.100.4 110

Проверить также не сложно. Следуйте инструкциям:
Сначала настраиваем почтовый сервер. Указываем домен и создаём двух пользователей.

Далее вносим домен в DNS. Этот шаг необязательный — можно к серверу обращаться и по IP, но почему бы и нет?

Настраиваем компьютер из нашей сети:

Из внешней:

Готовим письмо:

На локальном хосте нажимаем Receive:

8) Доступ по RDP к компьютерам админа и нашему

msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.6.61 3389 198.51.100.10 3389
msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.6.66 3389 198.51.100.10 3398

Безопасность

На последок одно замечание. Скорее всего натирующее устройство, у вас смотрит своим ip nat outside интерфейсом наружу — в Интернет. Поэтому на этот интерфейс не помешало бы повешать ACL, где вы запретите, разрешите, то что вам нужно. На этом вопросе не будем останавливаться уже в данной статье.

На этом первое знакомство с технологией NAT можно считать законченным.
В качестве ещё одного ДЗ ответьте на вопрос, почему нет доступа в Интернет с компьютеров эникиев в Питере и в Кемерово. Ведь мы их добавили уже в список доступа.

Материалы выпуска

Новый IP-план, планы коммутации по каждой точке и регламент
Файл РТ с лабораторной
Конфигурация устройств

Дополнительные ссылки:
Общая информация и распределение нагрузки TCP
Два провайдера+NAT
Полезная информация от cisco
Наш коллега хабраюзер написал несколько статей по особенностям NAT. Особенно интересна может быть данная статья.
Но как бы то ни было, никто не напишет о cisco лучше, чем cisco
Обратная маска

Бонусы

Настройка PBR для примера из статьи

В режиме глобальной конфигурации.
Добавляем маршрут по умолчанию:

ip route 0.0.0.0 0.0.0.0 10.0.1.1

В списке доступа отфильтровываем трафик из сети 192.168.2.0/24

access-list 101 permit ip 192.168.2.0 0.0.0.255 any

Создаём карту маршрутов, где обозначаем, что если пакет из сети 192.168.2.0/24, то для него назначить next-hop 10.0.2.1 (вместо 10.0.1.1)

route-map CLIENT permit 5
match ip address 101
set ip next-hop 10.0.2.1

Применяем карту на интерфейс:

ip policy route-map CLIENT

Это лишь одно из применений мощного инструмента Policy-Based Routing, который, к сожалению, ни в каком виде не реализован в РТ.

Ограничение скорости на интерфейсе на основе ACL

На том же примере ограничим скорость для сети 192.168.1.0/24 до 1.5 Мб/с, а для 192.168.2.0/24 до 64 кб/с.
На 10.0.1.1 можно выполнить следующие команды:

Router(config)# access-list 100 permit ip 192.168.1.0 0.0.0.255 any
Router(config)# access-list 101 permit ip 192.168.2.0 0.0.0.255 any
Router(config)# interface fa0/0
Router(config-if)# rate-limit output access-group 100 1544000 64000 64000 conform-action transmit exceed-action drop
Router(config-if)# rate-limit output access-group 101 64000 16000 16000 conform-action transmit exceed-action drop

Назревшие вопросы безхаберным людям можно реализовать в ЖЖ.
Спасибо моему соавтору thegluck
Отдельная благодарность за помощь в подготовке статьи JDima

IP-адрес — это параметр длиною 32 бита, поделенный на 4 части, который вы привыкли видеть в десятичной форме.
Маска подсети также имеет длину 32 бита — она фактически шаблон, трафарет, по которому определяется принадлежность адреса подсети. Там, где в маске стоят единицы, значение меняться не может, то есть часть 172.16.5 совершенно неизменна и она будет одинакова для всех хостов этой подсети, а вот та, где нули — варьируется.
То есть во взятом нами примере 172.16.5.0/24 — это адрес сети, а хосты будут 172.16.5.1-172.16.5.254 (последний 255 — широковещательный), потому что 00000001 — это 1, а 11111110 — 254 (речь о последнем октете адреса). /24 означает, что длина маски 24 бита, то есть у нас идёт 24 единицы — неизменная часть и 8 нулей.
Другой случай, когда маска у нас, например, 30 бит, а не 24.
К примеру 172.16.2.4/30. Распишем это так:

Access list (ACL) – это мощное средство настройки сетевых устройств, которое позволяет контролировать трафик, проходящий через маршрутизатор. С помощью ACL можно фильтровать и ограничивать передачу данных, определять правила доступа к сети и повышать безопасность.

ACL работает на основе правил, задаваемых администратором, и выполняет проверку пакетов данных, проходящих через маршрутизатор, в соответствии с этими правилами. Если пакет соответствует одному из правил, то доступ к нему может быть разрешен или запрещен.

Например, ACL можно использовать для блокировки пакетов, исходящих или приходящих от определенного IP-адреса, протокола или порта, а также для управления обменом данными между различными подсетями.

Для использования ACL необходимо создать список, который содержит правила и установить его на интерфейсе маршрутизатора. Команды управления ACL в роутере зависят от операционной системы, используемой на устройстве.

Важно знать, что неправильная конфигурация ACL может привести к блокировке или ограничению доступа к нужным ресурсам сети, поэтому перед использованием стоит тщательно продумать и проверить настройки.

Что такое access list (ACL) в роутере: определение и назначение

Access list включает в себя список условий и действий, которые применяются к сетевому трафику. Условия могут включать в себя источник и назначение IP-адреса, порты, протоколы и другие параметры. Действия определяют, что делать с трафиком, который соответствует условиям: разрешить, отклонить или перенаправить.

Access list может быть применен на входящий или исходящий трафик на интерфейсе роутера, а также на маршруты в таблице маршрутизации. Это позволяет администратору гибко контролировать трафик в сети, фильтровать нежелательные соединения и предотвращать атаки.

Преимущества использования access list включают:

Безопасность Access list позволяет администратору создавать правила безопасности для предотвращения несанкционированного доступа к сети.
Контроль трафика Access list позволяет администратору контролировать и ограничивать трафик в сети, устанавливать приоритеты и предотвращать перегрузки сети.
Фильтрация Access list позволяет администратору фильтровать нежелательный трафик, такой как спам, вредоносные программы или пакеты с ошибками.
Управление маршрутизацией Access list может быть использован для управления маршрутами и определения, какие пути должны быть использованы для передачи данных.

Access list является важным инструментом в сетевой архитектуре и позволяет администраторам гибко управлять трафиком в сети, обеспечивать безопасность и повышать производительность сети.

Как создать и настроить access list в роутере

Access list (ACL) в роутере представляет собой набор правил, которые позволяют контролировать трафик, проходящий через роутер. Access list может быть использован для различных целей, например, для фильтрации IP-адресов, протоколов или портов.

Чтобы создать и настроить access list в роутере, следуйте указанным ниже шагам:

  1. Зайдите в командный интерфейс роутера. Для этого можно воспользоваться программами эмуляции терминала, такими как HyperTerminal или PuTTY.
  2. Войдите в режим конфигурации роутера с помощью команды enable.
  3. Перейдите в режим конфигурации интерфейса, через который проходит трафик, который нужно фильтровать. Например, если фильтрация необходима для интерфейса Ethernet0/0, введите команду configure terminal и далее interface Ethernet0/0.
  4. В режиме конфигурации интерфейса введите команду ip access-group, за которой следует номер access list и один из трех ключевых слов: in, out или inout. Например, для применения access list с номером 100 входящим трафиком используйте команду ip access-group 100 in.
  5. Перейдите в режим конфигурации access list с помощью команды access-list. Затем укажите номер access list и одно из доступных действий, таких как permit или deny. Например, access-list 100 permit tcp any any eq 80 позволит пропускать TCP-трафик на порт 80.
  6. После настройки access list, сохраните изменения, введя команду write memory или copy running-config startup-config.

После этих шагов, access list будет активен и начнет фильтровать трафик, проходящий через указанный интерфейс. Убедитесь, что правила access list были созданы и настроены правильно, чтобы избежать ошибок в трафике и обеспечить требуемую безопасность вашей сети.

The device supports various ACL matching conditions. This section describes the commonly used conditions.

Time Range

Format: time-range time-name

All ACLs support packet filtering based on time ranges. For details about time ranges, see Time Range.

Protocol Type Carried by IP

Format: protocol-number | icmp | tcp | udp | gre | igmp | ip | ipinip | ospf

An advanced ACL can filter packets based on protocol types, such as ICMP (protocol number 1), TCP (protocol number 6), UDP (protocol number 17), GRE (protocol number 47), IGMP (protocol number 2), IP (any IP layer protocol), IPinIP (protocol number 4), and OSPF (protocol number 89). The protocol number ranges from 1 to 255.

For example, to forbid user access on an interface connected to a large number of attackers, specify the protocol type as IP to discard all IP traffic on the interface. The configuration is as follows:

rule deny ip //Reject IP packets.

After transparent firewall function is enabled on a device, the transparent firewall discards all packets entering the interzone by default, including service and protocol packets. If you require the packets of a dynamic routing protocol, such as OSPF, to pass through the transparent firewall, specify the protocol type as OSPF.

rule permit ospf  //Permit OSPF packets.

Source/Destination IP Addresses and Wildcard Masks

Format of source IP address and wildcard mask: source { source-address source-wildcard | any }

Format of destination IP address and wildcard mask: destination { destination-address destination-wildcard | any }

A basic ACL can filter packets based on source IP addresses; an advanced ACL can filter packets based on both source and destination IP addresses.

When the source and destination IP addresses are specified as matching conditions, the wildcard masks must be specified for them to determine address ranges.

The IP address wildcard mask format is the same as the inverse subnet mask format (32-bit numeric string). The wildcard mask specifies the digits in the IP address to be checked. Among the bits in a mask, the value 0 indicates «check» and the value 1 indicates «not check.» An IP address subnet mask must have continuous 0s and 1s, whereas a wildcard mask can have discontinuous 0s and 1s.

The wildcard mask can be 255.255.255.255 or 0 (equivalent to 0.0.0.0). The value 255.255.255.255 indicates any IP address, which is equivalent to the any keyword. The value 0 indicates that the source/destination address is a host address.

For example, configure a rule with an IP address wildcard mask specified to permit all IP packets from network segment 192.168.1.0/24:

rule 5 permit ip source 192.168.1.0 0.0.0.255

In this rule, the wildcard mask is 0.0.0.255, indicating that only the bits in the binary bytes in the first three groups in the IP address are checked. Therefore, if the first 24 bits in the source IP address are the same as the first 24 bits in the specified IP address (192.168.1), it indicates that the packets are sent from source IP address segment 192.168.1.0/24, and are permitted. Table 1-3 illustrates how the address range is calculated.

Table 1-3 Wildcard mask example

Item

Decimal

Binary

Specified IP address

192.168.1.0

11000000.10101000.00000001.00000000

Wildcard mask

0.0.0.255

00000000.00000000.00000000.11111111

Determined address range

192.168.1.*

* indicates an integer between 0 and 255.

11000000.10101000.00000001.xxxxxxxx

x can be 0 or 1.

For more examples of determining an address range by IP address and wildcard mask, see Table 1-4.

Table 1-4 Determining address ranges by IP addresses and wildcard masks

IP Address

IP Address Wildcard Mask

Determined Address Range

0.0.0.0

255.255.255.255

Any IP address

172.18.0.0

0.0.255.255

IP addresses on network segment 172.18.0.0/16

172.18.5.2

0.0.0.0

Only host address 172.18.5.2

172.18.8.0

0.0.0.7

IP addresses on network segment 172.18.8.0/29

172.18.8.8

0.0.0.7

IP addresses on network segment 172.18.8.8/29

10.1.2.0

0.0.254.255 (discontinuous 1s and 0s in wildcard mask)

IP addresses that are in the range of 10.1.0.0/24 and 10.1.254.0/24 and have an even number in the third byte, for example, 10.1.0.0/24, 10.1.2.0/24, 10.1.4.0/24, and 10.1.6.0/24

Source/Destination MAC Addresses and Wildcard Masks

Format of source MAC address and wildcard mask: source-mac source-mac-address [ source-mac-mask ]

Format of destination MAC address and wildcard mask: destination-mac dest-mac-address [ dest-mac-mask ]

Only the Layer 2 ACL can filter packets based on source and destination MAC addresses.

When the source and destination MAC addresses are specified as matching conditions, the wildcard masks can be specified for them to determine address ranges.

The formats of a MAC address wildcard mask and a MAC address are the same. Both of them are in hexadecimal format. A MAC address wildcard mask consists of six bytes (48 bits) to indicate the bits in a MAC address to be checked. Different from those in an IP address wildcard mask, the value 1 in the MAC address wildcard mask indicates «check» and the value 0 indicates «not check.» If the wildcard mask is not specified, the default mask ffff-ffff-ffff is used, indicating that every bit in a MAC address is checked.

Table 1-5 illustrates how a MAC address and a wildcard mask determine an address range.

Table 1-5 Determining address ranges by MAC addresses and wildcard masks

MAC Address

MAC Address Wildcard Mask

Determined Address Range

00e0-fc01-0101

0000-0000-0000

Any MAC address

00e0-fc01-0101

ffff-ffff-ffff

Only 00e0-fc01-0101

00e0-fc01-0101

ffff-ffff-0000

00e0-fc01-0000 to 00e0-fc01-ffff

VLAN ID and Mask

Format of outer VLAN ID and mask: vlan-id vlan-id [ vlan-id-mask ]

Format of inner VLAN ID and mask: cvlan-id cvlan-id [ cvlan-id-mask ]

A Layer 2 ACL can filter packets based on outer and inner VLAN IDs.

When the VLAN IDs are configured as matching conditions, the VLAN mask can be specified behind the VLAN IDs to determine a VLAN range.

A VLAN mask is in the hexadecimal format, ranging from 0x0 to 0xFFF. If the VLAN mask is not specified, the default mask 0xFFF is used, indicating that every bit in the VLAN ID is checked.

Table 1-6 illustrates how a VLAN ID and a mask determine a VLAN range.

Table 1-6 Determining VLAN ranges by VLAN IDs and masks

VLAN ID

VLAN Mask

Determined VLAN Range

10

0x000

Any VLAN

10

0xFFF

Only VLAN 10

10

0xFF0

VLAN 1 to VLAN 10

TCP/UDP Port Number

Format of source port number: source-port { eq port | gt port | lt port | range port-start port-end }

Format of destination port number: destination-port { eq port | gt port | lt port | range port-start port-end }

When the protocol type of an advanced ACL is specified as TCP or UDP, the device can filter packets based on TCP or UDP source/destination port numbers.

The operators of specifying TCP/UDP port numbers are as follows:

  • eq port: equivalent to the source/destination port number.
  • gt port: greater than the destination/source port number.
  • lt port: less than the source/destination port number.
  • range port-start port-end: source/destination port number range. port-start indicates the start port number, and port-end indicates the end port number.

The TCP/UDP port numbers can be represented by numeric or character strings (alias). For example, rule deny tcp destination-port eq 80 can be represented by rule deny tcp destination-port eq www. Table 1-7 and Table 1-8 list the commonly used TCP ports and UDP ports respectively, and provide the corresponding character strings.

Table 1-7 Commonly used TCP ports and character strings

Port Number

Character String

Protocol

Description

7

echo

Echo

Echo service.

9

discard

Discard

Null service used for connectivity test.

13

daytime

Daytime

Daytime protocol.

19

CHARgen

Character generator

Character Generator Protocol.

20

ftp-data

FTP data connections

FTP data port.

21

ftp

File Transfer Protocol(FTP)

File Transfer Protocol (FTP) port.

23

telnet

Telnet

Telnet service.

25

smtp

Simple Mail Transport Protocol (SMTP)

Simple Mail Transfer Protocol (SMTP).

37

time

Time

Time protocol.

43

whois

Nickname (WHOIS)

Directory service.

49

tacacs

TAC Access Control System (TACACS)

Access control system based on TCP/IP authentication (TACACS login host protocol)

53

domain

Domain Name Service (DNS)

Domain name service.

70

gopher

Gopher

Information index protocol (document searching and indexing on the Internet)

79

finger

Finger

Queries online user information on a remote host.

80

www

World Wide Web (HTTP)

Protocol used by the WWW service. HTTP is used to browse web pages.

101

hostname

NIC hostname server

Host name service on the NIC machine.

109

pop2

Post Office Protocol v2

Email protocol version 2.

110

pop3

Post Office Protocol v3

Email protocol version 3.

111

sunrpc

Sun Remote Procedure Call (RPC)

RPC protocol of SUN. It is used to remotely execute commands and used by the network file system (NFS).

119

nntp

Network News Transport Protocol (NNTP)

Network News Transfer Protocol for retrieval of newsgroup messages. It carries USENET.

179

bgp

Border Gateway Protocol (BGP)

Border Gateway Protocol (BGP).

194

irc

Internet Relay Chat (IRC)

Internet Relay Chat (IRC) protocol.

512

exec

Exec (rsh)

Authenticates remote process.

513

login

Login (rlogin)

Remote login.

514

cmd

Remote commands

Used to execute non-interactive commands on a remote system (rshell, rcp).

515

lpd

Printer service

Line Printer Daemon. It is a print service.

517

talk

Talk

Remotely talks with server and client.

540

uucp

Unix-to-Unix Copy Program

Unix-to-Unix copy protocol.

543

klogin

Kerberos login

Kerberos login protocol version 5.

544

kshell

Kerberos shell

Kerberos Remote shell protocol version 5.

Table 1-8 Commonly used UDP ports and character strings

Port Number

Character String

Protocol

Description

7

echo

Echo

Echo service.

9

discard

Discard

Null service used for connectivity test.

37

time

Time

Time protocol.

42

nameserver

Host Name Server

Host name service.

53

dns

Domain Name Service (DNS)

Domain name service.

65

tacacs-ds

TACACS-Database Service

TACACS database service.

67

bootps

Bootstrap Protocol Server

Bootstrap Protocol (BOOTP) Server, also used by Dynamic Host Configuration Protocol (DHCP).

68

bootpc

Bootstrap Protocol Client

Bootstrap Protocol (BOOTP) Client, also used by Dynamic Host Configuration Protocol (DHCP).

69

tftp

Trivial File Transfer Protocol (TFTP)

Trivial File Transfer Protocol (TFTP).

90

dnsix

DNSIX Security Attribute Token Map

DoD Network Security for Information Exchange (DNSIX) Security Attribute Token Map.

111

sunrpc

SUN Remote Procedure Call (SUN RPC)

RPC protocol of SUN. It is used to remotely execute commands and used by the network file system (NFS).

123

ntp

Network Time Protocol (NTP)

Network Time Protocol (NTP), which may be utilized by worm virus.

137

netbios-ns

NETBIOS Name Service

NETBIOS name service.

138

netbios-dgm

NETBIOS Datagram Service

NETBIOS datagram service.

139

netbios-ssn

NETBIOS Session Service

NETBIOS session service.

161

snmp

SNMP

Simple Network Management Protocol (SNMP).

162

snmptrap

SNMPTRAP

SNMP trap.

177

xdmcp

X Display Manager Control Protocol (XDMCP)

X Display Manager Control Protocol (XDMCP).

434

mobilip-ag

MobileIP-Agent

Mobile IP agent.

435

mobilip-mn

MobileIP-MN

Mobile IP management.

512

biff

Mail notify

Notifies user of received emails.

513

who

Who

Login user list.

514

syslog

Syslog

UNIX system log service.

517

talk

Talk

Remotely talks with server and client.

520

rip

Routing Information Protocol

RIP routing protocol.

TCP Flag

Format: tcp-flag { ack | established | fin | psh | rst | syn | urg }*

When the TCP protocol is specified in an advanced ACL, the device filters packets based on the TCP flag.

A TCP packet header contains six flag bits:

  • URG(100000): indicates that the Urgent pointer field is significant.
  • ACK(010000): indicates that the Acknowledgment field is significant.
  • PSH(001000): push function. Asks to push the buffered data to the receiving application.
  • RST(000100): resets the connection.
  • SYN(000010): synchronizes sequence numbers to initiate a connection.
  • FIN(000001): no more data from sender.

The established field in TCP flags indicates that the flag bit is ACK(010000) or RST(000100).

The ACL rule with the tcp-flag keyword specified can implement unidirectional access control. For example, it is required that users on network segment 192.168.1.0/24 can access network segment 192.168.2.0/24, but users on network segment 192.168.2.0/24 cannot access network segment 192.168.1.0/24. To meet this requirement, you can apply an ACL rule to the inbound direction of the interface connecting to network segment 192.168.2.0/24.

From TCP connection setup to teardown only the packets used for TCP connection establishment can have the ACK value of 1 and RST value of 1. According to this characteristic, configure the following ACL rules to permit the packets used for establishing TCP connections and deny other TCP packets on the network segment 192.168.2.0/24. In this way, you can limit the TCP connection requests initiated from this network segment.

  • Rule 1: Configure an ACL rule with the ack and rst keywords specified.
    rule 5 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack  //Permit the TCP packets with the ACK value of 1.        
    rule 10 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag rst //Permit the TCP packets with the RST value of 1. 
    rule 15 deny tcp source 192.168.2.0 0.0.0.255  //Reject other TCP packets.     
  • Rule 2: Configure an ACL rule with the established keyword specified.
    rule permit tcp source 192.168.2.0 0.0.0.255 tcp-flag established  //established indicates that ACK is 1 or RST is 1. The packets exchanged during TCP connection established are permitted. 
    rule deny tcp source 192.168.2.0 0.0.0.255     //Reject other TCP packets.     

IP Fragmentation

Format: none-first-fragment

A basic ACL and an advanced ACL can filter packets based on IP fragmentation information.

The fragments of an IP packet include the initial fragment and non-initial fragments. Only the initial fragment contains Layer 4 information, such as TCP and UDP port numbers. A network device checks whether a received fragment is the last fragment. If the fragment is not the last, the device allocates memory space for it, and reassembles the fragments after the last fragment is received. However, an exploit exists whereby an attacker may send fragments to a device without sending the last fragment. Because the device cannot release memory until the last fragment is received and all fragments are reassembled, if a large enough number of fragments are sent in a short period, the device cannot process other services due to insufficient memory resources. To mitigate such an attack, the device starts a reassembling timer. If reassembly cannot be finished before the timer expires, the device returns an ICMP Error packet to the sender; if reassembly cannot be finished after the timer expires, the device discards the fragments stored in memory.

To prevent fragment packet attacks, you can specify the none-first-fragment keyword in an ACL rule to block non-initial fragments.

Table 1-9 describes how the ACLs process non-fragment packets, initial fragments, and non-initial fragments.

Table 1-9 IP packet processing methods

Matching Conditions

Non-fragment Packets

Initial Fragments

Non-initial Fragments

Layer 3 information (such as source/destination IP addresses)

When packets match Layer 3 information, the matching result (permit or deny) is returned; otherwise, the next rule is processed.

When packets match Layer 3 information, the matching result (permit or deny) is returned; otherwise, the next rule is processed.

When packets match Layer 3 information, the matching result (permit or deny) is returned; otherwise, the next rule is processed.

Layer 3 information and Layer 4 information (such as TCP and UDP port numbers)

When packets match both Layer 3 and Layer 4 information, the matching result (permit or deny) is returned; otherwise, the next rule is processed.

When packets match both Layer 3 and Layer 4 information, the matching result (permit or deny) is returned; otherwise, the next rule is processed.

The packets do not match the rule, so the next rule is processed.

Layer 3 information and none-first-fragment

The packets do not match the rule, so the next rule is processed.

The packets do not match the rule, so the next rule is processed.

When packets match Layer 3 information, the matching result (permit or deny) is returned; otherwise, the next rule is processed.

For example, ACL 3012 contains the following rules:

#   
acl number 3012                                                                  
 rule 5 deny tcp destination 192.168.2.2 0 none-first-fragment                   
 rule 10 permit tcp destination 192.168.2.2 0 destination-port eq www            
 rule 15 deny ip                                                                 
#  
  • This packet is a non-fragment packet or initial fragment: If the destination port number is 80 (WWW), this packet matches rule 10 and is permitted; otherwise, the packet matches rule 15 and is discarded.
  • The packet is a non-initial fragment: The packet matches rule 5 and is discarded.

Access Control List (ACL) или Список Контроля Доступа, является важным инструментом в настройке и обеспечении безопасности сети на роутерах. С помощью ACL можно определить, какие пакеты данных могут проходить через роутер и какие должны быть отклонены. В основе ACL лежат правила, которые позволяют ограничить доступ и управлять трафиком.

ACL работает на уровне сетевого уровня модели OSI, что означает, что он принимает решения на основе адресов источника и назначения, протоколов, портов и других параметров. ACL может быть настроен как на входящий, так и на исходящий трафик, и может быть применен к интерфейсу, сети или подсети.

Каждое правило ACL состоит из условия и действия. Условие определяет, какие пакеты данных должны соответствовать правилу, а действие указывает, что должно произойти с пакетами, которые соответствуют условию. Например, можно настроить ACL, чтобы разрешить доступ только для определенных IP-адресов или блокировать определенный тип трафика.

Правильное использование ACL очень важно для обеспечения безопасности сети и предотвращения несанкционированного доступа. Неправильная настройка ACL может привести к блокировке необходимого трафика или, наоборот, позволить доступ к нежелательным ресурсам. Поэтому перед настройкой ACL необходимо хорошо продумать и проверить все условия и действия.

ACL является одним из основных инструментов в руках сетевого администратора и позволяет гибко управлять трафиком в сети. Он может быть использован для защиты сети от внешних атак, ограничения доступа к определенным ресурсам, контроля и отладки сетевого трафика. Благодаря ACL можно создать фильтры, которые разрешают или блокируют пакеты на основе различных параметров и условий.

В заключение, использование ACL в роутерах является важным шагом для обеспечения безопасности сети и контроля трафика. Правильное настройка ACL позволит предотвратить несанкционированный доступ и ограничить передачу данных только на нужные ресурсы. С помощью ACL можно установить гибкую политику доступа к сети и повысить ее безопасность.

Содержание

  1. Что такое ACL и зачем они нужны?
  2. Принципы работы ACL в роутерах
  3. Разновидности ACL в роутерах
  4. Как настроить и использовать ACL в роутерах?
  5. Практические примеры использования ACL в роутерах

Что такое ACL и зачем они нужны?

В роутерах ACL используется для фильтрации трафика на основе определенных правил. Они позволяют администратору создавать правила, которые определяют, какой трафик может проходить через роутер, а какой должен быть заблокирован или перенаправлен.

ACL полезны, когда необходимо ограничить доступ к определенным узлам сети, запретить пакеты с определенными характеристиками или разрешить только определенные протоколы или порты. Они обеспечивают безопасность сети, защищают от вредоносных атак и позволяют оптимизировать использование сетевых ресурсов.

Правильное использование ACL может существенно повысить безопасность и производительность сети. Однако, неправильная конфигурация ACL может привести к нежелательным блокировкам или разрешениям трафика, что может привести к снижению производительности сети или неправильной работе приложений.

При создании ACL необходимо точно определить правила, учитывая потребности и требования конкретной сети или организации. Необходимо тщательно проверять и тестировать созданные правила, чтобы избежать ошибок и непредвиденных последствий.

В итоге, правильное использование ACL в роутерах может значительно улучшить безопасность сети, предотвратить нежелательный трафик и обеспечить более эффективное использование сетевых ресурсов.

Принципы работы ACL в роутерах

ACL (Access Control List) представляет собой механизм, используемый в роутерах для управления доступом к сетевым ресурсам. С помощью ACL можно определить правила, которые позволяют или запрещают передачу данных через роутер в зависимости от заданных условий.

ACL основывается на списке правил, где каждое правило определяет, какой трафик будет разрешен, а какой запрещен. При обработке пакета данных, роутер применяет эти правила последовательно согласно заданному порядку, пока не будет найдено совпадение с условием правила. Если специфичное правило не найдено, применяется правило по умолчанию.

ACL может быть применен к всем интерфейсам роутера или к определенным интерфейсам, в зависимости от необходимости. ACL также может быть настроен для контроля доступа к различным службам и протоколам, например, HTTP, FTP, Telnet и другим.

Правила ACL основываются на различных критериях, таких как IP-адрес источника и назначения, номер порта, протокол, тип пакета и т. д. Можно создавать сложные правила, комбинируя различные условия и действия.

Применение ACL позволяет улучшить безопасность сети, контролировать доступ к ресурсам, ограничивать трафик и предотвращать атаки. Однако, неправильная настройка ACL может привести к некорректной маршрутизации данных или заблокировать допустимый трафик, поэтому важно правильно понимать принципы работы ACL и тщательно настраивать правила.

Итак, ACL в роутерах играет важную роль в управлении доступом и обеспечении безопасности сети. Правильное настройка и применение ACL позволяет контролировать и фильтровать трафик, обеспечивая защиту сети от нежелательных соединений и потенциальных угроз. Однако, необходимо учитывать, что неправильная настройка ACL может создать проблемы и нарушить нормальную работу сети, поэтому важно тщательно проектировать и протестировать правила ACL перед их применением.

Разновидности ACL в роутерах

Access Control List (ACL), или список контроля доступа, представляет собой механизм, используемый в роутерах для управления трафиком и защиты сети. ACL позволяет определить, какие пакеты данных могут проходить через маршрутизатор, основываясь на определенных условиях и правилах.

Существует несколько разновидностей ACL в роутерах:

  1. Стандартный ACL: Этот тип ACL основывается только на информации о исходном IP-адресе пакета данных. Стандартные ACL используются для простой фильтрации трафика и предоставляют возможность блокировать или разрешать интерфейсам маршрутизатора конкретные IP-адреса или диапазоны IP-адресов.
  2. Расширенный ACL: Расширенные ACL могут основываться на различных параметрах пакета данных, таких как исходный и целевой IP-адрес, порт назначения или протокол. Этот тип ACL более гибкий и мощный, и позволяет точнее управлять потоком данных в сети.
  3. Исходящий ACL: Исходящий ACL применяется для фильтрации пакетов данных при их отправке из определенного интерфейса. Он используется для контроля трафика, который покидает сеть, и может ограничивать доступ к определенным ресурсам или удаленным сетям.
  4. Входящий ACL: Входящий ACL контролирует трафик, поступающий на интерфейс роутера. Он позволяет блокировать или разрешать пакеты данных в зависимости от заданных условий и правил.
  5. Named ACL: Named ACL позволяет давать имена ACL правилам, что облегчает их управление и настройку. Named ACL также позволяют создавать более сложные политики безопасности с использованием комбинирования нескольких ACL правил.

Выбор правильного типа ACL зависит от конкретных требований сети и необходимости контроля трафика. Правильное использование ACL может повысить безопасность сети и оптимизировать производительность роутера.

Как настроить и использовать ACL в роутерах?

Настройка и использование ACL (Access Control List) в роутерах позволяет управлять потоком пакетов, проходящих через роутер, на основе заданных правил. ACL позволяет определить, какие пакеты будут разрешены или запрещены на основе определенных условий.

Для начала настройки ACL необходимо определить условия, по которым будут применяться правила. Такие условия могут включать в себя источник и назначение пакетов, протоколы, порты и т. д.

Далее необходимо создать номерированный или безымянный список правил для ACL. Номерированный список предпочтительнее, так как позволяет управлять порядком правил в ACL. Правила в ACL могут быть разрешающими или запрещающими, а также иметь заданный номер, описывающий порядок применения правил.

После создания списка правил необходимо определить, к какому интерфейсу роутера будет применяться ACL. Это можно сделать путем привязки ACL к входящему или исходящему направлению трафика на интерфейсе.

Как только ACL настроен и привязан к интерфейсу, правила начинают обрабатывать поток пакетов, проходящих через роутер. Каждый пакет проверяется по порядку правил в ACL, и если находится соответствие с условиями правила, то применяется указанное в правиле действие.

Важно помнить, что список правил ACL выполняется сверху вниз, поэтому порядок правил имеет значение. Для достижения наилучшей эффективности и безопасности, рекомендуется позиционировать наиболее часто использованные правила ближе к верху списка, а наиболее специфичные правила — ближе к низу.

Практические примеры использования ACL в роутерах

1. Ограничение доступа к определенным сетям или IP-адресам:

Один из самых распространенных примеров использования ACL в роутерах — это ограничение доступа к определенным сетям или IP-адресам. Например, вы можете создать ACL, чтобы разрешить или запретить доступ к определенным сайтам или сервисам в вашей сети. Для этого вам нужно определить список правил в ACL, указать их порядок и применить ACL к соответствующему интерфейсу или входящему/исходящему трафику.

2. Фильтрация пакетов по типу протокола:

Еще одно практическое применение ACL — это фильтрация пакетов по типу протокола. Например, вы можете создать ACL, чтобы разрешить или запретить определенные протоколы, такие как ICMP (протокол управления сообщениями интернета), TCP (протокол управления передачей) или UDP (протокол пользовательских датаграмм) в вашей сети. Это может помочь вам управлять трафиком и обеспечить безопасность вашей сети.

3. Ограничение доступа в сети на основе портов:

ACL также можно использовать для ограничения доступа в сети на основе портов. Например, вы можете создать ACL, чтобы разрешить только определенные порты, связанные с определенными сервисами или приложениями (например, порты 80 и 443 для доступа к веб-сайтам). Такой подход позволяет вам контролировать исходящий и входящий трафик в вашей сети.

4. Ограничение доступа по времени:

Некоторые роутеры поддерживают возможность использования ACL для ограничения доступа к сети в определенные временные интервалы. Например, вы можете создать ACL, чтобы запретить или разрешить доступ к определенному сервису или ресурсу только в определенное время суток. Это может быть полезным, например, для ограничения доступа к социальным сетям или стриминговым сервисам в рабочее время или ночью.

5. Блокировка атак DDOS:

ACL можно использовать для блокировки атак DDoS (распределенная атака отказа в обслуживании), которые направлены на вашу сеть. Например, вы можете создать ACL, чтобы блокировать пакеты с определенными характеристиками или образцами, которые могут быть связаны с атаками DDoS. Такой подход поможет защитить вашу сеть от нежелательного трафика и обеспечить ее нормальное функционирование.

Это лишь несколько примеров использования ACL в роутерах. Важно понимать, что правильная настройка и использование ACL требует хорошего понимания сетевых протоколов, безопасности и конфигурации роутеров. Всегда следуйте руководству пользователя вашего роутера или проконсультируйтесь с опытным сетевым специалистом, чтобы правильно настроить и использовать ACL в вашей сети.

  • Acer есть вай фай роутер
  • Adsl wifi роутер в ростелекоме
  • Acer aspire one как роутер
  • Adsl wifi роутер tp link td854w
  • Ac1900 mu mimo wi fi роутер цена