URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95404
[ Назад ]

Исходное сообщение
"Удаленное выключение FreeBSD с другой FreeBSD"

Отправлено grey_legion , 05-Фев-14 22:52 
Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер командой со второго, имея только связь по сети(ethernet)?

Содержание

Сообщения в этом обсуждении
"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено natr , 05-Фев-14 23:53 
> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
> командой со второго, имея только связь по сети(ethernet)?

ssh отменили? )


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено PavelR , 05-Фев-14 23:58 
>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>> командой со второго, имея только связь по сети(ethernet)?
> ssh отменили? )

ssh еще не ввели.


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено Pahanivo , 06-Фев-14 10:30 
>>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>>> командой со второго, имея только связь по сети(ethernet)?
>> ssh отменили? )

интересна сама природа вопроса ))


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено PavelR , 06-Фев-14 14:00 
>>>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>>>> командой со второго, имея только связь по сети(ethernet)?
>>> ssh отменили? )
> интересна сама природа вопроса ))

обычная человеческая природа задавать вопросы.


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено grey_legion , 06-Фев-14 14:25 
>>>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>>>> командой со второго, имея только связь по сети(ethernet)?
>>> ssh отменили? )
> интересна сама природа вопроса ))

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



"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено Pahanivo , 06-Фев-14 15:30 
> природа такова что люди учатся и всегда задают вопросы,
> более чем уверен что есть вопросы на которые и вы не знаете
> ответы))

т.е. вы задаете вопрос только ради вопроса?
вы либо троль, либо дело пахнет дуркой



"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено grey_legion , 06-Фев-14 20:11 
>> природа такова что люди учатся и всегда задают вопросы,
>> более чем уверен что есть вопросы на которые и вы не знаете
>> ответы))
> т.е. вы задаете вопрос только ради вопроса?
> вы либо троль, либо дело пахнет дуркой

читайте внимательнее "...люди учатся...", я учусь, и на этот вопрос не знал ответа



"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено Pahanivo , 07-Фев-14 06:49 
>> вы либо троль, либо дело пахнет дуркой
> читайте внимательнее "...люди учатся...", я учусь, и на этот вопрос не знал
> ответа

видимо вариант 2
1) не надо говорить о себе во множественном числе, не Николай второй всетаки
2) опять же - отвечайте за свой маразм, а не за каких то там людей
3) элементарные вопросы описаны в документации, их там можно легко найти
4) вы убили кучу своего времени и чужого только для того что бы научится удаленно гасить ОСЬ? моя смеялся, хоть и грешно ...


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено PavelR , 05-Фев-14 23:58 
> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
> командой со второго, имея только связь по сети(ethernet)?

Если у вас есть только Ethernet-линк между серверами, то можно предложить следующий способ:

Установить на второй из серверов CD/DVD-привод.
Поставить сервера друг напротив друга, так, чтобы выезжающий из CD/DVD-привода лоток нажимал на кнопку выключения первого сервера.

На сервер с CD/DVD-приводом поставить утилиту eject.
При необходимости отключения сервера, запустить её с параметром устройства нужного CD/DVD-привода.

При необходимости увеличения количества серверов, на которых требуется отключить питание, можно увеличить число CD/DVD-приводов.

Возможно вам удастся использовать CD/DVD-приводы c SATA интерфейсом, у них шлейфы длиннее, будет удобнее.


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено asavah , 06-Фев-14 01:43 
Это пять с большим плюсом.
давно так не ржал на опеннете.



"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено VolanD , 06-Фев-14 05:33 
>[оверквотинг удален]
> способ:
> Установить на второй из серверов CD/DVD-привод.
> Поставить сервера друг напротив друга, так, чтобы выезжающий из CD/DVD-привода лоток нажимал
> на кнопку выключения первого сервера.
> На сервер с CD/DVD-приводом поставить утилиту eject.
> При необходимости отключения сервера, запустить её с параметром устройства нужного CD/DVD-привода.
> При необходимости увеличения количества серверов, на которых требуется отключить питание,
> можно увеличить число CD/DVD-приводов.
> Возможно вам удастся использовать CD/DVD-приводы c SATA интерфейсом, у них шлейфы длиннее,
> будет удобнее.

Баян с баша же )))


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено sync1a , 06-Фев-14 00:09 
> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
> командой со второго, имея только связь по сети(ethernet)?

ssh user@server halt


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено Abaza , 06-Фев-14 09:11 
>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>> командой со второго, имея только связь по сети(ethernet)?
> ssh user@server halt

перед этим нужно пользователя user добавить в группы wheel и operator:
pw usermod user -g wheel -G operator


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено tonys , 06-Фев-14 13:22 
>>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>>> командой со второго, имея только связь по сети(ethernet)?

не имея пароля root.
:-)
Ping of death


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено grey_legion , 06-Фев-14 14:22 
>>>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>>>> командой со второго, имея только связь по сети(ethernet)?
> не имея пароля root.
> :-)
> Ping of death

без использования ssh никак?
apcupsd может в этом помочь?


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено Сергей , 06-Фев-14 14:47 
>>>>> Доброго времени суток. Есть два сервера на FreeBSD, как выключить один сервер
>>>>> командой со второго, имея только связь по сети(ethernet)?
>> не имея пароля root.
>> :-)
>> Ping of death
> без использования ssh никак?
> apcupsd может в этом помочь?

Если у вас 2-а сервера на одном ИБП, который управляется с одного из серверов сервера, то поможет...



"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено михалыч , 06-Фев-14 15:41 
> без использования ssh никак?
> apcupsd может в этом помочь?

