Назад | Перейти на главную страницу

Двухфакторная аутентификация с использованием Puppet

Я применил двухфакторную аутентификацию с помощью Google-Authenticator, применив марионеточный манифест к серверу centos. Я внес все необходимые изменения в файлы sshd_config и pam.d / sshd. Но после того, как я применил его, мой сервер перестает принимать любой пароль. Когда я пытаюсь войти в систему как root, мне предлагается ввести пароль, но когда я ввожу код аутентификатора Google, он его не принимает. В сообщении об ошибке говорится: «Нет поддерживаемых методов аутентификации (сервер отправлен: интерактивная клавиатура). Я попытался войти в систему, используя другого пользователя, для которого не была включена двухфакторная аутентификация. Но сервер не принимает пароль. Я не знаю, в чем здесь ошибка. Пожалуйста, помогите мне решить эту проблему.

Ниже приведен фрагмент написанного мной манифеста:

class tfa (
) {
  package { 'google-authenticator':
          ensure => 'present'
          }


  $line_string = " { +:ALL:100.0.0.0/24
+:ALL:LOCAL
-:ALL:ALL
          }"


  file    { '/etc/security/access-local.conf':
          path    => '/etc/security/access-local.conf',
          ensure  => 'present',
          content => $line_string
          }


  augeas { 'pam_sshd_config_ga':
         context => '/files/etc/pam.d/sshd',

         changes => 'ins 999 after "*[type = \'auth\'][control = \'required\'][module = \'pam_sepermit.so\']"
                set 999/type auth
                set 999/control required
                set 999/module pam_google_authenticator.so',
         onlyif => 'match "*[type = \'auth\'][control = \'required\'][module = \'pam_google_authenticator.so\']" size == 0'
         }



  augeas { 'pam_sshd_config_ga2':
       context => '/files/etc/pam.d/sshd',
       changes => 'rm "*[type = \'auth\'][control = \'substack\'][module = \'password-auth\']"',
       onlyif  => 'match "*[type = \'auth\'][control = \'substack\'][module = \'password-auth\']" size != 0'
       }


  augeas { 'pam_sshd_config_ga3':
       context => '/files/etc/pam.d/sshd',
       changes => 'ins 999 after "*[type = \'auth\'][control = \'required\'][module = \'pam_google_authenticator.so\']"
             set 999/type auth
             set 999/control pam_access.so
             set 999/module accessfile=/etc/security/access-local.conf',
             onlyif => 'match "*[type = \'auth\'][control = \'pam_access.so\'][module = \'accessfile=/etc/security/access-local.conf\']" size == 0'
                      }

  augeas { 'sshd_config_ga':
       context => '/files/etc/ssh/sshd_config',
       changes => 'set ChallengeResponseAuthentication yes',
       onlyif  => 'get ChallengeResponseAuthentication !=yes'
                      }



   file_line { 'ModifyConfFile':
        path => '/etc/ssh/sshd_config',
        multiple => false,
        line => '#Authentication
AuthenticationMethods publickey,password,keyboard-interactive',
        match   => "#Authentication"
                       }