Заказать звонок

Поддержка

Двухэтапная аутентификация для SSH

Так как только старая версия libpam-Google- authenticator доступна в репозитории пакетов Epel.

Таким образом, мы будем компилировать его из исходных текстов.

# yum install make gcc pam-devel

TOTP (timebased одноразовый пароль) токен безопасности чувствителен ко времени. Следовательно, убедитесь, что ваша система имеет установленный Ntpd и что он загружается:

# service ntpd start
Starting ntpd:[ OK ]
# chkconfig ntpd on

Затем загрузите и установите libpam-Google-аутентификатор из источника:

# cd /tmp
# wget http://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2
# bunzip2 libpam-google-authenticator-1.0-source.tar.bz2
# tar xf libpam-google-authenticator-1.0-source.tar
# cd libpam-google-authenticator-1.0
# make
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o google-authenticator.o google-authenticator.c
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o base32.o base32.c
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o hmac.o hmac.c
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o sha1.o sha1.c
gcc -g -o google-authenticator google-authenticator.o base32.o hmac.o sha1.o -ldl
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o pam_google_authenticator.o pam_google_authenticator.c
gcc -shared -g -o pam_google_authenticator.so pam_google_authenticator.o base32.o hmac.o sha1.o -lpam
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o demo.o demo.c
gcc -DDEMO --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o pam_google_authenticator_demo.o pam_google_authenticator.c
gcc -g -rdynamic -o demo demo.o pam_google_authenticator_demo.o base32.o hmac.o sha1.o -ldl
gcc -DTESTING --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden \
-o pam_google_authenticator_testing.o pam_google_authenticator.c
gcc -shared -g -o pam_google_authenticator_testing.so pam_google_authenticator_testing.o base32.o hmac.o sha1.o -lpam
gcc --std=gnu99 -Wall -O2 -g -fPIC -c -fvisibility=hidden -o pam_google_authenticator_unittest.o pam_google_authenticator_unittest.c
gcc -g -rdynamic -o pam_google_authenticator_unittest pam_google_authenticator_unittest.o base32.o hmac.o sha1.o -lc -ldl

  # make install
cp pam_google_authenticator.so /lib64/security
cp google-authenticator /usr/local/bin

Настройка Google Authenticator

Перед настройкой SSH, сначала настройте Google Authenticator. Запуск "Google-аутентификатора" в качестве пользователя, под которым вы хотите войти в систему с помощью SSH. Вам будет предложено несколько вопросов.

# google-authenticator
Do you want me to update your "~/.google_authenticator" file (y/n) y

  https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/user@server%3Fsecret%3DABCD12E3FGHIJKLMN
Your new secret key is: ABCD12E3FGHIJKLMN
Your verification code is 98765432
Your emergency scratch codes are:
01234567
89012345
67890123
45678901
23456789

  Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

  By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

  If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Эти настройки сохраняются у пользователя ~/.google_authenticator

Скопируйте и вставьте URL в адресную строку браузера и сканируйте QR-код, который отображается, приложением Google Authenticator на вашем мобильном устройстве. Если вы не можете сканировать QR-код, то вы можете ввести информацию вручную с помощью секретного ключа и проверки кода. Новый код проверки должен отображаться каждые 30 секунд.

Одноразовые коды проверки созданы для случаев утери или отсутвия мобильного устройства.

Настройка PAM

Необходимо внести изменения в файл /etc/pam.d/sshd

authrequiredpam_google_authenticator.so
authrequiredpam_sepermit.so
authincludepassword-auth
accountrequiredpam_nologin.so
accountincludepassword-auth
passwordincludepassword-auth
# pam_selinux.so close should be the first session rule
sessionrequiredpam_selinux.so close
sessionrequiredpam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
sessionrequiredpam_selinux.so open env_params
sessionoptionalpam_keyinit.so force revoke
sessionincludepassword-auth

Это действие потребует использование аутентификацию Google Authenticator для SSH, у всех пользователей.

Настройка SSH Service

Изменить файл /etc/ssh/sshd_config.

PasswordAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes

Перезапустите службу SSH:

# service sshd restart

После перезагрузки, при следующем входе в систему по SSH. Будет запрошено 2 пароля, ваш и Google Authenticator.

login as: root
Verification code: 01234567
Password: *******
#

Возврат к списку

Новости Все новости
26 Июля 2017

Мы очень долго тянули, долго сомневались, но взяли и решились и поменяли наши основные телефонные номера....

4 Декабря 2015

С 1 декабря и в течение всех новогодних праздников действуют специальные скидки 12% и 24% на полугодовые...