How to Static NAT two Public IPs to 1 Private IP?

A common question I get is can I NAT more than one public IP to a private IP using the Cisco ASA (or PIX) firewall.

The simple answer is yes, but you can’t using the «static» command as you would expect or else you’ll get the error «ERROR: duplicate of existing static».

So the following configuration will fail;

However using policy NAT on the PIX/ASA using code 7.x and beyond (Tested on 8.x) the following will work.

Interestingly if you ping 100.20.30.3 from the outside you see the echo-reply come from 201.10.10.2. ICMP isn’t stateful through the firewall so the Policy NAT will use the first IP in the list as the source address of any outgoing initiated flow.

VLAN trunking на Cisco ASA

* VLAN Trunking (ASA 5510, ASAOS 7.2.1)

Hey! If you are trying to trunk VLAN 1, you are going to run into trouble (using the below config, I think you may have to configure Ethernet0/3 (NOT a sub-interface) to have an ip address. You will not be able to type in ‘vlan 1’, as it is assumed). You have been warned.

Разные варианты NAT на Cisco ASA

* One-to-One (aka two-way) NAT (ASA 5510, ASAOS 7.2.1)

The syntax for this can be confusing. Here is a generic example:
static (outside interface name, inside interface name) inside ip, outside ip netmask 255.255.255.255

* Simple Many-to-One (aka one-way) NAT (ASA 5510, ASAOS 7.2.1)

* Complex Many-to-One (aka one-way) NAT (ASA 5510, ASAOS 7.2.1)

Failover into Cisco ASA

* Basic Failover (ASA 5510, ASAOS 7.2.1, Requires 1 dedicated interface)

* Stateful Failover (ASA 5550, ASAOS 8.0.4, Requires 2 dedicated interfaces)

Cisco ASA — Enable SSH

Cisco ASA — General VPN Troubleshooting

Перехват трафика на Cisco ASA

 

Предисловие

…Есть сервер приложения. На нем вертится это самое приложение. Сам сервер на всякий случай спрятан от пользователей за фаерволом.

Звонит однажды администратор приложения сетевому администратору и говорит:

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

— Хорошо – говорит сетевой админ. – Скажи мне, какие порты использует твоя новая фишка.

— TCP/abxy и TCP/abxz

— эти порты открыты на фаерволе. У тебя что то не так на сервере.

— На сервере все в порядке. Это на твоем сетевом железе что то не так.

Один из способов решения проблемы — посмотреть и проанализировать интересующий обоих администраторов трафик. В данном случае можно обойтись без снифера так как cisco ASA умеет перехватывать проходящий через нее трафик. О том, как это сделать рассказано в этой статье.

Примеры настройки для Cisco ASA5510.

Процесс состоит из нескольких этапов:

— создание access-list-ов, описывающих трафик, который нужно перехватить

— запуск перехватчиков

— просмотр перехваченных данных

Схема соединения, рассматриваемых ниже примеров, представлена на рисунке.

 

Сначала создаем access-list, в котором описываем трафик, который собираемся перехватывать.

Согласно этому листу, будем перехватывать весь ip трафик, идущий в обоих направлениях между 10.1.1.10 и 192.168.1.4. При необходимости, можно ограничиться только нужными протоколами и портами.

Теперь стартуем перехват пакетов с помощью команды capture

Здесь CA1 – это имя перехватчика. outside – имя интерфейса, на котором будем перехватывать пакеты.

По-хорошему, надо запустить еще один перехватчик – на интерфейсе ‘DMZ’.

В результате мы будем иметь данные о трафике на обоих интерфейсах. Если эти данные будут различаться, можно будет сделать вывод о том, что ASA действительно не пропускает определенный трафик. Дело в том, что команда capture перехватывает трафик до того, как к нему будут применены какие либо политики безопасности. Пусть, например, access-list на входе интерфейса outside не пропускает любые ICMP пакеты. Тем не менее, перехватчик, настроенный на этом интерфейсе, увидит ‘следы’ от команды ‘ping’

Проверим состояние перехватчиков

Теперь запустим ping с компьютера пользователя в сторону сервера.

Еще раз проверим состояние перехватчиков.

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

Мы получили две ‘фотографии’ прохождения пакетов через интерфейсы фаервола. Можем, даже, сказать, что на прохождение от ‘outside’ до ‘DMZ’ пакетам требуется 120 — 170 мкс, а в обратном направлении — 15 -30 мкс.

Теперь попробуем открыть WEB станицу с сервера 192.168.1.4 и посмотрим, на перехваченный трафик:

Для того, что бы увидеть содержимое пакетов данных, воспользуемся командой ‘show capture CA1 dump’.

В этом коротком фрагменте мы видим, как браузер начинает открывать WEB страницу.

Таким образом, наша цель – перехватить и просмотреть пользовательский трафик, достигнута.

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

Для очистки буфера используется команда ‘clear capture’.

Для полной остановки и удаления перехватчиков нужно выполнить команду ‘no capture’.

Теперь можно удалить ставший ненужным access-list CAPT1.

В заключении можно сделать вывод: Cisco ASA предоставляет мощное средство мониторинга, которое поможет найти ошибки в настройке сетевых устройств.

Настройка Internet Authentication Service (RADIUS) в Windows Server 2003

Устанавливаем службу Internet Authentication Service, которая в Windows Server выполняет роль RADIUS-сервера. Установка производится из меню Установка программ, дополнительные компоненты Windows.

Вводим настройки Cisco ASA 5510 — IP и пароль.. В свою очередь его прописываем на Cisco ASA:

Вводим настройка аутентификации.

Отключаем шифрование.

Теперь Cisco будет успешно авторизоваться на RADIUS-сервере.

