GNU/Linux >> Linux Esercitazione >  >> Cent OS

Samba 4 con Active Directory su installazione basata su CentOS 7 rpm con supporto di condivisione

Nell'ultimo tutorial, ti ho mostrato come configurare Samba su Centos 7 compilando Samba dal sorgente poiché il pacchetto fornito da RedHat non supporta Active Directory. Ho notato che esiste un repository chiamato Wing che fornisce a samba4 rpm il supporto per AD. In questo tutorial, userò questo repository per l'installazione di Samba. Mostrerò anche come creare una condivisione samba.

In questo tutorial, utilizzerò un server CentOS 7 con un'installazione minima come base con SELinux abilitato.

Prepara il server CentOS 7

Controlla lo stato di SELinux.

[[email protected] ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
[[email protected] ~]#
 

Immettere una voce nel file host con l'indirizzo IP del server seguito dal nome host completo (fqdn) e quindi dalla parte locale del nome host.

[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.190   samba4.sunil.cc samba4
[[email protected] ~]#
      

Installa il repository Epel CentOS.

[[email protected] ~]# yum install epel-release -y

Installa i pacchetti di base.

[[email protected] ~]# yum install vim wget authconfig krb5-workstation -y
    

Ora installa il repository ala.

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# wget http://wing-net.ddo.jp/wing/7/EL7.wing.repo
[[email protected] yum.repos.d]# sed -i '[email protected][email protected][email protected]' /etc/yum.repos.d/EL7.wing.repo
[[email protected] yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates wing wing-source
Cleaning up everything
Cleaning up list of fastest mirrors
[[email protected] yum.repos.d]#
   

Installa Samba 4 su CentOS 7

Installazione dei pacchetti Samba4 dal repository wing con yum.

[[email protected] yum.repos.d]# yum install -y samba45 samba45-winbind-clients samba45-winbind samba45-client\
samba45-dc samba45-pidl samba45-python samba45-winbind-krb5-locator perl-Parse-Yapp\
perl-Test-Base python2-crypto samba45-common-tools
    

Rimuovi questi file.

 
[[email protected] ~]# rm -rf /etc/krb5.conf
[[email protected] ~]# rm -rf /etc/samba/smb.conf
    

Configurazione di Samba 4

Ora faremo il provisioning del dominio.

[[email protected] ~]# samba-tool domain provision --use-rfc2307 --interactive
 Realm [SUNIL.CC]:
 Domain [SUNIL]:
 Server Role (dc, member, standalone) [dc]:
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
 DNS forwarder IP address (write 'none' to disable forwarding) [4.2.2.1]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=sunil,DC=cc
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=sunil,DC=cc
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              samba4
NetBIOS Domain:        SUNIL
DNS Domain:            sunil.cc
DOMAIN SID:            S-1-5-21-1578983437-3114190590-2362936743
[[email protected] etc]#
    

Assicurati che le porte siano aperte nel firewall.

[[email protected] etc]#firewall-cmd --add-port=53/tcp --permanent;firewall-cmd --add-port=53/udp --permanent;firewall-cmd --add-port=88/tcp --permanent;firewall-cmd --add-port=88/udp --permanent; \
firewall-cmd --add-port=135/tcp --permanent;firewall-cmd --add-port=137-138/udp --permanent;firewall-cmd --add-port=139/tcp --permanent; \
firewall-cmd --add-port=389/tcp --permanent;firewall-cmd --add-port=389/udp --permanent;firewall-cmd --add-port=445/tcp --permanent; \
firewall-cmd --add-port=464/tcp --permanent;firewall-cmd --add-port=464/udp --permanent;firewall-cmd --add-port=636/tcp --permanent; \
firewall-cmd --add-port=1024-3500/tcp --permanent;firewall-cmd --add-port=3268-3269/tcp --permanent
[[email protected] ~]# firewall-cmd --reload

Il pacchetto non fornisce lo script init, lo aggiungeremo ora.

[[email protected] ~]# cat  /etc/systemd/system/samba.service
[Unit]
Description= Samba 4 Active Directory
After=syslog.target
After=network.target

[Service]
Type=forking
PIDFile=/var/run/samba.pid
ExecStart=/usr/sbin/samba

[Install]
WantedBy=multi-user.target
[[email protected] ~]#
[[email protected] ~]# systemctl enable samba
Created symlink from /etc/systemd/system/multi-user.target.wants/samba.service to /etc/systemd/system/samba.service.
[[email protected] ~]# systemctl restart samba

Tutti gli altri passaggi sono simili al mio articolo precedente

per configurare host Windows e Linux, fare riferimento ad esso

Installazione del controller di dominio Samba4 dal sorgente

Creazione della condivisione Samba con il supporto di Windows ACL

Abbiamo bisogno di configurare l'ACL estesa per samba4. Aggiungi quanto segue nel file smb.conf in globale.

[[email protected] ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
        ------------
		-------------
        vfs objects = acl_xattr
        map acl inherit = yes
        store dos attributes = yes
		------------
		-------------

[[email protected] ~]#

Ora riavvia il servizio Samba.

[[email protected] ~]# systemctl restart samba

Solo gli utenti e i gruppi a cui è stato concesso il privilegio SeDiskOperatorPrivilege possono configurare le autorizzazioni di condivisione.

[[email protected] ~]# net rpc rights grant "SUNIL\Domain Admins" SeDiskOperatorPrivilege -U "USER\administrator"
Enter USER\administrator's password:
Successfully granted rights.
[[email protected] ~]#

Prima di creare la condivisione, dobbiamo assicurarci che il server samba4 si autentichi con se stesso.

Non possiamo eseguire il solito metodo poiché non funziona poiché il pacchetto esistente da wing entrerà in conflitto con i pacchetti forniti da RedHat, non possiamo usare sssd qui. Useremo winbind per farlo funzionare.

Si prega di utilizzare il metodo seguente. Questo è necessario per creare la condivisione samba con autorizzazioni specifiche

Installa il pacchetto sottostante.

[[email protected] ~]#yum -y install authconfig-gtk*

Esegui il comando.

[[email protected] yum.repos.d]# authconfig-tui

seleziona il winbind, segui i passaggi successivi.

Non potrai inserire la password, basta premere ok.

Quindi commenta le righe in /etc/samba/smb.conf e riavvia il servizio samba.

La tua configurazione dovrebbe assomigliare a questa:

[[email protected] ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
#--authconfig--start-line--

# Generated by authconfig on 2017/05/26 17:23:04
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future

#   workgroup = SUNIL
#   password server = samba4.sunil.cc
#   realm = SUNIL.CC
#   security = ads
#   idmap config * : range = 16777216-33554431
#   template shell = /sbin/nologin
#  kerberos method = secrets only
#   winbind use default domain = false
#   winbind offline logon = false

#--authconfig--end-line--
        netbios name = SAMBA4
        realm = SUNIL.CC
        workgroup = SUNIL
        dns forwarder = 4.2.2.1
        server role = active directory domain controller
        idmap_ldb:use rfc2307 = yes
        vfs objects = acl_xattr
        map acl inherit = yes
        store dos attributes = yes

[netlogon]
        path = /var/lib/samba/sysvol/sunil.cc/scripts
        read only = No

[sysvol]
        path = /var/lib/samba/sysvol
        read only = No
[[email protected] ~]#
[[email protected] ~]# systemctl restart samba

Verifica se siamo in grado di popolare utenti e gruppi:

[[email protected] ~]# wbinfo -u
SUNIL\administrator
SUNIL\sambauser
SUNIL\testuser
SUNIL\krbtgt
SUNIL\guest
[[email protected] ~]# wbinfo -g
SUNIL\cert publishers
SUNIL\ras and ias servers
SUNIL\allowed rodc password replication group
SUNIL\denied rodc password replication group
SUNIL\dnsadmins
SUNIL\enterprise read-only domain controllers
SUNIL\domain admins
SUNIL\domain users
SUNIL\domain guests
SUNIL\domain computers
SUNIL\domain controllers
SUNIL\schema admins
SUNIL\enterprise admins
SUNIL\group policy creator owners
SUNIL\read-only domain controllers
SUNIL\dnsupdateproxy
[[email protected] ~]#

Modifica le righe in nsswitch.conf:

[[email protected] ~]# cat /etc/nsswitch.conf
----------
---------
passwd:     files winbind
shadow:     files winbind
group:      files winbind
hosts:      files dns wins
services:   files winbind
netgroup:   files winbind

---------
----------

Ora controlla se siamo in grado di ottenere il nome utente usando il comando id:

[[email protected] ~]# id testuser
uid=3000019(SUNIL\testuser) gid=100(users) groups=100(users),3000019(SUNIL\testuser),3000009(BUILTIN\users)
[[email protected] ~]#

Creazione di una condivisione Samba

Creerò due condivisioni, una accessibile solo da testuser e l'altra accessibile da tutti gli utenti nel gruppo utenti di dominio.

La condivisione accessibile da testuser sarà chiamata testshare.

La condivisione accessibile da tutti gli utenti si chiamerà commonshare.

[[email protected] ~]# mkdir /testshare
[[email protected] ~]# mkdir /commonshare
[[email protected] ~]# chmod 770 /testshare
[[email protected] ~]# chmod 770 /commonshare
[[email protected] ~]# chown -R root:testuser /testshare
[[email protected] ~]# chown -R root:"Domain Users" /commonshare

Ora aggiungi le voci in smb.conf

[[email protected] ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
        netbios name = SAMBA4
        realm = SUNIL.CC
        workgroup = SUNIL
        dns forwarder = 4.2.2.1
        server role = active directory domain controller
        idmap_ldb:use rfc2307 = yes
        vfs objects = acl_xattr
        map acl inherit = yes
        store dos attributes = yes

[netlogon]
        path = /var/lib/samba/sysvol/sunil.cc/scripts
        read only = No

[sysvol]
        path = /var/lib/samba/sysvol
        read only = No
[TestShare]
        comment = Test share accessible by testuser
        path = /testshare
        valid users = SUNIL\testuser
        writable = yes
        read only = no
        force create mode = 0660
        create mask = 0770
        directory mask = 0770
        force directory mode = 0770
        access based share enum = yes
        hide unreadable = yes
[CommonShare]
         comment = Accessible by all the users
          path = /commonshare
          valid users = "@SUNIL\Domain Users"
          writable = yes
        read only = no
        force create mode = 0660
        create mask = 0777
        directory mask = 0777
        force directory mode = 0770
        access based share enum = yes
        hide unreadable = yes
[[email protected] ~]#

Riavvia il servizio samba.

[[email protected] ~]# systemctl restart samba

Accedi alla condivisione samba come utente di prova.

Qui vedrai sia testshare che commonshare sono visibili.

Testato la creazione di file e cartelle in testshare.

[[email protected] /]# cd /testshare/
[[email protected] testshare]# ls -l
total 8
-rwxrwx---+ 1 SUNIL\testuser users 0 May 27 22:56 1.txt
drwxrwx---+ 2 SUNIL\testuser users 6 May 27 22:56 test
[[email protected] testshare]#

Ora sto effettuando l'accesso come utente diverso, è visibile solo la condivisione comune:

Creazione di file in condivisione comune.

[[email protected] commonshare]# ls -l
total 8
drwxrwxrwx+ 2 SUNIL\testuser  users 6 May 27 23:02 test
drwxrwxrwx+ 2 SUNIL\sambauser users 6 May 27 23:07 test2
[[email protected] commonshare]#

È così che creiamo condivisioni in Samba 4.


Cent OS
  1. Passaggi di installazione di CentOS 7 con schermate

  2. Passaggi di installazione di OpenCart 2.0 su CentOS 7

  3. Come installare ownCloud su CentOS 7

  4. Scelta di SSSD o Winbind &Samba per l'integrazione con Active Directory in CentOS/RHEL

  5. Integra i server Linux con Active Directory utilizzando Samba, Winbind e Kerberos

Installazione del controller di dominio Samba 4 su CentOS 7

Controller di dominio aggiuntivo Samba 4 per la replica di failover su CentOS 7

Installazione e configurazione del server Samba su CentOS 7

Installazione di Nginx con PHP5 (e PHP-FPM) e supporto MySQL su CentOS 6.4

Integra Samba con Active Directory su CentOS

Come connettersi con Samba a Linux Active Directory