Cisco ASA

Материал из Xgu.ru

Перейти к: навигация, поиск

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

Содержание

[править] Базовые настройки

Задание имени устройству:

ciscoasa(config)# hostname asa1

[править] Настройка интерфейсов

Для того чтобы разрешить прохождение трафика через интерфейсы ASA, необходимо задать имя интерфейса и IP-адрес (для режима routed).

  int eth1
  nameif inside
  ip address 10.1.1.1 255.255.255.0
  speed 100
  duplex full 
  no shut
  exit

[править] Management интерфейс

management-only

[править] Задание IP-адреса

Cisco ASA не поддерживает secondary-адреса на интерфейсах [1]. При необходимости, можно попробовать такой вариант [2].

[править] Уровни безопасности интерфейсов

На ASA каждому интерфейсу присваивается уровень безопасности:

  • Значение уровня безопасности может быть от 0 до 100;
  • 100 — максимальный уровень безопасности. Как правило, присваивается интерфейсу, который находится в локальной сети;
  • 0 — минимальный уровень безопасности. Присваивается внешнему интерфейсу;
  • По умолчанию на всех интерфейсах уровень безопасности 0

[править] Влияние уровней безопасности на другие функции

Уровни безопасности контролируют поведение ASA в таких ситуациях:

  • Доступ к сети — по умолчанию трафик, который идет с интерфейса с более высоким уровнем безопасности на интерфейс с меньшим уровнем безопасности, разрешен. Хосты, которые находятся на более безопасном интерфейсе могут получить доступ к любому хосту, находящемуся на менее безопасном интерфейсе. Это правило можно ограничить, применив access-list.
  • Инспектирование — инспектирование некоторых протоколов зависит от уровней безопасности интерфейсов:
    • Инспектирование NetBIOS — применяется только для исходящих соединений.
    • Инспектирование SQLNet— если между парой хостов существует control connection к порту SQLNet (OraServ), то только входящий трафик разрешен.
  • Фильтрация — фильтрация HTTP(S) и FTP применяется только к исходящим соединениям (с более безопасного уровня на менее безопасный).
  • NAT control — когда включен NAT control, то для хостов, которые находятся на интерфейсе с более высоким уровнем безопасности, обязательно должны быть настроены правила трансляции для того чтобы они могли получить доступ к хостам, которые находятся на интерфейсе с более низким уровнем безопасности.
  • Команда established — эта команда пропускает соединения с менее безопасного интерфейса на более безопасный, если уже существует установленное обратное соединение.

[править] Правила взаимодействия между интерфейсами с различными уровнями безопасности

Правила взаимодействия между интерфейсами с различными уровнями безопасности:

[править] Правила взаимодействия между интерфейсами с одинаковыми уровнями безопасности

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

Разрешить передачу трафика между интерфейсами с одинаковыми уровнями безопасности:

asa1(config)# same-security-traffic permit inter-interface

Правила взаимодействия между интерфейсами с одинаковыми уровнями безопасности (после разрешения коммуникаций между ними):

  • Разрешена передача трафика между интерфейсами с одинаковым уровнем безопасности.
  • Правила инспектирования применяются к трафику, который передается в обоих направлениях (для тех правил инспектирования в которых учитывается направление трафика).
  • Правила фильтрации HTTP(S) и FTP применяются в обоих направлениях.
  • Правила трансляции не обязательно должны быть настроены, даже если включен NAT control.
  • Команда established может применяться в обоих направлениях.

[править] Просмотр информации об интерфейсах

Просмотр информации о именах интерфейсов и уровнях безопасности:

asa1(config)# sh nameif      
Interface                Name                     Security
GigabitEthernet0/0       outside                    0
GigabitEthernet0/1       inside                   100

Информация о статусе интерфейсов и IP-адресах:

