понедельник, 17 января 2011 г.

cloud9ide + apache + аутентификация

Продолжаю тестировать онлайн ide'шку cloud9. Очень понравился продукт - разработчикам большой респект. Но есть маленькая проблема - вход осуществляется без какой либо идентификации пользователя. Т.к. мой компьютер смотрит в мир одним концом с белый ip-адресом это чревато  дополнительными атаками и возможностью стороннему человеку испортить мне жизнь, удалив или внеся какие-либо изменения в сохраненные проекты.

Как вариант решения я обратился к моему apache, у которого есть возможность проксивать запросы на др.сервис с помощью mod_proxy. На момент, когда я решил сделать задуманное эти модули у меня в системе уже были установлены и настроены для работы, поэтому здесь не будет описания как скачать и установить их. 
Первым делом переопределил один из поддоменов смотреть на меня. Создал доп.конфигурацию сайта в apache, например, /etc/apache2/sites-enabled/cloud9
<VirtualHost *:80>
 ServerName cloud9.example.com
 <location />
 AuthName "Authentication required"
 AuthType Basic
 Require valid-user
 AuthUserFile /var/www/.htpasswd
 </location>
 ProxyPreserveHost off
 ProxyPass / http://127.0.0.1:3000/
 ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>
Следующим шагом будет создание файла .htpasswd для осуществления аутентификации пользователя:
~# htpasswd -c /var/www/.htpasswd username
В дополнение работы команды хочу отметить, что ключ "-с" создает файл, если он уже был создан ранее, что этот ключ не нужно указывать. Второй момент путь к файлу для хранения паролей нужно выбрать так, чтобы его смог найти и получить права на чтение apache. Третий момент - вместо "username" указываем свой логин и после нажатия клавиши enter будет предложено ввести пароль, который будет закреплен за данным пользователем.

Теперь нужно проверить настройки cloud9, а точнее строку инициализации - у меня в качестве параметров указан путь для каталога проектов.

Последним действием будет перезапуск apache:
~# /etc/ini.d/apache2 restart
Вот и все. Теперь из мира никто не может попасть на мой cloud9ide без предварительной аутентификации.

Комментариев нет:

Отправить комментарий