The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как фильтровать трафик, не прошедший NAT?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Маршрутизаторы CISCO и др. оборудование. (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 10-Дек-03, 10:34  (MSK)
Вопрос, казалось бы, очень простой, но я не смог найти на него вразумительного ответа. Итак, трафик, для которого не нашлось конкретного маршрута, по-умолчанию направляется в интернет через Async1.

interface Ethernet0
ip address a.b.c.d 255.255.255.0
ip nat inside

interface Async1
ip address negotiated
ip nat outside

ip nat inside source list Inet interface Async1 overload

ip route 0.0.0.0 0.0.0.0 Async1

Список Inet определяет, кого и куда следует пускать. Проблема состоит в том, что пакеты, не удовлетворяющие этому acl, всё равно уходят через Async1, только не оттранслированные. Понятно, что дальше провайдера они не уйдут, но канал забивать не хочется.
Подскажите, пожалуйста, каким образом мне пускать наружу только пакеты, подлежащие NAT-у? Если вешать acl на выход с Async1, то возникают проблемы с DDR, т.к. адрес negotiated, а до его получения "интересующие" пакеты не добираются до интерфейса, чтобы инициировать дозвон. Возможно, тут надо использовать policy routing или какой "хитрый" nat?

Заранее признателен,
Сергей.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от peresvet Найти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 10-Дек-03, 10:54  (MSK)
если вешать acl на пакеты входящие на ethernet?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 10-Дек-03, 11:12  (MSK)
>если вешать acl на пакеты входящие на ethernet?

Тоже не годится, т.к. кроме инета есть динамические маршруты на другие сети, и на входе ещё неизвестно, куда пакеты адресованы.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от ВОЛКА emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 11:59  (MSK)
вам правильно сказали...
ACL который указывается в NAT - ничего не ограничивает, предназначен только для того, чтобы указывать, какие адреся натить...

ACL на интерфейсе - запрещает или разрешает доступ

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 12:32  (MSK)
>вам правильно сказали...
>ACL который указывается в NAT - ничего не ограничивает, предназначен только для
>того, чтобы указывать, какие адреся натить...
>
>ACL на интерфейсе - запрещает или разрешает доступ

Это я и сам прекрасно понимаю. Мне нужно именно запрещать или разрешать доступ, но делать это до NAT-а, когда ещё известен source-адрес. Допустим, имеется acl следующего вида:

ip access-list extended Inet
remark Proxy
permit tcp host proxy_server gt 1024 any eq www
permit udp host proxy_server gt 1024 any eq domain
permit tcp host proxy_server gt 1024 any eq 443
permit tcp host proxy_server gt 1024 any eq ftp
permit tcp host proxy_server gt 1024 any gt 1024
remark Inet-users
permit tcp some_addresses gt 1024 any eq pop3
permit tcp some_addresses gt 1024 any eq smtp
permit icmp some_addresses any echo
remark DNS servers
permit udp host dns_1 gt 1024 any eq domain
permit tcp host dns_2 gt 1024 any eq domain

Если я повешу его на выход с Async1, он будет блокировать всё, т.к. пакеты, уходящие с асинка имеют сорсом адрес этого асинка.
Если повесить его на вход Ethernet0, будут недоступны сети, подключенные к другим интерфейсам. Используется динамическая маршрутизация, имеются маршруты в том числе и к адресам из зарегистрированного диапазона, т.ч. невозможно предсказать, куда пойдёт пакет.
Если с асинка выпускать только пакеты, имеющие сорсом его адрес, то перестаёт работать DDR, т.к. когда у интерфейса нет адреса, NAT не работает. К тому же адрес у Async1 устанавливается автоматически и в acl его не пропишешь.
Как тут быть, я даже не знаю...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 09:39  (MSK)
Единственное, что приходит в голову - прописать дефолтный маршрут на loopback, а с него сделать route-map на async.

interface Ethernet0
ip address a.b.c.d 255.255.255.0

interface Loopback0
ip nat inside
ip policy route-map inet-access

interface Async1
ip address negotiated
ip nat outside

ip nat inside source list Inet interface Async1 overload

route-map inet-access permit 10
match ip address Inet
set interface Async1

ip route 0.0.0.0 0.0.0.0 Loopback0

Интересно, будет ли это работать? Уж как-то не очень красиво выглядит. Никто ничего подобного не делал?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Vlad emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 11:58  (MSK)
а поставить на асинк аксселист на аут который будет рубить пакеты неотранслированные?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 12:37  (MSK)
Ещё бы знать, как это сделать. Есть ли чёткий критерий того, оттранслирован пакет, или нет?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Vlad emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 13:02  (MSK)
>Ещё бы знать, как это сделать. Есть ли чёткий критерий того, оттранслирован
>пакет, или нет?

конечно если пакет идет наружу с интерфейса со все еще внутренним IP источника а на IP самого интерфейса то значит он не транслирован

если у вас сеть к примеру 192.168.0.0 255.255.255.0

то создаете простой ацл
access-list 11 deny 192.168.0.0 0.0.0.255
access-list 11 permit any

потом заходите на интерфейс
conf t
in acync 0 (или какой там у вас)
ip access-group 11 out

или можно сделать сразу аксселист который выпускает наружу только пакеты с реальными IPшниками вашей сети
access-list 11 permit x.x.x.x 0.0.0.255

в любом случае наружу пакеты неоттранслированные с внутренних IP уходить не будут

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 13:21  (MSK)
>если у вас сеть к примеру 192.168.0.0 255.255.255.0
>
>то создаете простой ацл
>access-list 11 deny 192.168.0.0 0.0.0.255
>access-list 11 permit any
>

Это я пробовал в первую очередь, при этом, как уже упоминалось, не работает дозвон по требованию. Когда связь не установлена, асинк не имеет адреса, nat не работает, пакеты идут на интерфейс неоттранслированными, блокируются ацл-ом и не инициируют дозвон. Можно, конечно создать acl такого вида:

permit содержимое листа Inet
deny вся остальная сеть
permit any

На этом, скорее всего, и придётся остановиться. Только выглядит это как-то некрасиво: правила доступа в интернет (довольно громоздкие) приходится дублировать в двух акцес-листах, а мне их иногда приходится менять. Одним листом никак нельзя обойтись?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Vlad emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 13:36  (MSK)
а зачем дублировать?
сначала нужно отфильтровать на изернете все что разрешено
остальное денаить сразу
а на нат просто разрешить все
потому что уже отфильтровано

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Как фильтровать трафик, не прошедший NAT?" 
Сообщение от Сергей emailНайти другие сообщения данного автораПоместить сообщение в закладки. См. нижнее поле навигации. on 11-Дек-03, 13:54  (MSK)
>а зачем дублировать?
>сначала нужно отфильтровать на изернете все что разрешено
>остальное денаить сразу
>а на нат просто разрешить все
>потому что уже отфильтровано

К сожалению, это невозможно, по причине, указанной ранее. Может быть, я не совсем чётко её описал, потому повторюсь. Кроме Ethernet0 и Async1, есть ещё интерфейс Serial0, подключенный к ведомственной сети. Маршрутная информация из той сети приходит по протоколу eigrp, через сериал доступно множество адресов из интернет-диапазона, на которые нужно пускать всех. Таким образом, на асинк направляется трафик, для которого не нашлось конкретного маршрута. Я просто не смогу написать ацл, фильтрующий трафик на езернете, т.к. до маршрутизации я не знаю, куда этот трафик направляется.
Как воткнуть acl между рутингом и натом?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру