четверг, 10 января 2013 г.

Настройка NAT и ACL на CISCO


Access Control List

Тема достаточна проста, но есть некоторые нюансы.
ACL используется не только для запрета или разрешения чего-либо кому-либо. На основе ACL так же работает, например, Policy-Based Routing (PBR) кого и куда нужно отправить в зависимости от условий заданных в access list.

Виды ACL
Вообще говоря, списки доступа бывают разными:
  • Стандартные
  • Расширенные
  • Динамические
  • Рефлексивные
  • Повременные

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



GW(config)# ip access-list standard PermitALL
GW(config-ext-nacl)# remark ALL
GW(config-ext-nacl)# permit any

GW(config)# ip access-list extended Servers-out
    permit icmp any any
    permit ip host 192.168.5.5 any
    permit tcp any host 192.168.0.10 range 135 139
    permit tcp any host 192.168.0.10 eq 445
    permit udp any host 192.168.0.10 range 135 139
    permit tcp any host 192.168.0.10 eq 3389

Any — это специальное слово, которое означает адрес сети и обратную маску 0.0.0.0 0.0.0.0 и означает, что под правило подпадают абсолютно все узлы из любых сетей.
host — оно означает маску 255.255.255.255 — то есть именно один единственный указанный адрес.

После того как acl создан его нужно применить куда-либо, например на интерфейс.

GW(config)# int fa0/0.3
GW(config-subif)# ip access-group Servers-out out

На in или на out нам нужно это делать? Если мы не хотим пускать пакеты в сторону серверов, которые уже оказались на маршрутизаторе, то это будет исходящий трафик.
В конце каждого ACL в циске добавляется неявное правило deny any any.

NAT

NAT трансляцией приватных адресов в "белые". Для частных сетей выделено 3 пула адресов:

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16


Статический

В этом случае один внутренний адрес преобразуется в один внешний. И при этом все запросы, приходящие на внешний адрес будут транслироваться на внутренний. Словно бы этот хост и является обладателем этого белого IP-адреса. 
Настраивается следующей командой:
Router (config)# ip nat inside source static 172.16.6.5 198.51.100.2

Many-to-One

Тип имеет несколько названий: NAT Overload, Port Address Translation (PAT), IP Masquerading, Many-to-One 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.

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

Или если на разных хостах один порт

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



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





Огромнейшее спасибо: 
http://linkmeup.ru/

Почитать больше:
http://habrahabr.ru/post/108931/
http://habrahabr.ru/post/108978/


Комментариев нет:

Отправить комментарий