Межсетевой экран Cisco ASA 5505

Межсетевые экраны Cisco ASA – современные функциональные устройства для защиты локальных сетей. Основная функция межсетевого экрана (firewall) — защита сети от вторжений, вирусов, спама, шпионских программ, контентная фильтрация трафика пользователей. Построенные на базе аппаратной платформы сетевые экраны Firewall Cisco ASA обеспечивают высокую надежность, производительность в задаче обеспечения безопасности ЛВС от внешних атак.

Межсетевой экран Cisco ASA 5505

Сетевой экран Cisco ASA 5505 — самое младшее устройство в серии Cisco ASA, однако этот брандмауэр имеет очень высокую производительность и эффективность в защите локальной сети от внешних атак. Межсетевой экран Cisco ASA 5505 — это производительный файрвол (брандмауэр), обеспечивающий до 150 Мбит/с* транзитного трафика. Сетевой экран ASA 5505 работает на скорости до 100 Мбит/с* при организации VPN доступа. В первую очередь устройство ориентированно на обеспечение сетевой безопасности пользователей сегмента малого бизнеса в силу простоты эксплуатации и низкой цены. Помимо функций межсетевого экрана Cisco ASA 5505 выполняет NAT трансляцию для совместного доступа пользователей к сети Интернет, является IPSec VPN сервером для безопасного удаленного доступа к локальным ресурсам. Огромным преимуществом является наличие встроенного 8-и портового коммутатора, при этом 2 порта имеют поддержку PoE, что обеспечивает простоту подключения IP камеры, WI-FI точки доступа или IP телефона.

Модификации межсетевого экрана Cisco ASA5505

1. ASA5505-K8 — стандартная комплектация
Межсетевой экран Cisco ASA в этой конфигурации обеспечивает обработку до 10000 одновременных сессий пользователей, позволяет создать до 10 IPSec VPN туннелей, обеспечивает защиту для 10-и пользователей, имеет возможность создания до 3-х VLAN, путем назначения нужных портов внутреннего коммутатора в нужную группу VLAN интерфейса. Не поддерживает создание 802.1Q транк порта

2. ASA5505-50-BUN-K8 — конфигурация брандмауэра с расширенным количеством пользователей.

В этой конфигурации межсетевой экран имеет все функции стандартной версии, но обеспечивает подключения для 50-и пользователей

3. ASA5505-SEC-BUN-K8 – конфигурация Security Plus c поддержкой 50-и пользователей, 25 IPSec VPN подключений, до 20 VLAN 802.1Q TRUNK на портах коммутатора, включающая функцию DMZ

4. Максимальная конфигурация ASA5505-UL-BUN-K8 — в этой конфигурации устройство не имеет ограничений на кол-во пользователей, имеет Security Plus лицензию со всем функциями платформы

5. ASA5505-50-AIP5-K8 – конфигурация на 50 пользователей, со встроенным модулем AIP-SSC-5, который обеспечивает аппаратное ускорение межсетевого экрана и выполнение функции IPS — защиту сети от шпионских программ, вирусов. Имеет все функции Security Plus

6. ASA5505-SSL10-K8 – версия, с возможностью использования SSL для организации удаленных защищенных подключений пользователей. Основной плюс использования SSL для создания удаленных VPN подключений – поддержка протокола SSL практически всеми устройствами, отсутствие необходимости в установке отдельного клиента для IPSec.

Опции и пакеты расширения для межсетевого экрана Cisco ASA5505

ASA5505-SEC-PL – Security Plus лицензия, снимающая ограничение и позволяющая использовать порты встроенного коммутатора в режиме до 20 VLAN 802.1Q TRUNK, организовывать до 25-и IPSec VPN подключений, включающая функцию DMZ для стандартных версий межсетевого экрана

