LINUX.ORG.RU
ФорумAdmin

Автоматизация доступа по web-интерфейсу

 web-морда,


0

1

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

По телнету - сразу нет, ибо там у нее не просто телнет а умное-разумное меню и возможности делать бекап конфига там внезапно нет.

По веб морде для того чтоб выдернуть конфиг нужно авторизоваться пост-запросом (плюс оно куки кладет в которых имя пользователя + md5 от посоленного пароля) потом открыть страничку на которой нужная форма и нажать кнопульку «аплоад конфига на внешний TFTP» адрес сервера и имя файла она сама помнит.

пробовал expect, но дюже неудобно там общение через веб-интерфейс автоматизировать (может есть расширения?)

придумал следующий грязный хак: накодил страничку с iframe'ом, на страничку разместил JavaScript для управления грязными делами своими. Думал JS'ом рулить авторизыцией внутри айфрейма а потом и команду на выгрузку дать. Но - не тут-то было: оказалось что когда содержимое айфрейма и хост-страница расположены на разных доменах - такой финт не прокатывает (ограничения безопасности в браузерах) а было бы очень ловко. Может кто знает как такие ограничения отключить (гугл не подсказал)? Может пропатчить какой браузер? тока я самолично там этот код год искать буду, а мне лучше бы быстро.

добавлю на машине администратора стоит win7 и на это я повлиять никак не смогу, правда я волен ставить туда все что захочу, хот виртуалку с линуксом, но хотелось бы малой кровью.

Просьба не пинать за винду - жись такая, задача администрирования в данном случае кроссплатформенная, так что можно :)

Эни айдиас?

★★★★★
Ответ на: комментарий от kostik87

там все довольно хитро. данные не просто отправляются, а еще и жуются JavaScript'ом всяко-разно. Куки кладуться. Я понимаю что все равно можно реализовать, но манипулировать уже готовыми страничками, которые выполняются в браузере в сто раз проще имхо...

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

wget умеет сохранять cookies, при последующем post запросе указываете файл с cookies. Ну а curl можете указать всё тот же файл с сохранённым cookies.

данные не просто отправляются, а еще и жуются JavaScript'ом всяко-разно

Ну значит разберитесь, в каком формате должны быть переданы данные. С другой стороны заполнение двух полей с именем и паролем, затем нажатие кнопки авторизации не должно вызвать проблем. Далее вам, насколько понимаю нужно переключиться на определённую вкладку и нажать кнопку сохранения прошивки, всё делается точно так же, отправляете post / get запрос, который генерирует нажатие этой кнопки, а, скорее всего, так же в запросе передаётё адрес сервера и имя файла.

kostik87 ★★★★★
()

а snmp эта железяка что не могёт?
а если может то, ищи нужный OID и пусть она сама кладет свой файл на комп.

Atlant ★★★★★
()

А что, нельзя ли прямо на промкомпе что-нибудь запустить по расписанию, сформировать файл и отправить его любым доступным способом, куда надо?

anto215 ★★
()

Понимаю, что из пушек по воробьям, но уж если стрелять так стрелять с удобствами: imacros, badboy

blexey ★★★★★
()
Ответ на: комментарий от pihter

Имхо, правильней было бы разобраться, кто именно там выдаёт конфиг после отработки всех скриптов. И договариваться уже с ним, а не со страницей UI. Подозреваю, что скрипты толкут ненужную воду в ступе, подготавливая, собственно, запрос файла конфигурации по какому-нибудь хитрому URL'у.

blexey ★★★★★
()
Последнее исправление: blexey (всего исправлений: 1)
Ответ на: комментарий от kostik87

wget умеет сохранять cookies, при последующем post запросе указываете файл с cookies

ага, wget оказался ловким и легким в освоении - вчера бодался со своей железякой пару часов - никак не хочет авторизоваться даже. там фреймовая структура у страниц веб морды, вроде понятно кто за что отвечает, вроде, все просто, однако, добиться авторизации мне так и не удалось. Возьму сниффер, наверное, посмотрю как браузер авторизуется, там уже бедет проще.

Ну значит разберитесь

Я не настолько крут чтоб ко мне «на Вы» нужно было бы :)

а, скорее всего, так же в запросе передаётё адрес сервера и имя файла.

да, согласен, наверняка так и есть, правда не смотрел еще. Сниффером потыкаю, ниче умнее пока не придумывается...

pihter ★★★★★
() автор топика
Ответ на: комментарий от TOXA

scriptish

