По возможности все сервера я стараюсь прятать в периметр защиты, но всегда есть какой-то пограничный, доступ к которому нужен из интернета. Обычно на такой сервер я захожу только тогда, когда всё совсем плохо, я далеко, а починить надо срочно. Логично, что такой сервер является самым слабым звеном, и защищать его надо по особенному. В этой статье будет рассказано как по мимо просто пароля пользователя, прикрутить дополнительную проверку по коду гугл-аутентификатора.
Задача:
При входе на сервер по ssh, по мимо пароля, проверять пользователя другим способом
Реализация:
Для начала ставим необходимые порты:
Гугл-аутентификатор:
Код: Выделить всё
cd /usr/ports/security/pam_google_authenticator/
make install clean
Код: Выделить всё
cd /usr/ports/graphics/libqrencode/
make install clean
Код: Выделить всё
su - roman -c google-authenticator
Теперь надо задействовать этот механизм - в файл /etc/pam.d/sshd в конце секции auth добавляем
Код: Выделить всё
auth required /usr/local/lib/pam_google_authenticator.so
Код: Выделить всё
service sshd restart
Код: Выделить всё
Password for roman@zabbix:
Verification code:
Last login: Fri Jun 24 07:58:40 2016 from 192.168.1.1
FreeBSD 10.2-RELEASE (GENERIC) #1 r290045M: Wed Oct 28 09:00:28 MSK 2015