Есть несколько вещей, которые вы можете сделать, чтобы обеспечить и защитить ваш SSH. Одна из них заключается в использовании Google Authenticator для создания двухфакторную аутентификацию на вашем CentOS. Google Authenticator дает дополнительный уровень безопасности путем создания времени на основе одноразовых паролей (TOTP) на вашем смартфоне, чтобы вы могли войти вместе с вашим именем и паролем, чтобы заходить на сервер через SSH.
В сегодняшней статье блога мы расскажем, как установить Google Authenticator из источника и настроить SSH для двухфакторной аутентификации.
В первую очередь обновите ваш виртуальный сервер CentOS
yum -y update
Затем установите пакет ‘pam-devel‘, который позволяет установить политику аутентификации без перекомпиляции программ, которые обрабатывают аутентификацию.
yum -y install pam-devel
Убедитесь, что установлен и запущен ntpd, поскольку маркеры безопасности TOTP являются чувствительным ко времени
yum -y install ntp /etc/init.d/ntpd start chkconfig ntpd on
Скачайте и распакуйте пакет Google Authenticator
cd /opt/ wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2 tar -xvzf libpam-google-authenticator-1.0-source.tar.bz2 cd libpam-google-authenticator-1.0
Скомпилируйте и установите модуль Google Authenticator
make make install
Теперь запустите Google Authenticator на вашем сервере и ответьте на каждый из вопросов
google-authenticator Do you want authentication tokens to be time-based (y/n) y https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@YOURHOSTNAME%3Fsecret%3DWYJ4YCGEE3N4M3MA Your new secret key is: WVD4YAGEE5N9M3LA Your verification code is 198227 Your emergency scratch codes are: 40084389 29917071 85501143 61878576 90392562 Do you want me to update your "/root/.google_authenticator" file (y/n) y 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
Откройте URL после ответа на заданный первый вопрос и сканируйте QR-код с помощью приложения Google Authenticator на своем смартфоне.
Вот и все! Новый проверочный код будет сгенерирован каждые 30 секунд.
Теперь вам нужно будет включить Google Authenticator для логина SSH. Откройте файл конфигурации PAM’s
vi /etc/pam.d/sshd
И добавьте следующую строку в верху
auth required pam_google_authenticator.so
Откройте файл конфигурации SSH и убедитесь , что линия ‘ChallengeResponseAuthentication‘ установлена в положение yes.
ChallengeResponseAuthentication yes
Сохраните изменения и перезапустите службу SSH:
service sshd restart
Теперь, каждый раз, когда вы будете пытаться зайти на свой сервер при помощи SSH, вам будет предложено ввести код подтверждения, отображаемый в приложении Google Authenticator.
login as: Verification code: Password:
PS. Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставить комментарий ниже. Заранее благодарю.
Вот еще вариант с телеграм ботом
https://multifactor.ru/docs/linux-2fa-telegram/