На многих сайтах для обеспечения безопасности встречается использование двойной верификации при входе. В данной статье я постараюсь описать как обезопасить сервер от взлома (установим дополнительную защиту входа) с помощью Google Two-Factor Authentication
Будем собирать с исходников, для этого установим необходимые пакеты
1 | yum groupinstall 'Development Tools' |
Создадим пользователя
1 | useradd blog |
и так же нужно его дописать в /etc/sudoers
1 | blog ALL=(ALL) ALL |
скачаем исходники
1 | git clone https://github.com/google/google-authenticator-libpam |
перейдем в директорию
1 | cd google-authenticator-libpam/ |
Запустим поочередно команды
1 2 3 4 | ./bootstrap.sh ./configure make sudo make install |
Если успешно копируем все в нужные директории
1 2 | cp /usr/local/lib/security/pam_google_authenticator.so /lib64/security/ cp google-authenticator /usr/bin |
и запускаем google-authenticator
в появившемся вопросе нажимаете Y
Можете приложением отсканировть QR или же ввести secret key в приложение
Осталось
только научить SSHD работать с GOOGLE
в
1 | /etc/pam.d/sshd |
допишем
1 | auth required pam_google_authenticator.so nullok |
и в
1 | /etc/ssh/sshd_config |
сменим параметр
1 | ChallengeResponseAuthentication yes |
Перезапускам службу SSH
1 | systemctl restart sshd.service |
можем проверить
Немного логов о авторизации
Специально проверил ни фейк ли сделал, невозможно ли ввести цифры от башки, так вот, все чудесно работает
Логи с плохим Google кодом ( я вводил плохой google код и правильный системный пароль но увы не пропустило)
1 2 3 | Feb 11 22:11:25 centos7test sshd(pam_google_authenticator)[28416]: Invalid verification code for root Feb 11 22:11:35 centos7test sshd[28416]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root" Feb 11 22:11:37 centos7test sshd[28414]: error: PAM: Authentication failure for root from 192.168.184.1 |
В этом случае и Google код и системный пароль были правильными.
1 2 3 | Feb 11 22:11:48 centos7test sshd(pam_google_authenticator)[28417]: Accepted google_authenticator for root Feb 11 22:11:56 centos7test sshd[28414]: Accepted keyboard-interactive/pam for root from 192.168.184.1 port 48665 ssh2 Feb 11 22:11:56 centos7test sshd[28414]: pam_unix(sshd:session): session opened for user root by (uid=0) |
На этом все. большое спасибо.