Pull to refresh

Comments 41

Это все от того, что на cisco lms/scm денег не хватило? Как можно в 21, млин, веке, управлять грудой железа поштучно? Управление должно быть централизовано.
Нет, это все от того, что я — всего лишь админ. И я для себя придумываю костыли. И еще люблю линукс. И люблю делать, чтоб было красиво и скриптово. Как-то так.
Не, претензий к статье нет, это был так, вопль вслух.
Разве что претензия есть к тому, что пароли будут валяться в открытом виде в скриптах.
chmod 0100 как вариант. Но опять костыли. А как посмотришь на цены хороших и красивых решений — так сразу хочется наколенным самопалом заниматься.
Тебя, как админа, не должна волновать цена, не из своего же кармана вынимаешь. Ее всегда несложно обосновать, на самом деле, профит от централизованного управления очевиден даже самому тупому начальству, ибо отлично вписывается в их картину мира.
В качестве тулсы централизации используется snmpc. B вроде как всё всем нравится.
Оно только мониторит? Речь про управление.
Мониторит и может по правому клику вызвать securecrt. Но среди иконок черт ногу сломит. Не использовал (читай вообще не знаю, что за зверь cisco lms/scm), поэтому не могу судить, как все должно быть по-уму.
может по правому клику вызвать securecrt
Ну, если для тебя это вершина централизованного управления… -)
вообще не знаю, что за зверь
LMS — для управления коммутаторами сиско, CSM — для управления security-девайсами cisco. Подробности легко гуглятся. Тоже не вершина прогресса, но хоть что-то.
LMS — для управления коммутаторами сиско, CSM — для управления security-девайсами cisco. Подробности легко гуглятся. Тоже не вершина прогресса, но хоть что-то.

Хоть что-то — это уже хорошо, но и в постановке задачи сказано — зоопарк.
А может кто- нибудь объяснить за что автору столько минусов навтыкали?
Просто я не вижу какого либо криминала. Если железок действительно груда (больше пары сотен) то LMS отлично заменит не только «автологин», но и целую пачку системных сервером вроде syslog-a, nagios-a, config-servera и т.д.
И да, я считаю что LMS стоит своих денег, и если админ не смог обосновать необходимость расходов при большом кол-во коммутаторов, то он зря прогуливал обязательный курс менеджмента и экономики в институте.
Спасибо на добром слове.
Минусов насовали во все щели, это все фанатики-подростки-переростки. Сам таким был, у большинства пройдет с возрастом.
Я вообще привык довольно непринужденно обосновывать закупки размерами 500-1500 тысяч долларов (речь даже не про основные средства, если что), цисковский CSM за 30 килобаксов так вообще на сдачу покупается, молчу уже про LMS за $9К. Это смешные деньги в рамках любой мало-мальски приличной организации, не стоит в данных случаях применять методы оценки из личной жизни и переводить деньги в количество батонов колбасы, автомобили-квартиры и прочую ерунду.
Хранить пароль в открытом виде…
Использовать единый пароль на все девайсы…

Я не админ, но звучит так себе.
Вот если бы соединить это решение с LastPass…
Убийственная логика! Просто без комментариев!
Ну и чем отличается ластпасс от консоли линуха в данном случае?:) И там и там есть один мастер-пароль, который вводится один раз и открывает доступ ко всем остальным…
1. Большинство права на файл выставить забудет.
2. Единый пароль для всех железяк вовсе не то же самое, что мастерпасс.

В остальном соглашусь. Не идеальное, но «нормальное» решение.
Хранить пароль в открытом виде…

В серьезных организациях — пароли обязательно хранятся в открытом виде. Но в железном сейфе.
Использовать единый пароль на все девайсы…

Вы читали, зачем нужен tacacs?
Хранить пароль в открытом виде…

telnet не поддерживает шифрования.
Вот если бы соединить это решение с LastPass…

Cisco + LastPass. Ну не знаю, помогите с аллегорией.
telnet не поддерживает шифрования

Я знаю как минимум одну красивую и дорогущую железку от IBM, для банковского сектора, которая конфигурится только телнетом.
1. 101% там есть консольный порт.
2. Все управление в отдельный влан и не париться.
и IBM Remote Supervisor Adapter адаптер там тоже есть. B даже в отдельно выделеной серверной стоит. )
>linux — он же на рабочей лошадке
Я вас огорчу, но все рабочие лошадки (включая лошадки инженеров) в корпоративном сегменте работают под шindoшs.

Всё более менее современное оборудование поддерживает ssh. Ну дальше вы поняли
UFO just landed and posted this here
telnetlib сложно использовать на устройствах которые использует всякие цвета, или еще какие-нибудь хитрые символы ориентированные на обычный telnet. Я с таким столкнулся в железках от mikrotik'а. Надоело вырезать всякие спец символы — перешел на pexpect. Еще есть paramiko, им можно ssh автоматизировать.
Жаль что далеко не все сетевое оборудование поддерживает kerberos V. С его помощью легко организуется настоящий нормальный SSO.
Для этих же целей есть rancid, и прекрасно работающий clogin/jlogin.
>http://www.shrubbery.net/rancid/
Для каждой железки добавим строку в bashrc: alias имя_хоста=«autologin ip_хоста»"


