- PVSM.RU - https://www.pvsm.ru -
Если вы являетесь активным пользователем Redmine, содержимое которого наверняка конфиденциально, вы наверняка задумывались над усилением безопасности приложения.
В этой статье описана процедура настройки авторизации в Redmine через одноразовые пароли (OTP) с помощью мобильного приложения Google Authenticator [1].
Статья описывает установку и настройку Google Authenticator, а так же плагина redmine_pam_auth для Redmine 2.2 под ОС CentOS 6.
Для этого подключаем репозиторий Southbridge [2]:
rpm -Uhv http://rpms.southbridge.ru/southbridge-rhel6-stable.rpm
Или ставим rpm напрямую, без подключения репозитория:
rpm -Uhv http://rpms.southbridge.ru/rhel6/stable/x86_64/google-authenticator-1.0-0.gita096a62.el6.x86_64.rpm
Можно обойтись и без него, но тогда придется добавить пользователя «redmine» в группу «shadow» или запускать Redmine под рутом, что в свете последних эксплоитов в rails кажется плохой идеей.
yum install pam-mysql
Файл /etc/pam.d/google-authenticator
#%PAM-1.0
account required pam_mysql.so user=<redmine_db_user> passwd=<redmine_db_password> host=<redmine_db_host> db=<redmine_dbname> table=users usercolumn=login passwdcolumn=login crypt=0
auth required pam_google_authenticator.so user=redmine secret=/opt/redmine/tmp/google-authenticator/${USER}
auth required pam_env.so
session required pam_unix.so
Клонируем плагин из github
cd /opt/redmine
git clone git://github.com/cardil/redmine-pam-auth.git plugins/redmine_pam_auth
Устанавливаем pam-devel, который потребуется для компиляции гема rpam-ruby19
yum install pam-devel
Устанавливаем необходимые гемы для работы redmine-pam-auth (обратите внимание на исключения --without — возможно в вашей конфигурации используется rmagick, postgresql или что-то еще). Если вы еще не используете bundler — очень рекомендую, это намного удобнее, чем установка гемов в систему вручную.
cd /opt/redmine
bundle install --without development test sqlite postgresql rmagick --path vendor/bundle
Выполняем миграции плагинов
bundle exec rake redmine:plugins:migrate RAILS_ENV="production"
Создаем папку для хранения ключей Google Authenticator
mkdir /opt/redmine/tmp/google-authenticator
Генерируем ключи (подробное описание ключей командной строки можно посмотреть с помощью параметра "--help" — вы можете использовать параметры авторизации на свое усмотрение).
Параметр "--label=username@example.net" — метка, которая поможет идентифицировать аккаунт в мобильном приложении Google Authenticator. Параметр "--secret=/opt/redmine/tmp/google-authenticator/username" — хранилище ключей, где username — имя пользователя в Redmine.
google-authenticator --time-based --disallow-reuse --qr-mode=UTF8 --force --no-rate-limit --minimal-window --label=username@example.net --secret=/opt/redmine/tmp/google-authenticator/username
Корректируем права
chown -R redmine:redmine /opt/redmine/tmp/google-authenticator
chmod 0600 /opt/redmine/tmp/google-authenticator/olemskoi
Мобильное приложение Google Authenticator доступно для iPhone, Android и BlackBerry.
Подробнее о установке можно почитать на странице помощи Google [3].
Во время генерации ключей google-authenticator выводит ссылку типа https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/username@example.net%3Fsecret%3DDOYZKVDCN7GUGJH3 [4] — заходим на нее в браузере и сканируем из мобильного приложения Google Authenticator отображенный QR-код.
В профиле пользователя Redmine указываем режим аутентификации «Pam»
Теперь при авторизации вам достаточно указать имя пользователя, запустить Google Authenticator на мобильном телефоне и переписать цифры в поле ввода пароля.
В одной из следующих статей напишу о шифровании Wiki — это поможет избежать утечки данных из Wiki в случае, если сервер, на котором размещен Redmine, все же взломали и загрузили базу данных. Кому интересно, добро пожаловать на наш Хабра-блог [5].
Автор: olemskoi
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/26860
Ссылки в тексте:
[1] Google Authenticator: http://code.google.com/p/google-authenticator/
[2] репозиторий Southbridge: http://rpms.southbridge.ru/rhel6/stable/x86_64/
[3] помощи Google: http://support.google.com/accounts/bin/answer.py?hl=ru&answer=1066447
[4] https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/username@example.net%3Fsecret%3DDOYZKVDCN7GUGJH3: https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/username@example.net%3Fsecret%3DDOYZKVDCN7GUGJH3
[5] наш Хабра-блог: http://habrahabr.ru/company/centosadmin/blog/
[6] Источник: http://habrahabr.ru/post/168063/
Нажмите здесь для печати.