asa1(config)# sh int ip br
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         10.0.1.1        YES unset  administratively down down
GigabitEthernet0/1         192.168.1.1     YES unset  administratively down down
GigabitEthernet0/2         unassigned      YES unset  administratively down down
GigabitEthernet0/3         unassigned      YES unset  administratively down down
Internal-Control0/0        127.0.1.1       YES unset  up                    up  
Internal-Data0/0           unassigned      YES unset  up                    up  
Management0/0              unassigned      YES unset  administratively down down
# show run interface
# show interface
# show ip address

This command shows the primary IP addresses (called “System” in the display) for when you configure high availability as well as the current IP addresses. If the unit is active, then the system and current IP addresses match. If the unit is standby, then the current IP addresses show the standby addresses.

[править] Использование имен

		# names
		# name 10.0.1.1 DMZ

[править] Команды

asa1(config)# shun
asa1(config)# show asp drop
management-access inside


[править] Просмотр всех существующих команд

Так как количество команд очень большое, то желательно выполнять команду с соответствующим фильтром.

Просмотр всех существующих команд включающих слова debug vpn:

ASA1(config)# sh parser dump all | include debug vpn   
1 no debug vpnlb 
1 no debug vpn-sessiondb 
15 debug vpnlb 
15 debug vpn-sessiondb 
15 undebug vpnlb 
15 undebug vpn-sessiondb 

[править] Создание alias для команд

Создание alias:

ASA1(config)# command-alias exec isakmp sh crypto isakmp sa   

Проверка alias:

ASA1(config)# isakmp

There are no isakmp sas

Просмотр настроенных alias:

ASA1(config)# sh run command-alias 
command-alias exec isakmp sh crypto isakmp sa

[править] Справка

Справка о команде:

asa1# help <command>

Например, справка о команде hostname:

asa1# help hostname

USAGE:

        hostname <name>
        show hostname [fqdn]
        show running-config [all] hostname

DESCRIPTION:

hostname        Change host name

[править] Работа с конфигурационными файлами и ОС

Посмотреть текущую конфигурацию:

asa1# show running-config  

В ASA есть много настроек по умолчанию. Для того чтобы не загромождать конфигурационный файл, они не отображаются в выводе команды show run. Для просмотра всех команд конфигурационного файла используется команда show run all.

Посмотреть текущую конфигурацию и скрытые команды:

asa1# show running-config [all] [command] 

Посмотреть стартовую конфигурацию:

asa1# show startup-config

Удалить стартовую конфигурацию:

asa1# write erase

Удалить текущую конфигурацию:

asa1# clear configure all

Скопировать текущую конфигурацию в стартовую:

asa1# copy run start

более быстрый вариант:

asa1# wr

[править] Управление процессом загрузки ОС и конфигурационных файлов

Показать содержимое директорий:

asa1# show dir

Показать содержимое файла:

asa1# more <файл>

Указать файл ОС, который будет использовать ASA:

asa1(config)# boot system flash:/image.bin

Просмотр текущих настроек загрузки ОС и конфигурационного файла:

asa1# show bootvar

BOOT variable = 
Current BOOT variable = 
CONFIG_FILE variable = 
Current CONFIG_FILE variable = 

[править] Перезагрузка ASA

Установить время перезагрузки:

asa1(config)# reload [at hh:mm [month day | day month]] [cancel] [in [hh:]mm] [max-hold-time [hh:]mm]
 [noconfirm] [quick] [reason text] [save-config] 

Отменить запланированную перезагрузку:

asa1(config)# reload cancel 

Проверить настройки перезагрузки:

asa1# show reload

[править] Просмотр информации

		# sh memory
		# sh version
		# sh history

[править] Трансляция адресов

Основная страница: Cisco ASA/NAT

[править] 4-1

ASA(config)# sh conn
2 in use, 5 most used
TCP out win2k:80 in linux:59338 idle 0:00:11 bytes 1483 flags UIO
TCP out mac:22 in linux:60294 idle 0:22:20 bytes 5732 flags UIO

!!! Если нет соединений обновить браузер

