Используя knockd, чтобы делать вещи | Отправка запросов TCP / UPD через PHP - PullRequest
2 голосов
/ 27 декабря 2008

Мне было интересно, было бы хорошо, если knockd http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki был бы в состоянии перезапустить apache без входа в ssh. Но мой вопрос программирования заключался в том, существует ли способ отправки пакетов tcp / udp через PHP, чтобы я мог получить доступ через веб-клиента.

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

Ответы [ 4 ]

1 голос
/ 29 декабря 2008

Вы можете использовать функции fsockopen () ... но то, что вы делаете (и то, как вы это делаете), очень рискованно с точки зрения безопасности ... как уже было сказано, ssh - это путь:)

Если вы действительно хотите перезапустить сервер apache с помощью удаленного доступа (не ssh), вы можете создать небольшой php-демон, который просто следит за определенным файлом (например, /tmp/restart.apache) и когда появляется этот файл, запустите exec ("/ etc / init.d / apache restart") (или любую другую команду для вашего дистрибутива). Этот демон должен работать от имени root ... и дело в том, что весь этот вопрос безопасности зависит от вас, вы должны убедиться, что это не может быть выполнено произвольно ...

Ваша идея portknock ... простой сканер портов может по ошибке перезапустить ваш apache :) Рекомендуется использовать portknock вместе с аутентификацией ssh, а не напрямую с apache:)

1 голос
/ 28 декабря 2008

Серьезно, вы не хотите делать то, что пытаетесь сделать.

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

0 голосов
/ 27 декабря 2008

Для SVN у вас есть весь PHP API, попробуйте поискать SVN на php.net

0 голосов
/ 27 декабря 2008

Почему бы не иметь PHP-скрипт, который вызывает "svn update"? Пока файлы доступны для записи пользователю Apache, он работает отлично. Просто нажмите на этот URL, чтобы обновить сайт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...