может, вот, уже ответили
а ещё, при желании, можно даже через веб-интерфейс
и будете через смартфон его тушить ))


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено grey_legion , 06-Фев-14 20:19 
всем спасибо за помощь, полный ответ я нашел, вдруг кому поможет

1. ssh-keygen
Все по умолчанию.

2. cd /usr/ports/security/ssh-copy-id
3. make install clean
Устанавливаем утилиту.
rehash

4. ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.1
или ssh-copy-id -i ~/.ssh/id_rsa.pub "user@192.168.1.1 -p 11122" если порт не стандартный
Для обычного пользователя нужно еще набрать ssh-add .

Клиентская часть(тоже под рутом):
5. pw groupmod operator -m name_of_user
Даем пользователю право выключения системы.

Серверная часть:
6. ssh user@192.168.1.1 'shutdown -p now'
Комманда выключения, при необходимости засовываем ее в скрипт



"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено михалыч , 06-Фев-14 22:41 
Ну-ууу.. Наши люди в булочную на такси не ездят!
Эка невидаль! Удивил, этак и я могу. ))
Нормальные герои всегда идут в обход! Пошли?
Пойдём!..

0. Устанавливаем sudo
cd /usr/ports/security/sudo/
make install clean
rehash

Правим конфигурационный файл sudo /usr/local/etc/sudoers
дописываем в самый конец

www     ALL=NOPASSWD: /sbin/shutdown -r now

1. Устанавливаем сервер apache
cd /usr/ports/www/apache22/
make install clean
rehash

Правим конфигурационный файл apache /usr/local/etc/apache22/httpd.conf
для разрешения на запуск cgi-скриптов
Ищем секцию <Directory "/usr/local/www/apache22/cgi-bin">
в ней меняем Options None на Options ExecCGI

создаём файл /usr/local/www/apache22/cgi-bin/powdown.pl
со следующим содержанием

#!/usr/bin/perl
print "Content-type: text/html\n\n";
`/usr/local/bin/sudo /sbin/shutdown -r now`;

Делаем файл исполняемым

chmod 555 /usr/local/www/apache22/cgi-bin/powdown.pl

Открываем в браузере http://target-server/cgi-bin/powdown.pl

Всё, таргетный сервер в дауне. ))

Как, вам не хочется ставить индейца-монстра и судо?

Да не вопрос!

3. Ставим самый маленький сервер с поддержкой CGI (в сырцах 70 кб, исполняемый файл и того меньше))
cd /usr/ports/www/shttpd/
make install clean
rehash

Поскольку этот веб-сервер запускается от рута судно-судо нам не нужно ))

Создаём директорию /usr/home/down/

mkdir /usr/home/down/

и в ней файл /usr/home/down/powerdown.pl
следующего содержания
#!/usr/bin/perl
print "Content-type: text/html\n\n";
system ("/sbin/shutdown -r now");

Делаем файл исполняемым

chmod 555 /usr/home/down/powerdown.pl

Внимательно смотрим вывод хелпа сервера shttpd
shttpd -h и man shttpd
запускаем его
/usr/local/bin/shttpd -d /usr/home/down/ -D 0 -p 8888 -C /usr/bin/perl
-d /usr/home/down/ - корневая директория нашего сервера
-D 0 - запретить листинг директории
-p 8888 - порт, на которм будет слущать веб-сервер (четыре восьмёрки - а чтоб никто не догадался))
-C /usr/bin/perl - путь к интерпретатору

Открываем в браузере http://target-server:8888/powerdown.pl
(без указания директоии cgi)

На прощанье сервер успевает выдать в окне браузера
"Shutdown NOW! Shutdown NOW! System shutdown time has arrived"

Всё, таргетный сервер опять в дауне. ))

Прописываем это на запуск после каждой перезагрузки
@reboot root /usr/local/bin/shttpd -d /usr/home/down/ -D 0 -p 8888 -C /usr/bin/perl &


Как?! Вы опять не довольны? Вам опять не нравится и не хочется устанавливать никаких веб-серверов?
Хорошо, ничего лишнего, ничего личного, только хардкор, только BDSM ))

4. Аналогично.
Создаём директорию /usr/home/down/

mkdir /usr/home/down/

и в ней файл /usr/home/down/powerdown.pl
но уже другого содержания
#!/usr/bin/perl
while(<>){system $_}

Делаем файл исполняемым

chmod 555 /usr/home/down/powerdown.pl

На целевом сервере запускаем netcat на порту пять пятёрок
(не спрашивай почему именно 55555 - просто нравится))
/usr/bin/nc -l 55555 | usr/home/down/powerdown.pl

А на другом сервере, с которого будем валить таргетный, запускаем netcat чуть иначе
echo "shutdown -r now" | nc х.х.х.х 55555
где х.х.х.х соответственно ip-адрес сервера на закланье.

Всё. Упал. Отжался. ))

Взводим курок, прописываем в загрузку после ребута
@reboot root /usr/bin/nc -l 55555 | usr/home/down/powerdown.pl &

А вы говорите ssh! Ф топку!))
Вот такие дела..


"Удаленное выключение FreeBSD с другой FreeBSD"
Отправлено михалыч , 07-Фев-14 07:07 
Опечатка (пропущен первый слеш во втором usr)
/usr/bin/nc -l 55555 | /usr/home/down/powerdown.pl
@reboot root /usr/bin/nc -l 55555 | /usr/home/down/powerdown.pl &

можно и вовсе без файла
/usr/bin/nc -l 55555 | perl -e 'while(<>){system $_}'
и вообще без perl
/usr/bin/nc -l 55555 | /bin/sh

Навеяно http://www.google.ru/search?q=%D0%B8%D0%...
баян, но нравится