ASA5505-RACK-MNT – набор для монтажа межсетевого экрана ASA 5505 в стандартную телекоммуникационную стойку 19”. Комплект позволяет установить до 2-х устройств Cisco ASA 5505. Включает в себя полку размером 2Uс необходимыми кронштейнами и крепежом

ASA5505-SW-10-50 – лицензия расширения количества защищаемых экраном ASA 5505 пользователей с 10 до 50 ASA5505-SW-10-UL –лицензия снятия всех ограничений количества защищаемых сетевым экраном ASA 5505. Применяется для стандартной версии межсетевого экрана

ASA5505-SW-50-UL – лицензия снятия всех ограничений количества защищаемых экраном ASA 5505. Применяется при модернизации любой 50-и пользовательской версии ASA5505 ASA5505-SSL10-K8 – лицензия включения поддержки SSL VPN на 10 пользователей ASA5505-SSL25-K8 – лицензия включения поддержки SSL VPN на 25 пользователей

*Суммарная производительность передачи данных. Поскольку передача данных происходит всегда в двух направлениях (исходящий и входящий трафик) то эта производительность делится пропорционально входящему и исходящему трафикам

Cisco PIX/ASA – Capturing Traffic

This document shows how to capture traffic directly at the Cisco PIX/ASA Firewall. Thats a very powerful tool for troubleshooting.

 

The Topology used in this test:

Capturing Traffic on the PIX — Topology

All traffic for the bastionhost (172.16.1.2) has to be captured for further analysis, the IP of the insidehost (10.0.1.12) is source-NATed to 172.16.1.20 when connecting to the DMZ.

This setup is based on the following PixOS-Release:

pix1# show version

Cisco PIX Firewall Version 6.3(3)
...
Hardware:   PIX-515, 64 MB RAM, CPU Pentium 200 MHz
Licensed Features:
Failover:                    Enabled
VPN-DES:                     Enabled
VPN-3DES-AES:                Enabled
Maximum Physical Interfaces: 6
Maximum Interfaces:          10
Cut-through Proxy:           Enabled
Guards:                      Enabled
URL-filtering:               Enabled
Inside Hosts:                Unlimited
Throughput:                  Unlimited
IKE peers:                   Unlimited

The capture-command:

pix1(config)# capture
Not enough arguments.
Usage: capture  [access-list ] [buffer ]
               [ethernet-type ] [interface ]
               [packet-length ]
               [circular-buffer]
       clear capture
       no capture  [access-list []] [circular-buffer]
               [interface ]
       show capture [ [access-list ] [count ]
                     [detail] [dump]]

Configuring the capture-function:

  1. Write an access-list that describes the interesting traffic (optional)
  2. Bind a capture-statement to an interface
  3. Wait for traffic
  4. Display or download the capture

Example:

pix1(config)# access-list capture-bastion permit ip any host bastionhost
pix1(config)# access-list capture-bastion permit ip host bastionhost any
pix1(config)# capture cap1 access-list capture-bastion interface dmz
pix1(config)#
pix1(config)# show capture
capture cap1 access-list capture-bastion interface dmz
pix1(config)#
pix1(config)# show capture cap1
0 packet captured
0 packet shown
pix1(config)#

(now we ping the bastionhost and access the web-server)

The resulting capture on the PIX:

pix1(config)# show capture cap1 detail
9 packets captured
19:28:27.554536 000d.56a9.3bbe 000c.297c.dffa 0x0800 74: 172.16.1.20 > bastionhost:
	icmp: echo request (ttl 128, id 46758)
19:28:27.555131 000c.297c.dffa 0002.b326.0704 0x0800 74: bastionhost > 172.16.1.20:
	icmp: echo reply (ttl 255, id 210)
19:28:38.482488 000d.56a9.3bbe 000c.297c.dffa 0x0800 62: 172.16.1.20.3874 > bastionhost.80:
	S [tcp sum ok] 306572975:306572975(0) win 65520  (DF)
	(ttl 128, id 46777)
