Pull to refresh

Comments 30

оффтопик, но, даже стыдно — ASA не крутил ни разу
надо хоть эмулятор какой сгородить =)
Есть уже эмуляторы. Кто то даже к GNS его прикрутил. Мне пока не удалось. Довольствуюсь PEMU с пиксом и живым железом :)
Есть уже эмуляторы. Кто то даже к GNS его прикрутил. Мне пока не удалось. Довольствуюсь PEMU с пиксом и живым железом :)
есть пак под винду называется GNS3 v0.6.1 all-in-one который включает в себя Dynamips, Pemu and WinPCAP 4.0.2. Под линуксом надо немного пошаманить.
А его в кучу к ГНСу как прикрутить?

Приходится признать свою чайность в эмуляторах :(

Но я учусь :)
я на линуксе. GNS не юзаю ( im a console nerd, so using dynagen instead of gns ). Сдружить АСАшку с dynagen'ом можно через tap интерфейсы
Да, такую схему я видел. Но ставить на бук ещё линух — голова лопнет :)
Хотя, чтобы не забывать — полезно. Только некогда…

ЗЫ про консоль соглашусь, но только в приложении к циске. С компами я так и не сдружился глубоко.
можно поднять бридж между виртуальными интерфейсами через виндовый netsh, но точный гайд вам придётся искать самому — с той системой давненько не отбщался.
access-list DoS extended permit udp host 1.1.1.1 interface outside eq isakmp
access-list DoS extended permit udp host 1.1.1.1 interface outside eq 4500
access-list DoS extended deny udp any interface outside eq isakmp
access-list DoS extended deny udp any interface outside eq 4500
access-group DoS in int outside control-plane

access-list ipsec-dmz extended permit ip 192.168.1.0 255.255.255.0 10.1.0.0 255.255.0.0
access-list ipsec-dmz extended permit ip 192.168.1.0 255.255.255.0 any

access-list ipsec-outside extended permit ip host 192.168.1.100 10.1.0.0 255.255.0.0
access-list ipsec-outside extended deny ip host 192.168.1.100 any
access-list ipsec-outside extended permit ip 192.168.1.0 255.255.255.0 any

access-list host-100-dc permit ip host 192.168.1.100 10.1.0.0 255.255.0.0
access-list host-100-internet permit ip host 192.168.1.100 any

route dmz 0.0.0.0 0.0.0.0 Nhop track 1
route outside 0.0.0.0 0.0.0.0 NHop 100

no nat-control
global (outside) 1 interface outside
nat (inside) 0 access-list host-100-dc
nat (inside) 1 access-list host-100-internet


Конфиг писал не я, люди которые это наваяли к сожалению на хабре не присутствуют. Но если будут что сказать по этому конфу — говорите!!!
да забыл написать это решение А. Решение Б в процессе )
Совсем чуть-чуть покритикую:
1. В ACL DoS кроме IPSec с хоста 1.1.1.1 не будет пропущено ВООБЩЕ более ничего. В задаче более лояльные условия :)
2. Зачем в ACL ipsec-dmz первая строка?
3. Хоть я и не очень люблю deny в IPSec (с ними бывают косяки, особенно когда циска вяжется с нециской), в данном случае работать будет.

access-list DoS extended permit udp host 1.1.1.1 interface outside eq isakmp
access-list DoS extended permit udp host 1.1.1.1 interface outside eq 4500
access-list DoS extended deny udp any interface outside eq isakmp
access-list DoS extended deny udp any interface outside eq 4500
access-group DoS in int outside control-plane

interface dmz
security-level 100

interface inside
security-level 100

same-security-traffic permit inter-interface

access-list ipsec-dmz extended permit ip 192.168.1.0 255.255.255.0 10.1.0.0 255.255.0.0
access-list ipsec-dmz extended permit ip 192.168.1.0 255.255.255.0 any

access-list ipsec-outside extended permit ip host 192.168.1.100 10.1.0.0 255.255.0.0
access-list ipsec-outside extended deny ip host 192.168.1.100 any
access-list ipsec-outside extended permit ip 192.168.1.0 255.255.255.0 any

