воскресенье, 31 марта 2013 г.
суббота, 23 марта 2013 г.
Cisco ASA, Часть третья, SSH access outside
Настройка доступа SSH на outside интерфейсе
ASA Version 8.4(2)
1) Задаём hostname
ciscoasa(config)# hostname ASA
2) Задаём домен
ASA(config)# domain test.local
3) Создаём ключи
ASA(config)# show crypto key mypubkey
нет ключей? тогда создаём
ASA(config)# crypto key generate rsa
INFO: The name for the keys will be: <Default-RSA-Key>
Keypair generation process begin. Please wait...
проверяем
ASA(config)# sh crypto key mypubkey rsa
Key pair was generated at: 13:04:47 UTC Mar 23 2013
Key name: <Default-RSA-Key>
Usage: General Purpose Key
Modulus Size (bits): 1024
Key Data:
30819f30 0d06092a 864886f7 0d010101 05000381 8d003081 89028181 009c1f35
bffb3a15 34b5f55c 0345031a adc09531 d705d905 78938f3d 92acc008 ae6303d8
8f0b2ba4 84608ea7 b75aa564 5d1c8b01 73f3ef63 0378c391 54f9068c 5a533545
0f368426 9efa3f8d 2b66774d b8e871e6 7ba58249 904c6ced e14fb790 04565ec0
9ac943c0 c1ee7f01 52a592a7 c00ee8a3 5cd2fc16 8e826672 ba1ad813 63020301 0001
примечание
crypto key generate rsa label {имя пары} создание пары ключей
crypto key zeroize rsa label {имя пары} удаление пары ключей
4) Настраиваем интерфейс
ASA(config)# int g0
ASA(config-if)# ip address 209.88.95.104 255.255.254.0
ASA(config-if)# no shutdown
ASA(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ASA(config-if)# exit
5) Разрешаем вход ssh
ASA(config)# ssh 209.88.94.81 255.255.255.255 outside
6) Задаём пароль локального админа
ASA(config)# username stim password stimpass privilege 15
7) Настраиваем авторизацию aaa
ASA(config)# aaa authentication ssh console LOCAL
ASA Version 8.4(2)
1) Задаём hostname
ciscoasa(config)# hostname ASA
2) Задаём домен
ASA(config)# domain test.local
3) Создаём ключи
ASA(config)# show crypto key mypubkey
нет ключей? тогда создаём
ASA(config)# crypto key generate rsa
INFO: The name for the keys will be: <Default-RSA-Key>
Keypair generation process begin. Please wait...
проверяем
ASA(config)# sh crypto key mypubkey rsa
Key pair was generated at: 13:04:47 UTC Mar 23 2013
Key name: <Default-RSA-Key>
Usage: General Purpose Key
Modulus Size (bits): 1024
Key Data:
30819f30 0d06092a 864886f7 0d010101 05000381 8d003081 89028181 009c1f35
bffb3a15 34b5f55c 0345031a adc09531 d705d905 78938f3d 92acc008 ae6303d8
8f0b2ba4 84608ea7 b75aa564 5d1c8b01 73f3ef63 0378c391 54f9068c 5a533545
0f368426 9efa3f8d 2b66774d b8e871e6 7ba58249 904c6ced e14fb790 04565ec0
9ac943c0 c1ee7f01 52a592a7 c00ee8a3 5cd2fc16 8e826672 ba1ad813 63020301 0001
примечание
crypto key generate rsa label {имя пары} создание пары ключей
crypto key zeroize rsa label {имя пары} удаление пары ключей
4) Настраиваем интерфейс
ASA(config)# int g0
ASA(config-if)# ip address 209.88.95.104 255.255.254.0
ASA(config-if)# no shutdown
ASA(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ASA(config-if)# exit
5) Разрешаем вход ssh
ASA(config)# ssh 209.88.94.81 255.255.255.255 outside
6) Задаём пароль локального админа
ASA(config)# username stim password stimpass privilege 15
7) Настраиваем авторизацию aaa
ASA(config)# aaa authentication ssh console LOCAL
четверг, 21 марта 2013 г.
Cisco ASA, часть вторая, NAT
Настройка стандартного NAT для стандартного офиса
(хотя это PAT чистой воды)
Cisco ASA IOS 8.4.2
Config:
ASA(config)# object network my-inside-net
ASA(config-network-object)# subnet 192.168.1.0 255.255.255.0
ASA(config-network-object)# nat (inside,outside) dynamic interface
Monitoring & Logs:
ASA# show nat
ASA# show nat pool
ASA# show running-config nat
ASA# show xlate
последняя команда пожалуй самая вкусная
(хотя это PAT чистой воды)
Cisco ASA IOS 8.4.2
Config:
ASA(config)# object network my-inside-net
ASA(config-network-object)# subnet 192.168.1.0 255.255.255.0
ASA(config-network-object)# nat (inside,outside) dynamic interface
Monitoring & Logs:
ASA# show nat
ASA# show nat pool
ASA# show running-config nat
ASA# show xlate
последняя команда пожалуй самая вкусная
понедельник, 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
суббота, 9 марта 2013 г.
IPSec Configuration Manual
Преамбула, или ради чего стоило вставать с дивана.
IPSec это логический туннель, который может шифровать трафик проходящий через него своими силами. В отличии, например, от PPTP тут, не создаётся виртуальных(или используя физические) интерфейсов с чётко выделенным адресом, которые должны строго подцепиться друг к другу по определённому регламенту.
Заместо этого, задаётся правило идентификации базовых хостов перед началом инициации туннеля и вид шифрования трафика проходящего через туннель -- это раз.
На втором этапе расписывается MAP(карта), трафик попадающий в эту карту будет перемещаться между хостами уже по регламенту IPSec со всей песней с припевом.
В данном случае мы расписали, что карта для IPSec:
R1(config-crypto-map)#match address 110 (см номер ACL пункта 4)
смотрим в пункт 4
R1(config)#access-list 110 permit ip 10.0.1.0 0.0.0.255 10.0.2.0 0.0.0.255
т.е. как показано на рисунке трафик пробегающий из 10.0.1.0/24 сети с одной стороны в сеть 10.0.2.0/24 на другую сторону -- будет перемещаться используя туннелирование IPSec с означенными параметрами.
После завершения кофигурирования IPSec туннеля он находится в состоянии DOWN.
Чтобы дать стартовый пинок, достаточно пустить трафик через диапазон IPSec туннеля ( это может быть icmp пинг, http запрос и тому подобное ) после чего, если включены
debug crypto isakmp
debug crypto ipsec
можно наблюдать резвый лог установления туннеля.
Убедиться что пакеты прошли по туннелю можно через команду
R1#show crypto ipsec sa
#pkts encaps: 15, #pkts encrypt: 15, #pkts digest: 15
#pkts decaps: 11, #pkts decrypt: 11, #pkts verify: 11
Более подробно смотри развёрнутый бриф по IPSeс по тегу-метке IPSec.
P.S. Если туннель не работает, надо пересматривать конфиг до помутнения рассудка, ты где-то облажался. Если твёрдо уверен, что ошибок нет, а туннель не работает, всё стирай и пиши конфиг заново.
Шаг 1: Конфигурируем ACL для подачи "заинтересованного" трафика".
Разрешаем протоколы AH(51), ESP(51) и UDP по порту эквивалентному ISAKMP (500)
R1(config)# access-list 102 permit ahp host 211.181.25.221 host 211.181.24.15
R1(config)# access-list 102 permit esp host 211.181.25.221 host 211.181.24.15
R1(config)# access-list 102 permit udp host 211.181.25.221 host 211.181.24.15 eq isakmp
Применяем ACL к интерфейсу:
R1(config)# int fa 0/0
R1(config-if)# ip add 211.181.24.15 255.255.254.0
R1(config-if)# no sh
R1(config-if)# ip access-group 102 in
Проверяем:
R1#sh access-lists
Extended IP access list 102
10 permit ahp host 211.181.25.221 host 211.181.24.15
20 permit esp host 211.181.25.221 host 211.181.24.15
30 permit udp host 211.181.25.221 host 211.181.24.15 eq isakmp
Шаг 2: Сконфигурируем ISAKMP:
а) Включаем и конфигурируем ISAKMP(Internet Security Association and Key Management Protocol) политики для регламентирования процедуры обмена ключами согласно выбору ESP
(Authentication, Confidential, Diffle-Hellmane and Integrity см. IPSec Framework)
(номер политики это приоритет её просмотра на предмет использования)
R1(config)# crypto isakmp enable
R1(config)# crypto isakmp policy 20
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# encryption des
R1(config-isakmp)# group 2
R1(config-isakmp)# hash sha
R1(config-isakmp)# lifetime 86400
R1(config-isakmp)# exit
б) Задаём ключи для обмена ISAKMP IKE (Internet Key Exchange)
crypto isakmp key <0..6> если 0 ключ не шифрован, если 6-- шифрован
0 Specifies an UNENCRYPTED password will follow
6 Specifies an ENCRYPTED password will follow
R1(config)# crypto isakmp key 0 cisco111 address 211.181.25.221
Шаг 3: Задание трансформы, оно же вида и способа шифрования трафика в туннеле
имя значения не имеет и применяется только для локального удобства описания
R1(config)# crypto ipsec transform-set TransformOffice1 esp-aes 128
R1(cfg-crypto-trans)#mode tunnel
R1(cfg-crypto-trans)#exit
Шаг 4: Задаём ACL чтобы он пропускал трафик туннеля
R1(config)#access-list 110 permit ip 10.0.1.0 0.0.0.255 10.0.2.0 0.0.0.255
Шаг 5: Даём установочный пинок создавая Crypto-Map и применяя на интерфейс
R1(config)#crypto map MapOffice1 5 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
R1(config-crypto-map)#match address 110 (см номер ACL пункта 4)
R1(config-crypto-map)#set peer 211.181.25.221 default
R1(config-crypto-map)#set peer 172.30.3.2 (позволяет создать указание на резервного пира)
R1(config-crypto-map)#set pfs group1 (Diffie-Hellman )
R1(config-crypto-map)#set transform-set TransformOffice1 (см пункт 3)
R1(config-crypto-map)#set security-association lifetime seconds 86400
5) Применяем CryptoMap на интерфейс
R1(config)#int fa 0/0
R1(config-if)#cry
R1(config-if)#crypto map MapOffice1
R1(config-if)#
*Mar 1 00:33:55.831: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
6) Прописываем роутинг либо статический, либо через любой протокол маршрутизации, если у нас в середине провайдер, то дефолт шлюз на него естественно
R1(config)#int fa 0/0
R1(config-if)#cry
R1(config-if)#crypto map MapOffice1
R1(config-if)#
*Mar 1 00:33:55.831: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R1(config)# ip route 0.0.0.0 0.0.0.0 211.181.25.221R1(config)# ip route 10.0.2.0 255.255.255.0 FastEthernet0/0
C другой стороны
R2(config)#access-list 122 permit ahp host 211.181.24.15 host 211.181.25.221
R2(config)#access-list 122 permit esp host 211.181.24.15 host 211.181.25.221
R2(config)#access-list 122 permit udp host 211.181.24.15 host 211.181.25.221 eq isakmp
R2(config)#int fa 0/0
R2(config-if)#ip add 211.181.25.221 255.255.254.0
R2(config-if)#no sh
R2(config-if)#ip access-group 122 in
R2(config-if)#exit
R2(config)#crypto isakmp policy 110
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#encryption des
R2(config-isakmp)#group 2
R2(config-isakmp)#hash sha
R2(config-isakmp)#lifetime 86400
R2(config-isakmp)#exit
R2(config)#crypto isakmp key 0 cisco111 address 211.181.24.15
R2(config)#crypto ipsec transform-set TransformOffice1 esp-aes 128
R2(cfg-crypto-trans)#exit
R2(config)#access-list 120 permit ip 10.0.2.0 0.0.0.255 10.0.1.0 0.0.0.255
R2(config)#crypto map MapOffice1 5 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
R2(config-crypto-map)#match address 120
R2(config-crypto-map)#set peer 211.181.24.15 default
R2(config-crypto-map)#set pfs group1
R2(config-crypto-map)#set transform-set TransformOffice1
R2(config-crypto-map)#set security-association lifetime seconds 86400
R2(config-crypto-map)#int fa 0/0
R2(config-if)#crypto map MapOffice1
R2(config-if)#
*Mar 1 01:12:55.539: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R4(config-if)#exit
R2(config)# ip route 0.0.0.0 0.0.0.0 211.181.24.15
R2(config)# ip route 10.0.1.0 255.255.255.0 FastEthernet0/0
среда, 6 марта 2013 г.
GRE tunnel
Настройка с обоих концов:
R1(config)#int tunnel 0
R1(config-if)#ip add 10.0.0.1 255.255.255.252
R1(config-if)#tunnel source fa 0/1
R1(config-if)#tunnel destination 201.85.34.65
R1(config-if)#tunnel mode gre ip
R1(config)#int tunnel 0
R1(config-if)#ip add 10.0.0.2 255.255.255.252
R1(config-if)#tunnel source fa 0/1
R1(config-if)#tunnel destination 201.85.35.10
R1(config-if)#tunnel mode gre ip
Как мы все помним, трафик в этом туннеле ползает не зашифрованный.
R1(config)#int tunnel 0
R1(config-if)#ip add 10.0.0.1 255.255.255.252
R1(config-if)#tunnel source fa 0/1
R1(config-if)#tunnel destination 201.85.34.65
R1(config-if)#tunnel mode gre ip
R1(config)#int tunnel 0
R1(config-if)#ip add 10.0.0.2 255.255.255.252
R1(config-if)#tunnel source fa 0/1
R1(config-if)#tunnel destination 201.85.35.10
R1(config-if)#tunnel mode gre ip
Как мы все помним, трафик в этом туннеле ползает не зашифрованный.
вторник, 5 марта 2013 г.
Подписаться на:
Сообщения (Atom)