Поиск по этому блогу

25.08.2010

Молчаливый интерфейс

Коммутатор по-умолчанию рассылает в сеть различные пакеты: CDP, BPDU, если работает STP и т.д. В таких случаях соседний коммутатор, как минимум, располагает информацией о mac-адресе вашего коммутатора. Вот несколько советов, как этого можно избежать.

1. Порт должен быть настроен как trunk или access, но не оставляйте по-умолчанию switchport mode dynamic desirable. Не должно работать автоопределение, а именно Dynamic Trunk Protocol (DTP). В примере показывается, что режим access отключает DTP
switch#show interface Gi1/0/10 switchport 
Name: Gi1/0/10
Switchport: Enabled
Administrative Mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: negotiate
Operational Trunking Encapsulation: native
Negotiation of Trunking: Off
[skip]
2. По-умолчанию на коммутаторах Cisco включен Cisco Discovery Protocol (CDP). Можно его выключить совсем:
switch(config)#no cdp run
либо отключить только в нужном порту:
switch(config-if)#no cdp enable
3. Сейчас еще нет, но в будущем Cisco планирует включить протокол LLDP по-умолчанию. Выключить его совсем:
switch(config)#no lldp run
либо отключить только в нужном порту:
switch(config-if)#no lldp transmit
switch(config-if)#no lldp receive
4. Spanning-tree по-умолчанию включен и рассылает BPDU-фреймы. Если настраивается порт в режиме access, то возникает два варианта решения задачи отключения STP в порту:
а) отключить stp для конкретного vlan, если у вас vlan на порт и риск организации петли отсутствует:
switch(config)#no spanning-tree vlan xx
б)Включить на порту bpdufilter, который блокирует отправку и получение BPDU фреймов.
switch(config-if)#spanning-tree bpdufilter enable
5. Если вы присоединяете собственный маршрутизатор к оборудованию оператора, у которого на порту разрешается только один mac-адрес, т.е. работает примерно такой функционал:
interface FastEthernet0/1
switchport access vlan 100
switchport mode access
switchport port-security
switchport port-security violation protect
то необходимо на вашем порту коммутатора, который является промежуточным звеном до вашего маршрутизатора, выключить keepalive, тогда у соседнего коммутатора не будет повода изучить mac-адрес вашего коммутатора:
switch(config-if)#no keepalive
switch#show interface GigabitEthernet1/0/10            
[skip]
Keepalive not set
[skip]

Синхронизация времени по NTP

В данной заметке приводится пример настройки синхронизации времени по протоколу NTP на маршрутизаторах Cisco, Juniper.
Для начала необходимо выбрать несколько источников синхронизации и устройство, которое будет от них синхронизироваться. Примем следующую схему:



Настроим ntp на граничном маршрутизаторе, подключенному к сети Интернет. Источники синхронизации рекомендую выбирать самостоятельно:
interface Loopback0
ip address 999.999.999.1 255.255.255.255
!
access-list 5 permit 999.999.999.0 0.0.0.255
access-list 6 permit 58.73.137.250
access-list 6 permit 146.164.48.5
access-list 6 permit 193.67.79.202
access-list 6 permit 130.149.17.8
access-list 6 permit 192.38.7.240
access-list 6 permit 199.165.76.11
access-list 6 permit 193.49.205.19
access-list 6 permit 140.31.199.8
access-list 6 permit 18.26.4.105
access-list 6 permit 192.36.133.17
access-list 6 permit 192.36.134.25
access-list 6 permit 62.117.76.142
access-list 6 permit 62.117.76.141
access-list 6 permit 62.117.76.140
access-list 6 permit 193.62.22.98
access-list 6 permit 129.6.15.28
access-list 6 permit 192.5.41.40
access-list 6 permit 193.2.4.2
access-list 6 permit 193.190.230.66
access-list 6 permit 131.188.3.220
access-list 6 permit 133.100.9.2
!
ntp source Loopback0
ntp access-group peer 6
ntp access-group serve-only 5
ntp master 5
ntp server 133.100.9.2
ntp server 193.2.4.2
ntp server 146.164.48.5
ntp server 130.149.17.8
ntp server 140.31.199.8
ntp server 199.165.76.11
ntp server 62.117.76.140
ntp server 62.117.76.141
ntp server 62.117.76.142
ntp server 192.36.133.17
ntp server 192.36.134.25
ntp server 129.6.15.28
ntp server 192.5.41.40
ntp server 193.190.230.66
ntp server 193.67.79.202
ntp server 131.188.3.220
ntp server 193.62.22.98
ntp server 18.26.4.105
ntp server 192.38.7.240
В данной конфигурации ntp делает запросы от интерфейса lo0. Порядок команд неслучаен. В случае, когда сначала задаются сервера, а потом интерфейс, обращения идут от ближайшего к серверу NTP интерфейса. Потребуется перезагрузка, либо удаление всех серверов и добавление их заново. Критично для случаев, когда у вас какие-либо ACL разрешают доступ по ntp для определенных адресов, либо NAT транслирует только Loopback'и, а запросы от них могут не идти, если порядок команд нарушен.
ntp access-group peer - разрешаем синхронизироваться от нашего маршрутизатора только устройствам из собственной сети.
ntp access-group serve-only - разрешаем синхронизироваться нашему маршрутизатору только от указанных устройств.
ntp master 5 - повысим немного stratum до 5.
Проверка:
BORDER#show ntp associations 

