Управление оборудованием Cisco с помощью RSH

1. Настройка маршрутизатора Cisco

1.1 Разрешаем глобально протокол RSH
R(config)# ip rcmd rsh-enable

1.2 Отключаем функцию определения IP адреса по DNS в протоколе RSH
R(config)# no ip rcmd domain-lookup
Данная команда может не отражаться в конечной конфигурации

1.3 Определяем с какого адреса, какой пользователь может работать по протоколу RSH
R(config)#ip rcmd remote-host main 10.200.2.5 www-data enable
Здесь main – имя пользователя на маршрутизаторе Cisco с привилегиями достаточными для выполнения команд.
10.200.2.5 – IP адрес сервера, с которого будут посылаться команды на выполнение на маршрутизаторе
www-data – имя пользователя на сервер 10.200.2.5, от имени которого будут запускаться команды на выполнение
Для настройки можно выполнить еще такую команду:
R(config)#ip rcmd remote-host xak 10.200.2.5 root enable
В этом случае мы из под root в командной строке сможем давать команды RSH в сторону Cisco

1.4 Пользователь main должен быть создан на маршрутизаторе. Если такого пользователя нет, то его необходимо создать:
R(config)# username xak privilege 15 password 7 ХХХХХХХХХХХ

1.5 Проверяем, что на vty интерфейсах разрешен протокол rsh.
Можно разрешить любой протокол:
R(config)#line vty 0 4
R(config-line)#transport input all
Или настроить доступ с помощью access-list.

2. Устанавливаем нужное программное обеспечение на сервер

2.1 Устанавливаем пакет из репозитария
Для CentOS:
#yum install rsh
Для Debian:
#apt-get install rsh-redone-client rsh-redone-server

2.2 Открываем порты для RSH
# iptables -I INPUT -p tcp –dport 1022:1023 -j ACCEPT
Не забываем сохранить настройки iptables.

3. Теперь выполняем на сервере команду
Пример:

root@lg:~# rsh -l main 10.200.255.12 sh run int Loopback800
Building configuration…
Current configuration : 127 bytes
!
interface Loopback800
description >PPPoE outside<
ip vrf forwarding INTERNET
ip address 10.1.255.255 255.255.255.255
end

P.S.

no ip rcmd domain-lookup Эта команда может быть необходима, если вы используете в поле <ADDRESS> IP адрес UNIX-сервера, а не его доменное имя. Дело в том, что функция rsh проверяет наличие в базе DNS этого адреса и если данная проверка в силу каких либо окончится неудачей, то, вместо выполнения команды на CISCO, вы получите хрен по всей морде. Чтобы избежать подобных казусов и рекомендуется использовать эту команду, отключающую проверку DNS.
rlogin trusted-remoteuser-source localrlogin trusted-localuser-source local Если вы используете разные имена для local-username и remote-username, то без использования этих команд у вас явно возникнут проблемы, типа: rsh: remoteuser x.x.x.x remoteuser not in trusted hosts database. (В принципе, можно ещё добавить rlogin trusted-localuser-source tacacs

Для отладки – проверки подключения при проблемах на циске можно выполнить команду:

debug ip TCP rcmd
После неё команда show log будет показывать попытки подключения по rcmd -- как успешные, так и неудачные, например:
router#show log
Syslog logging: enabled (0 messages dropped, 1 messages rate-limited, 0 flushes, 0 overruns, xml disabled)
Console logging: level debugging, 88 messages logged, xml disabled
Monitor logging: level debugging, 0 messages logged, xml disabled
Buffer logging: level debugging, 88 messages logged, xml disabled
Logging Exception size (4096 bytes)
Count and timestamp logging messages: disabled
Trap logging: level informational, 64 message lines logged
Log Buffer (4096 bytes):
3-UPDOWN: Interface Serial0/0:1, changed state to up
Aug 10 17:26:04: %SYS-5-CONFIG_I: Configured from console by CIADMIN on vty0 (a.b.9.152)
Aug 10 13:39:30.210: RCMD: [514 <- 10.50.11.111:1023] recv 1022\0
Aug 10 13:39:30.450: RCMD: [514 <- 10.50.11.111:1023] recv root\0root\0cle\0
Aug 10 13:39:30.450: RCMD: [514 <- 10.50.11.111:1023] recv --- root a.b.11.111 root not in trusted hosts database
Aug 10 13:39:30.450: RCMD: [514 -> 10.50.11.111:1023] send <BAD,Permission denied.>\n
Aug 10 13:39:57.623: RCMD: [514 <- 10.50.11.111:1021] recv 1020\0
Aug 10 13:39:57.847: RCMD: [514 <- 10.50.11.111:1021] recv root\0ciadmin\0cle\0
Aug 10 13:39:57.847: RCMD: [514 -> 10.50.11.111:1021] send <OK>
Aug 10 13:40:35.284: RCMD: [514 <- 10.50.11.111:1023] recv 1022\0
Aug 10 13:40:35.508: RCMD: [514 <- 10.50.11.111:1023] recv root\0ciadmin\0clear ?\0
Aug 10 13:40:35.508: RCMD: [514 -> 10.50.11.111:1023] send <OK>
Aug 10 13:41:21.628: RCMD: [514 <- 10.50.11.111:1023] recv 1022\0
Aug 10 13:41:21.852: RCMD: [514 <- 10.50.11.111:1023] recv root\0ciadmin\0show running-\0
router#