SSH клиент из браузера на FreeBSD
Задача: получить доступ по SSH к серверу через браузер.
Ставим shellinaboxd:
1 2 |
cd /usr/ports/www/shellinabox make install clean |
в /etc/rc.conf
1 2 |
shellinaboxd_enable="YES" shellinaboxd_port="4200" |
В /usr/local/etc/rc.d/shellinaboxd отключаем возможность удаленного подключения (т.е. разрешаем только localhost):
1 |
command_args="--user=${shellinaboxd_user} --group=${shellinaboxd_group} --port=${shellinaboxd_port} --background=${pidfile}" |
изменяем:
1 |
command_args="--user=${shellinaboxd_user} --group=${shellinaboxd_group} --port=${shellinaboxd_port} --background=${pidfile} --localhost-only" |
Запускаем сервис:
1 |
/usr/local/etc/rc.d/shellinaboxd start |
Далее настраиваем apache для получения строки запуска SSH вида http://www.domen.ru/shell. Устанавливаем порты:
1 2 |
cd /usr/ports/www/apache22 make config |
Выбираем mod_proxy и mod_proxy_http
1 2 3 |
make deinstall make reinstall /usr/local/etc/rc.d/apache22 restart |
В /usr/local/etc/apache22/httpd.conf добавляем:
1 2 3 |
LoadModule proxy_module libexec/apache22/mod_proxy.so LoadModule proxy_html_module libexec/apache22/mod_proxy_html.so LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so |
В виртуальные хосты apache:
1 2 |
ProxyPass /shell/ http://localhost:4200/ ProxyPassReverse /shell/ http://localhost:4200/ |
И снова перезапускаем:
1 |
/usr/local/etc/rc.d/apache22 restart |