Это такая штука, которая позволяет скриптом управлять браузером, я правильно понял?

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

pihter ★★★★★
() автор топика
Ответ на: комментарий от ovax

Curl

Я вот, с лету, вообще не понял чем оно отличается о wget'а, кроме того, что оно не годится для рекурсивного копирования сайтов...

pihter ★★★★★
() автор топика
Ответ на: комментарий от Atlant

а snmp эта железяка что не могёт?

Насколько я понял - могет (вроде видел эту аббревиатуру в меню веб-нитерфейса) только я с сией технологией не работал и, кроме как пару абзацев с вики, ниче про нее не знаю :)

Ну да и это бы не беда - разобрался бы, только мне нельзя внутреннюю конфигурацию устройства менять (собсна, постоянно контролировать ее целостность и есть моя задача)

pihter ★★★★★
() автор топика
Ответ на: комментарий от anto215

А что, нельзя ли прямо на промкомпе что-нибудь запустить по расписанию, сформировать файл и отправить его любым доступным способом, куда надо?

А там не комп, там самобытное устройство :) Естественно, выполнять свой код на нем я не имею возможности

pihter ★★★★★
() автор топика
Ответ на: комментарий от blexey

imacros

Ну тоже скриптование действий браузера, верно?

За идею - тоже спасибо, но, ИМХО, wget я быстрее освою, нежели такие комбайны...

pihter ★★★★★
() автор топика
Ответ на: комментарий от blexey

Имхо, правильней было бы разобраться, кто именно там выдаёт конфиг после отработки всех скриптов

Сия коробка для меня - черный ящик и общаться я с ней могу только по веб-морде. о таки дела..

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Первый запрос - передаешь логин/пароль. В ответ получаешь куку сессии. Кука сессии сохраняется в куки-джаре. Следующими запросами уже дергаешь нужные тебе странички

ovax ★★★
()
Ответ на: комментарий от ovax

Первый запрос - передаешь логин/пароль. В ответ получаешь куку сессии. Кука сессии сохраняется в куки-джаре. Следующими запросами уже дергаешь нужные тебе странички

там все немного сложнее:

когда заходишь на веб интерфейс устройства он редиректит тебя на страницу с фреймовой структурой, в одном из фреймов форма авторизации, в форме в action прописана другая страница, которая редиректит снова на страницу с фреймовой структурой.

я и так и эдак пробовал - не авторизуется. куки разными путями пробовал сохранять.

pihter ★★★★★
() автор топика
Ответ на: комментарий от ovax

В ответ получаешь куку сессии

Кстати там не кука сессии, там кука с логином + кука с мд5-хешем от посоленного пароля... видимо они ту же роль выполняют

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Иногда нужный фрейм можно просто открыть в новом окне или вкладке. Для этого может быть достаточно кликнуть по ссылке средней кнопкой. Или просто скопировать ссылку.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Иногда нужный фрейм можно просто открыть в новом окне или вкладке. Для этого может быть достаточно кликнуть по ссылке средней кнопкой. Или просто скопировать ссылку.

эт я в курсе, спасибо. так и сделал уже. беда в том что не совсем ясна логика автора веб интерфейса: авторизация проходит не внутри одного фрейма, а форма отправляет данные на страницу, которая редиректит (каким макаром из существующих - хз) на страницу с фреймовой структурой.. вот в этом лесу я и плаваю, хрен пойми кому там эти данные посылаются. я пробовал даже всем - не помогло

pihter ★★★★★
() автор топика

1) Таки прошерстить документацию на предмет дампа/выгрузки конфигурации по telnet, паче найдётся - натравить expect;

2) если таки труба, я бы натравил перловый WWW::Mechanize, но, по ходу, это не твой случай...

berrywizard ★★★★★
()
Последнее исправление: berrywizard (всего исправлений: 1)
Ответ на: комментарий от kostik87

У firefox есть дополнение httpfox

Вот за это спасибо огромное. А то не хочется на боевую машину всякий непонятный говнософт устанавливать.

pihter ★★★★★
() автор топика
Ответ на: комментарий от berrywizard

Таки прошерстить документацию на предмет дампа/выгрузки конфигурации по telnet

Первым делом. Интерфейс по telnet почти полностью повторяет веб-интерфейс. Вот только возможность загрузки/выгрузки конфига из этого интерфейса зачем-то выпиленна...

я бы натравил перловый WWW::Mechanize, но, по ходу, это не твой случай...

не знаю что это, но походу да - не мой :)

pihter ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.