Разворачиваем Cisco ISE в среде Hyper-V и не только
Обучение в ИТ — это процесс перманентный. ИТ специалист просто обязан учиться каждый день, чтобы не только узнать что-то новое, но и не растерять старое. И раз уж я начал свою статью с темы обучения, хочу поблагодарить команду проекта «CCIE за год» за прекрасную возможность подготовиться к экзамену CCIE в команде единомышленников и под чутким руководством грамотных специалистов/тренеров.
В процессе подготовки к экзамену 300–208 SISAS из трека CCNP Security придется разбираться с таким продуктом сетевой безопасности как Cisco Identity Service Engine. Изучив теорию, обязательно захочется перейти к практике. Для этого отлично подойдет виртуальная машина. Но образ виртуальной машины доступен только для VMWare, что, в принципе, не является проблемой, но привносит некоторое неудобство. Например, у меня установлено 2 ОС — Windows 10 и Ubuntu 15.10, и я предпочитаю использовать нативный Hyper-V в Windows или интегрированный в GNS3 VirtualBox в Ubuntu. В этом случае можно воспользоваться вариантом чистой установки Cisco ISE с образа iso, доступного на сайте cisco.com.
После первых попыток установить ISE в одном из официально неподдерживаемых гипервизоров оказалось, что сделать это не так просто. Инсталлятор завершается в самом начале установки с тексом ошибки о том, что ISE не может быть установлен в данной среде. Но это не приговор… Итак, у нас есть iso образ и мы готовы приступить к установке Cisco ISE 2.0 в среде Hyper-V.
Установка осуществляется инсталлятором Anaconda с использованием Kickstart, весь процесс предварительной проверки совместимости реализован в kickstart файле. Начинаем с распаковки iso образа любым архиватором в директорию локального диска. После завершения распаковки, переходим в каталог с распакованным образом и находим файл ks.cfg. Открываем его в текстовом редакторе и вносим правки:
1. Необходимо закомментировать все вызовы halt — добавляем # перед всеми строчками /sbin/halt -f;
2. Необходимо заменить все вызовы приложения cars_udi_util с различными параметрами статическими записями:
Строки вида:
UDI_PID=`/sbin/cars_udi_util -p`
UDI_VID=`/sbin/cars_udi_util -v`
UDI_SN=`/sbin/cars_udi_util -s`
Необходимо заменить строками вида:
UDI_PID="Cisco-VM-SPID"
UDI_VID="1.0"
UDI_SN="123456789"
3. Так же необходимо жестко указать UDI_PID в первой строке функции validate_hwinfo (). Для этого после строки «validate_hwinfo (){» вставляем новую строку вида UDI_PID=«Cisco-VM-SPID».
Сохраняем все изменения в исходном файле. Теперь необходимо пересобрать iso файл. Для этой задачи рекомендую воспользоваться приложением ImgBurn. После установки приложения, запускаем его и выбираем меню «Create image file from files/folders».
![image](https://habrastorage.org/files/604/0e0/a13/6040e0a13b474a46b504389d2ad7f037.jpg)
В открывшемся окне указываем исходную папку с файлами распакованного ранее iso образа (Source) и файл назначения (Destination).
![image](https://habrastorage.org/files/9ac/7dc/e39/9ac7dce39c4a462094d7d89ddc995580.jpg)
Переходим на вкладку «Options» и устанавливаем следующие значения:
File System: ISO9660 + Joliet
Recurse Subdirectories: Enabled
Include Hidden Files: Enabled
Include System Files: Enabled
![image](https://habrastorage.org/files/348/6d6/ca8/3486d6ca8a664f919d6e020dad97147c.jpg)
На вкладке «Labels» необходимо указать метки тома.
![image](https://habrastorage.org/files/efe/61f/51f/efe61f51f86f4ef0908c1b34b11aa573.jpg)
Переходим на вкладку «Advanced». Сперва установим ограничения на вкладке «Restrictions → ISO9660»:
Folder/File Name Length: Level 1 - 11 Charachters, 8.3 Format
Charachter Set: Standard
Allow More Than 8 Directory Levels: Enabled
Allow More Than 255 Characters In Path: Enabled
Allow Files Without Extensions: Enabled
Don't Add ';1' Version Number To Files: Enabled
![image](https://habrastorage.org/files/c5d/750/300/c5d750300fa444fe8a1adb7ef4c9c07c.jpg)
Переходим ко вкладке «Restrictions → Joliet»:
Folder/File Name Length: Level 1 - 64 Characters
Allow Files Without Extensions: Enabled
![image](https://habrastorage.org/files/746/a3f/204/746a3f2046ba4d26bd74b777769f97a6.jpg)
Завершаем конфигурацию на вкладке «Bootable Disc»:
Make Image Bootable: Enabled
Boot Image: указываем путь к файлу isolinux.bin (находится в папке isolinux распакованного iso образа)
Patch Boot Information Table: Enabled
После этого наживаем кнопку внизу окна слева и начинается процесс создания загрузочного iso образа.
![image](https://habrastorage.org/files/4ed/2cc/4a7/4ed2cc4a748d40eaa5d59e213f5c4602.jpg)
Теперь, когда у нас есть модифицированный установочный образ Cisco ISE, мы можем приступать к установке. Создаем вириальную машину Hyper-V 1-ого поколения, соответствующую минимальным параметрам. В качестве загрузочного носителя указываем созданный iso образ, сохраняем конфигурацию виртуальной машины и запускаем её.
При запуске будет запущен ряд проверок, которые будут возвращать на консоль виртуальной машины страшные сообщения об ошибках. Боятся их не стоит ведь мы с Вами ранее закомментировали все вызовы halt в ks скрипте. Установка достаточно проста и не должна вызвать проблем, официальное руководство находится по ссылке.
По завершении установки виртуальная машина перезагрузиться и после запуска нас попросят ввести слово setup для первоначальной конфигурации ПО. Далее будет запущен скрипт, который в диалоговом режиме выполнит базовую конфигурацию и развернет схему БД. Это процесс, как правило, занимает 15–20 минут. По окончании машина будет перезапущена. Теперь у нас есть рабочий инстанс Cisco ISE с пробной лицензией, развернутый в виртуальной среде Hyper-V.
Правда есть нюансы по лицензированию — ПО некорректно определяет VID/PID/Serial, работая под Hyper-V. Но это решаемо…
Нам понадобится iso образ CentOS 7 Minimal, актуальная версия доступна по ссылке. Скачиваем образ и указываем его в качестве загрузочного для нашей виртуальной машины. Перезагружаем машину и оказываемся в загрузочном меню инсталлятора CentOS. Выбираем пункт меню «Troubleshooting → Rescue a CentOS system». Нам будет предложено автоматически определить и примонтировать существующую файловую систему (по умолчанию ФС будет смонтирована в каталог /mnt/sysimage/). Переходим в каталог /mnt/sysimage/opt/system/bin/:
cd /mnt/sysimage/opt/system/bin/
Переименовываем существующее приложение cars_udi_util в cars_udi_util.bak:
mv cars_udi_util cars_udi_util.bak
Создаем shell скрипт cars_udi_util или копируем его с внешнего источника:
vi cars_udi_util
#!/bin/sh
# Change PID/VID/Serial to your license.
PID="Cisco-VM-SPID"
VID="1.0"
Serial="HABRAHABR"
Platform="VM"
RUN=0
function pid() {
echo $PID
RUN=1
}
function pid() {
echo $VID
RUN=1
}
function serial() {
echo $Serial
RUN=1
}
function platform() {
echo $Platform
RUN=1
}
while getopts "::qpvst" option
do
case $option in
q ) exit 0 ;;
p ) pid ;;
v ) vid ;;
s ) serial ;;
t ) platform ;;
esac
done
if [ $RUN -eq 0 ]
then
echo "SPID: $PID"
echo "VPID: $VID"
echo "Serial: $Serial"
fi
В качестве VID/PID/Serial указываем свои значения из приобретенных лицензионных файлов.
Устанавливаем права на файл cars_udi_util
chmod 4755 cars_udi_util
Выключаем виртуальную машину, отмонтируем загрузочный iso образ CentOS 7 Minimal и запускаем VM снова. После старта всех служб пробуем подключиться к веб интерфейсу Cisco ISE и проверяем VID/PID/Serial.
Теперь мы можем установить официально приобретённые лицензии в Cisco ISE, работающем в виртуальной среде Hyper-V.