Зайти на веб сервер Зайти на ftp сервер

  global (dmz) 1 172.16.1.20-172.16.1.254 netmask 255.255.255.0
  clear xlate 
  wr mem
  show arp
  sh xlate
  sh xlate deta
  sh conn
  sh xlate deta
  sh conn
  sh conn det
  sh local-host linux

[править] Маршрутизация

[править] ACL

[править] Отличия от настройки ACL на маршрутизаторах

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

Например, если в ACL необходимо разрешить прохождение IP-трафика из сети 192.168.5.0/24 в любую другую сеть, то:

  • на маршрутизаторе ACL будет выглядеть таким образом:
access-list TEST permit ip 192.168.5.0 0.0.0.255 any
  • а на ASA:
access-list TEST permit ip 192.168.5.0 255.255.255.0 any

Кроме того, отличается применение ACL на интерфейсе. На ASA ACL применяется так:

ASA(config)# access-group <имя ACL> <in | out> interface <имя интерфейса>

Пример применения ACL TEST для входящего трафика на интерфейсе outside:

ASA(config)# access-group TEST in interface outside

[править] Разрешение ICMP

Пингуем интерфейсы

По умолчанию прохождение icmp пакетов через АСА запрещено

1 Запретили прохождение icmp request

ASA(config)# icmp deny any echo inside 
ASA(config)# sh run icmp
ASA(config)# clear configure icmp

2. Настраиваем ACL для трафика из интернета

  capture INS_linux interface inside trace buffer 1534 
  capture OUT_win2k interface outside trace buffer 1534 

2.1. Статические записи для внутреннего хоста и DMZ хоста

  static (dmz,outside) 192.168.1.11 mac

или

  static (dmz,outside) 192.168.1.11 mac netmask 255.255.255.255

  static (inside,outside) 192.168.1.10 linux
  sh run static 

2.2. Проверяем, что без ACL не получается зайти во внутр сеть. Packet tracer 2.3. Создаем ACL чтобы трафик (icmp, ftp, ssh, http) проходил к DMZ хосту (не забывать о том что адреса транслируются) 2.4. Создаем ACL чтобы трафик (icmp, ftp, ssh, http) проходил к внутреннему хосту 2.5. Смотрим командами show на ACL


3. Проверяем пройдет ли теперь трафик. Packet tracer

[править] Time-based ACL

4. Настройка и проверка time-based ACL 4.1 Настройка периода времени

ASA(config)# sh run time-range 
!
time-range TIMEACL
 absolute start 00:00 12 January 2008 end 17:00 16 January 2008
 periodic weekdays 8:00 to 17:00
!

4.2. Удаляем строку из ACL

ASA(config)# no access-list ACLOUT line 1 extended permit tcp 192.168.1.0 255.255.255.0 host 192.168.1.10 eq ssh

Добавляем времменую запись

 access-list ACLOUT line 4 permit tcp any host 192.168.1.10 eq ssh time-range TIMEACL

Проверяем ACL

ASA(config)# sh access-list 
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096)
            alert-interval 300
access-list ACLOUT; 8 elements
access-list ACLOUT line 1 extended permit tcp 192.168.1.0 255.255.255.0 host 192.168.1.11 eq ssh (hitcnt=0) 0x7d530f70 
access-list ACLOUT line 2 extended permit tcp 192.168.1.0 255.255.255.0 host 192.168.1.11 eq www (hitcnt=0) 0x7c8b272c 
access-list ACLOUT line 3 extended permit tcp 192.168.1.0 255.255.255.0 host 192.168.1.11 eq ftp (hitcnt=0) 0xc787e110 
access-list ACLOUT line 4 extended permit tcp any host 192.168.1.10 eq ssh time-range TIMEACL (hitcnt=0) (inactive) 0xbf6 
access-list ACLOUT line 5 extended permit tcp 192.168.1.0 255.255.255.0 host 192.168.1.10 eq www (hitcnt=0) 0x79a98bd5 
access-list ACLOUT line 6 extended permit icmp any any echo (hitcnt=0) 0xadc5921b 
access-list ACLOUT line 7 extended permit icmp any host 192.168.1.10 echo-reply (hitcnt=0) 0x58d075a0 
access-list ACLOUT line 8 extended permit icmp any host 192.168.1.11 echo-reply (hitcnt=0) 0xbe0eccae 

