Всем доброго здравия!
Не так давно начал самостоятельное обучение к сертификации по курсу Cisco CCNA Security. Дело чрезвычайно интересное и полезное, для тех кто сталкивается в жизни с данным вендором. В этом топике хотелось бы ввести, дорогих хаброжителей, в основы основ безопасности Cisco сетях, на примере железок 3-го уровня. Статья не претендует на роль полноценного мануала по безопасности маршрутизаторов, а лишь дает основные понятия подхода к реализации безопасности в Cisco сетях. Топик будит полезен, как для начинающих админов, так и для гуру администрирования, дабы освежить память. И так, с Вашего позволения, поехали:
Сразу оговорюсь, что теории будит мало, в основном лишь комментарии к редко используемым командам. Для примера, я использовал старенькую/тестовую железку, третьего уровня, 28 серии.
В первую очередь необходимо установить длину используемых паролей, в моем случае эта длина будит равна 10 символам:
R1(config)#security passwords min-length 10
Далее, подготовим роутер, для работы через line console, aux port-ы и line vty.
R1(config)#line console 0
R1(config-line)#password cisco
R1(config-line)#exec-timeout 5 0
R1(config-line)#login
R1(config-line)#logging synchronous
Команда exec-timeout говорит нам о том что, при бездействии пользователя в течении 5-ти минут произойдет процесс разлогирования.
Команда logging synchronous запрещает вывод каких-либо консольных сообщений, которые в свою очередь могут прервать ввод команд в консольном режиме. К сожалению по умолчанию она не включена.
R1(config)#line aux 0
R1(config-line)#password ciscoauxpass
R1(config-line)#exec-timeout 5 0
R1(config-line)#login
R1(config)#line vty 0 4
R1(config-line)#password ciscovtypass
R1(config-line)#exec-timeout 5 0
R1(config-line)#login
Воспользуемся командой service password-encryption для шифрования паролей console, aux и vty.
R1(config)# service password-encryption
Далее, настроим информационные баннеры на маршрутизаторе.
R1(config)#banner motd $Внимание, все Ваши действия записываются. Будте Внимательны$
R1(config)#exit
R1(config)#banner login $Внимание, все Ваши действия записываются. Будте Внимательны$
R1(config)#exit
Создадим пользователей системы:
R1(config)#username user1 password 0 cisco123pass.
Здесь можно выставить password со-значением 0, так как мы уже ввели команду service password-encryption и пароль будит в любом случае хешироваться в MD5. Так же обязательно выставлять каждому новому пользователю secret password:
R1(config)#username user2 secret user123pass
R1(config)#line console 0
R1(config-line)#login local
R1(config-line)#end
R1#exit
R1(config)#line aux 0
R1(config-line)#login local
R1(config-line)#end
R1#exit
R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#end
R1#exit
Еще один маленький штрих:
R1(config)#login block-for 60 attempts 2 within 30
В течении 60 секунд, не будит возможности войти в систему после 2-х неудачных попыток залогиниться. Сконфигурим процесс логирования, при всех возможных попытках доступа в систему:
R1(config)#login on-success log
R1(config)#login on-failure log every 2
R1(config)#exit
Подготовим router для работы с ssh соединениям, для этого создадим пользователя с уровнем привилегий 15 и соответствующими настройками line vty, ключи, ограниченным числом сессий и тайм-аутом для ssh сессий:
R1(config)#username admin privilege 15 secret Cisco12345Admin
R1(config)#line vty 0 4
R1(config-line)#privilege level 15
R1(config-line)#login local
R1(config-line)#transport input ssh
R1(config-line)#exit
R1(config)#crypto key generate rsa general-keys modulus 1024
R1(config)#exit
R1(config)#ip ssh time-out 90
R1(config)#ip ssh maxstartups 2
R1(config)#ip ssh authentication-retries 2
Router(config)#wr
Также, при необходимости существует возможность пробросить на нестандартный ssh порт:
R1(config)#ip ssh port 2009 rotary 9
R1(config)# line vty 4
R1(config)#rotary 9
Проверяем:
R1#ssh -l admin -p 2009 192.168.5.5
Конфигурирование AAA: Administrative Role. Это довольно таки сильный механизм и по ней можно написать отдельную статью. В моем случае будит рассмотрен лишь малая его часть. Включаем ААА:
R1#config t
R1(config)#aaa new-model
R1(config)#exit
Включаем для пользователя admin, admin view. Для этого должен быть включен secret password, до того как был включен механизм ААА.
R1(config)#enable secret cisco12345
R1(config)#parser view admin
R1(config-view)#
*Dec 16 22:45:27.587: %PARSER-6-VIEW_CREATED: view 'admin’
successfully created.
Note: To delete a view, use the command no parser view viewname.
Сделаем привязку пользователя и пароля:
R1(config-view)#secret admin1pass
R1(config-view)#
R1(config-view)#commands?
-RITE-profile Router IP traffic export profile command mode
-RMI Node Config Resource Policy Node Config mode
-RMI Resource Group Resource Group Config mode
-RMI Resource Manager Resource Manager Config mode
-RMI Resource Policy Resource Policy Config mode
-SASL-profile SASL profile configuration mode
-aaa-attr-list AAA attribute list config mode
-aaa-user AAA user definition
-accept-dialin VPDN group accept dialin configuration mode
-accept-dialout VPDN group accept dialout configuration mode
-address-family Address Family configuration mode
R1(config-view)#commands exec include all show
R1(config-view)#commands exec include all config terminal
R1(config-view)#commands exec include all debug
R1(config-view)#end
R1#enable view admin1
Password:admin1pass
Далее необходимо подготовить IOS железки, что то вроде на её безопасную загрузку и устойчивость.
R1(config)#secure boot-image
%IOS_RESILIENCE-5-IMAGE_RESIL_ACTIVE: Successfully secured running image
R1(config)#secure boot-config
%IOS_RESILIENCE-5-CONFIG_RESIL_ACTIVE: Successfully secured config archive [flash:.runcfg-19930301-00131.ar]
Все это проверяется командами:
R1#show flash
R1#show secure bootset
Конфигурим службу syslog на маршрутизаторе. Для этого нам понадобится Kiwi Syslog Daemon или Tftpd32 на отдельном PC, с настройками данных программ, думаю не должно возникнуть особых сложностей, там в принципе все просто. Так же необходимо будит поднять NTP сервер на routre, для синхронизации времени логов.
R1(config)#ntp server 10.1.1.2
R1(config)#ntp update-calendar
R1#show ntp associations
R1#debug ntp all
R1(config)#service timestamps log datetime msec
R1(config)#logging 192.168.1.3
Далее выставляем уровень логирования:
R1(config)#logging trap?
Severity level Keyword Meaning
0 emergencies System unusable
1 alerts Immediate action required
2 critical Critical conditions
3 errors Error conditions
4 warnings Warning conditions
5 notifications Normal but significant condition
6 informational Informational messages
7 debugging Debugging messages
Обычно выбирается уровень 4. Но все зависит от конкретной ситуации.
Ну вот в принципе пока все. Это то что мне удалось узнать из первых уроков курса и ПРОВЕРИТЬ в «боевых» условиях. Надеюсь, что не сильно утомил.
Не так давно начал самостоятельное обучение к сертификации по курсу Cisco CCNA Security. Дело чрезвычайно интересное и полезное, для тех кто сталкивается в жизни с данным вендором. В этом топике хотелось бы ввести, дорогих хаброжителей, в основы основ безопасности Cisco сетях, на примере железок 3-го уровня. Статья не претендует на роль полноценного мануала по безопасности маршрутизаторов, а лишь дает основные понятия подхода к реализации безопасности в Cisco сетях. Топик будит полезен, как для начинающих админов, так и для гуру администрирования, дабы освежить память. И так, с Вашего позволения, поехали:
Сразу оговорюсь, что теории будит мало, в основном лишь комментарии к редко используемым командам. Для примера, я использовал старенькую/тестовую железку, третьего уровня, 28 серии.
В первую очередь необходимо установить длину используемых паролей, в моем случае эта длина будит равна 10 символам:
R1(config)#security passwords min-length 10
Далее, подготовим роутер, для работы через line console, aux port-ы и line vty.
R1(config)#line console 0
R1(config-line)#password cisco
R1(config-line)#exec-timeout 5 0
R1(config-line)#login
R1(config-line)#logging synchronous
Команда exec-timeout говорит нам о том что, при бездействии пользователя в течении 5-ти минут произойдет процесс разлогирования.
Команда logging synchronous запрещает вывод каких-либо консольных сообщений, которые в свою очередь могут прервать ввод команд в консольном режиме. К сожалению по умолчанию она не включена.
R1(config)#line aux 0
R1(config-line)#password ciscoauxpass
R1(config-line)#exec-timeout 5 0
R1(config-line)#login
R1(config)#line vty 0 4
R1(config-line)#password ciscovtypass
R1(config-line)#exec-timeout 5 0
R1(config-line)#login
Воспользуемся командой service password-encryption для шифрования паролей console, aux и vty.
R1(config)# service password-encryption
Далее, настроим информационные баннеры на маршрутизаторе.
R1(config)#banner motd $Внимание, все Ваши действия записываются. Будте Внимательны$
R1(config)#exit
R1(config)#banner login $Внимание, все Ваши действия записываются. Будте Внимательны$
R1(config)#exit
Создадим пользователей системы:
R1(config)#username user1 password 0 cisco123pass.
Здесь можно выставить password со-значением 0, так как мы уже ввели команду service password-encryption и пароль будит в любом случае хешироваться в MD5. Так же обязательно выставлять каждому новому пользователю secret password:
R1(config)#username user2 secret user123pass
R1(config)#line console 0
R1(config-line)#login local
R1(config-line)#end
R1#exit
R1(config)#line aux 0
R1(config-line)#login local
R1(config-line)#end
R1#exit
R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#end
R1#exit
Еще один маленький штрих:
R1(config)#login block-for 60 attempts 2 within 30
В течении 60 секунд, не будит возможности войти в систему после 2-х неудачных попыток залогиниться. Сконфигурим процесс логирования, при всех возможных попытках доступа в систему:
R1(config)#login on-success log
R1(config)#login on-failure log every 2
R1(config)#exit
Подготовим router для работы с ssh соединениям, для этого создадим пользователя с уровнем привилегий 15 и соответствующими настройками line vty, ключи, ограниченным числом сессий и тайм-аутом для ssh сессий:
R1(config)#username admin privilege 15 secret Cisco12345Admin
R1(config)#line vty 0 4
R1(config-line)#privilege level 15
R1(config-line)#login local
R1(config-line)#transport input ssh
R1(config-line)#exit
R1(config)#crypto key generate rsa general-keys modulus 1024
R1(config)#exit
R1(config)#ip ssh time-out 90
R1(config)#ip ssh maxstartups 2
R1(config)#ip ssh authentication-retries 2
Router(config)#wr
Также, при необходимости существует возможность пробросить на нестандартный ssh порт:
R1(config)#ip ssh port 2009 rotary 9
R1(config)# line vty 4
R1(config)#rotary 9
Проверяем:
R1#ssh -l admin -p 2009 192.168.5.5
Конфигурирование AAA: Administrative Role. Это довольно таки сильный механизм и по ней можно написать отдельную статью. В моем случае будит рассмотрен лишь малая его часть. Включаем ААА:
R1#config t
R1(config)#aaa new-model
R1(config)#exit
Включаем для пользователя admin, admin view. Для этого должен быть включен secret password, до того как был включен механизм ААА.
R1(config)#enable secret cisco12345
R1(config)#parser view admin
R1(config-view)#
*Dec 16 22:45:27.587: %PARSER-6-VIEW_CREATED: view 'admin’
successfully created.
Note: To delete a view, use the command no parser view viewname.
Сделаем привязку пользователя и пароля:
R1(config-view)#secret admin1pass
R1(config-view)#
R1(config-view)#commands?
-RITE-profile Router IP traffic export profile command mode
-RMI Node Config Resource Policy Node Config mode
-RMI Resource Group Resource Group Config mode
-RMI Resource Manager Resource Manager Config mode
-RMI Resource Policy Resource Policy Config mode
-SASL-profile SASL profile configuration mode
-aaa-attr-list AAA attribute list config mode
-aaa-user AAA user definition
-accept-dialin VPDN group accept dialin configuration mode
-accept-dialout VPDN group accept dialout configuration mode
-address-family Address Family configuration mode
R1(config-view)#commands exec include all show
R1(config-view)#commands exec include all config terminal
R1(config-view)#commands exec include all debug
R1(config-view)#end
R1#enable view admin1
Password:admin1pass
Далее необходимо подготовить IOS железки, что то вроде на её безопасную загрузку и устойчивость.
R1(config)#secure boot-image
%IOS_RESILIENCE-5-IMAGE_RESIL_ACTIVE: Successfully secured running image
R1(config)#secure boot-config
%IOS_RESILIENCE-5-CONFIG_RESIL_ACTIVE: Successfully secured config archive [flash:.runcfg-19930301-00131.ar]
Все это проверяется командами:
R1#show flash
R1#show secure bootset
Конфигурим службу syslog на маршрутизаторе. Для этого нам понадобится Kiwi Syslog Daemon или Tftpd32 на отдельном PC, с настройками данных программ, думаю не должно возникнуть особых сложностей, там в принципе все просто. Так же необходимо будит поднять NTP сервер на routre, для синхронизации времени логов.
R1(config)#ntp server 10.1.1.2
R1(config)#ntp update-calendar
R1#show ntp associations
R1#debug ntp all
R1(config)#service timestamps log datetime msec
R1(config)#logging 192.168.1.3
Далее выставляем уровень логирования:
R1(config)#logging trap?
Severity level Keyword Meaning
0 emergencies System unusable
1 alerts Immediate action required
2 critical Critical conditions
3 errors Error conditions
4 warnings Warning conditions
5 notifications Normal but significant condition
6 informational Informational messages
7 debugging Debugging messages
Обычно выбирается уровень 4. Но все зависит от конкретной ситуации.
Ну вот в принципе пока все. Это то что мне удалось узнать из первых уроков курса и ПРОВЕРИТЬ в «боевых» условиях. Надеюсь, что не сильно утомил.