address ref clock st when poll reach delay offset disp
~127.127.1.1 .LOCL. 4 1 16 377 0.000 0.000 0.239
-~133.100.9.2 .GPS. 1 329 1024 377 388.76 -10.480 14.844
+~193.2.4.2 .GPS. 1 868 1024 377 138.63 -4.156 18.690
-~146.164.48.5 .GPS. 1 314 1024 377 329.80 5.906 14.825
+~130.149.17.8 .PPS. 1 53 1024 377 124.31 -3.582 18.644
-~140.31.199.8 140.31.199.67 2 347 1024 377 347.89 -28.847 14.845
-~199.165.76.11 .GPS. 1 858 1024 377 309.38 3.031 18.684
+~62.117.76.140 .PPS. 1 892 1024 377 54.026 -3.515 18.692
*~62.117.76.141 .PPS. 1 313 1024 377 53.562 -9.441 14.849
+~62.117.76.142 .PPS. 1 333 1024 377 57.318 -7.557 18.681
+~192.36.133.17 .PPS. 1 874 1024 377 130.73 -2.285 18.667
+~192.36.134.25 .PPS. 1 352 1024 377 129.74 -5.566 18.663
-~129.6.15.28 .ACTS. 1 880 1024 377 206.10 -19.655 14.827
-~192.5.41.40 .USNO. 1 296 1024 377 217.28 0.761 18.689
+~193.190.230.66 .PPS. 1 342 1024 377 130.40 -9.481 14.822
-~193.67.79.202 .PPS. 1 828 1024 377 117.07 1.319 14.826
+~131.188.3.220 .GPS. 1 874 1024 377 131.95 -4.950 14.835
+~193.62.22.98 .MSF. 1 354 1024 377 121.55 -2.656 18.648
+~18.26.4.105 .PPS. 1 874 1024 377 213.95 -5.532 14.825
+~192.38.7.240 .GPS. 1 83 1024 377 146.92 -8.415 14.828
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

BORDER#show ntp status
Clock is synchronized, stratum 2, reference is 62.117.76.141
nominal freq is 250.0000 Hz, actual freq is 249.9828 Hz, precision is 2**24
reference time is D01F0B38.43F765F3 (11:23:36.265 KRSK Wed Aug 25 2010)
clock offset is -0.0094 msec, root delay is 0.05 msec
root dispersion is 0.03 msec, peer dispersion is 0.01 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000068667 s/s
system poll interval is 1024, last update was 434 sec ago.

BORDER#show clock detail
11:29:59.076 KRSK Wed Aug 25 2010
Time source is NTP
Summer time starts 02:00:00 KRSK Sun Mar 28 2010
Summer time ends 03:00:00 KRSK Sun Oct 31 2010

Внешний источник синхронизации настроен, но есть еще и внутри сети атомные часы 10.10.10.10 на случай ядерной войны. Настройка маршрутизаторов 10.0.0.1 и 10.0.0.2 примитивна:

access-list 5 permit 10.0.0.0 0.255.255.255
access-list 6 permit 999.999.999.1
access-list 6 permit 10.10.10.10
ntp access-group serve-only 5
ntp access-group peer 6
ntp source Loopback0
ntp server 10.10.10.10
ntp server 999.999.999.1 prefer
В такой конфигурации (ntp server и больше ничего) любой маршрутизатор, коммутатор Cisco (короче нечто, где есть IOS) превращается в ntp-сервер, от которого может синхронизироваться кто угодно. Соответственно, на маршрутизаторах, коммутаторах прописывается:

access-list 6 permit 10.0.0.0 0.0.0.3
ntp access-group peer 6
ntp server 10.0.0.1
ntp server 10.0.0.2
Проверка:
router#show ntp associations 

address ref clock st when poll reach delay offset disp
~10.0.0.1 10.10.10.10 2 80 256 377 0.000 1.215 5.865
*~10.0.0.2 999.999.999.1 3 172 256 377 0.000 6.293 10.214
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
Следует отметить, что считается хорошей практикой устанавливать на маршрутизаторах при новой инсталляции время вручную, чтобы после перезагрузки получить время приближенное к действительности, а не 1993 год. Это критично как для логирования, сбора netflow, radius-аккаунтинга.
router#clock set 23:59:00 Dec 21 2012
Теперь синхронизировать будем Juniper:
root@junos> show configuration | display set | match ntp    
set system ntp server 10.0.0.1
set system ntp server 10.0.0.2
Проверка:
root@junos> show ntp associations 
remote refid st t when poll reach delay offset jitter
==============================================================================
*10.0.0.1 999.999.999.1 3 u 14 64 3 16.288 -27.760 23.627
+10.0.0.1 999.999.999.1 3 - 10 64 3 6.145 -27.633 19.544