Заходим SSH и у нас ничего не получаеттся

4.3. Меняем время на ASA. Теперь запись активна Проверяем

access-list ACLOUT line 4 extended permit tcp any host 192.168.1.10 eq ssh time-range TIMEACL (hitcnt=1) 0xbf619589 

4.4. Возвращаем запись и время меняем на правильное

5. Настройка исходящего ACL

access-list ACLIN extended deny tcp any any eq www 
access-list ACLIN extended permit tcp 11.1.1.0 255.255.255.0 host mac eq ftp 
access-list ACLIN extended deny ip any any 

6. Проверка исходящего ACL

После проверки удаляем его

[править] object group

1. Настраиваем service object group

ASA(config)# sh run object-group 
object-group service MYSERVICES tcp
 description: HTTP and FTP traffic
 port-object eq www
 port-object eq ftp

2. Настраиваем icmp-type object group

object-group icmp-type PING
 description: Request Reply Unreachable
 icmp-object echo
 icmp-object echo-reply
 icmp-object unreachable

3. Настраиваем network object group

object-group network DMZ_mac
 description: macbook
 network-object host 192.168.1.11
object-group network ALLSERVERS
 network-object host 192.168.1.11
 network-object host 192.168.1.10
 network-object host 192.168.1.6
 network-object host 192.168.1.7

4. Настраиваем ACL с object group

Удаляем предыдущие:

ASA(config)# clear configure access-list 

4.1 www и ftp к DMZ хосту: ACL на внешний интерфейс для входящего трафика:

access-list OUT_OBJ extended permit tcp 192.168.1.0 255.255.255.0 object-group DMZ_mac object-group MYSERVICES 
access-group OUT_OBJ in interface outside

5. ACL на внешний интерфейс. Разрешаем входящий www, ssh и icmp трафик

ASA(config)# sh run access-list 
access-list OUT_OBJ extended permit tcp 192.168.1.0 255.255.255.0 object-group DMZ_mac object-group MYSERVICES 
access-list OUT_OBJ extended permit tcp any object-group ALLSERVERS eq www 
access-list OUT_OBJ extended permit icmp any object-group ALLSERVERS object-group PING 
access-list OUT_OBJ extended permit tcp any object-group ALLSERVERS eq ssh 
access-list OUT_OBJ extended deny ip any any 

ACL на dmz интерфейс. Разрешаем icmp

access-list DMZ_OBJ extended permit icmp any any object-group PING 
access-list DMZ_OBJ extended deny ip any any 

access-group DMZ_OBJ in interface dmz

6. Проверяем ACL

[править] AAA

7.1. Настраиваем ACS

7.2. Настраиваем AAA на ASA для входящего соединения (из инета в лок сеть)

	ASA1(config)# aaa-server MY protocol radius 
	ASA1(config-aaa-server-group)# accounting-mode single 
	ASA1(config-aaa-server-group)# exit
	ASA1(config)# aaa-server MY (inside) host inhost
	ASA1(config-aaa-server-host)# key cisco
	ASA1(config-aaa-server-host)# exit
	
	
	ASA1(config)# aaa authentication match OUT_OBJ outside MY
	ASA1(config)# wr mem

Смотрим на пользователя:

ASA1(config)# sh uauth

7.3. Настраиваем AAA на ASA для исходящего соединения (из лок сети в инет):

	ASA1(config)# access-list ACLIN permit ip any any
	ASA1(config)# access-group ACLIN in interface inside 
	ASA1(config)# aaa authentication match ACLIN inside MY

Проверяем FTP и HTTP