Настоящий АДЪ :) Если не смогли использовать DNS, то хоть бы в /etc/hosts имена позаписывали, а не городили черти-что.
Зачем? нужен логин одной командой — имя хоста. Написал, нажал интер — ты в консоли железки.
Мне кажется, что для железок, не умеющих TACACS, идеологически более правильный вариант — конфиг-файл вида
имя_железки ip_железки производитель логин пароль
...
или аналогичный. При этом, конечно, могут быть варианты. В общем экстраполируется и на железки, умеющие, с разными вариантами.
Из плюсов — конфигу с большей вероятностью не забудут сделать chmod go-rw. Можно еще и обработчик в скрипте поставить, чтобы проверял разрешения перед чтением и валился, если они не нравятся.
Хотя да, торможу, обработчик можно поставить и на проверку разрешений самого скрипта.
Все это конечно хорошо, но (большое но) я пришел работать в готовую, большую инфраструктуру, у меня над головой еще куча начальников, которые все это придумали и развивали. А мне просто хочется работать так, как мне удобно, в своем юзерспейсе. И скрипты я пишу для себя, и работают они лишь на одной машине. И мне наплевать, поставил я на файл 0100 или нет, потому что все равно кому надо угнать пароль должен как минимум пробраться в офис и утащить мой винт, чтобы потом спереть пароль от такакса, потом как-либо проникнуть в влан управления, угадать ip интересующей железки и т.д. Слабовато верится в осуществление плана.
Я не очень уловил, откуда повеяло негативом? Вы противник фидбека? И при этом любитель опенсорса? Что-то не клеится.

Я вынес предложение по усовершенствованию. Принимать его или не принимать — дело в общем мейнтейнера. Однако фидбек, по моему мнению, следует поощрять. Ваша реакция не видится поощрением. Я на Вас не нападал, не надо переходить в защиту ;)
Вам показалось, нет ни малейшего нигатива… Просто размышления…
На работе установлен SecureCRT, добавлены все устройства, на все вход по ssh, пароли все сохранены в ней же, поддерживает вкладки. Что еще нужно?
тоже использую, но есть проблемы у неё с фокусом у окна, раздражает очень.
То же подпишусь под данным решением. Ни каких костылей, все красиво, и достаточно секъюрно.
Но проблемы с фокусом иногда действительно бесят.

Кстати, а железки не позволяют использовать SSH с авторизацией по ключу?
Железок много, все разные, прошивки разные — а телнет един.
… И только дописав свой велосипед, я нашёл эту статью.
От нашего стола — Вашему:
скрипт на Expect/Tcl
#!/usr/bin/env expect
proc try_password { pass } {
	expect {
		{[Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd]*} { send "$pass\r" }
		# fix for push_enable_admin in case of
		# "You already have the administrator's privilege!"
		{You already*} { return }
	}
}
proc push_auth_tacacs {} {
	send "$::env(tacacs_user)\r"
	try_password "$::env(tacacs_pass)"
}
proc push_auth_builtin {} {
	send "$::env(builtin_user)\r"
	try_password "$::env(builtin_pass)"
}
proc push_enable_admin {} {
	send "enable admin\r"
	try_password "$::env(tacacs_sudo)"
}
proc go_interactive {} {
	set timeout 0
	send "# $::env(tacacs_user), welcome to $::env(ip)! :)\r"
	interact -nobuffer
	exit
}
proc try_auth_extreme { callback } {
	expect {[Ll][Oo][Gg][Ii][Nn]*} { $callback }
	expect {*# } { go_interactive }
}
proc try_auth_dlink { callback } {
	expect {[Uu][Ss][Ee][Rr][Nn][Aa][Mm][Ee]*} { $callback }
	expect {*#} { push_enable_admin; go_interactive }
}

set timeout 5
### linux
#	spawn -noecho telnet $::env(ip)
### freebsd
	spawn -noecho telnet -4 -N $::env(ip)

sleep 1
set timeout 5

if { $::env(vendor) == "extreme" } {
	try_auth_extreme push_auth_tacacs
	try_auth_extreme push_auth_builtin
	try_auth_extreme exit
}

if { $::env(vendor) == "dlink" } {
	expect {User Access Verification} {
		try_auth_dlink push_auth_tacacs
	}
	try_auth_dlink push_auth_builtin
	try_auth_dlink exit
}

exit

Параметры передаются, как видно, через переменные окружения, поскольку при передаче через аргументы командной строки видно Ваши credentials в выхлопе `ps axu', что не есть хорошо (имхо).
Sign up to leave a comment.

Articles