Ну-ууу.. Наши люди в булочную на такси не ездят!
Эка невидаль! Удивил, этак и я могу. ))
Нормальные герои всегда идут в обход! Пошли?
Пойдём!..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! Ф топку!))
Вот такие дела..