7.4. Настраиваем AAA аутентификацию для telnet соединений:

	ASA1(config)# aaa authentication telnet console MY
	ASA1(config)# telnet inhost 255.255.255.255 inside 
	ASA1(config)# sh run telnet
	telnet inhost 255.255.255.255 inside
	telnet timeout 5

Зайти telnet'ом на АСУ

7.5. Настраиваем virtual telnet

	ASA1(config)# virtual telnet 192.168.1.5 
	ASA1(config)# sh run virtual 
	virtual telnet 192.168.1.5

Чистим пользователей:

	ASA1(config)# clear uauth

Заходим telnet'ом на адрес 192.168.1.5 и вводим имя пользователя и пароль.

Проверяем, что аутентификация прошла -- теперь заходим на веб сервер и у нас не запрашивают пароль!!

	ASA1(config)# sh uauth
	                        Current    Most Seen
	Authenticated Users       1          2
	Authen In Progress        0          1
	user 'user' at inhost, authenticated (idle for 0:00:16)
	   absolute   timeout: 0:05:00
	   inactivity timeout: 0:00:00

Чистим пользователей:

	ASA1(config)# clear uauth

Еще раз броузер открываем и нас спрашивают пароль!!


7.6. Настраиваем приглашения при аутентификации и таймауты:

	  sh run timeout uauth 
	  timeout uauth 3:0:0 absolute 
	  timeout uauth 0:30:0 inactivity 
	  sh run timeout uauth 
	  sh ru auth-pro
	  auth-prompt prompt Pora vvodit' parol'
	  auth-prompt accept Ugadal
	  auth-prompt reject Ne ugadal

Проверяем. Заходим telnet'ом на адрес 192.168.1.5

7.7. Настраиваем ACS и downloadable ACL

[править] Инспектирование трафика

[править] Настройки по умолчанию

По умолчанию на ASA выполняется инспектирования трафика.

Class-map:

asa1(config)# sh run class-map 
!
class-map inspection_default
 match default-inspection-traffic
!

Объект default-inspection-traffic:

  default-inspection-traffic  Match default inspection traffic: 
                              ctiqbe----tcp--2748      dns-------udp--53       
                              ftp-------tcp--21        gtp-------udp--2123,3386
                              h323-h225-tcp--1720      h323-ras--udp--1718-1719
                              http------tcp--80        icmp------icmp          
                              ils-------tcp--389       mgcp------udp--2427,2727
                              netbios---udp--137-138   radius-acct---udp--1646
                              rpc-------udp--111       rsh-------tcp--514      
                              rtsp------tcp--554       sip-------tcp--5060     
                              sip-------udp--5060      skinny----tcp--2000     
                              smtp------tcp--25        sqlnet----tcp--1521     
                              tftp------udp--69        xdmcp-----udp--177      

Если в class-map указано match default-inspection-traffic, то к этому классу может применяться только действие inspect

Протоколы, которые инспектируются по умолчанию:

asa1(config)# sh run policy-map 
policy-map type inspect dns preset_dns_map
 parameters
  message-length maximum 512
policy-map global_policy
 class inspection_default
  inspect dns preset_dns_map 
  inspect ftp 
  inspect h323 h225 
  inspect h323 ras 
  inspect rsh 
  inspect rtsp 
  inspect esmtp 
  inspect sqlnet 
  inspect skinny  
  inspect sunrpc 
  inspect xdmcp 
  inspect sip  
  inspect netbios 
  inspect tftp 
!

Настройки применены ко всем интерфейсам (global):

asa1(config)# sh run service-policy 
service-policy global_policy global

Восстановить настройки по умолчанию:

ASA(config)# clear configure fixup 

Статистика срабатываний default policy-map:

ASA(config)# sh service-policy 

[править] Инспектирование FTP

Инспектирование FTP выполняет такие действия:

  • Подготавливает динамическое соединение для передачи данных,
  • Отслеживает порядок команд и ответов на команды FTP,
  • Генерирует сообщения (audit trail),
  • Транслирует встроенные IP-адреса.

