Базовая настройка безопасности Cisco
28.05.2013, 18:12. Показов 33397. Ответов 0
Лист не претендует ни то что на полноту информации, более того - даже на корректность.
Все настройки безовой безопасности не расписаны, практически - лишь перечислены возможности и функции защиты. По мере времени и возможности буду дополнять и/или исправлять. О найденных недочетах можно писать ЛС.
Включить-настроить ssh, отключить телнет
- Войдите в режим конфигурации
| Code | 1
2
3
| router>enable
router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z. |
|
- Назначьте имя конфигурируемому устройству
| Code | 1
| router(config)#hostname SSH_ROUTER |
|
- Создайте хотя бы один пользоватльский и/или администраторский аккаунт
| Code | 1
| SSH_ROUTER(config)#username cisco priv 15 secret cisco |
|
- Назначьте устройству имя доменной группы
| Code | 1
| SSH_ROUTER(config)#ip domain-name company.local |
|
| Code | 1
2
3
4
5
6
| SSH_ROUTER(config)#crypto key generate rsa general modul 1024
The name for the keys will be: SSH_ROUTER.company.local
% The key modulus size is 1024 bits
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
SSH_ROUTER(config)#
*Mar 1 00:02:20.251: %SSH-5-ENABLED: SSH 1.99 has been enabled |
|
- Сконфигурируйте версию, таймаут, логирование и кол-во попыток авторизации
| Code | 1
2
3
4
| SSH_ROUTER(config)#ip ssh version 2
SSH_ROUTER(config)#ip ssh time-out 60
SSH_ROUTER(config)#ip ssh logging events
SSH_ROUTER(config)#ip ssh authentication-retries 3 |
|
- Включите SSH на нужных VTY
| Code | 1
2
| SSH_ROUTER(config)#line vty 0 4
SSH_ROUTER(config-line)#transport input ssh |
|
LINES
можно обеспечить определенный уровень безопасности на vty, auxiliary и console lines выполнив следующие рекомендации:
Timeout (session, exec) - время, через которое администратор будет "выкинут" через заданное время неактивности. На Console такое таймаут по умолчанию выключен, - это небезопасно. В большинстве случаев 10-15 минут - это вполне приемлимое значение для этого параметра.
| Code | 1
2
| Router(config-line)# session-timeout <minutes>
Router(config-line)# exec-timeout <minutes> [seconds] |
|
Port Speed - скорость консольного порта (т.н. baud rate) может быть увеличена до максимального поддерживаемого значения, по умолчанию значение равно 9600bps и может быть увеличено до 115200bps.
| Code | 1
| Router(config-line)# speed 115200 |
|
Hung session - зависшие сессии можно система может выявить и и закрыть с помощью сервиса
| Code | 1
| Router(config)# service tcp-keepalives-in |
|
Session Limit - определяет как много sshv2, telnet (или обоих) сессий может быть активно одновременно. По умолчанию этот параметр равен 32, и может быть уменьшен до более практичного с точки зрения безопасности значения 5-10.
| Code | 1
| Router(config-line)#session-limit 10 |
|
Access-List - списки доступа должны быть применены на vty, aux и con порты для обеспечения безопасности путем органичения доступа по таким условиям как отправитель или получатель, административно авторизованные к управлению или настройке устройства. Также хорошей идеей было бы включить логирование подобного доступа в соответствующих списках доступа с помощью ключевого слова log.
| Code | 1
2
3
4
| access-list <xACL#> deny ip any any log-input
!
line vty 0 4
access-class <ACL#> in |
|
TYPE-7 PASSWORD
Пароли, перед которыми Вы видите цифру 7 - не далеко ушли от clear text и спасают разве что он подсматривания "из-за спины". Где это возможно, используйте, пожалуйста, md5 и service password-encryption.
AAA
Используйте функицонал ААА для организации унифицированной системы доступа к устройству. Хорошей идеей будет использовать централизированную систему авторизации и аутентификации с планом "Б" в виде локальной базы на устройстве.
| Code | 1
2
3
4
5
6
7
| Router(config)#aaa new-model
Router(config)#aaa authentication login default group tacacs+ local-case
Router(config)#aaa authentication enable default group tacacs+ enable
Router(config)#aaa authorization commands 15 default group tacacs+ local
Router(config)#aaa accounting exec default stop-only group tacacs+
Router(config)#aaa accounting commands 15 default stop-only group tacacs+
Router(config)#aaa accounting network default stop-only group tacacs+ |
|
Общая безопасность
Cisco IOS предлагает ряд функций по улучшению общего уровня безопасности устройства:
Минимальная длина пароля:
| Code | 1
| Router(config)# security passwords min-length length |
|
Частота попыток авторизации - задает интервал между попытками авторизации в секундах {sec}.
| Code | 1
| Router(config)# login delay <seconds> |
|
Временная блокировка после определенного кол-ва неудачных попыток авторизации с белым листом - полностью выключает возможность авторизации на устройстве на заданное кол-во времени {sec1} после определенного кол-ва {num} неудачных попыток в течение взятого промежутка времени {sec2}, ip адреса обозначенные в соответствующем списке доступа 10 - в "белом листе" и имеют право авторизации даже при блокировке.
| Code | 1
2
3
| Router(config)# access-list 10 permit host 172.26.150.206
Router(config)# login block-for 100 attempts 15 within 100
Router(config)# login quiet-mode access-class 10 |
|
Логирование удачных и неудачных попыток авторизации:
| Code | 1
2
| Router(config)#login on-failure log every {num}
Router(config)#login on-success log every {num} |
|
Защита образа IOS и существующих файлов конфигурации
В случае если кто-то все же залогинился в устройство и стер IOS и файл конфигурации, может привести к достаточно долгому даунтайму (пока IOS скачать, пока бекап конфига найти, если он есть), в определенных сферах деятельности просто недопустимому.
Две команды-спасителя, встречайте:
Эта команда включает защиту IOS (создает неудаляемую копию IOS)
| Code | 1
| Router(config)#secure boot-image |
|
Эта команда включает защиту файла конфигурации (создает неудаляемую копию startup-config)
| Code | 1
| Router(config)#secure boot-config |
|
note: для возможности восстановить ISO необходим роутер с PCMCIA слотом
В режиме rommon указываем устройству грузиться с PCMCIA и имя образа
| Code | 1
| rommon>boot slot: c3745-js2-mz.bin |
|
Восстанавливаем конфигурацию устройства во временный файл
| Code | 1
| Router(config)#secure boot-config restore flash:rescue-cfg |
|
копируем временный файл в файл конфигурации и после этого
| Code | 1
| Router#copy flash:rescue-cfg startup-config |
|
и перезагружаемся.
Настройка доступа «по ролям»
Итак, простым языком говоря, настройка доступа «по ролям» позволяет Вам создать профили второстепенных администраторов для конфигурируемых устройств с ограниченным доступом и набором команд.
Процесс создания view (шаблона профиля):
— Включить ААА (Authorization, Authentication, Accounting)
| Code | 1
| Router(config)#aaa new-model |
|
— Включить Root View (режим, находящийся на ступень выше Privilege Mode, именно из него и только из него можно создать другие view-шаблоны)
note: после выполнения вышеуказанной команды устройство запросит secret пароль при попытке войти в root view, который может быть предварительно установлен с помощью команды: enable secret [password]. После выполнения должно появиться соответствующее сообщение консоли типа:
| Code | 1
| *Oct 17 20:53:57.203: %PARSER-6-VIEW_SWITCH: successfully set to view 'root'. |
|
— Создать новый(-е) View
(создадим, к примеру, один view-шаблон ST_ONLY, с доступом только до команд, начинающихся с «show...» и “telnet…”, а также view-шаблон SP_ONLY c доступом до команд «show…» и «ping») и присвоить созданному View пароль (заметьте, не пользователю, а именно view-шаблону) и набор доступных команд
| Code | 1
2
3
4
5
6
7
8
9
10
| Router(config)#parser view ST_ONLY
*Oct 17 20:58:12.943: %PARSER-6-VIEW_CREATED: view 'ST_ONLY' successfully created.
Router(config-view)#secret pass2st
Router(config-view)#commands exec include all show
Router(config-view)#commands exec include all telnet
Router(config)#parser view SP_ONLY
*Oct 17 21:00:12.771: %PARSER-6-VIEW_CREATED: view 'SP_ONLY' successfully created.
Router(config-view)#secret pass2sp
Router(config-view)#commands exec include show
Router(config-view)#commands exec include ping |
|
Теперь, в случае, когда это необходимо, можно создать так называемый super view, объединяющий в себе несколько других, простых view-шаблонов:
| Code | 1
2
3
4
| Router(config)#parser view SUP_VIEW superview
Router(config-view)#secret pass2sview
Router(config-view)#view ST_ONLY
Router(config-view)#view SP_ONLY |
|
После этого можно создать пользователей локальной базы устройства. Каждому созданному пользователю присваивается свой view по умолчанию, команды которого и будут доступны этому пользователю:
| Code | 1
2
3
| Router(config)#username st_admin view ST_ONLY secret cisco1
Router(config)#username sp_admin view SP_ONLY secret cisco2
Router(config)#username sview_admin view SUP_VIEW secret cisco3 |
|
Полный пример рабочей конфигурации:
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| Router>enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new-model
Router(config)#enable secret supersecretciscopassword
Router(config)#exit
*Oct 17 21:13:37.511: %SYS-5-CONFIG_I: Configured from console by console
Router#enable view
Password:
Router#
*Oct 17 21:13:56.035: %PARSER-6-VIEW_SWITCH: successfully set to view 'root'.
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#parser view ST_ONLY
*Oct 17 21:14:41.699: %PARSER-6-VIEW_CREATED: view 'ST_ONLY' successfully created.
Router(config-view)#secret pass2st
Router(config-view)#commands exec include all show
Router(config-view)#commands exec include all telnet
Router(config-view)#exit
Router(config)#
Router(config)#parser view SP_ONLY
*Oct 17 21:15:32.279: %PARSER-6-VIEW_CREATED: view 'SP_ONLY' successfully created.
Router(config-view)#secret pass2sp
Router(config-view)#commands exec include all show
Router(config-view)#commands exec include all ping
Router(config-view)#exit
Router(config)#
Router(config)#parser view SUP_VIEW superview
*Oct 17 21:16:31.783: %PARSER-6-SUPER_VIEW_CREATED: super view 'SUP_VIEW' successfully created.
Router(config-view)#secret pass2sview
Router(config-view)#view ST_ONLY
*Oct 17 21:17:39.451: %PARSER-6-SUPER_VIEW_EDIT_ADD: view ST_ONLY added to superview SUP_VIEW.
Router(config-view)#view SP_ONLY
*Oct 17 21:17:44.083: %PARSER-6-SUPER_VIEW_EDIT_ADD: view SP_ONLY added to superview SUP_VIEW.
Router(config-view)#exit
Router(config)#username st_admin view ST_ONLY secret cisco1
Router(config)#username sp_admin view SP_ONLY secret cisco2
Router(config)#username sview_admin view SUP_VIEW secret cisco3
Router(config)#aaa authentication login default local
Router(config)#aaa authorization exec default local
Router(config)#aaa authorization console
Router(config)#exit
Router#wr
Building configuration…
*Oct 17 21:23:19.771: %SYS-5-CONFIG_I: Configured from console by console[OK]
Router# |
|
Теперь, после авторизации пользователи st_admin, sp_admin и sview_admin имеют весьма ограниченное количество команд:
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| User Access Verification
Username: st_admin
Password:
Router>?
Exec commands:
enable Turn on privileged commands
exit Exit from the EXEC
show Show running system information
telnet Open a telnet connection
Router> User Access Verification
Username: sp_admin
Password:
Router>?
Exec commands:
enable Turn on privileged commands
exit Exit from the EXEC
ping Send echo messages
show Show running system information
Router> User Access Verification
Username: sview_admin
Password:
Router>?
Exec commands:
enable Turn on privileged commands
exit Exit from the EXEC
ping Send echo messages
show Show running system information
telnet Open a telnet connection |
|
Баннеры
Рекомендуется устанавливать баннеры и уведомления на всех интерактивных сессиях, чтобы убедиться что пользователи красочно уведомлены о летальных последствиях своих необдуманных действий. Удачной идеей является указать "что будет" в случае нарушения "электронных" границ компании и то, что действия логируются. В то время как раскрытие информации о имени устройства, адресах, именах и прочей "personal" информации - является плохой идеей.
Пример:
| Code | 1
2
3
4
5
6
7
| banner login #
UNAUTHORIZED ACCESS TO THIS DEVICE IS PROHIBITED
You must have explicit, authorized permission to access or configure this
device.Unauthorized attempts and actions to access or use this system
may result in civil and/or criminal penalties.All activities performed
on this device are logged and monitored.
# |
|
Сервисы
Подумайте, нужны ли вам сервисы, работающие на устройстве такие как:
Cisco Discovery Protocol (CDP) - думаю, объяснять, что такое CDP не нужно.
Выключить глобально:
Выключить на интерфейсе:
| Code | 1
2
| interface X/X
no cdp enable |
|
Directed Broadcast - пакет ip directed broadcast имеет своим destination валидный broadcast адрес. когда подобный пакет приходит на роутер, последний (если соответственно сконфигурирован и имеет в своих подключенных сетях (directly connected) сеть назначения) может перенаправлять подобные пакеты по назначению, в отличие от стандартного поведения, когда интерфейс роутера оконечивает домен широковещательных сообщений.
Отменить поведение можно с помощью команды уровня интерфейса:
| Code | 1
| no ip directed-broadcast |
|
и другие...
Finger
Maintenance Operations Protocol (MOP)
IP BOOTP Server
IP Redirects
IP Source Routing
Gratuitous arps
PAD
Nagle
Proxy ARP
Ident
TCP and UDP Small Servers
| Code | 1
2
| no service tcp-small-servers
no service udp-small-servers |
|
TCP Keepalives
| Code | 1
2
| service tcp-keepalives-in
service tcp-keepalives-out |
|
DHCP service
IP HTTP Server
Timestamps - сервис датирует сообщения сислога
| Code | 1
2
3
| service timestamps debug datetime localtime show-timezone msec
service timestamps log datetime localtime show-timezone msec
service sequence-numbers |
|
Control Plane
Control Plane Policing позволяет выставить ограничения на уровень управления - этот трафик обрабатывается CPU и может наглухо подвесить систему. Сюда входят протоколы маршрутизации, пакеты, адресованые роутеру, менеджмент протоколы, аля SNMP, протоколы доступа (SSH, Telnet), другие протоколы, такие как ICMP или IP Options также могут требовать обработки в CPU, Layer 2 пакеты, такие как BPDU, CDP, DOT1X и т.д.
1. Определяем критерий отбора - кого мы полисим:
| Code | 1
2
| class-map <traffic_class_name>
match <access-group | protocol* | ip prec | ip dscp> |
|
2. Определяем производимое действие
| Code | 1
2
3
4
5
6
| policy-map <service_policy_name>
class <traffic_class_name>
police <cir | rate> conform-action <transmit | drop > exceed-action
<transmit | drop>
!cir Committed information rate (Bits per second)
!rate Specify policy rate in packets per second (pps) |
|
3. Применяем политику на control plane:
| Code | 1
2
3
4
| control-plane
service-policy {input | output} <service_policy_name>
! input Assign policy-map to the input of an interface
! output** Assign policy-map to the output of an interface |
|
Контроль использования CAM таблицы коммутатора
Portsecurity - функция, строящая список безопасных мак адресов
динамически - лист строится динамически и адреса, которые разрешены на порту учатся свитчом самостоятельно, в кол-ве, заранее оговоренном.
статически - администратор самостоятельно указывает разрешенные адреса.
| Code | 1
2
3
4
5
6
7
8
9
| interface fastethernet X/X
switchport mode access
switchport port-security
switchport port-security maximum 10
switchport port-security mac-address 0000.0000.0003 !(Static secure MAC)
switchport port-security mac-address sticky
switchport port-security mac-address sticky 0000.0000.0001 !(Sticky
static MAC)
switchport port-security mac-address sticky 0000.0000.0002 |
|
Cisco AutoSecure
Функция интерактивного диалога с роутером, в результате которого вам предложат те или иные методы защиты
| Code | 1
2
3
4
5
6
7
8
9
10
11
| R2#auto secure ?
firewall AutoSecure Firewall
forwarding Secure Forwarding Plane
full Interactive full session of AutoSecure
login AutoSecure Login
management Secure Management Plane
no-interact Non-interactive session of AutoSecure
ntp AutoSecure NTP
ssh AutoSecure SSH
tcp-intercept AutoSecure TCP Intercept
<cr> |
|
Безопасность маршрутизации
- Ограничьте круг возможных участников процесса маршрутизации
- Используйте авторизацию
- Используйте встроенные методы безопасности протоколов, т.к. BGP TTL
- Security Check
- Маршрутизацию включайте только на нужных интерфейсах
- Не включайте маршрутизацию на "пользовательских" интерфейсах
- Контролируйте распространяемые маршруты
- Логируйте статусы "соседей" (log-neighbor-changes)
Безопасность коммутации
- Ограничьте зоны широковещательных доменов
- Используйте функции защиты Dynamic ARP Inspection, DHCP Snooping и IP Source Guard
- Используйте функции защиты STP (фильтры и гарды)
SNMP
Для "снятия показаний" со своих железных друзей вы можете использовать SNMP, который тоже не нужно забывать защищать.
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
| ip access-list standard management_hosts
permit host X.X.X.X
permit host X.X.X.X
!
snmp-server community <COMMUNITY> RO management_hosts
snmp-server ifindex persist
snmp-server trap-source Gi0/0
snmp-server location <Site_ID>
!
snmp-server enable traps
!
snmp-server host <snmp_trap_receiver01> <community>
snmp-server host <snmp_trap_receiver02> <community> |
|
Syslog
Все события на своих коробках по возможности логируем
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
| no logging console
no logging monitor
!
logging buffered 65535
!
logging trap notification
!
logging facility local7
!
logging host <syslog server1>
logging host <syslog server2>
!
logging source-interface loopback0 |
|
Служба времени
NTP поддерживает аутентификацию - используйте её
| Code | 1
2
3
4
5
6
| ntp authentication-key 1 md5 <KEY>
ntp authenticate
ntp trusted-key 1
ntp server 10.136.15.15 version 4 key 1 prefer burst
ntp server 10.136.15.16 version 4 key 1 burst
ntp source GigabitEthernet 0/0 |
|
Archive
Изменения конфигурации логируем
| Code | 1
2
3
4
| archive
log config
logging enable
hidekeys |
|
Чек-лист для безопасника
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
| Management Plane
Passwords
Enable MD5 hashing (secret option) for enable and local user passwords
Configure the password retry lockout
Disable password recovery (consider risk)
Disable unused services
Configure TCP keepalives for management sessions
Set memory and CPU threshold notifications
Configure
Memory and CPU threshold notifications
Reserve memory for console access
Memory leak detector
Buffer overflow detection
Enhanced crashinfo collection
Use iACLs to restrict management access
Filter (consider risk)
ICMP packets
IP fragments
IP options
TTL value in packets
Control Plane Protection
Configure port filtering
Configure queue thresholds
Management access
Use Management Plane Protection to restrict management interfaces
Set exec timeout
Use an encrypted transport protocol (such as SSH) for CLI access
Control transport for vty and tty lines (access class option)
Warn using banners
AAA
Use AAA for authentication and fallback
Use AAA (TACACS+) for command authorization
Use AAA for accounting
Use redundant AAA servers
SNMP
Configure SNMPv2 communities and apply ACLs
Configure SNMPv3
Logging
Configure centralized logging
Set logging levels for all relevant components
Set logging source-interface
Configure logging timestamp granularity
Configuration Management
Replace and rollback
Exclusive Configuration Change Access
Software resilience configuration
Configuration change notifications
Control Plane
Disable (consider risk)
ICMP redirects
ICMP unreachables
Proxy ARP
Configure NTP authentication if NTP is being used
Configure Control Plane Policing/Protection (port filtering, queue thresholds)
Secure routing protocols
BGP (TTL, MD5, maximum prefixes, prefix lists, system path ACLs)
IGP (MD5, passive interface, route filtering, resource consumption)
Configure hardware rate limiters
Secure First Hop Redundancy Protocols (GLBP, HSRP, VRRP)
Data Plane
Configure IP Options Selective Drop
Disable (consider risk)
IP source routing
IP Directed Broadcasts
ICMP redirects
Limit IP Directed Broadcasts
Configure tACLs (consider risk)
Filter ICMP
Filter IP fragments
Filter IP options
Filter TTL values
Configure required anti-spoofing protections
ACLs
IP Source Guard
Dynamic ARP Inspection
Unicast RPF
Port security
Control Plane Protection (control-plane cef-exception)
Configure NetFlow and classification ACLs for traffic identification
Configure required access control ACLs (VLAN maps, PACLs, MAC)
Configure Private VLANs |
|
также смотрите в сторону таких технологий, как:
Private VLAN / Private VLAN edge - технология защиты и разделения в VLAN
802.1X - технология авторизации доступа
uRPF - технология защиты от нелегитимного трафика в сети
NetFlow - не нуждается в представлении
CPPr - CoPP++
CBAC - технология контроля доступа на основе контекста (минифаервол)
ZBF - программный фаервол встроенный в IOS.
12
|