19:28:38.483159 000c.297c.dffa 0002.b326.0704 0x0800 62: bastionhost.80 > 172.16.1.20.3874:
	S [tcp sum ok] 2581607285:2581607285(0) ack 306572976 win 15120
	 (DF) (ttl 64, id 211)
19:28:38.483419 000d.56a9.3bbe 000c.297c.dffa 0x0800 54: 172.16.1.20.3874 > bastionhost.80:
	. [tcp sum ok] 306572976:306572976(0) ack 2581607286 win 65520 (DF) (ttl 128, id 46778)
19:28:38.484731 000d.56a9.3bbe 000c.297c.dffa 0x0800 402: 172.16.1.20.3874 > bastionhost.80:
	P 306572976:306573324(348) ack 	2581607286 win 65520 (DF) (ttl 128, id 46779)
19:28:38.485158 000c.297c.dffa 0002.b326.0704 0x0800 60: bastionhost.80 > 172.16.1.20.3874:
	. [tcp sum ok] 2581607286:2581607286(0) ack 306573324 win 15120 (DF) (ttl 64, id 212)
19:28:38.488179 000c.297c.dffa 0002.b326.0704 0x0800 584: bastionhost.80 > 172.16.1.20.3874:
	P 2581607286:2581607816(530) ack 306573324 win 16380 (DF) (ttl 64, id 213)
19:28:38.614714 000d.56a9.3bbe 000c.297c.dffa 0x0800 54: 172.16.1.20.3874 > bastionhost.80:
	. [tcp sum ok] 306573324:306573324(0) ack 2581607816 win 64990 (DF) (ttl 128, id 46783)