Без включенного инспектирование будет работать только Passive FTP для исходящего трафика.

Убрать инспектирование FTP трафика:

ASA(config)# policy-map global_policy
ASA(config-pmap)# class inspection_default
ASA(config-pmap-c)# no inspect ftp
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# 

Raw FTP command list

[править] Использование параметра strict

После включения параметра strict:

  • Команды FTP должны быть подтверждены прежде чем ASA разрешит новую команду,
  • ASA отбрасывает соединения, которые передают встроенные команды,
  • Команды 227 и PORT проверяются для того чтобы убедиться, что они не появляются в строке ошибки.

После включения параметра strict, каждая команда и ответ на неё отслеживаются и проверяются по таким критериям:

  • Truncated command — количество запятых в ответах PORT и PASV проверяется. Если количество запятых отлично от 5, то команда считается сокращенной (truncated) и TCP-соединение закрывается.

[править] Настройка дополнительных критериев анализа трафика

Настройка policy-map которая будет запрещать запросы get:

ASA(config)# policy-map type inspect ftp NO_GET
ASA(config-pmap)# match request-command get
ASA(config-pmap-c)# reset 
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# 

Применение созданной policy-map в default policy-map:

ASA(config)# policy-map global_policy
ASA(config-pmap)# class inspection_default
ASA(config-pmap-c)# inspect ftp strict NO_GET
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# 

[править] Инспектирование HTTP

[править] Запрет файлов с расширением .gif или .txt

Создать регулярное выражение для файлов с расширением .gif .txt

ASA(config)# regex FILE_TYPE_GIF ".+\.[Gg][Ii][Ff]"     
ASA(config)# regex FILE_TYPE_TXT ".+\.[Tt][Xx][Tt]"
ASA(config)# sh run regex                          
regex FILE_TYPE_TXT ".+\.[Tt][Xx][Tt]"
regex FILE_TYPE_GIF ".+\.[Gg][Ii][Ff]"

Проверка правильности созданного выражения:

ASA(config)# test regex emdfo.txt ".+\.[Tt][Xx][Tt]"

Объединение регулярных выражений в regex class-map:

ASA(config)# class-map type regex match-any BAD_FILES
ASA(config-cmap)# match regex FILE_TYPE_TXT
ASA(config-cmap)# match regex FILE_TYPE_GIF
ASA(config-cmap)# exit
ASA(config)# 

Создание class-map 3/4 уровня для выделения http трафика:

ASA(config)# class-map HTTP_TRAFFIC
ASA(config-cmap)# match port tcp eq http
ASA(config-cmap)# exit

Создание inspect policy-map и настройка действия drop-connection если присутствуют файлы с расширением .gif .txt:

ASA(config)# policy-map type inspect http BLOCK_FILES
ASA(config-pmap)# parameters 
ASA(config-pmap-p)# match request uri regex class BAD_FILES
ASA(config-pmap-c)# drop-connection 
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit

Создание policy-map 3/4 уровня для инспектирования http трафика с применением policy-map BLOCK_FILES:

ASA(config)# policy-map INSIDE_POLICY
ASA(config-pmap)# class HTTP_TRAFFIC
ASA(config-pmap-c)# inspect http BLOCK_FILES
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# 

Применение INSIDE_POLICY к интерфейсу inside:

ASA(config)# service-policy INSIDE_POLICY interface inside 

[править] Запрет файлов с расширением .gif или .txt и с URI больше чем 29 байт

Создание класса, в котором будут обозначены файлы с расширением .gif или .txt и с URI больше чем 29 байт

ASA(config)# class-map type inspect http match-all LONG
ASA(config-cmap)# match request uri regex class BAD_FILES
ASA(config-cmap)# match request uri length gt 29
ASA(config-cmap)# exit
ASA(config)# 

Применение класса в раннее созданной политике (удаляем класс BAD_FILES):