root@junos> show ntp status
status=0644 leap_none, sync_ntp, 4 events, event_peer/strat_chg,
version="ntpd 4.2.0-a Tue Nov 3 09:45:49 UTC 2009 (1)",
processor="mips", system="JUNOS10.0R1.8", leap=00, stratum=4,
precision=-17, rootdelay=70.747, rootdispersion=83.134, peer=13748,
refid=10.0.0.1,
reftime=d01eff82.d5c61a6f Wed, Aug 25 2010 10:33:38.835, poll=6,
clock=d01eff9c.b10f3a5e Wed, Aug 25 2010 10:34:04.691, state=4,
offset=-27.693, frequency=68.926, jitter=17.191, stability=0.118

При синхронизации серверов следует учитывать, что ntpd - демон, который используется для автоматической синхронизации, позволяет синхронизировать только в случае, если разница во времени не слишком велика:
ntpd[1234]: time correction of -3600 seconds exceeds sanity limit (1000); set clock manually to the correct UTC time.
Необходимо в таких случаях выставить время вручную, либо использовать программу ntpdate, а только после перезапустить ntpd

18.08.2010

Подключение Juniper SRX к Cisco ASA

Абстрактная задача заключается в необходимости поднять туннель из приватной сети до корпоративной через Интернет. Варианты решения:
1. PPtP-туннель с рабочего места до корпоративного маршрутизатора
2. IPIP-туннель до корпоративного маршрутизатора через IPSec до Cisco ASA.
Имеется некая корпоративная сеть с маршрутизаторами Cisco и межсетевым экраном Cisco ASA. В связи с трудностями приобретения ASA-K9, пробуем аналог Juniper SRX 100B. Примечательно, что аналог умеет ipip-,gre-туннели.
Рисуем схематичную картинку:

План адресации:
10.0.0.0 - 10.0.0.255 Loopback /32
10.0.1.0 - 10.0.1.255 P2p /30
10.10.0.0 - 10.10.255.0 LAN /24
999.999.999.0/30 - p2p ASA-Internet
888.888.888.888 - публичный адрес DSL-модема


Конфигурация R1:
interface Loopback0
ip address 10.0.0.1 255.255.255.255
!
interface Tunnel2
description *** TO SRX2 10.0.0.2***
bandwidth 10000
ip address 10.1.0.5 255.255.255.252
ip mtu 1480
tunnel source 10.0.0.1
tunnel destination 10.0.0.2
tunnel mode ipip
tunnel path-mtu-discovery
!
interface Tunnel3
description *** TO SRX3 10.0.0.3***
bandwidth 10000
ip address 10.1.0.9 255.255.255.252
ip mtu 1480
tunnel source 10.0.0.1
tunnel destination 10.0.0.3
tunnel mode ipip
tunnel path-mtu-discovery
!
interface GigabitEthernet0/1
description *** TO ASA ***
ip address 10.1.0.1 255.255.255.252
!
ip route 0.0.0.0 0.0.0.0 10.1.0.2
ip route 10.0.0.2 255.255.255.255 10.1.0.2
ip route 10.0.0.3 255.255.255.255 10.1.0.2
ip route 10.10.1.0 255.255.255.0 10.1.0.6
ip route 10.10.2.0 255.255.255.0 10.1.0.10
Удаленные точки имеют произвольный внешний адрес. На ASA не прописывается acl для ipsec и создается динамический crypto map. При заведении tunnel-group с именем вместо Ip-адреса будет сообщено, что подключение возможно только с использованием сертификата, либо в агрессивном режиме (aggressive mode).
Конфигурация ASA:
interface GigabitEthernet0/0
description LAN
speed 1000
duplex full
nameif inside
security-level 100
ip address 10.1.0.2 255.255.255.252
!
interface GigabitEthernet0/1
description Internet
speed 1000
duplex full
nameif outside
security-level 0
ip address 999.999.999.1 255.255.255.252

object-group network IPIPhost.local
network-object host 10.0.0.1
object-group network IPIPhost.remote
network-object host 10.0.0.2
network-object host 10.0.0.3
object-group network LAN
network-object 10.10.0.0 255.255.0.0
access-list ACL-IN extended permit ip object-group IPIPhost.local object-group IPIPhost.remote
access-list ACL-IN extended permit ip object-group LAN any
access-list InternetAccess extended permit ip object-group LAN any
access-list nonat extended permit ip object-group IPIPhost.local object-group IPIPhost.remote
nat-control
global (outside) 1 777.777.777.16 255.255.255.240
nat (inside) 0 access-list nonat
nat (inside) 1 access-list InternetAccess
access-group ACL-IN in interface inside
route outside 0.0.0.0 0.0.0.0 999.999.999.2 1
route inside 10.0.0.0 255.0.0.0 10.1.0.1 1
route outside 10.0.0.2 255.255.255.255 999.999.999.2
route outside 10.0.0.3 255.255.255.255 999.999.999.2

no crypto isakmp am-disable

