Автоматичне збереження конфігурації маршрутизаторів cisco
У цій статті розповідається про те, як встановити автоматичний запис конфігурації мережевого устаткування, що працює під управлінням Cisco IOS і відстеження змін за допомогою RCS.
Для вирішення цього завдання існує як мінімум три програми (крім скриптів, написаних мною) - ciscoconf (порт FreeBSD / usr / ports / net-mgmt / ciscoconf) і rancid. Перша (ciscoconf) копіює конфігурації конфігурацію по RSH і зберігає в RCS. Її перевага - вона це може робити відразу після завершення конфігурації відстежуючи появу в балці рядки містить% SYS-5-CONFIG_I. Друга (rancid) більш універсальна і дозволяє працювати не тільки з обладнанням Cisco. Для своєї роботи вона вимагає збереження в конфіги пароля на доступ по telnet і пароль enable. Я вважаю, що це робити небажано з міркувань безпеки (але це суб'єктивна думка, snmp НЕ безопасноее). Вже після написання цього скрипта я натрапив ще на один проект - Pancho. Там так само конфіги копіюються іспользуюя snmp + tftp.
Налаштування tftp-сервера
Далі створюємо каталог / var / tftproot і в ньому підкаталог / var / tftproot / config для зберігання конфігов. Власником папки tftproot робимо netmgr і ставимо права 700 щоб обмежити доступ до конфігам, у якому серед іншого містять паролі. tftp-сервер дає можливість записувати тільки в раніше створений файл, в який має доступ на запис користувач, під яким запускається tftpd:
touch / var / tftproot / config / router1 touch / var / tftproot / config / router2 chown netmgr / var / tftproot / config / *
Налаштування snmp
Налаштуємо доступ на маршрутизатор з сервера по snmp. Створюємо ACL якими буде захищений доступ до snmp на запис і ACL для обмеження серверів, на які можна копіювати конфиг по tftp. В даному випадку можна замість двох зробити один, але в загальному випадку вони можуть і різнитися: Вказуємо snmp-community (яке грає роль пароля) і ACL для доступу на запис: Вказуємо куди можна копіювати конфиг по tftp:
Для тестування роботи модуля і раніше зроблених налаштувань напишемо найпростіший скрипт: Конфиг повинен скопіювати в / var / tftproot / config / router1.
Скрипт для копіювання та приміщення конфігов в RCS
fetchconf.pl: Т. к. скрипт містить RW snmp-community, призначаємо йому права 700, щоб інші користувачі не могли його прочитати. Всі настройки прописуються на початку скрипта. При додаванні нової циского досить прописати її в хешах% community і% hosts. Для перевірки роботи запускаємо скрипт, що ні будь міняємо на циского і запускаємо знову. Повинно прийти лист. Скрипт потрібно прописати в cron користувача netmgr. Для невеликої мережі, з рідкісними змінами досить запускати раз в декілька годин:
Приклад листа, якого висилають скриптом:
Невелике зауваження з безпеки - захист сервера на якому працює цей скрипт потрібно приділити підвищену увагу, оскільки якщо зловмисник отримає повний доступ до цього хосту, то він зможе по tftp скопіювати на маршрутизатори змінений конфиг і отримає таким чином повний конторль над усіма маршрутизаторами. Бажано розміщувати подібну систему на сервері, який не має відкритих у зовнішній світ сервісів (web, mail, ftp і т. Д.)