ASA(config)# policy-map type inspect http BLOCK_FILES
ASA(config-pmap)# parameters 
ASA(config-pmap-p)# no match request uri regex class BAD_FILES
ASA(config-pmap-p)# class LONG
ASA(config-pmap-c)# drop-connection 
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# 

[править] IPsec VPN

[править] Настройка ASA для получения сертификата

Настройка trustpoint:

crypto ca trustpoint TEST
 enrollment url http://172.16.2.10:80/certsrv/mscep/mscep.dll

Получение сертификата CA-сервера:

ASA1(config)# crypto ca authenticate TEST 

INFO: Certificate has the following attributes:
Fingerprint:     3c6bd334 a8173e1b 28bd4d41 83a02f3a 
Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.

Просмотр полученного сертификата:

ASA1(config)# sh crypto ca certificates 
CA Certificate
  Status: Available
  Certificate Serial Number: 15f28ebb979b248a4d8e7466fa40d5c7
  Certificate Usage: Signature
  Public Key Type: RSA (2048 bits)
  Issuer Name: 
    cn=server2
    dc=unix2
    dc=nt
  Subject Name: 
    cn=server2
    dc=unix2
    dc=nt
  CRL Distribution Points: 
    [1]  ldap:///CN=server2,CN=pc-2,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuratit
    [2]  http://pc-2.unix2.nt/CertEnroll/server2.crl
  Validity Date: 
    start date: 19:23:19 EEST Nov 22 2009
    end   date: 19:31:10 EEST Nov 22 2014
  Associated Trustpoints: TEST 

Настройка параметров для сертификата ASA:

ASA1(config)# crypto ca trustpoint TEST
ASA1(config-ca-trustpoint)# fqdn ASA1.unix.nt
ASA1(config-ca-trustpoint)# subject-name CN=ASA1
ASA1(config-ca-trustpoint)# no client-types

Запрос на получение сертификата для ASA от CA-сервера:

ASA1(config)# crypto ca enroll TEST noconfirm
%
% Start certificate enrollment ..
% The subject name in the certificate will be: CN=ASA1

% The fully-qualified domain name in the certificate will be: ASA1.unix.nt
% Certificate request sent to Certificate Authority
ASA1(config)# The certificate has been granted by CA!

If there is a trustpoint associated with the same CA certificate that is already configured with a client type, the new trustpoint is not allowed to be configured with the same client-type setting. The no form of the command clears the setting so that trustpoint cannot be used for any client validation.

Если в качестве CA используется MS CA, то туннель может не подниматься из-за требований ASA к сертификатам. В дебаг ошибка такого вида:

CRYPTO_PKI(make trustedCerts list)CRYPTO_PKI:check_key_usage: ExtendedKeyUsage OID = 1.3.6.1.5.5.7.3.1
CRYPTO_PKI:check_key_usage: ExtendedKeyUsage OID = 1.3.6.1.5.5.7.3.1, NOT acceptable
CRYPTO_PKI:check_key_usage: No acceptable ExtendedKeyUsage OIDs found

Подробнее [3].

[править] Настройка IPsec

ASA(config)# sysopt connection permit-vpn 

Настройка IKE:

ASA(config)# isakmp enable outside 
ASA(config)# isakmp identity address 

ASA(config)# isakmp policy 10 
ASA(config-isakmp-policy)# authentication pre-share 
ASA(config-isakmp-policy)# exit

Настройка типа tunnel-group'ы:

ASA(config)# tunnel-group 192.168.2.1 type ipsec-l2l 

Настройка pre-shared key:

ASA(config)# tunnel-group 192.168.2.1 ipsec-attributes 
ASA(config-tunnel-ipsec)# pre-shared-key cisco
ASA(config)# access-list VPNL2L permit ip host 192.168.1.10 host 192.168.2.10

Настройка исключения из правил трансляции:

ASA(config)# nat (inside) 0 access-list VPNL2L

Настройка crypto map:

ASA(config)# crypto map PEERASA2 10 match address VPNL2L
ASA(config)# crypto map PEERASA2 10 set peer 192.168.2.2
ASA(config)# crypto map PEERASA2 10 set transform-set ASA1
ASA(config)# crypto map PEERASA2 interface outside 
sysopt connection permit-vpn 

access-list VPNL2L extended permit ip host 192.168.1.10 host 192.168.2.10 

nat (inside) 0 access-list VPNL2L

crypto ipsec transform-set ASA2 esp-des esp-none 

crypto map ASA2 10 match address VPNL2L
crypto map ASA2 10 set peer 192.168.2.1 
crypto map ASA2 10 set transform-set ASA2


crypto map ASA2 interface outside

crypto isakmp enable outside

crypto isakmp policy 10
 authentication pre-share
 encryption 3des
 hash sha
 group 2
 lifetime 86400

tunnel-group 192.168.2.1 type ipsec-l2l
tunnel-group 192.168.2.1 ipsec-attributes
 pre-shared-key cisco

[править] Remote VPN

ASA1(config)# isakmp enable outside 
ASA1(config)# isakmp  identity add 
ASA1(config)# isakmp policy 10
ASA1(config-isakmp-policy)# authentication pre-share 
ASA1(config-isakmp-policy)# encryption des
ASA1(config-isakmp-policy)# hash md5 
ASA1(config-isakmp-policy)# group 2
ASA1(config-isakmp-policy)# lifetime 86400
ASA1(config-isakmp-policy)# exit
ASA1(config)# ip local pool MYPOOL 10.1.1.20-10.1.1.254
ASA1(config)# aaa-server MY protocol radius 
ASA1(config-aaa-server-group)# aaa-server MY (inside) host 10.0.1.2 cisco time
ASA1(config-aaa-server-host)# exit
ASA1(config)# tunnel-group SNPA type ipsec-ra 
ASA1(config)# tunnel-group SNPA general-attributes 
ASA1(config-tunnel-general)# address-pool MYPOOL
ASA1(config-tunnel-general)# authentication-server-group MY
ASA1(config-tunnel-general)# exit
ASA1(config)# tunnel-group SNPA ipsec-attributes 
ASA1(config-tunnel-ipsec)# pre-shared-key cisco
ASA1(config-tunnel-ipsec)# exit
ASA1(config)# access-list VPNRA permit ip 10.0.1.0 255.255.255.0 10.1.1.0 255.$
ASA1(config)# nat (inside) 0 access-list VPNRA
ASA1(config)# crypto ipsec transform-set MD5DES esp-des esp-md5-hmac 
ASA1(config)# crypto dynamic-map DYNOMAP 10 set transform-set MD5DES
ASA1(config)# crypto map VPNPEER 20 ipsec-isakmp dynamic DYNOMAP
ASA1(config)# crypto map VPNPEER interface outside 

[править] Split tunneling

ASA1(config)# group-policy route-test attributes
ASA1(config-group-policy)# split-tunnel-policy ?

group-policy mode commands/options:
  excludespecified  Exclude only networks specified by
                    split-tunnel-network-list
  tunnelall         Tunnel everything
  tunnelspecified   Tunnel only networks specified by split-tunnel-network-list
ASA1(config-group-policy)# split-tunnel-network-list value <ACL-name>

[править] WebVPN

Основная страница: Cisco ASA/WebVPN

[править] Transparent firewall

Основная страница: Cisco ASA/Transparent firewall

[править] Context

Разделение ASA на контексты позволяет создать внутри одного физического устройства несколько виртуальных.

В режиме нескольких контекстов не поддерживается:

  • Динамическая маршрутизация,
  • QoS
  • VPN
  • Маршрутизация multicast
  • Threat Detection
  • Phone Proxy

[править] Failover

Основная страница: Cisco ASA failover

[править] IPS

Основная страница: Cisco ASA/IPS

[править] Troubleshooting

Основная страница: Cisco ASA/Troubleshooting

[править] Дополнительная информация

Источник — «http://xgu.ru/wiki/Cisco_ASA»