crypto ipsec transform-set ESP-AES-128-SHA esp-aes esp-sha-hmac
crypto ipsec transform-set ESP-AES-256-MD5 esp-aes-256 esp-md5-hmac
crypto ipsec transform-set ESP-DES-SHA esp-des esp-sha-hmac
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto ipsec transform-set ESP-DES-MD5 esp-des esp-md5-hmac
crypto ipsec transform-set ESP-AES-192-MD5 esp-aes-192 esp-md5-hmac
crypto ipsec transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac
crypto ipsec transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac
crypto ipsec transform-set ESP-AES-192-SHA esp-aes-192 esp-sha-hmac
crypto ipsec transform-set ESP-AES-128-MD5 esp-aes esp-md5-hmac
crypto ipsec security-association lifetime seconds 3600
crypto ipsec security-association lifetime kilobytes 1048576
crypto ipsec df-bit clear-df outside
crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set transform-set ESP-AES-128-SHA ESP-AES-128-MD5 ESP-AES-192-SHA ESP-AES-192-MD5 ESP-AES-256-SHA ESP-AES-256-MD5 ESP-3DES-SHA ESP-3DES-MD5 ESP-DES-SHA ESP-DES-MD5
crypto dynamic-map espaessha 1 set transform-set ESP-AES-128-SHA
crypto map outside_map1 65000 ipsec-isakmp dynamic espaessha
crypto map outside_map1 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP
crypto map outside_map1 interface outside
crypto isakmp enable outside
crypto isakmp policy 5
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto isakmp policy 10
authentication pre-share
encryption des
hash sha
group 2
lifetime 86400
crypto isakmp policy 15
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
crypto isakmp disconnect-notify

tunnel-group SRX2 type ipsec-l2l
tunnel-group SRX2 ipsec-attributes
pre-shared-key SecreT2
tunnel-group SRX3 type ipsec-l2l
tunnel-group SRX3 ipsec-attributes
pre-shared-key SecreT3

DSL-модем работает в режиме маршрутизатора и раздает адреса по dhcp. На его LAN интерфейсе адрес 192.168.0.1, который будет адресом по-умолчанию для SRX. Аплинк SRX подключается в порт 0/7. Все остальные интерфейсы настроены для подключения рабочих мест.
set groups IPSEC_VALUE security ipsec proposal IPSEC_VALUE_GROUP protocol esp
set groups IPSEC_VALUE security ipsec proposal IPSEC_VALUE_GROUP lifetime-seconds 3600
set groups IPSEC_VALUE security ipsec proposal IPSEC_VALUE_GROUP lifetime-kilobytes 1048576
set system host-name router-in-somewhere

