web-dev-qa-db-fra.com

Quelle pratique est-elle d'authentifier un serveur Linux contre la publicité?

Nous utilisons des serveurs Windows et Linux dans notre société de développement de logiciels.

L'un des points de friction avec cette configuration est que nous n'avons pas une solution de connexion unique. Être plus d'une boutique Microsoft que d'un Linux, nous souhaitons vous authentifier contre la publicité.

J'ai lu quelques articles en ligne et je comprends que cela soit possible.

Nous utilisons actuellement les services suivants sur Linux nécessitant une authentification:
[.____] - Server Git (via SSH)
- Envoyer un mail
[.____] - Apache Web Server utilise actuellement des fichiers .htaccess.
[.____] - Actions de fichier Samba

Ce que je veux savoir, c'est la pratique de ce type de configuration? Est-ce que cela fonctionne vraiment ou est-ce qu'il est sujet d'erreur?

18
Philip Fourie

Ce n'est pas difficile et c'est parfaitement pratique.

Nous avons quelques centaines de machines de bureau Dual Boot qui utilisent AD Auth, ainsi qu'un certain nombre de serveurs qui utilisent AD Auth pour activer les clients Windows d'utiliser leurs actions Samba sans autorisation explicite par les utilisateurs.

Il y avait un autre article sur SF sur ce que vous devez faire.

Fondamentalement, vous devez configurer Kerberos, Winbind, NSS et PAM.

Ensuite, vous faites un kinit et un net ads join et votre haut.

Vous pouvez configurer PAM pour utiliser plusieurs méthodes pour authentifier si vous le souhaitez, de sorte que si on ne fonctionne pas, il restera à la suivante.

Nous utilisons habituellement des fichiers, WinBindd et LDAP pour serveurs servant des fichiers à files à des serveurs Windows.

Si possible, j'utiliserais LDAP pour les informations de compte et Windbind strictement pour authentifier, mais je pense que vous pouvez mapper des attributs dans je pense /etc/ldap.conf si vous en avez besoin. Si vous finissez par utiliser Winbindd pour obtenir des informations sur compte, il est possible d'utiliser la méthode RID (hachage) pour générer des UID/GIDS, mais il est également possible d'utiliser d'autres méthodes. Nous avons utilisé des débutions sur un grand serveur de fichiers et cela a été une vraie douleur, alors j'essaierais d'explorer l'une des autres options si possible. Dans notre cas, tous les utilisateurs et groupes AD sont reflétés dans LDAP par un système IDM en amont, nous utilisons donc LDAP pour les informations de compte sur les serveurs plus récents et utilisez WinBind purement pour auth.

11
Jason Tan

L'authentification est absolument simple en utilisant également. http://www.iMajustement.com/products/ikewise_open/index.php

Presque toute mon infrastructure Linux entière possède une authentification centralisée et une gestion des utilisateurs grâce à une éventuelle ouverte. C'est incroyablement simple d'installer et de mettre en œuvre. Je ne peux pas dire assez bien à ce sujet.

En tant que note, les UID et les gidons sont attribués selon une fonction de hachage, elles sont donc identiques sur toute l'infrastructure. Les montures NFS fonctionnent donc parfaitement.

6
Matt Simmons

Vous n'avez pas besoin d'utiliser Samba, AD prend en charge Kerberos et LDAP directement. Vous n'avez aucune raison d'utiliser un logiciel externe sur la plupart des distributions.

Pour Debian/Ubuntu, vous pouvez le faire avec Libnss-LDAP et libpam-KRB5. Il y a quelques astuces pour l'obtenir à 100%. Cela suppose que vous avez "Unixhomedirectory" peuplé pour les utilisateurs de Linux, vos boîtes Linux utilisent NTP courante avec vos systèmes Windows (requis par Kerberos) et que vous allez bien avec les recherches du texte brut NSS (pas de mot de passe Mais les informations sur l'adhésion au groupe, etc. - vous pouvez également utiliser TLS, mais c'est plus compliqué à configurer). Vous ne devez pas avoir PAM_LDAP en tant que mot de passe ou source d'authentification à PAM, sauf si vous êtes configuré pour utiliser TLS.

/etc/ldap.conf

# LDAP Configuration for libnss-ldap and libpam-ldap.
# Permit Host to continue boot process with out contacting LDAP server
bind_policy soft
# Define LDAP servers to use for queries, these must be Global Catalog servers
uri ldap://ldap.site.company.local
# Define root search location for queries
base dc=company,dc=local
#debug 1
# LDAP version, almost always going to be v3, it is quite mature
ldap_version 3
# Username used to proxy authentication. You can have this in a separate file owned by root for security OR use TLS/SSL (see man page)
# Do NOT use LDAP for authentication if you are using plain text binds, use Kerberos instead (and LDAP for authorization only). See libpam-krb5.
binddn cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
# Password for proxy acct
bindpw SooperSekeretPazzwerd
#  TCP port to perform queries on, 3268 is a Global Catalog port which will reply for all users in *.company.local
port 3268
# Search range scope (sub = all)
scope sub
# Tell the client to close TCP connctions after 30 seconds, Windows will do this on the server side anyways, this will prevent errors from showing up in the logs.
 idle_timelimit 30
# Expect queries for group membership to return DN for group members instead of usernames (lets you use MSAD group membership seamlessly)
nss_schema rfc2307bis
# Filters - User accounts must have a UID >= 2000 to be recognized in this configuration and must have a unixHomeDirectory defined.
nss_base_group dc=company,dc=local?sub?&(objectClass=group)(gidNumber=*)
nss_base_user dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
nss_base_shadow dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
# Object Class mappings.  You may want to have the posixAccount to map to "mail" and have users login with their email addresses, i.e.  "nss_map_objectclass posixAccount mail".
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
# Attribute mappings.
nss_map_attribute uniqueMember member
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
# Attribute in LDAP to query to match the username used by PAM for authentication
pam_login_attribute sAMAccountName
# Filter for objects which are allowed to login via PAM
pam_filter objectclass=User

Vous n'avez pas besoin d'éditer /etc/krb5.conf en supposant que vos cases Linux utilisent des serveurs DNS qui connaissent les zones d'AD (_MSDCS avec les enregistrements SRV appropriés sont résolvables)

/etc/nsswitch.conf doit avoir "fichiers LDAP" pour les utilisateurs, les groupes, les ombres.

Pour le chapeau rouge utilisant SSSD:

/etc/sssd/sssd.conf

[domain/AD]
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = ldap

ldap_uri = ldap://ldap.company.local:3268/
ldap_search_base = dc=company,dc=com
ldap_default_bind_dn = cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
ldap_default_authtok = SooperSekeretPazzwerd
ldap_schema = rfc2307bis
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_name = sAMAccountName
ldap_user_home_directory = unixHomeDirectory
enumerate = true
ldap_tls_reqcert = never
ldap_tls_cacertdir = /etc/openldap/cacerts

ldap_id_use_start_tls = False
cache_credentials = True
krb5_realm = SITE.COMPANY.COM
case_sensitive = false
[sssd]
services = nss, pam
config_file_version = 2

domains = AD
[nss]
filter_users = root,named,avahi,nscd
2
TheFiddlerWins

Vous avez des utilisateurs Windows authentiques contre la publicité, mais la plupart de nos serveurs (lecteur public, etc.) sont Linux et font partie du domaine. À partir d'un avis de Windows POV No-One. De mon côté, il se sent un peu fruité ssh'ing avec mon nom d'utilisateur Windows, mais c'est à peu près la taille de celui-ci.

Juste Usin Old Samba.

2
Tom Newton