Quais são as etapas necessárias para autenticar usuários de um Active Directory em execução no Windows Server 2012 R2 no FreeBSD 10.0 usando sssd
o backend do AD com o Kerberos TGT funcionando?
fonte
Quais são as etapas necessárias para autenticar usuários de um Active Directory em execução no Windows Server 2012 R2 no FreeBSD 10.0 usando sssd
o backend do AD com o Kerberos TGT funcionando?
Existem algumas considerações complicadas para que tudo funcione imediatamente. O FreeBSD suporta apenas a sssd
versão 1.9.6 no momento. Portanto, não há suporte para nomes principais da empresa.
Se você tiver um domínio com UPNs não correspondentes, ele falhará no login, uma vez que a autenticação Kerberos falhará durante o processo, mesmo com o FreeBSD suportando Nomes Principais da Empresa com Kerberos, sssd
não será possível lidar com este caso.
Portanto, na versão real, sssd
você está limitado a ter o Nome Principal do Usuário no mesmo Nome de Domínio, por exemplo:
Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
[email protected] sAMAccountName: username
Sabendo disso, podemos descrever as etapas para autenticar com sucesso os usuários do AD no FreeBSD.
Crie o arquivo /etc/krb5.conf
com o seguinte conteúdo:
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = yes
Instale o Samba 4.1:
$ pkg install samba41
Crie o arquivo /usr/local/etc/smb4.conf
com o seguinte conteúdo:
[global]
security = ads
realm = EXAMPLE.COM
workgroup = EXAMPLE
kerberos method = secrets and keytab
client signing = yes
client use spnego = yes
log file = /var/log/samba/%m.log
Peça um tíquete Kerberos de administrador:
$ kinit Administrator
Em seguida, ingresse no domínio e crie um keytab
$ net ads join createupn=host/[email protected] -k
$ net ads keytab create -k
Instale os pacotes necessários:
$ pkg install sssd cyrus-sasl-gssapi
Edite o arquivo /usr/local/etc/sssd/sssd.conf
para corresponder a essas configurações:
[sssd]
config_file_version = 2
services = nss, pam
domains = example.com
[nss]
[pam]
[domain/example.com]
# Uncomment if you need offline logins
#cache_credentials = true
id_provider = ad
auth_provider = ad
access_provider = ad
chpass_provider = ad
# Comment out if the users have the shell and home dir set on the AD side
default_shell = /bin/tcsh
fallback_homedir = /home/%u
# Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
#ldap_sasl_mech = GSSAPI
#ldap_sasl_authid = [email protected]
Edite o arquivo /etc/nsswitch.conf
para corresponder a essas configurações:
group: files sss
passwd: files sss
Instale pacotes opcionais para criação de diretório inicial:
$ pkg install pam_mkhomedir
Modifique os PAM
domínios necessários para corresponder a essas configurações:
auth sufficient /usr/local/lib/pam_sss.so
account required /usr/local/lib/pam_sss.so ignore_unknown_user
session required /usr/local/lib/pam_mkhomedir.so mode=0700
session optional /usr/local/lib/pam_sss.so
password sufficient /usr/local/lib/pam_sss.so use_authtok
$ pkg remove -f openldap-client
$ pkg install openldap-sasl-client
$ getent passwd <username>
Qual Kerberos você está usando aqui? O built-in ou security / krb5 do MIT?
Ao instalar o sssd, é necessário instalar o security / krb5, que ainda é considerado experimental no FreeBSD. Assim esta pergunta.
Não estou tendo sorte em obter os usuários / grupos do AD ao executar comandos 'getent'. pode ser que o nome NETBIOS seja diferente do nome de domínio - no meu caso, o nome de domínio é dawnsign.com e o nome NETBIOS é DSP.
Eu configurei apenas o módulo de login pam.d. Quais outros módulos pam precisam ser editados para que uma autenticação bem-sucedida ocorra?
Qualquer informação adicional seria muito apreciada!
fonte
Recompilar o samba4 a partir do ports é possível usar a autenticação winbind como o linux, mesmo sem o sssd. Simplesmente recompile o samba4 das portas após ativar o sasl ldap
Isso recompilará o samba com todo o suporte necessário (gssapi, ldap, kerberos) e editará o nsswitch.conf assim
fonte
Olá
Esta é uma pequena atualização sobre o uso do sssd v1.11.7
Se você estiver usando o "id_provider = ad" e vir o seguinte erro no arquivo de log sssd:
Você pode usar o procedimento a seguir para resolver esse problema e fazer a integração do AD funcionar corretamente. Agora construa o sssd v1.11.7 com suporte ao Samba, é necessário construir a partir do src sssd para que seja vinculado ao libsasl2
fonte
Aqui está o meu guia sobre integração de AD via SSSD com essas versões do FreeBSD, no momento em que este artigo foi escrito (6/2017)
Instalação (e os divertidos problemas de empacotamento e dependência)
/usr/bin
e outro em/usr/local/bin
. Como nenhum dos arquivos básicos do sistema parece estar em um pacote, você não pode simplesmente remover o material Heimdal KRB. Algo para estar ciente.Dependências de encaminhamento dos vários pacotes (deps interessantes em negrito, deps conflitantes em negrito e itálico):
net-mgmt/adcli:
net/openldap24-sasl-client
security/cyrus-sasl2-gssapi: security/cyrus-sasl2
net/openldap24-sasl-client: security/cyrus-sasl2
security/sssd: security/nss
security/sssd:
security/krb5
security/sssd: security/cyrus-sasl2
security/sssd:
net/openldap24-client
security/sssd: lang/python27
security/sssd: lang/python2
security/sssd: dns/c-ares
security/sssd: devel/tevent
security/sssd: devel/talloc
security/sssd: devel/popt
security/sssd: devel/pcre
security/sssd: devel/libunistring
security/sssd: devel/libinotify
security/sssd: devel/gettext-runtime
security/sssd: devel/ding-libs
security/sssd: devel/dbus
security/sssd: databases/tdb
security/sssd: databases/ldb
Dependências reversas dos vários pacotes:
net/openldap24-sasl-client: sysutils/msktutil
net/openldap24-sasl-client: net/nss-pam-ldapd-sasl
net/openldap24-sasl-client: net-mgmt/adcli
sssd
mesmos, requer o MIT Kerberos, embora tenhamos o Heimdal como pacote básicoadcli
desejaopenldap-sasl-client
, mas outros pacotes (incluindo subdependências desssd
)openldap-client
são recebidos, o que é mutex com o cliente sasl (por qualquer motivo bobo). Isso torna a instalação um pouco trabalhosa, mesmo com um conjunto mínimo de pacotes binários.Até o momento em que este artigo foi escrito, o pacote binário para SSSD para FreeBSD não inclui suporte para AD no SSSD
SMB
adcli
existe, mas, até o momento, não funciona.GSSAPI_MIT
cyrus-sasl-gssapi
é necessário, mas a versão binária do pkg não funciona e possui problemas de dependência estranhos que fazem com que remova o SSSD.GSSAPI_MIT
openldap-sasl-client
é necessário para a funcionalidade, mas o SSSD deseja obter a versão não SASL do openldap.openldap-sasl-client
com aGSSAPI
opção selecionada (make config
) nas portas.pkg remove –f openldap-client
openldap-client
sem a remoção automática de quaisquer outros pacotes (como SSSD) e permitirá a instalação da versão SASLopenldap-sasl-client
pkg remove –f sssd
(Opcional) Depois que tudo estiver funcionando e verificado, você pode usar
pkg create
para criar pacotes binários dos quatro pacotes com as opções apropriadas ativadas e usá-los em vez de construí-los nas portas de todos os sistemas. A instalação do binário segue um padrão semelhante ao processo de construção de portas:pkg install sssd-1.11.7_8.txz
pkg add
os outros pacotes (não instalar, adicionar), salvando o pacote openldap por último.openldap-sasl-client
faça umpkg remove –f openldap-client
pkg add openldap-sasl-client-2.4.44.txz
pkg create
para substituir a dependênciaopenldap-client
comopenldap-sasl-client
a remover a necessidade de fazer isso remove / reinstalação. Ainda não tive tempo de fazer isso.openldap-client
, então você também precisará corrigi-las.Configuração Kerberos:
/etc/pam.d
arquivos que eu tive que modificar para fazer o SSSD funcionar com o FreeBSD:/etc/pam.d/sshd:
/etc/pam.d/system:
/etc/pam.d/su:
(recuar)
system.dist
é uma cópia do/etc/pam.d/system
arquivo de ações . Ele está incluído no/etc/pam.d/su
arquivo acima para evitar problemas com o comando su.su
acessar as contas do AD como raiz, já que uma vez raiz,su
não é necessário autenticar e as informações da conta são extraídas pela opção de serviço de nome via SSSD.sudo
por razões de segurançaksu
e isso funciona para alternar do usuário A para o usuário Bksu
(in/usr/bin
) não tem o SUID definido por padrãoksu
funcionar,chmod u+s /usr/bin/ksu
krb5
pacote instalado no/usr/local/bin
) é SUID na instalação/usr/local/bin
antes/usr/bin
, etcksu
solicitará ao usuário a senha AD / Kerberos do usuário de destinopasswd
não funcionará para alterar sua senha do AD / Kerberos, mesmo se você adicionarpam_sss.so
ao arquivo PAM passwd. Opasswd
binário suporta apenas o uso local e NISkpasswd
para alterar sua senha nos servidores AD / Kerberos.Comutador de serviço de nome:
/etc/nsswitch.conf
arquivo deve ser configurado para usar o serviço sss para senhas e grupos. Exemplo:group: files sss
passwd: files sss
Ingressando em um domínio:
adcli
kinit
antes de usar, ele o faz com base nos dados fornecidos.adcli join -D mydomain.net -U Administrator--show-details –v
adcli join –H adclient.mydomain.net -D mydomain.net -U Administrator --show-details -v
net
Utilitário Sambanet
utilitário faz parte do conjunto Samba.smb.conf
arquivo de configuração, o que torna mais difícil e inconveniente o uso, principalmente de maneira não interativa.kinit
. Novamente, isso é mais inconveniente e torna um pouco mais difícil o uso não interativo em um script, pois há duas etapas em vez de uma.Considerações sobre SSHD:
/etc/ssh/sshd_config
GSSAPIAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
ao usar esta opção./bin/passwd
, que não suporta nada além de NIS e arquivo de senha local.GSSAPICleanupCredentials yes
kdestroy
logoutGSSAPIStrictAcceptorCheck no
host/<FQDN>@REALM
para falar com o KDC, mas às vezes erra (por exemplo, se o nome do host não corresponder ao nome DNS do servidor SSH). Essa opção permite que o SSHD use qualquer objeto principal no/etc/krb5.keytab
arquivo, que inclua oshost/<FQDN>@REALM
ssh -K <ip>
que funcionem sem solicitar uma senha (presumindo que você já tenha um 'kinit', claro).fonte