set system name-server 10.10.100.100
set system services ssh
set system services telnet
set system services web-management http interface vlan.0
set system services web-management http interface fe-0/0/7.0
set system services web-management https system-generated-certificate
set system services web-management https interface vlan.0
set system services dhcp domain-name corporate.local
set system services dhcp domain-search corporate.local
set system services dhcp wins-server 10.10.100.100
set system services dhcp router 10.10.1.254
set system services dhcp pool 10.10.1.0/24 address-range low 10.10.1.10
set system services dhcp pool 10.10.1.0/24 address-range high 10.10.1.99
set system syslog archive size 100k
set system syslog archive files 3
set system syslog user * any emergency
set system syslog file messages any critical
set system syslog file messages authorization info
set system syslog file interactive-commands interactive-commands error
set system max-configurations-on-flash 5
set system max-configuration-rollbacks 5
set system license autoupdate url https://ae1.juniper.net/junos/key_retrieval
set system ntp server 10.0.0.1
set interfaces interface-range interfaces-trust member fe-0/0/1
set interfaces interface-range interfaces-trust member fe-0/0/2
set interfaces interface-range interfaces-trust member fe-0/0/3
set interfaces interface-range interfaces-trust member fe-0/0/4
set interfaces interface-range interfaces-trust member fe-0/0/5
set interfaces interface-range interfaces-trust member fe-0/0/6
set interfaces interface-range interfaces-trust member fe-0/0/0
set interfaces interface-range interfaces-trust unit 0 family ethernet-switching vlan members vlan-trust
set interfaces ip-0/0/0 unit 0 tunnel source 10.0.0.2
set interfaces ip-0/0/0 unit 0 tunnel destination 10.0.0.1
set interfaces ip-0/0/0 unit 0 tunnel path-mtu-discovery
set interfaces ip-0/0/0 unit 0 family inet mtu 1480
set interfaces ip-0/0/0 unit 0 family inet address 10.1.0.6/30
set interfaces fe-0/0/7 unit 0 description Internet
set interfaces fe-0/0/7 unit 0 family inet dhcp
set interfaces lo0 unit 0 family inet address 10.0.0.2/32
set interfaces st0 unit 0 family inet
set interfaces vlan unit 0 family inet address 10.10.1.254/24
set routing-options static route 10.0.0.0/8 next-hop 10.1.0.5
set routing-options static route 10.0.0.1/32 next-hop st0.0
set routing-options static route 0.0.0.0/0 next-hop 192.168.0.1
set routing-options router-id 10.0.0.2
set security ike proposal IKE_PROP_DEFAULT authentication-method pre-shared-keys
set security ike proposal IKE_PROP_DEFAULT dh-group group2
set security ike proposal IKE_PROP_DEFAULT authentication-algorithm sha1
set security ike proposal IKE_PROP_DEFAULT encryption-algorithm 3des-cbc
set security ike proposal IKE_PROP_DEFAULT lifetime-seconds 86400
set security ike policy IKE_POL_DEFAULT mode aggressive
set security ike policy IKE_POL_DEFAULT proposals IKE_PROP_DEFAULT
set security ike policy IKE_POL_DEFAULT pre-shared-key ascii-text SecreT2
set security ike gateway HUB ike-policy IKE_POL_DEFAULT
set security ike gateway HUB address 999.999.999.1
set security ike gateway HUB local-identity hostname SRX2
set security ike gateway HUB external-interface fe-0/0/7
set security ipsec proposal IPSEC_PROP_DEFAULT apply-groups IPSEC_VALUE
set security ipsec proposal IPSEC_PROP_DEFAULT authentication-algorithm hmac-sha1-96
set security ipsec proposal IPSEC_PROP_DEFAULT encryption-algorithm 3des-cbc
set security ipsec proposal ESP-AES-128-SHA apply-groups IPSEC_VALUE
set security ipsec proposal ESP-AES-128-SHA authentication-algorithm hmac-sha1-96
set security ipsec proposal ESP-AES-128-SHA encryption-algorithm aes-128-cbc
set security ipsec proposal ESP-AES-256-MD5 apply-groups IPSEC_VALUE
set security ipsec proposal ESP-AES-256-MD5 authentication-algorithm hmac-md5-96
set security ipsec proposal ESP-AES-256-MD5 encryption-algorithm aes-256-cbc
set security ipsec proposal ESP-DES-SHA apply-groups IPSEC_VALUE
set security ipsec proposal ESP-DES-SHA authentication-algorithm hmac-sha1-96
set security ipsec proposal ESP-DES-SHA encryption-algorithm des-cbc
set security ipsec proposal ESP-3DES-SHA apply-groups IPSEC_VALUE
set security ipsec proposal ESP-3DES-SHA authentication-algorithm hmac-sha1-96
set security ipsec proposal ESP-3DES-SHA encryption-algorithm 3des-cbc
set security ipsec proposal ESP-DES-MD5 apply-groups IPSEC_VALUE
set security ipsec proposal ESP-DES-MD5 authentication-algorithm hmac-md5-96
set security ipsec proposal ESP-DES-MD5 encryption-algorithm des-cbc
set security ipsec proposal ESP-AES-192-MD5 apply-groups IPSEC_VALUE
set security ipsec proposal ESP-AES-192-MD5 authentication-algorithm hmac-md5-96
set security ipsec proposal ESP-AES-192-MD5 encryption-algorithm aes-192-cbc
set security ipsec proposal ESP-3DES-MD5 apply-groups IPSEC_VALUE
set security ipsec proposal ESP-3DES-MD5 authentication-algorithm hmac-md5-96
set security ipsec proposal ESP-3DES-MD5 encryption-algorithm 3des-cbc
set security ipsec proposal ESP-AES-256-SHA apply-groups IPSEC_VALUE
set security ipsec proposal ESP-AES-256-SHA authentication-algorithm hmac-sha1-96
set security ipsec proposal ESP-AES-256-SHA encryption-algorithm aes-256-cbc
set security ipsec proposal ESP-AES-192-SHA apply-groups IPSEC_VALUE
set security ipsec proposal ESP-AES-192-SHA authentication-algorithm hmac-sha1-96
set security ipsec proposal ESP-AES-192-SHA encryption-algorithm aes-192-cbc
set security ipsec proposal ESP-AES-128-MD5 apply-groups IPSEC_VALUE
set security ipsec proposal ESP-AES-128-MD5 authentication-algorithm hmac-md5-96
set security ipsec proposal ESP-AES-128-MD5 encryption-algorithm aes-128-cbc
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-AES-128-SHA
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-AES-128-MD5
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-AES-192-MD5
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-AES-192-SHA
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-AES-256-MD5
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-AES-256-SHA
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-DES-MD5
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-DES-SHA
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-3DES-MD5
set security ipsec policy IPSEC_POL_DEFAULT proposals ESP-3DES-SHA
set security ipsec vpn TO_HUB bind-interface st0.0
set security ipsec vpn TO_HUB ike gateway HUB
set security ipsec vpn TO_HUB ike proxy-identity local 10.0.0.2/32
set security ipsec vpn TO_HUB ike proxy-identity remote 10.0.0.1/32

