Выполнение удаленных команд на CISCO ­ Дневник ­ Максим Боголепов

Выполнение удаленных команд на CISCO ­ Дневник ­ Максим Боголепов

Для решения поставленной задачи необходимо выполнить следующее:

1. Заходим на cisco и в режиме конфигурирования включаем возможность удаленного выполнения команд:

2. Для безопасности необходимо указать с какого интерфейса будут осуществляться команды удаленного управления. В моем случае команда для cisco выглядит так:

— где GigabitEthernet0/1.1 интерфейс одной из локальных сетей, в которой находится сервер FreeBSD.

3. Необходимо указать имя локального пользователя cisco, от имени которого удаленный пользователь будет выполнять команды, ip адрес (или hostname) удаленного сервера и само имя удаленного пользователя. Данная команда будет иметь следующий вид:

— где cisco_user – локальный пользователь, заведенный на cisco; — 192.168.100.3 – ip адрес сервера, с которого будут выполняться команды удаленного администрирования; — remote_user – имя пользователя на удаленном сервере, от имени которого будут выполняться команды удаленного администрирования (в моем случае – это root сервера FreeBSD); — 15 – уровень привилегий, с которыми будет работать локальный пользователь cisco.

Некоторое отступление. В моем случае, в качестве локального пользователя cisco, мною был использован пользователь admin, уже заведенный на cisco командой:

— где: admin – собственно – имя пользователя; — 15 – уровень привилегий (в данном слечае – максимальный); — swordfish – пароль (замените на свой).

Если вам необходимо, создайте еще одного пользователя с привилегиями, отличными от 15, и пропишите ему команды, которые он будет иметь право с данным уровнем привилегий исполнять. Например, создадим пользователя traf с уровнем привилегий 5 и дадим ему возможность собирать и обнулять статистику какого-либо интерфейса по ip accounting. Листинг команд будет следующим:

4. Если вы в предыдущей команде указали ip адрес удаленного сервера, а не его hostname, вам необходимо дать следующую команду:

— которая отключит проверку соответствия ip в базе DNS его hostname, т.к. при неудачном сопоставлении – у вас не получится выполнить удаленные команды на cisco. В принципе, если ваш DNS настроен правильно, то данную команду можно опустить.

5. Нам осталось включить отладку проделанной работы, чтобы в случае неудачи иметь возможность отследить ошибки. Делается это так:

Просмотр отладочной информации осуществляется так:

Отключение отладочной информации будет осуществлена следующей командой:

На этом подготовку cisco к выполнению удаленных команд можно считать завершенной.

Листинг проделанной работы:

Для проверки выполнения удаленных команд с сервера FreeBSD выполним под root’ом на нем команду:

Синтаксис команды прост: — после флага -l идет имя локального пользователя в cisco; — 192.168.100.2 – ip адрес cisco; — show clock – команда, которая должна выполниться на cisco.

Если после отработки данной команды вы получите примерно тоже самое, то задача решена.

Теперь настало время разобрать нюансы. Все они связаны с уже существующим настройками виртуальной консоли на вашей cisco — line vty 0 4.

При моей первой попытке выполнить удаленную команду на cisco у меня выскочила ошибка No free VTYs :

Как оказалось, в моих настройках данной виртуальной консоли при подключении к ней, был обозначен только протокол ssh (transport input ssh). Для выполнения удаленных команд требуется еще и протокол telnet. (Причем при исходящих соединениях протокол telnet не обязателен). Так что настройки line vty 0 4 в этой части должны выглядеть так:

Следующая ошибка, которая может у вас возникнуть, Permission denied. Она возникает, если вы неправильно указали локального пользователя в cisco, от имени которого должны выполняться удаленные команды:

В данном примере мною был указан пользователь root, не имеющий никакого отношения к самой cisco. Если вы не хотите путаться, то заведите пользователя на cisco с таким именем и не забудьте поправить команду ip rcmd remote-host на что-то подобное:

Опять же, из-за существующих настроек в моей cisco, я получил ошибку следующего рода – Access denied :

На этот раз дело оказалось в настройке списка доступа, указанном мною в line vty 0 4:

Список acl_login выглядел сперва так:

Для выполнения удаленных команд необходимо еще разрешить подключение к 514 порту (cmd). После правки список доступа стал выглядеть так:

Настройка line vty 0 4 выглядит полностью так:

В заключении осталось указать на возможные решения при выполнении удаленных команд на cisco, требующих подтверждения [confirm]. В интерактивном режиме с ним проблем нет, но возникает вопрос, как послать его через rsh? Сам я пока с таким не сталкивался. Но вот тут подсказывают:

Вот теперь, действительно – все! :)

_____ В современных версиях FreeBSD в явном виде команда rsh отсутствует. Чтобы она появилась необходимо установить пакет net/bsdrcmds

📎📎📎📎📎📎📎📎📎📎