Пример базы Keepass для сетевого администратора
Все мы храним или хранили пароли от сетевых устройств в excel файлах. Бывает конечно и так, что хранить ничего не надо так как учетная запись на всех устройства одинаковая, надеюсь читатели поняли, что я говорю не про RADIUS или TACACS, а про ситуацию, когда учетная запись действительно одна.
Когда запускаешь сеть, не всегда удается поднять какой-нибудь NCM для управления новым детищем. Когда у вас мало устройств и ограничены ресурсы, текстовый документ или таблица excel кажутся оптимальным средством хранения данных, но в глубине души мы все понимаем, что это не так.
Хорошо если в вашей компании есть ресурсы и обозначен стабильный рост. В таком случае в какой-то момент вы разворачиваете приложение для управлению сетью. Но кто-то, в конечном итоге, так и остаётся на уровне «контролцэ-контролвэ», из-за отсутсвия ресурсов, а может и по другим причинам. Именно для этих людей данная статья. Я расскажу как уйти от excel, сделать хранение паролей более удобным и получить некоторую автоматизацию типовых телодвижений. Заметка: все описания для Windows окружения.
Как вы догадались из заголовка, я советую использовать для хранения учетных данных базу keepass. Я не буду размахивать красочными плакатами и агитировать за keepass хотябы потому, что это сделали до меня уже десятки раз. Я просто покажу, как использую его я и как он помогает мне. А вы, исходя из моего опыта, уже решите сами стоит ли экспортировать данные из вашего любимого txt файла. Я сказал экспортировать, а не перносить вручную, потому что для этого существует очень много инструментов, и даже самый запутаный excel можно перенести в keepass очень легко.
И так приступим. Я храню данные в разбитом по типу устройств виде, но это не обязательно, так как поиск в keepass находит сочетания символов даже в середине слова (но к сожалениею не умеет regexp). Для начала я создаю шаблон типового устройства. К стандартным полям, в зависимости от устройств, я добавляю новые поля, например для устройств Cisco это поле enable. Так же добавляю общие поля, например lan, в котором будет жить ip адрес локального интерфейса. Если вы собираетесь экспортировать данные, то шаблоны надо продумать заранее. Несмотря на возможности массового редактирования, лучше предусмотреть всё и сразу. Для каждого типа устройств, я предусматриваю свой шаблон, ведь очевидно что к Windows серверу не придется подключаться по ssh, а к маршрутизатору Cisco по RDP. Именно по этому я предлагаю разрабатывать шаблоны хранения, что бы не плодить лишние пустые поля. В принципе, для простого хранения данных, этого достаточно, но я обещал автоматизацию и вот она.
Нам понадобится плагин KPEnhancedEntryView. Это расширение позволяет просматривать и редактировать базу из одного окна. Для установки скачайте файл плагина с оффициального сайта keepass и просто скопируйте его в папку с установленной программой.
Keepass с данным плагином понимает линки вида CMD:// для запуска командной строки windows. Значения полей можно передавать в виде переменных, чем я и пользуюсь.
Важно! В переменную PATH из окружения Windows надо добавить пути до приложений которые вы будете использовать. Я например использую putty и psexec, поэтому добавил в переменную пути до этих программ
Дальше можно формировать команды запуска приложений с параметрами прямо из Keepass. Что бы строка воспринималась как линк, её надо начать символом < и закончить символом >. Ниже строка для подключения к устройству по протоколу по ssh используя putty:
Благодаря внутренним переменным строка будет передаваться в CDM так:
PuTTY.exe -ssh 97.161.16.54 -l user1 -pw 1234567890
Строка обернутая в <> воспринимается как линк и теперь при клике на данную ссылку через keepass, автоматически будет вызвана программа putty и ей будут переданы параметры устройства. Передаваемыми параметрами могут быль любые поля keepass. Параметры надо обернуть в фигурные скобки { }. Для стандартных параметров имена зарезервированы, например {USERNAME} и {PASSWORD}. Если параметр создали вы, то к его названию в начале надо добавить латинсткую букву S с двоеточием, вот так выглядит для передача параметра lan: {S: lan}. Таким нехитрым способом можно запустить приложение-клиент для подключения по любому протоколу от telnet до rdp.
Так же я использую подобные ссылки для автоматизации траблшутинга устройств. Например ping всех ip адресов устройства:
Я использую psexec поэтому могу получать вспомогательные данные с удаленных windows хостов
Можно запускать приложения на удаленном хосте, для тестирования пропускной способности сети (предварительно установив его туда)
В дополнение я прикладываю шаблон базы, что бы вы смогли подставить туда свои данные и посмотреть как это работает. Шаблон базы
Пароль от базы habrahabr
P.S. Ещё один плюс плагина KPEnhancedEntryView, который вы несомненно оцените, это то, что он позволяет легко оставлять заметки и файловые вложения для каждого устройства.
Комментарии (7)
4 июля 2016 в 15:19
0↑
↓
Почти такое же было https://habrahabr.ru/post/303894/4 июля 2016 в 15:24
0↑
↓
у меня статья больше про шаблон хранения, я просто прелагаю один из способов использования приложения, который мне кажется удобным.
перезапись URL это отдельная тема.
4 июля 2016 в 16:07
0↑
↓
ИМХО очень любопытно.
Вопрос к автору: Какие могут быть идеи в ситуации когда есть команда из админов 4–5 чел распределенных по стране?!4 июля 2016 в 16:10
0↑
↓
синхронизация изменений в keepass присуствует, так что он подходит для общей работы.
я имею опыт использования keepass на googledrive и dropbox, но это конечно же моветон.
обычной расшареной для админов папки будет достаточно.
4 июля 2016 в 16:10
+1↑
↓
Есть еще плагин KeeAgent, позволяет хранить ssh ключи прямо в базе и отдает их в Putty по запросу (как pageant).4 июля 2016 в 17:26
0↑
↓
Не опасно ли передавать пароль ключом командной строки? Ведь тогда все приложения, видящие список процессов, могут без проблем получить его.4 июля 2016 в 17:33
0↑
↓
, а такое действительно возможно?