set security ipsec vpn TO_HUB ike proxy-identity service any
set security ipsec vpn TO_HUB ike ipsec-policy IPSEC_POL_DEFAULT
set security ipsec vpn TO_HUB establish-tunnels immediately
set security nat source rule-set trust-to-untrust from zone trust
set security nat source rule-set trust-to-untrust to zone untrust
set security nat source rule-set trust-to-untrust rule source-nat-rule match source-address 10.10.1.0/24
set security nat source rule-set trust-to-untrust rule source-nat-rule match source-address 10.0.0.2/32
set security nat source rule-set trust-to-untrust rule source-nat-rule match destination-address 0.0.0.0/0
set security nat source rule-set trust-to-untrust rule source-nat-rule then source-nat interface
set security screen ids-option untrust-screen icmp ping-death
set security screen ids-option untrust-screen ip source-route-option
set security screen ids-option untrust-screen ip tear-drop
set security screen ids-option untrust-screen tcp syn-flood alarm-threshold 1024
set security screen ids-option untrust-screen tcp syn-flood attack-threshold 200
set security screen ids-option untrust-screen tcp syn-flood source-threshold 1024
set security screen ids-option untrust-screen tcp syn-flood destination-threshold 2048
set security screen ids-option untrust-screen tcp syn-flood timeout 20
set security screen ids-option untrust-screen tcp land
set security zones security-zone trust host-inbound-traffic system-services all
set security zones security-zone trust host-inbound-traffic protocols all
set security zones security-zone trust interfaces vlan.0
set security zones security-zone trust interfaces st0.0
set security zones security-zone trust interfaces lo0.0
set security zones security-zone trust interfaces ip-0/0/0.0
set security zones security-zone untrust screen untrust-screen
set security zones security-zone untrust host-inbound-traffic system-services ssh
set security zones security-zone untrust host-inbound-traffic system-services ike
set security zones security-zone untrust host-inbound-traffic system-services http
set security zones security-zone untrust host-inbound-traffic system-services all
set security zones security-zone untrust host-inbound-traffic protocols all
set security zones security-zone untrust interfaces fe-0/0/0.0 host-inbound-traffic system-services dhcp
set security zones security-zone untrust interfaces fe-0/0/0.0 host-inbound-traffic system-services tftp
set security zones security-zone untrust interfaces fe-0/0/0.0 host-inbound-traffic system-services http
set security zones security-zone untrust interfaces fe-0/0/0.0 host-inbound-traffic system-services ssh
set security zones security-zone untrust interfaces fe-0/0/0.0 host-inbound-traffic system-services ike
set security zones security-zone untrust interfaces fe-0/0/7.0 host-inbound-traffic system-services all
set security policies from-zone trust to-zone untrust policy trust-to-untrust match source-address any
set security policies from-zone trust to-zone untrust policy trust-to-untrust match destination-address any
set security policies from-zone trust to-zone untrust policy trust-to-untrust match application any
set security policies from-zone trust to-zone untrust policy trust-to-untrust then permit
set security policies from-zone trust to-zone trust policy trust-to-trust match source-address any
set security policies from-zone trust to-zone trust policy trust-to-trust match destination-address any
set security policies from-zone trust to-zone trust policy trust-to-trust match application any
set security policies from-zone trust to-zone trust policy trust-to-trust then permit
set vlans vlan-trust vlan-id 3
set vlans vlan-trust l3-interface vlan.0

Схема с дополнительным туннелем ipip выбрана с целью обеспечить более гибкую маршрутизацию и качество обслуживания. Получился ущерб в MTU, так как пакеты с MTU более 1480 байт и DF битом не будут переданы. У juniper'а есть возможность дефрагментировать такие пакеты только в gre-туннелях и только при наличии карты AS PIC, устанавливаемой в маршрутизаторы.
Смотрим чего получилось:
ASA# show crypto isakmp sa 
[skip]
X IKE Peer: 888.888.888.888
Type : L2L Role : responder
Rekey : no State : AM_ACTIVE

ASA# show crypto ipsec sa peer 888.888.888.888
peer address: 888.888.888.888
Crypto map tag: espaessha, seq num: 1, local addr: 999.999.999.1

local ident (addr/mask/prot/port): (10.0.0.1/255.255.255.255/0/0)
remote ident (addr/mask/prot/port): (10.0.0.2/255.255.255.255/0/0)
current_peer: 888.888.888.888

#pkts encaps: 7226497, #pkts encrypt: 13803665, #pkts digest: 13803665
#pkts decaps: 5169927, #pkts decrypt: 5169927, #pkts verify: 5169927
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 7226497, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 6577168, #pre-frag failures: 0, #fragments created: 13154336
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 42
#send errors: 0, #recv errors: 0

local crypto endpt.: 999.999.999.1/4500, remote crypto endpt.: 888.888.888.888/28223
path mtu 1500, ipsec overhead 82, media mtu 1500
current outbound spi: CBB3E465

inbound esp sas:
spi: 0xDF094148 (3741925704)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, NAT-T-Encaps, }
slot: 0, conn_id: 149721088, crypto-map: espaessha
sa timing: remaining key lifetime (sec): 1019
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0xFFFFFFFF 0xFFFFFFFF
outbound esp sas:
spi: 0xCBB3E465 (3417564261)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, NAT-T-Encaps, }
slot: 0, conn_id: 149721088, crypto-map: espaessha
sa timing: remaining key lifetime (sec): 1018
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001

На удаленной стороне:
root@srx> show security ike sa  
Index Remote Address State Initiator cookie Responder cookie Mode
3 999.999.999.1 UP f6b84688041e47b2 19b6337d92e86171 Aggressive

root@srx> show security ipsec sa
Total active tunnels: 1
ID Gateway Port Algorithm SPI Life:sec/kb Mon vsys
<131073 999.999.999.1 4500 ESP:aes-128/sha1 3765363f 3068/ unlim - 0
>131073 999.999.999.1 4500 ESP:aes-128/sha1 f1fb308a 3068/ unlim - 0

root@srx> show route

