Usando o OpenSSH Server sem usuário local

1

Atualmente, notei que quando uso o OpenSSH Server com o PAM e, por exemplo, o RADIUS, enquanto posso fazer com que o usuário autentique com êxito com o PAM, ainda preciso de uma conta de usuário local em / etc / passwd, por exemplo. adicionado com useradd na caixa.

Existe alguma configuração no OpenSSH para dizer que não é necessário que um usuário local seja o / etc / passwd. E, em vez disso, o shell / home dir / session será inicializado através de alguma configuração padrão? Não consegui localizar nenhuma maneira de fazer isso on-line.

    
por David Mokon Bond 08.04.2013 / 18:48

1 resposta

2

A configuração em /etc/nsswitch.conf define a ordem em que os usuários serão pesquisados. Você pode verificar com getent passwd $USER como seu usuário está resolvido. Não há necessidade de um usuário ter uma conta local para fazer o login. Vincule os bancos de dados passwd e group em /etc/nsswitch.conf a ldap, nis e / ou sss e use o módulo PAM adequado na pilha.

Um caso de uso usando SSSD e freeIPA , onde usuários, grupos, shell de login, regras do sudo, mapeamentos do SELinux, etc, são armazenados no diretório gerenciado pelo freeIPA. Observe que o SSHD usa o GSSAPI para autenticar contra o kerberos, cujo banco de dados é armazenado no diretório também:


 # cat /etc/krb5.conf
 [logging]
  default = FILE:/var/log/krb5libs.log
  kdc = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log
 [libdefaults]
  default_realm = DOMAIN.COM
  dns_lookup_realm = false
  dns_lookup_kdc = true
  rdns = false
  ticket_lifetime = 24h
  forwardable = yes
 [realms]
  DOMAIN.COM = {
   kdc = ipaserver.domain.com:88
   master_kdc = ipaserver.domain.com:88
   admin_server = ipaserver.domain.com:749
   default_domain = domain.com
   pkinit_anchors = FILE:/etc/ipa/ca.crt
 }
 [domain_realm]
  .crapsteak.org = DOMAIN.COM
  crapsteak.org = DOMAIN.COM
 [dbmodules]
   DOMAIN.COM = {
     db_library = ipadb.so
   }

# grep sss /etc/nsswitch.conf passwd: files sss shadow: files sss group: files sss services: files sss netgroup: files sss automount: files sss

# cat /etc/sssd/sssd.conf [domain/domain.com] cache_credentials = True krb5_store_password_if_offline = True ipa_domain = domain.com id_provider = ipa auth_provider = ipa access_provider = ipa ipa_hostname = somehost.domain.com chpass_provider = ipa ipa_server = ipaserver.domain.com ldap_tls_cacert = /etc/ipa/ca.crt [sssd] services = nss, pam, ssh config_file_version = 2 domains = domain.com

# grep sss /etc/pam.d/{password,system}-auth-ac /etc/pam.d/password-auth-ac:auth sufficient pam_sss.so use_first_pass /etc/pam.d/password-auth-ac:account [default=bad success=ok user_unknown=ignore] pam_sss.so /etc/pam.d/password-auth-ac:password sufficient pam_sss.so use_authtok /etc/pam.d/password-auth-ac:session optional pam_sss.so /etc/pam.d/system-auth-ac:auth sufficient pam_sss.so use_first_pass /etc/pam.d/system-auth-ac:account [default=bad success=ok user_unknown=ignore] pam_sss.so /etc/pam.d/system-auth-ac:password sufficient pam_sss.so use_authtok /etc/pam.d/system-auth-ac:session optional pam_sss.so

# grep GSS /etc/ssh/sshd_config GSSAPICleanupCredentials yes GSSAPIAuthentication yes

    
por 08.04.2013 / 19:26