9 packets shown
pix1(config)# show capture cap1 dump
13 packets captured
19:28:27.554536 172.16.1.20 > bastionhost: icmp: echo request
0x0000   4500 003c b6a6 0000 8001 29e4 ac10 0114        E..<......).....
0x0010   ac10 0102 0800 315c 0300 1900 6162 6364        ......1....abcd
0x0020   6566 6768 696a 6b6c 6d6e 6f70 7172 7374        efghijklmnopqrst
0x0030   7576 7761 6263                                 uvwabc
19:28:27.555131 bastionhost > 172.16.1.20: icmp: echo reply
0x0000   4500 003c 00d2 0000 ff01 60b8 ac10 0102        E..<......`.....
0x0010   ac10 0114 0000 395c 0300 1900 6162 6364        ......9....abcd
0x0020   6566 6768 696a 6b6c 6d6e 6f70 7172 7374        efghijklmnopqrst
0x0030   7576 7761 6263                                 uvwabc
19:28:38.482488 172.16.1.20.3874 > bastionhost.80: S 306572975:306572975(0)
    win 65520
0x0000   4500 0030 b6b9 4000 8006 e9d7 ac10 0114        E..0..@.........
0x0010   ac10 0102 0f22 0050 1245 eeaf 0000 0000        .....".P.E......
0x0020   7002 fff0 1959 0000 0204 04ec 0101 0402        p....Y..........
19:28:38.483159 bastionhost.80 > 172.16.1.20.3874: S 2581607285:2581607285(0)
    ack 306572976 win 15120
0x0000   4500 0030 00d3 4000 4006 dfbe ac10 0102        E..0..@.@.......
0x0010   ac10 0114 0050 0f22 99e0 3375 1245 eeb0        .....P."..3u.E..
0x0020   7012 3b10 10d3 0000 0204 04ec 0101 0402        p.;.............

Now we want to see more payload:

pix1(config)# clear capture cap1
pix1(config)# show capture cap1
0 packet captured
0 packet shown
pix1(config)#
pix1(config)# capture cap1 packet-length 1500
pix1(config)#
pix1(config)# show capture
capture cap1 access-list capture-bastion packet-length 1500 interface dmz
pix1(config)#

(we access the web-server again)

pix1(config)# show capture cap1 dump
...
19:40:04.374980 172.16.1.20.3876 > bastionhost.80: P 2217891186:2217891534(348)
    ack 3327525020 win 65520
0x0000   4500 0184 b868 4000 8006 e6d4 ac10 0114        E....h@.........
0x0010   ac10 0102 0f24 0050 8432 5572 c656 009c        .....$.P.2Ur.V..
0x0020   5018 fff0 4f1b 0000 4745 5420 2f66 6176        P...O...GET /fav
0x0030   6963 6f6e 2e69 636f 2048 5454 502f 312e        icon.ico HTTP/1.
0x0040   310d 0a48 6f73 743a 2031 3732 2e31 362e        1..Host: 172.16.
0x0050   312e 320d 0a55 7365 722d 4167 656e 743a        1.2..User-Agent:
0x0060   204d 6f7a 696c 6c61 2f35 2e30 2028 5769         Mozilla/5.0 (Wi
0x0070   6e64 6f77 733b 2055 3b20 5769 6e64 6f77        ndows; U; Window
0x0080   7320 4e54 2035 2e31 3b20 656e 2d55 533b        s NT 5.1; en-US;
0x0090   2072 763a 312e 372e 3529 2047 6563 6b6f         rv:1.7.5) Gecko
0x00a0   2f32 3030 3431 3130 3720 4669 7265 666f        /20041107 Firefo
0x00b0   782f 312e 300d 0a41 6363 6570 743a 2069        x/1.0..Accept: i
0x00c0   6d61 6765 2f70 6e67 2c2a 2f2a 3b71 3d30        mage/png,*/*;q=0
0x00d0   2e35 0d0a 4163 6365 7074 2d4c 616e 6775        .5..Accept-Langu
0x00e0   6167 653a 2064 652d 6465 2c64 653b 713d        age: de-de,de;q=
0x00f0   302e 382c 656e 2d75 733b 713d 302e 352c        0.8,en-us;q=0.5,
0x0100   656e 3b71 3d30 2e33 0d0a 4163 6365 7074        en;q=0.3..Accept
0x0110   2d45 6e63 6f64 696e 673a 2067 7a69 702c        -Encoding: gzip,
0x0120   6465 666c 6174 650d 0a41 6363 6570 742d        deflate..Accept-
0x0130   4368 6172 7365 743a 2049 534f 2d38 3835        Charset: ISO-885
0x0140   392d 312c 7574 662d 383b 713d 302e 372c        9-1,utf-8;q=0.7,
0x0150   2a3b 713d 302e 370d 0a4b 6565 702d 416c        *;q=0.7..Keep-Al
0x0160   6976 653a 2033 3030 0d0a 436f 6e6e 6563        ive: 300..Connec
0x0170   7469 6f6e 3a20 6b65 6570 2d61 6c69 7665        tion: keep-alive
0x0180   0d0a 0d0a                                      ....

We can transfer the capture to our workstation:

pix1(config)# copy capture:cap1 tftp://10.0.1.12/bastion.txt
copying Capture to tftp://10.0.1.12/bastion.txt:
pix1(config)#
C:TFTP-Root>dir
 Volume in drive C has no label.
 Volume Serial Number is 5001-0224

 Directory of C:TFTP-Root

16.11.2004  18:50          .
16.11.2004  18:50          ..
16.11.2004  18:49             2.754 bastion.txt
               1 File(s)          2.754 bytes
               2 Dir(s)   1.801.687.040 bytes free

C:TFTP-Root>

The capture on the workstation (viewed with notepad):

We can also export the capture in pcap-format (tcpdump):

pix1(config)# copy capture:cap1 tftp://10.0.1.12/bastion.cap pcap
copying Capture to tftp://10.0.1.12/bastion.cap:
pix1(config)#
C:TFTP-Root>dir
 Volume in drive C has no label.
 Volume Serial Number is 5001-0224

 Directory of C:TFTP-Root

16.11.2004  18:55             .
16.11.2004  18:55             ..
16.11.2004  18:55             5.747 bastion.cap
16.11.2004  18:49             2.754 bastion.txt
               2 File(s)          8.501 bytes
               2 Dir(s)   1.801.527.296 bytes free

C:TFTP-Root>

The capture on the workstation (viewd with Ethereal):

The capture can also be downloaded with a browser

If we want to view or download the capture with a browser we have to activate the https-server (thats automatically done if you have activated the PDM/ASDM). This Example shows the PIXv6 syntax:

pix1(config)# http server enable
pix1(config)#
pix1(config)# http 10.0.1.12 255.255.255.255 inside
pix1(config)#
pix1(config)# domain-name security-planet.de
pix1(config)#
pix1(config)# ca generate rsa key 1024
For  >= 1024, key generation could
  take up to several minutes. Please wait.
Keypair generation process begin.
.Success.

pix1(config)#

We can view the capture in the browser:

Or we can download the capture as pcap:

Finally we delete the capture on the PIX:

pix1(config)# no capture cap1
pix1(config)#
pix1(config)# show capture cap1
ERROR: capture  does not exist
pix1(config)# show capture
pix1(config)#

Источник: http://security-planet.de/2005/07/26/cisco-pix-capturing-traffic/

Настройка port forwarding в Cisco

Задачей будет настроить трансляцию с внешних адресов 200.100.50.56, 200.100.50.57 на адреса 192.168.1.1 — ftp сервис, 192.168.1.2 — веб сервис, 172.18.9.202 — все порты с адреса 200.100.50.57.

Схема подключения наших серверов:

Для проброса портов в Cisco PIX / ASA добавим в конфигурацию NAT-трансляцию:

FTP

static (inside,outside) tcp 200.100.50.56 ftp-data 192.168.1.1 ftp-data netmask 255.255.255.255
static (inside,outside) tcp 200.100.50.56 ftp 192.168.1.1 ftp netmask 255.255.255.255

WEB

static (inside,outside) tcp 200.100.50.56 www 192.168.1.2 www netmask 255.255.255.255 

Пробросим все порты на адрес в DMZ-зоне

static (dmz,outside) 200.100.50.57 172.18.9.202 netmask 255.255.255.255
static (dmz,inside) 200.100.50.57 172.18.9.202 netmask 255.255.255.255 

Тоже самое в IOS будет выглядеть примерно так:

ip nat inside source static tcp 192.168.1.1 21 200.100.50.56 21
ip nat inside source static tcp 192.168.1.2 80 200.100.50.56 80
ip nat inside source static tcp 172.18.9.202 200.100.50.57 extendable

Источник: http://sysadminblog.ru/cisco/2010/05/25/nastroyka-probrosa-portov-port-forwarding-v-cisco-2.html

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;

static (Inside,Outside) 201.10.10.2 10.10.10.1 netmask 255.255.255.255
static (Inside,Outside) 100.20.30.3 10.10.10.1 netmask 255.255.255.255

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

access-list policy_1 extended permit ip host 10.10.10.1 any
access-list policy_2 extended permit ip host 10.10.10.1 any
static (Inside,Outside) 201.10.10.2 access-list policy_1
static (Inside,Outside) 100.20.30.3 access-list policy_2

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.

same-security-traffic permit inter-interface
same-security-traffic permit intra-interface

interface Ethernet0/3
no nameif
no security-level
no ip address
!
interface Ethernet0/3.1
description Development Network
vlan 50
nameif dev
security-level 40
ip address 192.168.50.1 255.255.255.0 standby 192.168.50.2
!
interface Ethernet0/3.2
description Test Network
vlan 88
nameif test
security-level 60
ip address 192.168.88.1 255.255.255.0 standby 192.168.88.2

Разные варианты 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

static (internet,office) 192.168.77.101 216.142.200.221 netmask 255.255.255.255
static (internet,office) 192.168.77.102 216.142.200.222 netmask 255.255.255.255
static (internet,office) 192.168.77.103 216.142.200.223 netmask 255.255.255.255
static (test,office) 192.168.77.104 172.30.11.14 netmask 255.255.255.255
static (test,office) 192.168.77.105 172.30.11.15 netmask 255.255.255.255

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

global (outside) 1 216.142.200.220 netmask 255.255.255.255
nat (inside) 1 192.168.77.0 255.255.255.0 0 0

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

access-list skip-nat-inside permit ip any host 192.168.6.11
access-list skip-nat-inside permit ip any host 192.168.6.12
access-list skip-nat-inside permit ip any 192.168.222.0 255.255.255.0

global (outside) 1 216.142.200.220 netmask 255.255.255.255
global (outside) 2 216.142.200.221 netmask 255.255.255.255
nat (inside) 0 access-list skip-nat-inside
nat (inside) 1 10.1.1.0 255.255.255.0 0 0
nat (inside) 1 172.66.3.0 255.255.255.0 0 0
nat (inside) 1 192.168.5.0 255.255.255.0 0 0
nat (inside) 2 192.168.77.0 255.255.255.0 0 0

Failover into Cisco ASA

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

interface Ethernet0/0
description Colo Network
nameif colo
security-level 60
ip address 192.168.99.1 255.255.255.0 standby 192.168.99.2

interface Ethernet0/1
description Office Network
nameif office
security-level 50
ip address 192.168.77.1 255.255.255.0 standby 192.168.77.2

interface Management0/0
description LAN Failover Interface

failover
failover lan unit primary
failover lan interface fobasic Management0/0
failover key *****
failover interface ip fobasic 192.168.200.1 255.255.255.0 standby 192.168.200.2

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

interface GigabitEthernet0/0
description Colo Network
nameif colo
security-level 60
ip address 192.168.99.1 255.255.255.0 standby 192.168.99.2

interface GigabitEthernet0/1
description STATE Failover Interface

interface Management0/0
description LAN Failover Interface

interface GigabitEthernet1/0
description Office Network
nameif office
security-level 50
ip address 192.168.77.1 255.255.255.0 standby 192.168.77.2

failover
failover lan unit primary
failover lan interface fobasic Management0/0
failover key *****
failover link fostate GigabitEthernet0/1
failover interface ip fobasic 192.168.200.1 255.255.255.0 standby 192.168.200.2
failover interface ip fostate 192.168.201.1 255.255.255.0 standby 192.168.201.2

Cisco ASA — Enable SSH

asa1# conf term
asa1(config)# crypto key generate rsa
INFO: The name for the keys will be:
Keypair generation process begin. Please wait...

asa1(config)# show crypto key mypubkey rsa
Key pair was generated at: 16:24:10 UTC Jan 6 2009
Key name:
Usage: General Purpose Key
Modulus Size (bits): 1024
Key Data:

xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxx

ssh 192.168.1.25 255.255.255.255 inside
ssh timeout 30
ssh version 2
username cisco password xxxxxxx
aaa authentication ssh console LOCAL

Cisco ASA — General VPN Troubleshooting

show vpn-sessiondb remote
show vpn-sessiondb remote | include Username

show ipsec sa
show ipsec sa detail
show ipsec sa | include access-list
show ipsec sa | include crypto endpt

show ipsec sa entry
show ipsec sa entry detail
show ipsec sa entry | include peer
show ipsec sa entry | begin peer address: 192.168.1.10
show ipsec sa entry detail | begin peer address: 192.168.1.10
show ipsec sa peer 192.168.1.10
show ipsec sa peer 192.168.1.10 detail

show ipsec stats
show ipsec sa summary

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

Предисловие

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

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

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

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

— TCP/abxy и TCP/abxz

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

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

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

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

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

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

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

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

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

 

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

asa1(config)#

asa1(config)#access-list CAPT1 extended permit ip host 10.1.1.10 host 192.168.1.4

asa1(config)#access-list CAPT1 extended permit ip host 192.168.1.4 host 10.1.1.10

asa1(config)#

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

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

asa1#

asa1#capture CA1 interface outside access-list CAPT1

asa1#

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

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

asa1#

asa1#capture CA2 interface DMZ access-list CAPT1

asa1#

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

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

asa1#

asa1#sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Capturing - 0 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Capturing - 0 bytes]

asa1#

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

C:\>ping 192.168.1.4

Pinging 192.168.1.4with 32 bytes of data:

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Ping statistics for 192.168.1.4:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 1ms, Maximum = 1ms, Average = 1ms

C:\>

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

asa1#

asa1#sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Capturing - 720 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Capturing - 720 bytes]

asa1#

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

asa1#

asa1#sh capture CA1

8 packets captured

1: 15:39:53.928647 10.1.1.10 > 192.168.1.4: icmp: echo request

2: 15:39:53.928952 192.168.1.4 > 10.1.1.10: icmp: echo reply

3: 15:39:54.921384 10.1.1.10 > 192.168.1.4: icmp: echo request

4: 15:39:54.921690 192.168.1.4 > 10.1.1.10: icmp: echo reply

5: 15:39:55.921384 10.1.1.10 > 192.168.1.4: icmp: echo request

6: 15:39:55.921674 192.168.1.4 > 10.1.1.10: icmp: echo reply

7: 15:39:56.921430 10.1.1.10 > 192.168.1.4: icmp: echo request

8: 15:39:56.921720 192.168.1.4 > 10.1.1.10: icmp: echo reply

8 packets shown

asa1#
asa1#sh capture CA2

8 packets captured

1: 15:39:53.928815 10.1.1.10 > 192.168.1.4: icmp: echo request

2: 15:39:53.928937 192.168.1.4 > 10.1.1.10: icmp: echo reply

3: 15:39:54.921522 10.1.1.10 > 192.168.1.4: icmp: echo request

4: 15:39:54.921659 192.168.1.4 > 10.1.1.10: icmp: echo reply

5: 15:39:55.921522 10.1.1.10 > 192.168.1.4: icmp: echo request

6: 15:39:55.921644 192.168.1.4 > 10.1.1.10: icmp: echo reply

7: 15:39:56.921552 10.1.1.10 > 192.168.1.4: icmp: echo request

8: 15:39:56.921705 192.168.1.4 > 10.1.1.10: icmp: echo reply

8 packets shown

asa1#

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

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

asa1#

asa1# sh cap CA1

35 packets captured

1: 14:09:43.657238 10.1.1.10.3029 > 192.168.1.4.80: S 517995293:517995293(0) win 65535

2: 14:09:43.657558 192.168.1.4.80 > 10.1.1.10.3029: S 2097782201:2097782201(0) ack 517995294 win 8192

3: 14:09:43.657924 10.1.1.10.3029 > 192.168.1.4.80: . ack 2097782202 win 65535

4: 14:09:43.658092 10.1.1.10.3029 > 192.168.1.4.80: P 517995294:517995577(283) ack 2097782202 win 65535

5: 14:09:43.658245 192.168.1.4.80 > 10.1.1.10.3029: P 2097782202:2097782203(1) ack 517995577 win 8191

. . . . . .

. . . . . .

asa1#

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

asa1# sh cap CA1 dump

35 packets captured

1: 14:09:43.657238 10.1.1.10.3029 > 192.168.1.4.80: S 517995293:517995293(0) win 65535

0x0000 4500 0030 f378 4000 7f06 40bd 9bf8 ef39 E..0.x@...@....9

0x0010 0a19 3247 0bd5 0050 1edf fb1d 0000 0000 ..2G...P........

0x0020 7002 ffff 9633 0000 0204 04ec 0101 0402 p....3..........

2: 14:09:43.657558 192.168.1.4.80 > 10.1.1.10.3029: S 2097782201:2097782201(0) ack 517995294 win 8192

0x0000 4500 002c 1db4 0000 ff06 d685 0a19 3247 E..,..........2G

0x0010 9bf8 ef39 0050 0bd5 7d09 9db9 1edf fb1e ...9.P..}.......

0x0020 6012 2000 6fee 0000 0204 0564 `. .o......d

