Forum Linux.général Comment migrer de Windows vers Linux en entreprise

Posté par .
6
27
mai
2011

Bonjour,

Je travaille dans une entreprise, comme dans beaucoup d'entre elles les postes bureautiques sont Windows, utilisant MS Office, etc. Et surtout les serveurs sont aussi dans un environnement Windows : messagerie Exchange, Active Directory, NAS cifs. Enfin du grand classique je suppose.

Notre désir est de se passer petit à petit de Windows, en raison des coûts bien sûr, mais pas que. Jusqu'à présent, les seuls choses que l'on ai pu faire est de monter quelques serveurs Web (internet) car ils sont relativement autonomes (encore que...).

Mais en réalité ce qui est ÉNORMÉMENT bloquant c'est d'avoir un NAS cifs avec des ACL gérés par Active Directory. C'est le point noir à chaque fois que l'on souhaite déployer du Linux quelque part. En effet, si on déploie un serveur Linux, il a forcément besoin d'interagir avec le reste ou de fournir un service à des clients Windows (donc gérant des ACL, etc.).

Bref, comment faire pour pallier à ces genres de problèmes ? Dans votre entreprise, comment vous gérer les droits ACL des utilisateurs ? Vous utilisez quel systèmes de fichiers ? NFS ?

  • # Commentaire supprimé

    Posté par . Évalué à 6.

    Ce commentaire a été supprimé par l'équipe de modération.

    • [^] # Re: Un peu étonné

      Posté par . Évalué à 2.

      Monter un partage CIFS sur Linux, ok c'est simple sauf qu'il n'y a aucune correspondance avec les ACLs. Je monte un partage Windows (CIFS) avec un user AD. Une des choses que je souhaite par exemple faire, c'est de copier depuis le serveur (avec un script par exemple) un dossier vers un autre dossier (partage Windows <-> partage Windows). Or quand je fais ça, aucun ACL n'est conservé : je récupère les ACL par défaut, or le dossier contient toutes sortes d'ACL différentes.

      Bref, Samba et OpenLDAP, ok c'est bien en environnement full-Linux, mais quand on veut intégrer Windows et Linux ensemble ça devient hyper compliqué j'ai l'impression. C'est l'objet de mon sujet, comment vous gérer ces situations ?

      • [^] # Re: Un peu étonné

        Posté par . Évalué à 2.

        C'est l'objet de mon sujet, comment vous gérer ces situations ?

        samba-ldap c'est pour remplacer cifs-ad
        mais ca peut aussi venir interagir avec l'existant
        en disant par exemple à linux de causer au ldap, qui causera à l'ad.

        linux <-> ldap <-> ad

      • [^] # Re: Un peu étonné

        Posté par (page perso) . Évalué à 2.

        Or quand je fais ça, aucun ACL n'est conservé : je récupère les ACL par défaut, or le dossier contient toutes sortes d'ACL différentes.

        Le dossier cible ?

        Système - Réseau - Sécurité Open Source

        • [^] # Re: Un peu étonné

          Posté par . Évalué à 1.

          Le dossier cible ?

          Le dossier source contient plusieurs sous-répertoires avec des droits différents selon les groupes. Évidement tous les sous-répertoires ont des droits hérités de plus haut encore.

          Quand je procède à une copie, seuls les droits hérités sont gardés, je perds tous les droits spécifiques dans les sous-dossiers.

          • [^] # Re: Un peu étonné

            Posté par . Évalué à 2.

            Avec quel outil est fait la copie ? pareil avec un "cp -a" ?

            • [^] # Re: Un peu étonné

              Posté par . Évalué à 1.

              Oui avec cp, mais sans option. Je vais essayer avec -a.

            • [^] # Re: Un peu étonné

              Posté par . Évalué à 1.

              Non ça ne fonctionne pas mieux avec "cp -aR".

              • [^] # Re: Un peu étonné

                Posté par . Évalué à 1.

                est-ce que ça marche déja avec un fichier individuel ?

                mgm@debsid:~$ touch f1
                mgm@debsid:~$ getfacl f1
                # file: f1
                # owner: mgm
                # group: mgm
                user::rw-
                group::r--
                other::r--
                mgm@debsid:~$ setfacl -m u:tomcat6:rwx f1
                mgm@debsid:~$ getfacl f1
                # file: f1
                # owner: mgm
                # group: mgm
                user::rw-
                user:tomcat6:rwx
                group::r--
                mask::rwx
                other::r--
                mgm@debsid:~$ cp -a f1 f2
                mgm@debsid:~$ getfacl f2
                # file: f2
                # owner: mgm
                # group: mgm
                user::rw-
                user:tomcat6:rwx
                group::r--
                mask::rwx
                other::r--
                
  • # Samba et ACLs

    Posté par . Évalué à 2.

    Sous Linux, Samba pourra stocker les ACLs Windows sur des ACLs POSIX (donc ext3 par exemple), ou NFS.

    Une section du Samba HOWTO couvre les bases pour le premier cas.

    Voir *acl* sur source3/modules (git de samba) pour le code des différents "backends" (posix, zfs, nfs, etc.).

  • # Par étapes...

    Posté par (page perso) . Évalué à 2.

    Authentification postes clients Linux sur l'Active Directory (qui est basé sur un LDAP)

    Remplacement du serveur Active Directory par un SAMBA en contrôleur de domaine

    Ceci dit, il me semble que des distributions linux comme la Mandriva Directory Server offrent une intégration et des outils qui facilitent la mise en œuvre (on peut tout assembler à la mano, mais ça prend du temps, parfois beaucoup de temps quand on a raté une étape ou oublié quelque chose).

    Bref, ce qui te manque c'est une centralisation de l'authentification et des comptes, afin que tous les postes aient les mêmes références. Parce que pour ce qui est des acl (acl posix), c'est supporté par Linux - faut juste mettre l'option acl dans les options de montage.

    Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

    • [^] # Re: Par étapes...

      Posté par (page perso) . Évalué à 2.

      Il est totalement impossible d'avoir quelque chose de fonctionnnel via LDAP sauf installation des services 4 unix sur le serveur Microsoft mais je préfère largement la solution ci dessous ;)

  • # Active directory, Samba, Acls

    Posté par (page perso) . Évalué à 7.

    Mise en place NTP:
    apt-get install ntpdate
    Puis ajout controleur de domaine à /etc/default/ntpdate

    Mise en pace kerberos:
    apt-get install libpam-krb5 krb5-user

    #################################################
    #/etc/krb5.conf
    #################################################
    [logging]
          default = FILE:/var/log/krb5.log
    
    [libdefaults]
          ticket_lifetime = 1d
          kdc_timesync = 1
          ccache_type = 4
          forwardable = true
          proxiable = true
          default_realm = AD.CHEZTOI.FR
          clockskew = 300
    
    [realms]
          AD.CHEZTOI.FR = {
                  kdc = @ ip controleur 1
                  kdc = @ ip controleur 2, etc...
                  admin_server = @ ip d'un des controleur
                  default_domain = AD.CHEZTOI.FR
          }
    
    [domain_realm]
          .ad.cheztoi.fr = AD.CHEZTOI.FR
          ad.cheztoi.fr = AD.CHEZTOI.FR
          ad = AD.CHEZTOI.FR
    

    Test de kerberos: kinit ADMIN-??@AD.CHEZTOI.FR => N'affiche rien si conf ok

    Mise en place de samba
    apt-get install samba winbind

    #/etc/samba/smb.conf
    
    [global]
    
    ########### 
    # DOMAINE #
    ###########
           workgroup = AD
           realm = AD.CHEZTOI.FR
           netbios name = linux-ad
           security = ads
           client use spnego = yes
           domain master = no
           local master = no
           preferred master = no
           os level = 0
           wins support = no
           wins server = ip controlleur si wins
    
    ###########
    # WINBIND #
    ###########
           idmap backend = idmap_rid:AD=1010-100000000
           idmap uid = 1010-100000000
           idmap gid = 1010-100000000
           template shell = /bin/bash
    #       winbind separator = +
           winbind use default domain = yes
           winbind enum users = no
           winbind enum groups = no
           winbind nested groups = yes
           map untrusted to domain = no
           winbind refresh tickets = yes
           template homedir = /home/user
    ###########
    # OPTIONS #
    ###########
           socket options = TCP_NODELAY SO_KEEPALIVE SO_SNDBUF=8192 SO_RCVBUF=8192
           inherit acls = Yes
           dns proxy = no
           wide links = yes
           unix extensions = no
           create mask = 0700
           directory mask = 0700
           inherit acls = yes
           hide unreadable = yes
           hide files = /desktop.ini/
           hide dot files = yes
           dos charset = 850
           unix charset = UTF-8
           bind interfaces only = yes
    

    Intégration:
    net ads join -U admin-cb -S controleurdedomaine

    Mise en place resolution users/groups:
    #################################################
    # /etc/nsswitch.conf
    #################################################

    # /etc/nsswitch.conf
    #
    # Example configuration of GNU Name Service Switch functionality.
    # If you have the `glibc-doc-reference' and `info' packages installed, try:
    # `info libc "Name Service Switch"' for information about this file.
    
    passwd:         compat winbind
    group:          compat winbind
    shadow:         compat winbind
    
    hosts:          files dns
    networks:       files
    
    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files
    
    netgroup:       nis
    

    Voilà ou j'en suis sur mon wiki :) Bien sur il te faut activer les acls sur ton fs...

    La partie importante niveau smb.conf est:

       idmap backend = idmap_rid:AD=1010-100000000
       idmap uid = 1010-100000000
       idmap gid = 1010-100000000
    

    qui te permet d'etre sur d'avoir une association SID <-> UID valide dans le temps meme si tu crashes son serveur.

  • # Même chose pour moi

    Posté par . Évalué à 1.

    J'ai toujours eu le même problème.
    Enfin toujours depuis pas si longtemps que ça vu que je n'ai pas beaucoup d'années d'expérience.

    Merci pour les réponses très fournies au dessus. Il y a eu une entrée de forum il y a quelques temps sur le même sujet et les réponses étaient plutôt que pour les vraies ACL Windows ce n'était pas possible. Et c'est ce que j'ai constaté pour l'instant.
    http://linuxfr.org/forums/g%C3%A9n%C3%A9ralg%C3%A9n%C3%A9ral/posts/acls-et-posix

    Je vais me lancer dans l'exploration des solutions que vous indiquez ici. D'après vous ça permet de:
    - modifier les droits et propriétaire (ownership) à la Windows, même par exemple "suppression de sous-dossiers et fichiers" et même la case "refuser" ?
    - effectuer ces modifications depuis les clients Windows ?

    Si c'est le cas, chouette ! Mais jusqu'à présent je ne suis jamais tombé sur ce genre d'indication. J'ai même testé 2 distributions faites spécialement pour le partage réseau avec des clients Windows, et ça ne faisait que des choses simples que tout le monde sait faire en installant Samba.

    Bref, si ça marche comme un vrai Windows, c'est super car le besoin de faire simplement du partage de fichiers est courant. Et clairement installé un Windows pour ça c'est overkill. Et overchiant.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.