Лист не претендует ни то что на полноту информации, более того - даже на корректность.Все настройки базовой безопасности не расписаны, практически - лишь перечислены возможности и функции защиты. По мере времени и возможности буду дополнять и/или исправлять. О найденных недочетах можно писать ЛС.
Включить-настроить ssh, отключить телнет
-
Войдите в режим конфигурации
router>enable
router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
-
Назначьте имя конфигурируемому устройству
router(config)#hostname SSH_ROUTER
-
Создайте хотя бы один пользоватльский и/или администраторский аккаунт
SSH_ROUTER(config)#username cisco priv 15 secret cisco
-
Назначьте устройству имя доменной группы
SSH_ROUTER(config)#ip domain-name company.local
-
Сгенерируйте RSA ключ
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
-
Сконфигурируйте версию, таймаут, логирование и кол-во попыток авторизации
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
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 минут - это вполне приемлимое значение для этого параметра.
Router(config-line)# session-timeout <minutes>
Router(config-line)# exec-timeout <minutes> [seconds]
Port Speed - скорость консольного порта (т.н. baud rate) может быть увеличена до максимального поддерживаемого значения, по умолчанию значение равно 9600bps и может быть увеличено до 115200bps.
Router(config-line)# speed 115200
Hung session - зависшие сессии можно система может выявить и и закрыть с помощью сервиса
Router(config)# service tcp-keepalives-in
Session Limit - определяет как много sshv2, telnet (или обоих) сессий может быть активно одновременно. По умолчанию этот параметр равен 32, и может быть уменьшен до более практичного с точки зрения безопасности значения 5-10.
Router(config-line)#session-limit 10
Access-List - списки доступа должны быть применены на vty, aux и con порты для обеспечения безопасности путем органичения доступа по таким условиям как отправитель или получатель, административно авторизованные к управлению или настройке устройства. Также хорошей идеей было бы включить логирование подобного доступа в соответствующих списках доступа с помощью ключевого слова log.
access-list <xACL#> deny ip any any log-input!line vty 0 4access-class <ACL#> in
TYPE-7 PASSWORD
Пароли, перед которыми Вы видите цифру 7 - не далеко ушли от clear text и спасают разве что он подсматривания "из-за спины". Где это возможно, используйте, пожалуйста, md5 и service password-encryption.
AAA
Используйте функицонал ААА для организации унифицированной системы доступа к устройству. Хорошей идеей будет использовать централизированную систему авторизации и аутентификации с планом "Б" в виде локальной базы на устройстве.
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 предлагает ряд функций по улучшению общего уровня безопасности устройства:
Минимальная длина пароля:
Router(config)# security passwords min-length length
Частота попыток авторизации - задает интервал между попытками авторизации в секундах {sec}.
Router(config)# login delay <seconds>
Временная блокировка после определенного кол-ва неудачных попыток авторизации с белым листом - полностью выключает возможность авторизации на устройстве на заданное кол-во времени {sec1} после определенного кол-ва {num} неудачных попыток в течение взятого промежутка времени {sec2}, ip адреса обозначенные в соответствующем списке доступа 10 - в "белом листе" и имеют право авторизации даже при блокировке.
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
Логирование удачных и неудачных попыток авторизации:
Router(config)#login on-failure log every {num}
Router(config)#login on-success log every {num}
Защита образа IOS и существующих файлов конфигурации
В случае если кто-то все же залогинился в устройство и стер IOS и файл конфигурации, может привести к достаточно долгому даунтайму (пока IOS скачать, пока бекап конфига найти, если он есть), в определенных сферах деятельности просто недопустимому.
Две команды-спасителя, встречайте:
Эта команда включает защиту IOS (создает неудаляемую копию IOS)
Router(config)#secure boot-image
Эта команда включает защиту файла конфигурации (создает неудаляемую копию startup-config)
Router(config)#secure boot-config
note: для возможности восстановить ISO необходим роутер с PCMCIA слотом
В режиме rommon указываем устройству грузиться с PCMCIA и имя образа
rommon>boot slot: c3745-js2-mz.bin
Восстанавливаем конфигурацию устройства во временный файл
Router(config)#secure boot-config restore flash:rescue-cfg
копируем временный файл в файл конфигурации и после этого
Router#copy flash:rescue-cfg startup-config
и перезагружаемся.
Настройка доступа «по ролям»
Итак, простым языком говоря, настройка доступа «по ролям» позволяет Вам создать профили второстепенных администраторов для конфигурируемых устройств с ограниченным доступом и набором команд.
Процесс создания view (шаблона профиля):
-
Включить ААА (Authorization, Authentication, Accounting)
Router(config)#aaa new-model
-
Включить Root View (режим, находящийся на ступень выше Privilege Mode, именно из него и только из него можно создать другие view-шаблоны)
Router#enable view
note: после выполнения вышеуказанной команды устройство запросит secret пароль при попытке войти в root view, который может быть предварительно установлен с помощью команды: enable secret [password]. После выполнения должно появиться соответствующее сообщение консоли типа:
*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-шаблону) и набор доступных команд
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-шаблонов:
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 по умолчанию, команды которого и будут доступны этому пользователю:
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>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 consoleRouter(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 имеют весьма ограниченное количество команд:
User Access Verification
Username: st_admin
Password:
Router>?
Exec commands:
enable Turn on privileged commandsexit
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 commandsexit
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 commandsexit
Exit from the EXEC
ping Send echo messages
show Show running system information
telnet Open a telnet connection
Баннеры
Рекомендуется устанавливать баннеры и уведомления на всех интерактивных сессиях, чтобы убедиться что пользователи красочно уведомлены о летальных последствиях своих необдуманных действий. Удачной идеей является указать "что будет" в случае нарушения "электронных" границ компании и то, что действия логируются. В то время как раскрытие информации о имени устройства, адресах, именах и прочей "personal" информации - является плохой идеей.
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 не нужно.
Выключить глобально:
no cdp run
Выключить на интерфейсе:
interface X/X no cdp enable
Directed Broadcast - пакет ip directed broadcast имеет своим destination валидный broadcast адрес. когда подобный пакет приходит на роутер, последний (если соответственно сконфигурирован и имеет в своих подключенных сетях (directly connected) сеть назначения) может перенаправлять подобные пакеты по назначению, в отличие от стандартного поведения, когда интерфейс роутера оконечивает домен широковещательных сообщений.
Отменить поведение можно с помощью команды уровня интерфейса:
no ip directed-broadcast
и другие...
Finger
no ip finger
Maintenance Operations Protocol (MOP)
no mop enabled
IP BOOTP Server
no ip bootp server
IP Redirects
no ip redirects
IP Source Routing
no ip source-route
Gratuitous arps
no ip gratuitous-arps
PAD
no service pad
Nagle
service nagle
Proxy ARP
no ip proxy-arp
Ident
no ip identd
TCP and UDP Small Servers
no service tcp-small-servers no service udp-small-servers
TCP Keepalives
service tcp-keepalives-in service tcp-keepalives-out
DHCP service
no service dhcp
IP HTTP Server
no ip http server
Timestamps - сервис датирует сообщения сислога
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. Определяем критерий отбора - кого мы полисим:
class-map <traffic_class_name> match <access-group | protocol* | ip prec | ip dscp>
2. Определяем производимое действие
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:
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 - функция, строящая список безопасных мак адресов
динамически - лист строится динамически и адреса, которые разрешены на порту учатся свитчом самостоятельно, в кол-ве, заранее оговоренном.
статически - администратор самостоятельно указывает разрешенные адреса.
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
Функция интерактивного диалога с роутером, в результате которого вам предложат те или иные методы защиты
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, который тоже не нужно забывать защищать.
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
Все события на своих коробках по возможности логируем
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 поддерживает аутентификацию - используйте её
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
Изменения конфигурации логируем
archive log config logging enable hidekeys
Чек-лист для безопасника
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