понедельник, 18 марта 2013 г.

Cisco ASA, Часть первая, ACL

Часть первая


Задача: 
пользователи  должны иметь доступ к серверу xp_http_ftp_cisco 
по порту 80 (web-сайт), 
21,20 (для ftp) 
и 10000 (для администрирования сервера ftp по web-интерфейсу);

Итак приступим:

1) Поднять интерфейсы, настроить ip-адреса и security-level
ciscoasa> en
Password:
ciscoasa# conf t
ciscoasa(config)# hostname asa1
 

asa1(config)# interface g2
asa1(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.

asa1(config-if)# ip address 192.168.1.1 255.255.255.0
asa1(config-if)# no shutdown
asa1(config-if)# exit

asa1(config)# interface g1
asa1(config-if)# nameif DMZ
INFO: Security level for "DMZ" set to 0 by default.
asa1(config-if)# security-level 50
asa1(config-if)# ip address 10.10.10.1 255.255.255.0
asa1(config-if)# no shutdown
asa1(config-if)# exit

asa1(config)# interface g0
asa1(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
asa1(config-if)# ip address 3.3.3.1 255.255.255.0
asa1(config-if)# no shutdown
asa1(config-if)# exit
asa1(config)# wr
Building configuration...
Cryptochecksum: 4063acb7 c6982e66 0e0b787d a5a2c78f

2246 bytes copied in 1.290 secs (2246 bytes/sec)
[OK]


2) Добавим доступ с ASDM (опционально)
asa1(config)# username admin password cisco privilege 15
asa1(config)# http server enable
asa1(config)# http 192.168.1.0 255.255.255.0 inside

 ------------------------------------
Ставим TFTP сервер типа TFTPDWin и загружаем на флеш память ASA файл с asdm
---------------------------------------
asa1# copy tftp: flash:
Address or name of remote host []? 192.168.1.2
Source filename []? asdm-647.bin
Destination filename [asdm-647.bin]?
Accessing tftp://192.168.1.2/asdm-647.bin....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!etc

Writing current ASDM file disk0:/asdm-647.bin!!!!!!!!!!!!!!etc
17902288 bytes copied in 129.60 secs (138777 bytes/sec)
-------------------------------------
asa1# sh flash:
--#--  --length--  -----date/time------  path
    5  4096        Mar 17 2013 14:03:36  log
   10  4096        Mar 17 2013 14:03:42  coredumpinfo
   11  59          Mar 17 2013 14:03:42  coredumpinfo/coredump.cfg
   90  196         Mar 17 2013 14:03:42  upgrade_startup_errors_201303171403.log
   15  4096        Mar 17 2013 18:36:04  boot
   16  6           Mar 18 2013 18:35:00  boot/grub.conf
   80  0           Mar 17 2013 18:47:18  nat_ident_migrate
   91  28672       Jan 01 1980 00:00:00  FSCK0000.REC
   92  4096        Jan 01 1980 00:00:00  FSCK0001.REC
   93  28672       Jan 01 1980 00:00:00  FSCK0002.REC
   94  4096        Jan 01 1980 00:00:00  FSCK0003.REC
   95  28672       Jan 01 1980 00:00:00  FSCK0004.REC
   96  4096        Jan 01 1980 00:00:00  FSCK0005.REC
   97  17902288    Mar 20 2013 09:29:34  asdm-647.bin

268136448 bytes total (249769984 bytes free)
asa1# wr
Building configuration...
Cryptochecksum: e7e2b9ec 35d191e6 92560981 c5bfc984

3247 bytes copied in 1.370 secs (3247 bytes/sec)
[OK]



3) Формируем access-list согласно нашей задаче
asa1(config)# access-list HTTP_FTP_10000_inside extended permit tcp 192.168.1.0 255.255.255.0 host 10.10.10.201 eq www
asa1(config)# access-list HTTP_FTP_10000_inside extended permit tcp 192.168.1.0 255.255.255.0 host 10.10.10.201 eq ftp
asa1(config)# access-list HTTP_FTP_10000_inside extended permit tcp 192.168.1.0 255.255.255.0 host 10.10.10.201 eq 10000 
asa1(config)# access-list HTTP_FTP_10000_inside extended permit tcp 192.168.1.0 255.255.255.0 host 10.10.10.201 eq www 
asa1(config)# access-list HTTP_FTP_10000_inside extended permit icmp 192.168.1.0 255.255.255.0 any

4) Применяем созданный access-list  на inside интерфейс
asa1(config)# access-group HTTP_FTP_10000_inside in interface inside

5) Настраиваем service-policy аля ip inspect

 

asa1(config)# policy-map global_policy
определяем название map
asa1(config-pmap)# class-map inspection_default
определяем дефолтные настройки совпадения по трафику
asa1(config-cmap)# match default-inspection-traffic
asa1(config-cmap)# exit
------------------------------

теперь создаём класс inspection_default 
и доверяем ему инспектировать трафик
далее прописываем какой вид трафика он будет инспектировать

------------------------------
asa1(config)# policy-map global_policy
asa1(config-pmap)# class inspection_default
asa1(config-pmap-c)# inspect ftp
asa1(config-pmap-c)# inspect icmp
asa1(config-pmap-c)# exit
asa1(config-pmap)# exit

------------------------------
Дальше возможны варианты развития событий:

Либо вы применяете его на все интерфейсы
Что не есть хорошо, ибо схема на этом не заканчивается 
asa1(config)# service-policy global_policy global

Либо на один из интерфейсов, правильнее на inside
asa1(config)# service-policy global_policy interface inside


Результат смотреть так:
asa1(config)# show service-policy inspect ftp

P.S.
Однако тот же эффект будет и на DMZ
asa1(config)# service-policy global_policy interface DMZ




P.P.S. Написано с идеи этой статьи, однако она полностью устарела.


Справочные статьи: 
http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a0080b88904.shtml
http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807ee585.shtml




Комментариев нет:

Отправить комментарий