Подготовка сервера

Если вы хотите ставить пакет из репозитория, а не собирать самому, то вам придется воспользоваться предыдущей статьей на этом блоге, в которой подробно написано как добавить экстра репозитории Remi и Epel себе в систему.

Далее проверим и убедимся, что время на сервере в порядке:

yum install ntp -y chkconfig ntpd on; ntpdate pool.ntp.org; /etc/init.d/ntpd start

Если вам необходимо сменить часовой пояс, это просто:

mv /etc/localtime /etc/localtime.old ln -sf /usr/share/zoneinfo/Europe/Athens /etc/localtime hwclock –systohc

Теперь нужен сам пакет, из репозитория:

yum install google-authenticator -y

Или собираем из исходников:

yum install gcc gcc++ pam-devel subversion python-devel git wget make

Выделим для кода папку:

mkdir /root/google-authenticator; cd /root/google-authenticator

Получим код:

git clone https://code.google.com/p/google-authenticator/ cd google-authenticator/libpam/

Скомпилируем код и поставим в систему:

sudo make && make install

Настраиваем OpenSSH

Откроем файл настройки аутентификации и перепилим его:

cp /etc/pam.d/sshd /etc/pam.d/sshd.bak vim /etc/pam.d/sshd

Содержимое:

auth required pamgoogleauthenticator.so auth include password-auth account include password-auth session include password-auth account required pam_nologin.so

Откроем файл настройки OpenSSH:

vim /etc/ssh/sshd_config

И меням «no» на «yes»:

… ChallengeResponseAuthentication yes …

Так-же смотрим что параметр UsePAM включен:

… UsePAM yes …

Перезапускаем демон OpenSSH:

service sshd restart

И запускаем google-authenticator:

google-authenticator

Там видим ссылку на QR код, его сканируем аппликацей Google Authenticator для этого у вас в телефоне должен быть уже установлен ZXing Barcode Scanner которая кстати open source

После того как телефон прочитал QR код можно смело отвечать на все вопросы которые задаст вам утилита: — Сохранить всё насовсем в ~/.google_authenticator? — y — Запретить использование одного кода несколько раз? Помогает заметить или даже предотвратить атаку man-in-the-middle. — y — Увеличить окно времени с приблизительно 1.5 минут до 4 минут? — n (и тут сразу проверяем, точно ли время в телефоне; впрочем, Google Authenticator последних версий умеет синхронизировать время из интернета) — Ограничить число попыток логина за промежуток времени? — y

Теперь можете осуществить логин на сервер (Видно что добавилась строчка Verification code):

login as: root Using keyboard-interactive authentication. Verification code: Using keyboard-interactive authentication. Password: Last login: Mon Sep 9 15:55:44 2013 from

P.S.: Кстати, в новой версии OpenSSH есть возможность замутить аутентификацию по ключу и токену. В старой версии такого нет. В CentOS 6.4 в репах и в системе старая версия 5.3p1, а надо OpenSSH 6.2 минимум. Такую версию для CentOS придется собирать самому. Исходники тут.

P.S2.: Хотя вот нашлись и RPM пакеты тут.

DokuWiki Appliance - Powered by TurnKey Linux