inet.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0 *[Static/5] 23:07:06
> to 192.168.0.1 via fe-0/0/7.0
10.0.0.0/8 *[Static/5] 23:17:58
> to 10.1.0.5 via ip-0/0/0.0
10.0.0.2/32 *[Direct/0] 23:21:30
> via lo0.0
10.1.0.4/30 *[Direct/0] 23:17:58
> via ip-0/0/0.0
10.1.0.6/32 *[Local/0] 23:20:51
Local via ip-0/0/0.0
10.10.1.0/24 *[Direct/0] 23:20:30
> via vlan.0
10.10.1.254/32 *[Local/0] 23:21:30
Local via vlan.0
10.0.0.1/32 *[Static/5] 23:17:59
> via st0.0
192.168.0.0/24 *[Direct/0] 23:17:59
> via fe-0/0/7.0
192.168.0.25/32 *[Local/0] 23:17:59
Local via fe-0/0/7.0

root@srx>

UPDATE: Чуть подробнее о туннелях IPSec в Junos

16.08.2010

Создание IP-IP туннеля между двумя серверами FreeBSD

Задача:
Создать IP-IP туннель используя стандартные средствами FreeBSD.

Дано:
Два сервера под управлением FreeBSD 6.4
Сервер А:
интерфейс fxp0, ip 10.0.0.1
Сервер Б:
интерфейс vr0, ip 10.0.0.2

Решение:
Сервер A:
добавляем в rc.conf
gif_interfaces="gif0" # Активируем “туннельный” интерфейс
gifconfig_gif0="10.0.0.1 10.0.0.2" # Задаем параметры создаваемого туннеля (локальный и удалнные ip адреса между которыми будет строиться ip-ip туннель
ifconfig_gif0="inet 172.16.1.1 172.16.1.2 netmask 255.255.255.252 mtu 1500" # Задаем ip адреса создаваемого туннеля (ip на стороне сервера А и на стороне сервера Б, а так же значение mtu, т.к. по умолчанию интерфейс создается с mtu 1280, что препятствует прохождению большинства пакетов)

Сервер Б:
добавляем в rc.conf
gif_interfaces="gif0" # Активируем “туннельный” интерфейс
gifconfig_gif0="10.0.0.2 10.0.0.1" # Задаем параметры создаваемого туннеля (локальный и удалнные ip адреса между которыми будет строиться ip-ip туннель
ifconfig_gif0="inet 172.16.1.2 172.16.1.1 netmask 255.255.255.252 mtu 1500" # Задаем ip адреса создаваемого туннеля (ip на стороне сервера Б и на стороне сервера A)

Перезагружаем оба сервера, либо /etc/rc.d/netif restart на обоих серверах.

Результат:
server_a# ifconfig
fxp0: flags=8843 mtu 1500
options=3b
inet 10.0.0.1 netmask 0xfffffffc broadcast 10.0.0.255
ether 00:15:77:26:88:96
media: Ethernet autoselect (100baseTX )
status: active
gif0: flags=8051 mtu 1500
tunnel inet 10.0.0.1 --> 10.0.0.2
inet 172.16.1.1 --> 172.16.1.2 netmask 0xfffffffc

server_b# ifconfig
vr0: flags=8843 mtu 1500
options=3b
inet 10.0.0.2 netmask 0xfffffffc broadcast 10.0.0.255
ether 00:1e:0b:6f:29:b4
media: Ethernet autoselect (100baseTX )
status: active
gif0: flags=8051 mtu 1500
tunnel inet 10.0.0.2 --> 10.0.0.1
inet 172.16.1.2 --> 172.16.1.1 netmask 0xfffffffc

05.08.2010

Закрытие 8ки на Cisco

Это наиболее востребованная функция, когда применяют COR-листы на голосовых шлюзах cisco.
Необходимо четко понимать, когда они работают и в каком случае не работают в принципе. По-умолчанию все звонки с неопределенным номером, не попавшие ни в какой входящий dial-peer, используют системный dial-peer 0 , который нельзя изменить. Такой вызов будет игнорировать все corlist'ы на любом исходящем dial-peer'е. Потому что:

COR List on Incoming dial-peer


COR List on Outgoing dial-peer


Result

Reason

No COR.

No COR.


Call succeeds.

COR is not in the picture.

No COR.

COR list applied for outgoing calls.


Call succeeds.

The incoming dial-peer, by default, has the highest COR
priority when no COR is applied. Therefore, if you apply no COR for an incoming
call leg to a dial-peer, then this dial-peer can make calls out of any other
dial-peer, irrespective of the COR configuration on the outgoing dial-peer.

The COR list applied for incoming calls.

No COR.


Call succeeds.

The outgoing dial-peer, by default, has the lowest priority.
Since there are some COR configurations for incoming calls on the
incoming/originating dial-peer, it is a super set of the outgoing call COR
configurations on the outgoing/terminating dial-peer.

The COR list applied for incoming calls (super
set of COR lists applied for outgoing calls on the outgoing
dial-peer).


The COR list applied for outgoing calls (subset of COR lists
applied for incoming calls on the incoming dial-peer.)

Call succeeds.

The COR list for incoming calls on the incoming dial-peer is a
super set of COR lists for outgoing calls on the outgoing dial-peer

The COR list applied for incoming calls

(subset of COR lists applied for outgoing calls on the
outgoing dial-peer).

The COR list applied for outgoing calls (super set of COR lists
applied for incoming calls on the incoming dial-peer).