access-list host-100-dc permit ip host 192.168.1.100 10.1.0.0 255.255.0.0
access-list host-100-dc permit ip 192.168.1.0 255.255.255.128 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.192 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.224 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.240 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.248 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.252 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.254 any
access-list host-100-dc permit ip 192.168.1.0 255.255.255.255 any

route dmz 0.0.0.0 0.0.0.0 Nhop track 1
route outside 0.0.0.0 0.0.0.0 NHop 100

nat-control
global (outside) 1 interface
nat (inside) 0 access-list host-100-dc
nat (inside) 1 192.168.1.100 255.255.255.255



Второй конф, криво но работать должно :-D
Идею понял.

Про одинаковые security-level это отличная идея. Один из «красивых» вариантов именно такой!

Но дальше чуть-чуть не дотянули до победы:

192.168.1.0/25 включает в себя 192.168.1.100, поэтому в интернет этот хост не пойдёт.
Драсте!
Собственно автороство мое, только щас заметил что забыл в ACL host-100-dc забыл указать постедний октет ;) Щас глянул, если правильно расставитьв се взлетит.
Да, я понял :)

Идея «обогнуть» .100

типа

.99
.101

и далее маской играя

Так тоже можно :)

Но ГОРАЗДО проще написать первой строкой
deny ip host 192.168.1.100

Так тоже работает. Это в 6 ПИКСа так нельзя было сделать, а начиная… с 7.2 (точно, может и раньше) можно в nat 0 ACL писать deny
crypto acl:
permit ofice_net -> any ( в 1ом случае ( через ДМЗ ) очевидно, во втором случае у нас сначало НАТится адрес, а потом уже после трансляции проверяется по криптоакл — соотв для HOSTа никаких deny не надо )

sla monitor & cp acl omitted coz too easy

nat:

в exempt nat можно писать deny ACE

слишком рано ок нажал, продолжение:
nat (inside) 0 acl OFFICE_TO_ANY

сам acl OFFICE_TO_ANY -> deny host 192.168.1.100 any; permit 192.168.1.0/24 any

static ( inside,dmz ) 192.168.1.100 192.168.1.100 netmask 255.255.255.255
static (inside,outside ) 192.168.1.100 acess-list HOST_TO_DCLAN ( where HOST_TO_DCLAN -> permit 192.168.1.100 -> 10.0/16 )

nat(inside) 10 192.168.1.100
global(outside) 10 interface outside

получаем, что для всех ( кроме 100го ) хостов из 192.168.1.0/24 работает exempt nat
для 100го когда работает выделеный канал -> сам в себя натится статикой куда бы не пошел
когда ipsec через outside интерфейс -> натится сам в себя только когда в 10ую сеть идет.
Да, так мне нравится :)

Собственно в задаче, чтобы качественно работало, надо применить (я так задумывал)
deny для nat 0 (работает кажется только с 8.0)
policy static
identity static или (как верно предложили выше) — одинаковый security level на inside и dmz

Вот скстати, вопрос к Вам, что обрабатывается на CPU и что на ASIC :)
ACL — работат как правило на asic (так по крайней мере на R&S)
Так что если тут встает вопрос о красоте против скалабилити, то надо брать в расчет скалабилити.

Имхо, на лабе как раз другая культура ;)
ACL как фильтр на интерфейсе на карточке
ACL как критерий отбора (НАТ, ИПСЕК) — мозгом.
вот спорно. Мне все таки кажется что нат например через cef делается, соотв на младших моделях все через контекст интераптов идет, на старших ( 65 etc ), где есть ASIC — то он програмируется.
Same with acl
Same with cryptoacl ( на той же АСАшке шифрованием вроде как сопроцессор занимается, так что легко можно отбор пакетов для шифрования делать в интераптах, и перенаправлять их на сопроц для шифрования )

Явно то, что НАТ через cef я вроде не видел, но, например, если посмотреть роутер перфоманс табличку ( eg 2811 ):
через process switching — 3k pps дает
через cef — 120k pps

