В современном мире безграничной власти технологий все больше и больше внимания уделяется конфиденциальности, целостности и доступности хранимых или передаваемых данных. И это понятно, ибо кто захочет, чтобы информация, которая считается личной или секретной досталась третьим лицам или (не дай Бог) конкурентам или даже врагам.
Так что же такое защищенная информация в области сетей передачи данных? Абсолютно защищенной сети не бывает и быть не может и полностью защищенной она может считаться, вероятно, только если отключить каждое устройство от сети (или даже, пожалуй, лучше вообше выключить, для надежности). Но кому нужна такая сеть, данные в которой не передаются? Верно, никому. Таким образом, встает вопрос о том как же сделать её максимально защищенной, учтя вместе с тем все те возможные уязвимости, снова и снова подкидываемые нам производителями (софт/хард)вара.
В этой статье я расскажу/покажу некоторые нюансы настройки устройств Cisco таким образом, чтобы иметь возможность контролировать кто имеет доступ к этим устройствам, как к одним из основных узлов сети, и какого, собственно говоря, этот доступ будет рода.
Три основных подтемы:
— Настройка доступа «по ролям»
где будет рассказано про так называемые views, которые определяют какие именно команды могут быть использованы (читай «доступны») для того или иного авторизовавшегося пользователя
— Средства повышения безопасности процесса авторизации
где будет рассказано про улучшения, которые можно привнести в процесс авторизации пользователей, как то сколько попыток ввода неверных данных может быть произведено, логирование процесса авторизации и т.д.
— Защита образов IOS и существующих файлов конфигурации
где будет рассказано про возможности защиты и восстановление удаленных IOS и файла конфигурации, да-да, и такое бывает.
1. Настройка доступа «по ролям».
Итак, простым языком говоря, настройка доступа «по ролям» позволяет Вам создать профили второстепенных администраторов для конфигурируемых устройств с ограниченным доступом и набором команд.
Процесс создания 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 'S_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 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 имеют весьма ограниченное количество команд:
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
2. Средства повышения безопасности процесса авторизации
В этой части я приведу набор команд, имеющих своей целью повысить безопасность процесса авторизации пользователей на устройстве Cisco и кратко объясню их назначение.
Полностью выключает возможность авторизации на устройстве на заданное кол-во времени {sec1} после определенного кол-ва {num} неудачных попыток в течение взятого промежутка времени {sec2}.
Router(config)#login block-for {sec1} attempts {num} within {sec2}
Разрешает заданной листом доступа группе устройств доступ до роутера даже в том случае, если возможность авторизации заблокирована предыдущей командой «login block-for…». То есть другими словами — в случае, когда злоумышленник перебором пытается подобрать пароль, чтобы мы сами все равно могли иметь возможность авторизироваться.
Router(config)#access-list 10 permit 10.0.0.0
Router(config)#login quite-mode access-class 10
Задает интервал между попытками авторизации в секундах {sec}.
Router(config)#login delay {sec}
Логирование неудачных / удачных попыток авторизации в SYSLOG.
Router(config)#login on-failure log every {num}
Router(config)#login on-success log every {num}
Минимальная длина пароля, допустимая при смене пользователем пароля.
Router(config)#security password min-length {num}
Тайм-аут, по истечении которого пользователь «выкидывается» из системы.
Router (config-line)#exec-timeout {min} {sec}
Шифрование сохраненных в конфигурации паролей.
Router(config)#service password-encryption
3. Защита образа 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
и перезагружаемся.
Данная статья написана под впечатлением от просмотра CCNA Security CBT_Nuggets для обобщения и систематизации знаний, а также для последующей подготовки к экзаменам.