Call cannot be completed using this
outgoing dial-peer.


COR lists for incoming calls on the incoming dial-peer are
not a super set of COR lists for outgoing calls on the
outgoing dial-peer.

Пусть имеется голосовой шлюз Сisco. Для corlist'а непринципиально применение на voip или pots dial-peer'ах.
Для начала необходимо определиться с ограничениями:
1. Ограничить "межгород", набор которого производится через 98
2. Разрешить выход в город, набор которого производится через 9
3. Разрешить выход на корпоративные номера, начинающиеся на 2 и 3.
Имеем ip-телефоны Cisco в нумерации 211x, одному из которых (2111) надо закрыть "межгород" и удаленный шлюз с номерами 311х, где только номеру 3111 необходимо открыть "межгород".
Понадобится всего два corlist'а. Будем проще и назовем их Limit и NoLimit, так как название не имеет никакого значения вообще.
dial-peer cor custom
name Limit
name NoLimit
!
!
dial-peer cor list Limit
member Limit
!
dial-peer cor list NoLimit
member Limit
member NoLimit
Исходя из правила, что при отсутствии входящих corlist'ов на dial-peer'ах все вызовы будут беспрепятственно осуществляться, "вешаем" исходящие corlist'ы
dial-peer voice 98 voip
corlist outgoing NoLimit
description MejGorod
destination-pattern 98T
session target ipv4:10.0.0.100
no vad
dial-peer voice 9 voip
corlist outgoing Limit
description Gorod
destination-pattern 9[012345679]T
session target ipv4:10.0.0.100
no vad
dial-peer voice 2000 voip
corlist outgoing Limit
description Corporate
destination-pattern [23]...
session target ipv4:10.0.0.100
no vad
Теперь необходимо применить входящие corlist'ы. Помним, что отсутствие листа равноценно максимальному приоритету, а несовпадение листов хотя бы одним признаком приведет к отказу в выполнении вызова.
ephone-dn 10
number 2110
!
ephone-dn 11
number 2111
corlist incoming Limit
!
ephone-dn 12
number 2112
!
ephone-dn 13
number 2113
!
ephone-dn 14
number 2114
!
ephone-dn 15
number 2115
!
ephone-dn 16
number 2116
!
ephone-dn 17
number 2117
!
ephone-dn 18
number 2118
!
ephone-dn 19
number 2119
!
dial-peer voice 3110 voip
corlist incoming Limit
description Remote Gateway
huntstop
destination-pattern 311.
session target ipv4:10.100.0.100
no vad
!
dial-peer voice 3111 voip
description Happy User on Remote Gateway
huntstop
destination-pattern 3111
session target ipv4:10.100.0.100
no vad
На ephone-dn и dial-peer'ах выше отсутствуют любые "corlist outgoing", а это значит, что 2111 и 311. могут беспрепятственно звонить на все номера (211х и 311х) на данном шлюзе. Потому что так задумано и описано в таблице.

Ограничение количества звонков в dial-peer'е

В случае, когда необходимо ограничить количество одновременных вызовов в определенном направлении на cisco gateway или cisco UBE (ip-to-ip gateway), в dial-peer'е прописывается команда max-conn, которая при превышении количества вызовов вернет ошибку звонящему "неизвестный номер" и запишет в логи:
%CALL_CONTROL-6-MAX_CONNECTIONS: Maximum number of connections reached for dial-peer <номер dial-peer'а>
Рассмотрим простейший пример:
dial-peer voice 2002 voip
huntstop
max-conn 1
destination-pattern 2002
session target ipv4:10.0.0.100
no vad
Здесь номер dial-peer'а совпадает с номером телефона, указанного в destination-pattern. Обязательно надо применить huntstop, иначе после отработки max-conn и последующему отказу будет производится поиск альтернативного пути. Его быть не должно, иначе теряется смысл ограничения. Из этих же соображений gateway или cube должны иметь только один dial-peer на направление, где необходимо применить ограничение, а это накладывает определенные ограничения на используемый номерной план. Либо это направление должно идти действительно по альтернативному маршруту, избегая узкого места.
Как неправильно:
dial-peer voice 2002 voip
huntstop
max-conn 1
destination-pattern 2002
session target ipv4:10.0.0.100
no vad
dial-peer voice 3003 voip
huntstop
max-conn 1
destination-pattern 3003
session target ipv4:10.0.0.100
no vad
В таком случае будет возможность двух звонков.
Неправильно:
dial-peer voice 2000 voip
huntstop
max-conn 1
destination-pattern [23]00[23]
session target ipv4:10.0.0.100
no vad
В правило попадут помимо 2002 и 3003 номера: 2003, 3002. Поэтому необходимо прорабатывать номерной план заранее. Например сделать 2002 и 2003.
Правильно:
dial-peer voice 2000 voip
huntstop
max-conn 1
destination-pattern 200[23]
session target ipv4:10.0.0.100
no vad

max-conn можно указать только с одной стороны, так как она применяется как к исходящим, так и ко входящим звонкам, но для входящих обязательное условие - корректное определение входящей "ноги"

Область применения: Каналы малой пропускной способности, рассчитанные на небольшое количество одновременных звонков.