3: 14:09:43.657924 10.1.1.10.3029 > 192.168.1.4.80: . ack 2097782202 win 65535

0x0000 4500 0028 f37a 4000 7f06 40c3 9bf8 ef39 E..(.z@...@....9

0x0010 0a19 3247 0bd5 0050 1edf fb1e 7d09 9dba ..2G...P....}...

0x0020 5010 ffff a75b 0000 P....[..

4: 14:09:43.658092 10.1.1.10.3029 > 192.168.1.4.80: P 517995294:517995577(283) ack 2097782202 win 65535

0x0000 4500 0143 f37b 4000 7f06 3fa7 9bf8 ef39 E..C.{@...?....9

0x0010 0a19 3247 0bd5 0050 1edf fb1e 7d09 9dba ..2G...P....}...

0x0020 5018 ffff 24a9 0000 4745 5420 2f20 4854 P...$...GET / HT

0x0030 5450 2f31 2e31 0d0a 4163 6365 7074 3a20 TP/1.1..Accept:

0x0040 2a2f 2a0d 0a41 6363 6570 742d 4c61 6e67 */*..Accept-Lang

0x0050 7561 6765 3a20 7275 0d0a 4163 6365 7074 uage: ru..Accept

0x0060 2d45 6e63 6f64 696e 673a 2067 7a69 702c -Encoding: gzip,

0x0070 2064 6566 6c61 7465 0d0a 5573 6572 2d41 deflate..User-A

0x0080 6765 6e74 3a20 4d6f 7a69 6c6c 612f 342e gent: Mozilla/4.

0x0090 3020 2863 6f6d 7061 7469 626c 653b 204d 0 (compatible; M

0x00a0 5349 4520 362e 303b 2057 696e 646f 7773 SIE 6.0; Windows

0x00b0 204e 5420 352e 313b 2053 5631 3b20 2e4e NT 5.1; SV1; .N

0x00c0 4554 2043 4c52 2031 2e31 2e34 3332 323b ET CLR 1.1.4322;

0x00d0 2049 6e66 6f50 6174 682e 323b 202e 4e45 InfoPath.2; .NE

0x00e0 5420 434c 5220 322e 302e 3530 3732 373b T CLR 2.0.50727;

0x00f0 202e 4e45 5420 434c 5220 332e 302e 3034 .NET CLR 3.0.04

0x0100 3530 362e 3330 3b20 4d53 2d52 5443 204c 506.30; MS-RTC L

0x0110 4d20 3829 0d0a 486f 7374 3a20 3130 2e32 M 8)..Host: 10.2

0x0120 352e 3530 2e37 310d 0a43 6f6e 6e65 6374 5.50.71..Connect

0x0130 696f 6e3a 204b 6565 702d 416c 6976 650d ion: Keep-Alive.

0x0140 0a0d 0a ...

. . . . . .

. . . . . .

asa1#

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

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

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

asa1#

asa1# sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Buffer Full - 524208 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Buffer Full - 524208 bytes]

asa1#

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

asa1#

asa1# clear capture CA1

asa1# sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Capturing - 0 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Capturing - 0 bytes]

asa1#

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

asa1#

asa1# no capture CA1

asa1# no capture CA2

asa1#

asa1# sh capture

asa1#

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

asa1(config)#

asa1(config)#no access-list CAPT1 extended permit ip host 10.1.1.10 host 192.168.1.4

asa1(config)#no access-list CAPT1 extended permit ip host 192.168.1.4 host 10.1.1.10

asa1(config)#

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