URL фильтрация в Cisco ASA

Одной из возможностей Cisco ASA является фильтрация по URL.

Что это значит? Это значит, что мы можем настроить наше устройство таким образом, чтоб запретить или наоборот разрешить вход пользователю по определенному URL, либо его содержанию.

Фильтрация URL, способом как это будет показано ниже, подходит для небольших офисов, небольшого количества правил. Если вы планируете пользоваться фильтрацией в больших компания и использовать большое количество правил, то рекомендуется использовать отдельные продукты, такие как WebSense или N2H2, которые замечательно интегрируются вместе с Cisco ASA.

Рассмотрим более подробно на примерах.

Допустим мы хотим заблокировать ресурс mail.ru (для нашей компании это стало актуально, потому как «работники» стали много проводить рабочего времени на этом ресурсе, играются, ну и так далее.), ну и всеми любимые одноклассники (на работе нужно работать )

Для начала нужно описать регулярным выражением тот url, или его содержимое, с которым мы будем в дальнейшем работать (тоесть блокировать).

В режиме глобальной конфигурации:

[cc lang=»bash»]
regex blockmailru «mail.ru»
regex blockodnoklassniki.ru «odnoklassniki.ru»
[/cc]

Затем создаем class-map:

[cc lang=»bash»]
class-map type inspect http match-any block-url-class
match request header host regex blackmailru
match request header host regex blockodnoklassniki.ru
[/cc]

После создаем policy-map. Эта политика будет просто дропать соединения:

[cc lang=»bash»]
policy-map type inspect http block-url-policy
parametrs
class block-url-class
drop-connection log
policy-map global_policy
class inspection_default
inspect http block-url-policy
[/cc]

Ну и «привязываем» нашу политику:

[cc lang=»text»]
service-policy global_policy global
[/cc]

Теперь пробуем зайти на эти два сайта. Если все настроено верно, то соединение с ресурсом не будет установлено.

К слову о regex. Для того чтобы проверить наше регулярное выражение, можно использовать test regex, например:

[cc lang=»text»]
ciscoasa# test regex http://mail.ru mail.ru
INFO: Regular expression match succeeded.
ciscoasa#
[/cc]

http://mail.ru – это пользовательский запрос

mail.ru – это наше регулярное выражение.

Ну и собственно устройство нам говорит, что данный запрос попадает под наше выражение.

[cc lang=»text»]
ciscoasa# test regex http://mail.ru maail.ru
INFO: Regular expression match failed.
ciscoasa#
[/cc]

Здесь соответственно не попадает.

Описанными действиями мы запретили посещение сайтов абсолютно всем пользователям.

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

Пусть наш разрешенный хост имеет адрес 10.0.0.20.

Создадим access-list, в котором запретим применять url фильтры для данной машины.

[cc lang=»text»]
access-list userregex extended deny tcp host 10.0.0.20 any eq www
access-list userregex extended permit tcp any any eq www
[/cc]

Далее создадим class-map:

[cc lang=»text»]
class-map block-users-class
match access-list userregex
[/cc]

Теперь создадим policy-map

[cc lang=»text»]
policy-map block-users-url-policy
class block-users-class
inspect http block-url-policy
[/cc]

И «привяжем» эту политику на интерфейс, который «смотрит» в локальную сеть – inside

[cc lang=»text»]
service-policy block-users-url-policy interface inside
[/cc]

Если все настроено верно, то теперь мы получим: Всем пользователям кроме хоста 10.0.0.20 будет запрещен доступ на mail.ru, odnoklassniki.ru.

Что и требовалось.

Может возникнуть такая ситуация, когда нужно дать доступ только к одному URL. Для этого немного модифицируем наш class-map

[cc lang=»text»]
class-map type inspect http match-any block-url-class
match not request header host regex blackmailru
[/cc]

Всё остальное остается прежним. Таким образом мы дали доступ только на описанный в соответствующем regex URL.

Для того, чтоб запретить доступ к тому или иному URL , который содержит скажем слово «music», мы можем написать class-map таким образом:

[cc lang=»text»]
class-map type inspect http match-all allow-url-class
match request uri regex music
regex music «/music/»
[/cc]

Теперь Вы сами можете сделать достаточно гибкие правила для URL фильтрации используя Cisco ASA и не используя какие-либо внешние продукты, такие как WebSenser, squid, и так далее.

Для создания собственных регулярных выражений, ознакомьтесь здесь

Включение SSH на Cisco ASA 5510

Once you are done with the basic configuration of Cisco ASA 5510, the next step is to enable SSH access from remote computers internally or externally, Steps involved in configuring SSH is as follows

[cc lang=»text»]
Firewall_5510# config t
Firewall_5510(config)# enable password xxxxx(your password)
[/cc]

Enable password is necessary to enable ssh access

[cc lang=»text»]
Firewall_5510(config)# username test password test123
[/cc]

User name and password for connecting using ssh

[cc lang=»text»]
Firewall_5510(config)# aaa authentication ssh console LOCAL
[/cc]

Different authentication can be  configured, like RADIUS, TACACS+, etc.., here we specified Local authentication with user name and password mentioned above

[cc lang=»text»]
Firewall_5510(config)# ssh 192.168.x.x 255.255.255.o inside
[/cc]

Permit ssh access to firewall from specified ip or subnet, inside

[cc lang=»text»]
Firewall_5510(config)# domain-name TEST.ORG
[/cc]

Domain name of your company. RSA key is generated using domain name + firewall name combination

[cc lang=»text»]
Firewall_5510(config)# crypto key generate rsa modulus 1024
[/cc]

Generate RSA key

You are done !!!!!!!!!!!!!!!!!!!!!!

now the firewall can be accessed from inside network……………………