с включеным натом я такого падения не видел ( до 3к pps ).
Хотя NAT наврятли через cef. Скорее через какойнить fast cache. Ибо для динамика например оч сложно наперед cef entry записать
А где на АСЕ cef? :)

Там и проц быстрее для того, чтобы можно было больше его нагружать :)
Хм, блин почему они не выпускают помимо конф гайдов описание архитектуры :)

ASICов на АСЕ тоже кстати вроде как нет ( это к «ACL как фильтр на интерфейсе на карточке» )

Надо тогда разделить понятие:
Обработка Процом как процесс ( дада масло масло :) ) — process switching
Обработка через интерапты — cef or somekind of fast cache switching
Hardware — через ASIC

Мне кажется, что АСА все таки юзает какой либо fast-cache для свитчинга/nata/acl

Я думаю спорить на тему через что работает не имеет смысла, т.к. через cef не вариант, уж больно многомерен станет cef из за sec фишек, где держать допустим tcp seq? Тоже в cef? Я исхожу из того что, хидер и тейлер на пакет клеит cef хоть, и не на 4ом уровне.
Я как то разбирал 5510, кроме мамки камня я там ничего не нашел любопытного. Вообще надо бы конечно узнать. и насчет АСЕ и насчет ASA.
оффтоп_он
оригинал fedia:

А Вы не знакомы с Ильей Солохиным из Cisco?
оффтоп_офф
Я очень много с кем знаком из циски, но чтобы близко — нет, Илью близко не знаю.

Кстати, возможно в лицо узнаю :)
Резюмируем:

Вариант
no nat-control

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

Это можно сделать например так:
access-list NONAT100 permit h 192.168.1.100 10.1.0.0 255.255.0.0
nat (inside) 0 access-l NONAT100
nat (inside) 1 192.168.1.100
global (outside) 1 int

Вариант
nat-control

Тут сложнее, потому что надо явно описать тот трафик, который не надо транслировать.
Такой вариант (сам просится) использовать нельзя
access-l WRONG perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l WRONG

т.к. nat 0 отработает в сторону и dmz и outside интерфейсов и до трансляции 192.168.1.100 дело не дойдёт

Поэтому есть несколько вариантов.

В лоб. Работает всегда:
описываем тот трафик, который никогда не транслируем
access-list NONAT perm ip h 192.168.1.100 10.1.0.0 255.255.0.0
access-list NONAT deny ip h 192.168.1.100 255.255.255.0 any
access-list NONAT perm ip 192.168.1.0 255.255.255.0 any

nat (inside) 0 access-l NONAT
для nat 0 допускаются строчки deny в ACL

deny для nat 0 говорит, чтобы циска дальше искала правила трансляций.
Нам необходимо странслировать 192.168.1.100 в outside
nat (inside) 1 192.168.1.100
global (outside) 1 int
и в dmz
static (inside,dmz) 192.168.1.100 192.168.1.100

еще вариант — применить военную хитрость: между интерфейсами с одинаковым security level осуществляется маршрутизация, даже если включен nat-control!

int e0/1
sec 100
nameif inside

int e0/2
sec 100
nameif dmz

same-security-traffic permit inter-interface

Теперь трафик в dmz пойдет и без правила nat 0 и осталось описать только правила для outside

access-list NONAT perm ip h 192.168.1.100 10.1.0.0 255.255.0.0
access-list NONAT deny ip h 192.168.1.100 255.255.255.0 any
access-list NONAT perm ip 192.168.1.0 255.255.255.0 any
nat (inside) 0 access-l NONAT

Т.к. шифрование происходит после НАТа, для IPSec достаточно написать один ACL

access-l IPSEC perm ip 192.168.1.0 255.255.255.0 any

Без сомнения есть ещё варианты: с использованием некрасивого ACL, исключающего 192.168.1.100 без строчек deny (так имело смысл делать для ОС 6), можно использовать policy static хоста 192.168.1.100 в себя при проходе в сеть 10.1.0.0/16

Sign up to leave a comment.

Articles