PAM, NIS, LDAP, Kerberos, DS e Samba 4 AD-DC - Reti SMB

Indice generale della serie: Reti di computer per le PMI: Introduzione

Ciao amici e amici!

Con questo articolo saluto la Community DesdeLinux. Un addio speciale per una Comunità Speciale. Da ora in poi sarò nel mio progetto personale che potete vedere su http://www.gigainside.com.

L'obiettivo principale del post è offrire un «Big Picture»Informazioni sui servizi di autenticazione con software libero che abbiamo a nostra disposizione. Almeno questa è la nostra intenzione. Quindi sarà lungo, nonostante sappiamo che è contro le regole generali di scrittura di articoli. Ci auguriamo che gli amministratori di sistema lo apprezzino.

Vogliamo sottolineare che il protocollo comune a molti dei moderni sistemi di autenticazione è il LDAP, e che non è inutile studiarlo con attenzione, sulla base del materiale di studio che troveremo sul sito ufficiale http://www.openldap.org/.

Non daremo definizioni dettagliate -o link- su aspetti trattati in articoli precedenti, o su quelli la cui descrizione può essere facilmente accessibile su Wikipedia o altri siti o articoli su Internet, per non perdere l'oggettività del messaggio che vogliamo dare. Useremo anche un valido mix di nomi in inglese e spagnolo, poiché riteniamo che la maggior parte dei sistemi sia nata con nomi in inglese ed è molto vantaggioso per un amministratore di sistema assimilarli nella loro lingua originale.

  • PAM: Modulo di autenticazione inseribile.
  • NIS: Servizio_informazioni_rete.
  • LDAP: protocollo di accesso alla directory leggero.
  • Kerberos: Protocollo di sicurezza per autenticare utenti, computer e servizi centralmente su una rete, verificando le loro credenziali rispetto alle voci esistenti nel database Kerberos.
  • DS: server di directory o servizio di directory
  • dC-DC: Active Directory - Domain Controler

PAM

Dedichiamo una piccola serie a questo tipo di autenticazione locale, che vedrete nella pratica quotidiana che trova largo impiego quando, ad esempio, uniamo una workstation a un Domain Controller o Active Directory; mappare gli utenti archiviati in database LDAP esterni come se fossero utenti locali; per mappare gli utenti archiviati nel controller di dominio di una Active Directory come se fossero utenti locali e così via.

NIS

De wikipedia:

  • Network Information System (noto con l'acronimo NIS, che in spagnolo significa Network Information System), è il nome di un protocollo di servizi di directory client-server sviluppato da Sun Microsystems per l'invio di dati di configurazione in sistemi distribuiti come nomi di utenti e host tra computer su una rete.NIS è basato su ONC RPC e consiste in un server, una libreria lato client e vari strumenti di amministrazione.

    In origine NIS si chiamava Pagine Gialle, o YP, che è ancora usato per riferirsi ad esso. Sfortunatamente, quel nome è un marchio di British Telecom, che ha richiesto a Sun di eliminare quel nome. Tuttavia, YP rimane un prefisso nei nomi della maggior parte dei comandi relativi a NIS, come ypserv e ypbind.

    Il DNS serve una gamma limitata di informazioni, la più importante è la corrispondenza tra il nome del nodo e l'indirizzo IP. Per altri tipi di informazioni, non esiste un servizio specializzato di questo tipo. D'altra parte, se gestisci solo una piccola LAN senza connettività Internet, non sembra valga la pena impostare il DNS. Questo è il motivo per cui Sun ha sviluppato il Network Information System (NIS). NIS fornisce funzionalità di accesso al database generico che possono essere utilizzate per distribuire, ad esempio, le informazioni contenute in passwd e file di gruppo a tutti i nodi della rete. Questo fa sembrare la rete un unico sistema, con gli stessi account su tutti i nodi. Allo stesso modo, NIS può essere utilizzato per distribuire le informazioni sul nome del nodo contenute in / etc / hosts a tutte le macchine sulla rete.

    Oggi NIS è disponibile praticamente in tutte le distribuzioni Unix e ci sono anche implementazioni libere. BSD Net-2 ne ha pubblicato uno che è stato derivato da un'implementazione di riferimento di dominio pubblico donata da Sun. Il codice della libreria per la parte client di questa versione esiste da molto tempo nella libc GNU / Linux, ei programmi di amministrazione sono stati portati su GNU / Linux da Swen Thümmler. Tuttavia, un server NIS non è presente nell'implementazione di riferimento.

    Peter Eriksson ha sviluppato una nuova implementazione chiamata NYS. Supporta sia NIS di base che la versione avanzata di Sun NIS +. [1] NYS non solo fornisce una serie di strumenti NIS e un server, ma aggiunge anche un intero nuovo set di funzioni di libreria che devi compilare nella tua libc se vuoi usarle. Ciò include un nuovo schema di configurazione per la risoluzione del nome del nodo che sostituisce lo schema corrente utilizzato dal file "host.conf".

    La libc GNU, nota come libc6 nella comunità GNU / Linux, include una versione aggiornata del tradizionale supporto NIS sviluppato da Thorsten Kukuk. Supporta tutte le funzioni di libreria fornite da NYS e utilizza anche lo schema di configurazione avanzato NYS. Gli strumenti e il server sono ancora necessari, ma l'uso della libc GNU consente di risparmiare il lavoro di patching e ricompilazione della libreria

    .

Computer e nome di dominio, interfaccia di rete e resolver

  • Partiamo da un'installazione pulita -senza interfaccia grafica- di una Debian 8 "Jessie". Il dominio swl.fan significa "Fan del software libero". Quale nome migliore di questo?.
root @ master: ~ # hostname
Mastercard
root @ master: ~ # hostname -f
master.swl.fan

root @ master: ~ # ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft sempre preferito_lft sempre inet6 :: Host dell'ambito 1/128 valid_lft per sempre preferito_lft per sempre 2: eth0: mtu 1500 qdisc pfifo_fast stato UP gruppo predefinito qlen 1000 link / ether 00: 0c: 29: 4c: 76: d9 brd ff: ff: ff: ff: ff: ff inet 192.168.10.5/24 brd 192.168.10.255 scope global eth0 valid_lft per sempre preferito_lft per sempre inet6 fe80 :: 20c: 29ff: fe4c: 76d9 / 64 collegamento ambito valid_lft per sempre preferito_lft per sempre

root @ master: ~ # cat /etc/resolv.conf 
cerca swl.fan nameserver 127.0.0.1

Installazione di bind9, isc-dhcp-server e ntp

bind9

root @ master: ~ # aptitude install bind9 bind9-doc Nmap
root @ master: ~ # systemctl status bind9

root @ master: ~ # nano /etc/bind/named.conf
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones";

root @ master: ~ # cp /etc/bind/named.conf.options \ /etc/bind/named.conf.options.original

root @ master: ~ # nano /etc/bind/named.conf.options
opzioni {directory "/ var / cache / bind"; // Se c'è un firewall tra te e i server dei nomi con cui // vuoi parlare, potresti dover aggiustare il firewall per consentire a più porte // di parlare. Vedere http://www.kb.cert.org/vuls/id/800113

        // Se il tuo ISP ha fornito uno o più indirizzi IP per server dei nomi // stabili, probabilmente vorrai usarli come forwarder. // Rimuovere il commento dal blocco seguente e inserire gli indirizzi sostituendo // il segnaposto di tutti gli 0. // forwarders {// 0.0.0.0; //}; // =============================================== = ==================== $ // Se BIND registra messaggi di errore relativi alla scadenza della chiave radice, // sarà necessario aggiornare le chiavi. Vedere https://www.isc.org/bind-keys
        // =============================================== = ===================== $ // Non vogliamo DNSSEC
        abilita dnssec no;
        // convalida dnssec auto; auth-nxdomain no; # conforme a RFC1035 listen-on-v6 {any; }; // Per i controlli da localhost e sysadmin // tramite dig swl.fan axfr // Non abbiamo Slave DNS ... fino ad ora
        consentire-trasferimento {localhost; 192.168.10.1; };
}; root @ master: ~ # named-checkconf

root @ master: ~ # nano /etc/bind/zones.rfcFreeBSD
// Spazio indirizzo condiviso (RFC 6598)
zone "64.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "65.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "66.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "67.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "68.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "69.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "70.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "71.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "72.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "73.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "74.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "75.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "76.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "77.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "78.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "79.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "80.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "81.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "82.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "83.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "84.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "85.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "86.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "87.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "88.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "89.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "90.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "91.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "92.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "93.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "94.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "95.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "96.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "97.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "98.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "99.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "100.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "101.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "102.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "103.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "104.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "105.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "106.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "107.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "108.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "109.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "110.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "111.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "112.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "113.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "114.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "115.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "116.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "117.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "118.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "119.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "120.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "121.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "122.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "123.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "124.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "125.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "126.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "127.100.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };

// Link-local / APIPA (RFC 3927, 5735 e 6303)
zona "254.169.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Assegnazioni protocollo IETF (RFC 5735 e 5736)
zona "0.0.192.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; };

// TEST-NET- [1-3] per la documentazione (RFC 5735, 5737 e 6303)
zona "2.0.192.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "100.51.198.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "113.0.203.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Intervallo di esempio IPv6 per la documentazione (RFC 3849 e 6303)
zona "8.bd0.1.0.0.2.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Nomi di dominio per documentazione e test (BCP 32)
zona "test" {tipo master; file "/etc/bind/db.empty"; }; zona "esempio" {tipo master; file "/etc/bind/db.empty"; }; zona "non valida" {tipo master; file "/etc/bind/db.empty"; }; zona "esempio.com" {tipo master; file "/etc/bind/db.empty"; }; zona "esempio.net" {tipo master; file "/etc/bind/db.empty"; }; zona "esempio.org" {tipo master; file "/etc/bind/db.empty"; };

// Test di benchmark del router (RFC 2544 e 5735)
zona "18.198.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "19.198.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Riservato IANA - Old Class E Space (RFC 5735)
zona "240.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "241.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "242.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "243.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "244.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "245.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "246.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "247.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "248.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "249.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "250.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "251.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "252.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "253.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "254.in-addr.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Indirizzi non assegnati IPv6 (RFC 4291)
zona "1.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "3.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "4.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "5.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "6.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "7.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "8.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "9.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "a.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "b.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "c.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "d.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "e.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "0.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "1.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "2.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "3.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "4.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "5.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "6.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "7.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "8.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "9.f.ip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "afip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "bfip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "0.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "1.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "2.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "3.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "4.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "5.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "6.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "7.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; };

// IPv6 ULA (RFC 4193 e 6303)
zona "cfip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "dfip6.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Collegamento locale IPv6 (RFC 4291 e 6303)
zona "8.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "9.efip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "aefip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "befip6.arpa" {tipo master; file "/etc/bind/db.empty"; };

// Indirizzi locali del sito deprecati IPv6 (RFC 3879 e 6303)
zona "cefip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "defip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "eefip6.arpa" {tipo master; file "/etc/bind/db.empty"; }; zona "fefip6.arpa" {tipo master; file "/etc/bind/db.empty"; };

// IP6.INT è obsoleto (RFC 4159)
zona "ip6.int" {tipo master; file "/etc/bind/db.empty"; };

root @ master: ~ # nano /etc/bind/named.conf.local
// // Esegui qui una configurazione locale // // Considera l'idea di aggiungere qui le zone 1918, se non vengono utilizzate nella tua // organizzazione, includi "/etc/bind/zones.rfc1918";
includere "/etc/bind/zones.rfcFreeBSD";

// Dichiarazione del nome, tipo, posizione e autorizzazione all'aggiornamento // delle zone dei record DNS // Entrambe le zone sono zona MASTER "swl.fan" {tipo master; file "/var/lib/bind/db.swl.fan"; }; zona "10.168.192.in-addr.arpa" {tipo master; file "/var/lib/bind/db.10.168.192.in-addr.arpa"; };

root @ master: ~ # named-checkconf

root @ master: ~ # nano /var/lib/bind/db.swl.fan
$ TTL 3H @ IN SOA master.swl.fan. root.master.swl.fan. (1; seriale 1D; aggiornamento 1H; riprova 1W; scadenza 3H); minimo o; Tempo di caching negativo da vivere; @ IN NS master.swl.fan. @ IN MX 10 mail.swl.fan. @ IN A 192.168.10.5 @ IN TXT "Per i fan del software libero"; sysadmin IN A 192.168.10.1 fileserver IN A 192.168.10.4 master IN A 192.168.10.5 proxyweb IN A 192.168.10.6 blog IN A 192.168.10.7 ftpserver IN A 192.168.10.8 mail IN A 192.168.10.9

root @ master: ~ # nano /var/lib/bind/db.10.168.192.in-addr.arpa
$ TTL 3H @ IN SOA master.swl.fan. root.master.swl.fan. (1; seriale 1D; aggiornamento 1H; riprova 1W; scadenza 3H); minimo o; Tempo di caching negativo da vivere; @ IN NS master.swl.fan. ; 1 IN PTR sysadmin.swl.fan. 4 IN PTR fileserver.swl.fan. 5 IN PTR master.swl.fan. 6 IN PTR proxyweb.swl.fan. 7 IN PTR blog.swl.fan. 8 IN PTR ftpserver.swl.fan. 9 IN PTR mail.swl.fan.

root @ master: ~ # named-checkzone swl.fan /var/lib/bind/db.swl.fan
zone swl.fan/IN: caricata seriale 1 OK
root @ master: ~ # named-checkzone 10.168.192.in-addr.arpa /var/lib/bind/db.10.168.192.in-addr.arpa
zone 10.168.192.in-addr.arpa/IN: seriale 1 caricata OK

root @ master: ~ # named-checkconf -zp
root @ master: ~ # systemctl riavvia bind9.service
root @ master: ~ # systemctl status bind9.service

Bind9 controlli

root @ master: ~ # dig swl.fan axfr
root @ master: ~ # dig 10.168.192.in-addr.arpa axfr
root @ master: ~ # dig IN SOA swl.fan
root @ master: ~ # dig IN NS swl.fan
root @ master: ~ # dig IN MX swl.fan
root @ master: ~ # proxyweb host root @ master: ~ # nping --tcp -p 53 -c 3 localhost
root @ master: ~ # nping --udp -p 53 -c 3 localhost
root @ master: ~ # nping --tcp -p 53 -c 3 master.swl.fan
root @ master: ~ # nping --udp -p 53 -c 3 master.swl.fan
Avvio di Nping 0.6.47 ( http://nmap.org/nping ) al 2017-05-27 09:32 EDT SENT (0.0037s) UDP 192.168.10.5:53> 192.168.10.245:53 ttl = 64 id = 20743 iplen = 28 SENT (1.0044s) UDP 192.168.10.5:53> 192.168.10.245 .53: 64 ttl = 20743 id = 28 iplen = 2.0060 SENT (192.168.10.5s) UDP 53:192.168.10.245> 53:64 ttl = 20743 id = 28 iplen = 3 Max rtt: N / A | Rtt minimo: N / A | Rtt medio: N / A Pacchetti grezzi inviati: 84 (0B) | Rcvd: 0 (3B) | Perso: 100.00 (1%) Nping eseguito: 3.01 indirizzo IP sottoposto a ping in XNUMX secondi 

server isc-dhcp

root @ master: ~ # aptitude install isc-dhcp-server
root @ master: ~ # nano / etc / default / isc-dhcp-server
# Su quali interfacce il server DHCP (dhcpd) deve servire le richieste DHCP? # Separare più interfacce con spazi, ad esempio "eth0 eth1".
INTERFACCE = "eth0"

root @ master: ~ # dnssec-keygen -a HMAC-MD5 -b 128 -r / dev / urandom -n USER dhcp-key
root @ master: ~ # cat Kdhcp-key. +157 + 51777.private 
Formato chiave privata: v1.3 Algoritmo: 157 (HMAC_MD5) Chiave: Ba9GVadq4vOCixjPN94dCQ == Bit: AAA = Creato: 20170527133656 Pubblica: 20170527133656 Attiva: 20170527133656

root @ master: ~ # nano dhcp.key
chiave dhcp-chiave {
        algoritmo hmac-md5;
        segreto "Ba9GVadq4vOCixjPN94dCQ == ";
}; root @ master: ~ # install -o root -g bind -m 0640 dhcp.key /etc/bind/dhcp.key root @ master: ~ # install -o root -g root -m 0640 dhcp.key / etc / dhcp /dhcp.key root @ master: ~ # nano /etc/bind/named.conf.local
includere "/etc/bind/dhcp.key";

zone "swl.fan" {tipo master; file "/var/lib/bind/db.swl.fan";
        consentire-aggiornamento {chiave dhcp-chiave; };
}; zona "10.168.192.in-addr.arpa" {tipo master; file "/var/lib/bind/db.10.168.192.in-addr.arpa";
        consentire-aggiornamento {chiave dhcp-chiave; };
};

root @ master: ~ # named-checkconf

root @ master: ~ # mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original
root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-update-style interim; ddns-updates su; ddns-domainname "swl.fan."; ddns-rev-nome-dominio "in-addr.arpa."; ignorare gli aggiornamenti del client; aggiornamento-ottimizzazione false; # Può essere richiesto su Debian autorevole; opzione ip-forwarding disattivata; opzione nome-dominio "swl.fan"; includere "/etc/dhcp/dhcp.key"; zone swl.fan. {primaria 127.0.0.1; chiave dhcp-chiave; } zone 10.168.192.in-addr.arpa. {primaria 127.0.0.1; chiave dhcp-chiave; } rete condivisa redlocal {subnet 192.168.10.0 netmask 255.255.255.0 {opzione router 192.168.10.1; opzione subnet-mask 255.255.255.0; opzione broadcast-address 192.168.10.255; opzione nome-dominio-server 192.168.10.5; opzione netbios-name-servers 192.168.10.5; opzione ntp-servers 192.168.10.5; opzione time-server 192.168.10.5; intervallo 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
Server DHCP di Internet Systems Consortium 4.3.1 Copyright 2004-2014 Internet Systems Consortium. Tutti i diritti riservati. Per info, visita https://www.isc.org/software/dhcp/
File di configurazione: /etc/dhcp/dhcpd.conf File di database: /var/lib/dhcp/dhcpd.leases File PID: /var/run/dhcpd.pid

root @ master: ~ # systemctl riavvia bind9.service 
root @ master: ~ # systemctl status bind9.service 

root @ master: ~ # systemctl avvia isc-dhcp-server.service
root @ master: ~ # systemctl status isc-dhcp-server.service

ntp

root @ master: ~ # aptitude install ntp ntpdate
root @ master: ~ # cp /etc/ntp.conf /etc/ntp.conf.original
root @ master: ~ # nano /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 192.168.10.1 limits -4 default kod notrap nomodify nopeer noquery limits -6 predefinito kod notrap nomodify noquery limitare 127.0.0.1 limitare :: 1 trasmissione 192.168.10.255

root @ master: ~ # systemctl riavvia ntp.service 
root @ master: ~ # systemctl status ntp.service
root @ master: ~ # ntpdate -u sysadmin.swl.fan
27 maggio 10:04:01 ntpdate [18769]: regola l'offset del server dell'ora 192.168.10.1 0.369354 sec

Controlli globali per ntp, bind9 e isc-dhcp-server

Da un client Linux, BSD, Mac OS o Windows, controllare che l'ora sia sincronizzata correttamente. Che acquisisce un indirizzo IP dinamico e che il nome di tale host viene risolto tramite query DNS dirette e inverse. Modificare il nome del cliente e ripetere tutti i controlli. Non procedere finché non si è certi che i servizi installati finora funzionino correttamente. Per qualcosa abbiamo scritto tutti gli articoli su DNS e DHCP in Reti di computer per le PMI.

Installazione del server NIS

root @ master: ~ # aptitude show nis
Conflitti con: netstd (<= 1.26) Descrizione: client e daemon per Network Information Service (NIS) Questo pacchetto fornisce strumenti per configurare e mantenere un dominio NIS. NIS, originariamente noto come Yellow Pages (YP), viene utilizzato principalmente per consentire a più macchine in una rete di condividere le stesse informazioni sull'account, come il file della password.

root @ master: ~ # aptitude install nis
Configurazione pacchetto ┌─────────────────────────┤ Configurazione Nis ├──────────────── ── ────────┐ │ Scegli il "nome di dominio" NIS per questo sistema. Se vuoi che questa macchina sia solo un client, devi inserire il nome del dominio NIS │ │ a cui vuoi unirti. │ │ │ │ In alternativa, se questa macchina deve essere un server NIS, è possibile │ │ inserire un nuovo "nome di dominio" NIS o il nome di un dominio NIS │ │ esistente. │ │ │ │ Dominio NIS: │ │ │ │ swl.fan __________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘  

Ritarderà il tuo perché la configurazione del servizio non esiste come tale. Attendi il completamento del processo.

root @ master: ~ # nano / etc / default / nis
# Siamo un server NIS e, in tal caso, di che tipo (valori: false, slave, master)?
NISSERVER = maestro

root @ master: ~ # nano /etc/ypserv.securenets # securenets Questo file definisce i diritti di accesso al tuo server NIS # per i client NIS (e i server slave - anche ypxfrd usa questo # file). Questo file contiene netmask / coppie di rete. # L'indirizzo IP di un client deve corrispondere ad almeno uno # di questi. # # Si può usare la parola "host" invece di una netmask # 255.255.255.255. In questo file # sono consentiti solo indirizzi IP, non nomi host. # # Consenti sempre l'accesso per localhost 255.0.0.0 127.0.0.0 # Questa riga dà accesso a tutti. SI PREGA DI REGOLARE! # 0.0.0.0 0.0.0.0
255.255.255.0 192.168.10.0

root @ master: ~ # nano / var / yp / Makefile # Dovremmo unire il file passwd con il file shadow? # MERGE_PASSWD = true | false
MERGE_PASSWD = vero

# Dovremmo unire il file di gruppo con il file gshadow? # MERGE_GROUP = true | false
MERGE_GROUP = true

Costruiamo il database NIS

root @ master: ~ # / usr / lib / yp / ypinit -m
A questo punto, dobbiamo costruire un elenco degli host che eseguiranno i server NIS. master.swl.fan è nell'elenco degli host del server NIS. Continua ad aggiungere i nomi degli altri host, uno per riga. Quando hai finito con l'elenco, digita a . host successivo da aggiungere: master.swl.fan host successivo da aggiungere: L'elenco corrente dei server NIS è simile a questo: master.swl.fan È corretto? [y / n: y] Abbiamo bisogno di alcuni minuti per costruire i database ... make [1]: Lasciando la directory '/var/yp/swl.fan' master.swl.fan è stato impostato come server master NIS . Ora puoi eseguire ypinit -s master.swl.fan su tutti i server slave.

root @ master: ~ # systemctl riavvia nis
root @ master: ~ # systemctl status nis

Aggiungiamo utenti locali

root @ master: ~ # adduser bilbo
Aggiunta dell'utente `bilbo '... Aggiunta del nuovo gruppo` bilbo' (1001) ... Aggiunta del nuovo utente` bilbo '(1001) con il gruppo` bilbo' ... Creazione della directory home `/ home / bilbo ' ... Copia dei file da `/ etc / skel '... Immettere la nuova password UNIX: Ridigitare la nuova password UNIX: passwd: password aggiornata correttamente Modifica delle informazioni utente per bilbo Immettere il nuovo valore o premere INVIO per utilizzare il nome completo predefinito []: Numero stanza Bilbo Bagins []: Telefono ufficio []: Telefono casa []: Altro []: Le informazioni sono corrette? [S / n]

root @ master: ~ # adduser strides root @ master: ~ # adduser legolas

e così via.

root @ master: ~ # finger legolas
Accesso: legolas Nome: Legolas Archer Directory: / home / legolas Shell: / bin / bash Non sei mai loggato. Nessuna posta. Nessun piano.

Aggiorniamo il database NIS

root @ master: / var / yp # make
make [1]: Entrare nella directory '/var/yp/swl.fan' Aggiornamento passwd.byname ... Aggiornamento passwd.byuid ... Aggiornamento group.byname ... Aggiornamento group.bygid ... Aggiornamento netid.byname. .. Aggiornamento shadow.byname ... Ignorato -> unito a passwd make [1]: Uscita dalla directory '/var/yp/swl.fan'

Aggiungiamo le opzioni NIS al server isc-dhcp

root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-update-style interim; ddns-updates su; ddns-domainname "swl.fan."; ddns-rev-nome-dominio "in-addr.arpa."; ignorare gli aggiornamenti del client; aggiornamento-ottimizzazione false; autorevole; opzione ip-forwarding disattivata; opzione nome-dominio "swl.fan"; includere "/etc/dhcp/dhcp.key"; zone swl.fan. {primaria 127.0.0.1; chiave dhcp-chiave; } zone 10.168.192.in-addr.arpa. {primaria 127.0.0.1; chiave dhcp-chiave; } rete condivisa redlocal {subnet 192.168.10.0 netmask 255.255.255.0 {opzione router 192.168.10.1; opzione subnet-mask 255.255.255.0; opzione indirizzo broadcast 192.168.10.255; opzione nome-dominio-server 192.168.10.5; opzione netbios-name-servers 192.168.10.5; opzione ntp-servers 192.168.10.5; opzione time-server 192.168.10.5;
                opzione nis-domain "swl.fan";
                opzione nis-servers 192.168.10.5;
                intervallo 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
root @ master: ~ # systemctl riavvia isc-dhcp-server.service

Installazione client NIS

  • Partiamo da un'installazione pulita -senza interfaccia grafica- di una Debian 8 "Jessie".
root @ mail: ~ # hostname -f
mail.swl.fan

root @ mail: ~ # ip addr
2: eth0: mtu 1500 qdisc pfifo_fast stato UP gruppo predefinito qlen 1000 link / ether 00: 0c: 29: 25: 1f: 54 brd ff: ff: ff: ff: ff: ff
    inet 192.168.10.9/24 brd 192.168.10.255 scope globale eth0

root @ mail: ~ # aptitude install nis
root @ mail: ~ # nano /etc/yp.conf # # yp.conf File di configurazione per il processo ypbind. È possibile definire # server NIS manualmente qui se non possono essere trovati # trasmettendo in broadcast sulla rete locale (che è l'impostazione predefinita). # # Vedere la pagina di manuale di ypbind per la sintassi di questo file. # # IMPORTANTE: per "ypserver", usa gli indirizzi IP, o assicurati che # l'host sia in / etc / hosts. Questo file viene interpretato solo # una volta, e se il DNS non è ancora raggiungibile, ypserver non può # essere risolto e ypbind non si legherà mai al server. # ypserver ypserver.network.com ypserver master.swl.fan dominio swl.fan

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Configurazione di esempio della funzionalità Switch del servizio nomi GNU. # Se sono installati i pacchetti `glibc-doc-reference 'e` info', provare: #` info libc "Name Service Switch" 'per informazioni su questo file. passwd: compat nis gruppo: compat nis shadow: compat nis gshadow: file hosts: file dns nis networks: file protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

root @ mail: ~ # nano /etc/pam.d/common-session
# pam-auth-update (8) per i dettagli.
sessione opzionale pam_mkhomedir.so skel = / etc / skel umask = 077
# ecco i moduli per pacchetto (il blocco "Primario")

root @ mail: ~ # systemctl status nis
root @ mail: ~ # systemctl riavvia nis

Chiudiamo la sessione e la riavviamo ma con un utente registrato nel database NIS all'indirizzo master.swl.fan.

root @ mail: ~ # exit
logout Connessione alla posta chiusa.

buzz @ sysadmin: ~ $ ssh legolas @ mail
password di legolas @ mail: creazione della directory "/ home / legolas". I programmi inclusi con il sistema Debian GNU / Linux sono software libero; i termini esatti di distribuzione per ogni programma sono descritti nei singoli file in / usr / share / doc / * / copyright. Debian GNU / Linux viene fornita ASSOLUTAMENTE NESSUNA GARANZIA, nella misura consentita dalla legge applicabile.
legolas @ mail: ~ $ pwd
/ home / legolas
legolas @ mail: ~ $ 

Cambiamo la password dell'utente legolas e controlliamo

legolas @ mail: ~ $ yppasswd 
Modifica delle informazioni sull'account NIS per legolas su master.swl.fan. Inserisci la vecchia password: legolas Modifica della password NIS per legolas su master.swl.fan. Inserisci la nuova password: arciere La password deve contenere lettere maiuscole e minuscole o non lettere. Immettere la nuova password: Arquero2017 Immettere nuovamente la nuova password: Arquero2017 La password NIS è stata modificata su master.swl.fan.

legolas @ mail: ~ $ exit
logout Connessione alla posta chiusa.

buzz @ sysadmin: ~ $ ssh legolas @ mail
password di legolas @ mail: Arquero2017

I programmi inclusi con il sistema Debian GNU / Linux sono software libero; i termini esatti di distribuzione per ogni programma sono descritti nei singoli file in / usr / share / doc / * / copyright. Debian GNU / Linux viene fornita ASSOLUTAMENTE NESSUNA GARANZIA, nella misura consentita dalla legge applicabile. Ultimo accesso: sabato 27 maggio 12:51:50 2017 da sysadmin.swl.fan
legolas @ mail: ~ $

Il servizio NIS implementato a livello di server e client funziona correttamente.

LDAP

Da Wikipedia:

  • LDAP è l'acronimo di Lightweight Directory Access Protocol (in spagnolo Lightweight / Simplified Directory Access Protocol) che si riferisce a un protocollo a livello di applicazione che consente l'accesso a un servizio di directory ordinato e distribuito per cercare varie informazioni in una rete ambientale. LDAP è anche considerato un database (sebbene il suo sistema di archiviazione possa essere diverso) che può essere interrogato.Una directory è un insieme di oggetti con attributi organizzati in modo logico e gerarchico. L'esempio più comune è l'elenco telefonico, che consiste in una serie di nomi (persone o organizzazioni) disposti in ordine alfabetico, con ogni nome a cui è associato un indirizzo e un numero di telefono. Per capirci meglio, è un libro o una cartella, in cui sono scritti i nomi, i numeri di telefono e gli indirizzi delle persone, ed è disposto in ordine alfabetico.

    Un albero di directory LDAP a volte riflette vari confini politici, geografici o organizzativi, a seconda del modello scelto. Le attuali distribuzioni LDAP tendono a utilizzare i nomi DNS (Domain Name System) per strutturare i livelli superiori della gerarchia. Mentre scorri la directory verso il basso, possono apparire voci che rappresentano persone, unità organizzative, stampanti, documenti, gruppi di persone o qualsiasi cosa che rappresenti una data voce nella struttura (o più voci).

    Di solito, memorizza le informazioni di autenticazione (utente e password) e viene utilizzato per l'autenticazione, sebbene sia possibile memorizzare altre informazioni (dati di contatto dell'utente, posizione di varie risorse di rete, autorizzazioni, certificati, ecc.). In sintesi, LDAP è un protocollo di accesso unificato a un insieme di informazioni su una rete.

    La versione corrente è LDAPv3 ed è definita nelle RFC RFC 2251 e RFC 2256 (documento di base LDAP), RFC 2829 (metodo di autenticazione per LDAP), RFC 2830 (estensione per TLS) e RFC 3377 (specifica tecnica)

    .

Per molto tempo, il protocollo LDAP -e i suoi database compatibili o meno con OpenLDAP- è oggi il più utilizzato nella maggior parte dei sistemi di autenticazione. Come esempio della dichiarazione precedente, forniamo di seguito alcuni nomi di sistemi -Free o Private- che utilizzano database LDAP come backend per memorizzare tutti i loro oggetti:

  • OpenLDAP
  • Server di directory Apache
  • Red Hat Directory Server - 389 DS
  • Novell Directory Services - eDirectory
  • Microsistema SUN Open DS
  • Gestore dell'identità di Red Hat
  • IPA gratuito
  • Controller di dominio classico Samba NT4.
    Ci teniamo a precisare che questo sistema è stato sviluppato da Team Samba con Samba 3.xxx + OpenLDAP as backend. Microsoft non ha mai implementato nulla di simile. Saltato dai controller di dominio NT 4 alle loro directory attive
  • Samba 4 Active Directory - Domain Controler
  • ClearOS
  • zential
  • Server aziendale di disinvenzione UCS
  • Microsoft Active Directory

Ogni implementazione ha le sue caratteristiche e la più standard e compatibile è la OpenLDAP.

Active Directory, sia l'originale di Microsoft che quello di Samba 4, costituiscono un'unione di diversi componenti principali che sono:

Non dobbiamo confondere a Servizio di directory o Servizio directory con estensione Active Directory o Active Directory. I primi possono ospitare o meno l'autenticazione Kerberos, ma non offrono il servizio di rete Microsoft fornito da un dominio Windows, né hanno un controller di dominio Windows in quanto tale.

Un servizio di directory o un servizio di directory può essere utilizzato per autenticare gli utenti in una rete mista con client UNIX / Linux e Windows. Per quest'ultimo, su ogni client deve essere installato un programma che funge da intermediario tra il servizio di directory e il client Windows stesso, come il software libero. Pgina.

Servizio directory con OpenLDAP

  • Partiamo da un'installazione pulita -senza interfaccia grafica- di una Debian 8 "Jessie", con lo stesso nome della macchina "master" utilizzato per l'installazione di NIS, così come la configurazione della sua interfaccia di rete e il file /etc/resolv.conf. Su questo nuovo server installiamo ntp, bind9 e isc-dhcp-server, senza dimenticare i controlli globali del corretto funzionamento dei tre servizi precedenti.
root @ master: ~ # aptitude install slapd ldap-utils

Configurazione del pacchetto

? Configurazione slapd ├─────────────────────┐ │ Immettere la password per la voce amministratore della directory LDAP │ │. │ │ │ │ Password amministratore: │ │ │ │ ******** _________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────┘

Controlliamo la configurazione iniziale

root @ master: ~ # slapcat
dn: dc = swl, dc = fan
objectClass: top objectClass: dcObject objectClass: organization o: swl.fan dc: swl StructuralObjectClass: organization entryUUID: c8510708-da8e-1036-8fe1-71d022a16904 creatorsName: cn = admin, dc = swl, dc = fan entry createTimestampN20170531205219: 20170531205219.833955 : 000000ZN000 voce Z # 000000 # 20170531205219 # XNUMX modificatori Nome: cn = admin, dc = swl, dc = fan modify Timestamp: XNUMXZ

dn: cn = admin, dc = swl, dc = fan
objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin Descrizione: amministratore LDAP userPassword :: e1NTSEF9emJNSFU1R3l2OWVEN0pmTmlYOVhKSUF4ekY1bU9YQXc = structuralObjectClass: organizationalRole entryUUID: c851178e-da8fe1036e-entrySw8d-2-dm71c-022-entrySw16904e-da20170531205219fe-20170531205219.834422-entry-000000-fancimes-c000emp000000a20170531205219-entrySwXNUMX -cXNUMXempXNUMXeXNUMXpmTmlYOVhKSUXNUMX-entry-XNUMXc-XNUMX-f-XNUMX-entry-XNUMX-c-XNUMX-fcf-XNUMX-entry-XNUMX-cXNUMX-daXNUMXfe-XNUMX-entry-XNUMX-fancimes-entry-XNUMX-entry-ufr-ole -entry: XNUMXZ # XNUMX # XNUMX # XNUMX modifiersName: cn = admin, dc = swl, dc = fan modifyTimestamp: XNUMXZ

Modifichiamo il file /etc/ldap/ldap.conf

root @ master: ~ # nano /etc/ldap/ldap.conf
BASE dc = swl, dc = fan URI    ldap: // localhost

Unità organizzative e gruppo generale «utenti»

Aggiungiamo le Unità Organizzative minime necessarie, così come il gruppo Posix «utenti» a cui faremo membri tutti gli utenti, seguendo l'esempio di molti sistemi che hanno il gruppo «utenti«. Lo denominiamo con il nome di «utenti» per non entrare in possibili conflitti con il gruppo «Utente"del sistema.

root @ master: ~ # nano base.ldif
dn: ou = people, dc = swl, dc = fan objectClass: organizationUnit ou: people dn: ou = groups, dc = swl, dc = fan objectClass: organizationUnit ou: groups dn: cn = users, ou = groups, dc = swl, dc = fan objectClass: posixGroup cn: users gidNumber: 10000

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f base.ldif
Immettere la password LDAP: aggiunta di una nuova voce "ou = people, dc = swl, dc = fan" aggiunta di una nuova voce "ou = groups, dc = swl, dc = fan"

Controlliamo le voci aggiunte

root @ master: ~ # ldapsearch -x ou = people
# people, swl.fan dn: ou = people, dc = swl, dc = fan objectClass: organizationUnit ou: people

root @ master: ~ # ldapsearch -x ou = groups
# groups, swl.fan dn: ou = groups, dc = swl, dc = fan objectClass: organizationUnit ou: groups

root @ master: ~ # ldapsearch -x cn = users
# users, groups, swl.fan dn: cn = users, ou = groups, dc = swl, dc = fan objectClass: posixGroup cn: users gidNumber: 10000

Aggiungiamo diversi utenti

La password che dobbiamo dichiarare nel LDAP deve essere ottenuta tramite il comando slappasswd, che restituisce una password SSHA crittografata.

Password per l'utente passi:

root @ master: ~ # slappasswd 
Nuova password: reinserisci la nuova password: 
{SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp

Password per l'utente legolas

root @ master: ~ # slappasswd 
Nuova password: reinserisci la nuova password: 
{SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD

Password per l'utente gandalf

root @ master: ~ # slappasswd 
Nuova password: reinserisci la nuova password: 
{SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u

root @ master: ~ # nano users.ldif
dn: uid = strides, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: strides cn: strides givenName: Strides sn: El Rey userPassword: {SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp
uidNumber: 10000 gidNumber: 10000 mail: tracos@swl.fan
gecos: Strider El Rey login Shell: / bin / bash home Directory: / home / strider dn: uid = legolas, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: legolas cn: legolas givenName : Legolas sn: Utente Archer Password: {SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD
uidNumber: 10001 gidNumber: 10000 mail: legolas@swl.fan
gecos: Legolas Archer loginShell: / bin / bash homeDirectory: / home / legolas dn: uid = gandalf, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: gandalf cn: gandalf givenName Gandalf sn: The Wizard user Password: {SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u
uidNumber: 10002 gidNumber: 10000 mail: gandalf@swl.fan
gecos: Gandalf The Wizard login Shell: / bin / bash home Directory: / home / gandalf

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f users.ldif
Immetti password LDAP: aggiunta di una nuova voce "uid = strides, ou = people, dc = swl, dc = fan" aggiunta di una nuova voce "uid = legolas, ou = people, dc = swl, dc = fan" aggiunta di una nuova voce "uid = gandalf, ou = people, dc = swl, dc = fan "

Controlliamo le voci aggiunte

root @ master: ~ # ldapsearch -x cn = strides
root @ master: ~ # ldapsearch -x uid = strides

Gestiamo il database slpad con le utilità della console

Selezioniamo il pacchetto ldapscripts per un tale compito. La procedura di installazione e configurazione è la seguente:

root @ master: ~ # aptitude installa ldapscripts
 
root @ master: ~ # mv /etc/ldapscripts/ldapscripts.conf \
/etc/ldapscripts/ldapscripts.conf.original
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN = 'cn = admin, dc = swl, dc = fan' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = swl, dc = fan' GSUFFIX = 'ou = groups' USUFFIX = 'ou = people' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10003 # MIDSTART = 10000 # Comandi client OpenLDAP LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posixGroup "/ ecc. . /ldapadduser.template "PASSWORDGEN =" echo% u "

Notare che gli script utilizzano i comandi del pacchetto ldap-utils. Correre dpkg -L ldap-utils | grep / bin per sapere cosa sono.

root @ master: ~ # sh -c "echo -n 'admin-password'> \
/etc/ldapscripts/ldapscripts.passwd "
 
root @ master: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd
 
root @ master: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \
/etc/ldapscripts/ldapdduser.template
 
root @ master: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: cn: nome di battesimo: sn: nome da visualizzare: uidNumber: gidNumber: 10000 homeDirectory: loginShell: posta: @ swl.fan gechi: descrizione: account utente
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
## rimuoviamo il commento UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Aggiungiamo l'utente "bilbo" e lo rendiamo membro del gruppo "utenti"

root @ master: ~ # ldapadduser utenti bilbo
[dn: uid = bilbo, ou = people, dc = swl, dc = fan] Inserisci il valore per "givenName": Bilbo [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Inserisci il valore per " sn ": Bagins [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Inserisci il valore per" displayName ": Bilbo Bagins Aggiunto con successo l'utente bilbo a LDAP Imposta correttamente la password per l'utente bilbo

root @ master: ~ # ldapsearch -x uid = bilbo
# bilbo, people, swl.fan dn: uid = bilbo, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: bilbo cn: bilbo givenName: Bilbo sn: Bagins displayName: Bilbo Bagins uidNumber: 10003 gidNumber: 10000 homeDirectory: / home / bilbo login Shell: / bin / bash mail: bilbo@swl.fan
gecos: bilbo descrizione: Account utente

Per vedere l'hash della password dell'utente bilbo, è necessario eseguire la query con autenticazione:

root @ master: ~ # ldapsearch -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo

Per eliminare l'utente bilbo eseguiamo:

root @ master: ~ # ldapdelete -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo, ou = people, dc = swl, dc = fan
Immettere la password LDAP:

root @ master: ~ # ldapsearch -x uid = bilbo

Gestiamo il database slapd tramite un'interfaccia web

Abbiamo un servizio di directory funzionale e vogliamo gestirlo più facilmente. Esistono molti programmi progettati per questa attività, come phpldapadmin, ldap-account manager, ecc., che sono disponibili direttamente dai repository. Possiamo anche gestire un servizio di directory tramite Studio directory Apache, che dobbiamo scaricare da Internet.

Per maggiori informazioni per favore visita https://blog.desdelinux.net/ldap-introduccion/e i seguenti 6 articoli.

Client LDAP

Palco principale:

Diciamo che abbiamo la squadra mail.swl.fan come server di posta implementato come abbiamo visto nell'articolo Postfix + Dovecot + Squirrelmail e utenti locali, che sebbene sviluppato su CentOS, potrebbe servire come guida per Debian e molte altre distribuzioni Linux. Vogliamo che, oltre agli utenti locali che abbiamo già dichiarato, gli utenti archiviati nel database OpenLDAP esistente in master.swl.fan. Per ottenere quanto sopra dobbiamo «tracciare»Agli utenti LDAP come utenti locali sul server mail.swl.fan. Questa soluzione è valida anche per qualsiasi servizio basato sull'autenticazione PAM. La procedura generale per Debian, è il seguente:

root @ mail: ~ # aptitude install libnss-ldap libpam-ldap ldap-utils

  ┌─────────────────────┤ Configurazione di libnss-ldap ├─────────────────────┐ │ Immettere l'URI ("Uniform Resource Identifier" o │ │ Uniform Resource Identifier) ​​del server LDAP. Questa stringa è simile a │ │ «ldap: //: / ». Puoi anche │ │ usare «ldaps: // » o "ldapi: //". Il numero di porta è facoltativo. │ │ │ │ Si consiglia di utilizzare un indirizzo IP per evitare errori quando i servizi di nomi di dominio │ │ non sono disponibili. │ │ │ │ URI del server LDAP: │ │ │ │ ldap: //master.swl.fan__________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ────────────────────────────┘ ┌────────────────────── ┤ Configurazione di libnss-ldap ├──────────────────────┐ │ Immettere il DN (distinguished name) della base di ricerca LDAP. Molti siti utilizzano i componenti del nome di dominio per questo scopo. Ad esempio, il dominio "esempio.net" userebbe │ │ "dc = example, dc = net" come nome distinto della base di ricerca. │ │ │ │ Il nome distinto (DN) della base di ricerca: │ │ │ │ dc = swl, dc = fan ____________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libnss-ldap ├──────────────────────┐ │ Immettere la versione del protocollo LDAP che ldapns deve utilizzare. Si consiglia │ │ di utilizzare il numero di versione più alto disponibile. │ │ │ │ Versione LDAP da utilizzare: │ │ │ │                                     3                                     │ │ 2 │ │ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libnss-ldap ├──────────────────────┐ │ Scegli quale account verrà utilizzato per le query nss con privilegi di root │ │. │ │ │ │ Nota: Affinché questa opzione funzioni, l'account necessita delle autorizzazioni per │ │ essere in grado di accedere agli attributi LDAP associati alle voci "ombra" dell'utente │ │ nonché alle password utente e di gruppo. │ │ │ │ Account LDAP per root: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libnss-ldap ├─────────────────────┐ │ Immettere la password da utilizzare quando libnss-ldap tenta di │ │ autenticarsi nella directory LDAP con l'account LDAP di root. │ │ │ │ La password verrà salvata in un file separato │ │ ("/etc/libnss-ldap.secret") a cui solo root può accedere. │ │ │ │ Se si immette una password vuota, verrà riutilizzata la vecchia password. │ │ │ │ Password per l'account LDAP di root: │ │ │ │ ******** ________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌───────────────────── ─┤ Configurazione di libnss-ldap ├──────────────────────┐ │ │ │ nsswitch.conf non è gestito automaticamente │ │ │ │ Devi modificare il tuo file "/etc/nsswitch.conf "per utilizzare un'origine dati LDAP se desideri che il pacchetto libnss-ldap funzioni. │ │ Puoi usare il file di esempio │ │ in "/usr/share/doc/libnss-ldap/examples/nsswitch.ldap" come esempio della configurazione di nsswitch oppure │ │ puoi copiarlo sulla tua configurazione corrente. │ │ │ │ Nota che prima di rimuovere questo pacchetto può essere conveniente │ │ rimuovere le voci "ldap" dal file nsswitch.conf in modo che i servizi di base │ │ continuino a funzionare. │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libpam-ldap ├──────────────────────┐ │ │ │ Questa opzione consente agli strumenti password che utilizzano PAM di modificare le password locali. │ │ │ │ La password per l'account amministratore LDAP verrà memorizzata in un file separato │ │ che può essere letto solo dall'amministratore. │ │ │ │ Questa opzione dovrebbe essere disabilitata, se si monta "/ etc" tramite NFS. │ │ │ │ Vuoi consentire all'account amministratore LDAP di comportarsi come │ │ amministratore locale? │ │ │ │                                            │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libpam-ldap ├───────────────────────┐ │ │ │ Scegliere se il server LDAP forza l'identificazione prima di ottenere le voci entradas │. │ │ │ │ Questa impostazione è raramente necessaria. │ │ │ │ Un utente deve accedere al database LDAP? │ │ │ │                                               │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libpam-ldap ├──────────────────────┐ │ Immettere il nome dell'account amministratore LDAP. │ │ │ │ Questo account verrà utilizzato automaticamente per la gestione del database │ │ quindi è necessario disporre dei privilegi amministrativi appropriati. │ │ │ │ Account amministratore LDAP: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ──┤ Configurazione di libpam-ldap ├──────────────────────┐ │ Immettere la password per l'account amministratore. │ │ │ │ La password verrà salvata nel file "/etc/pam_ldap.secret". L'amministratore di │ │ sarà l'unico che può leggere questo file e permetterà a │ │ libpam-ldap di controllare automaticamente la gestione delle connessioni nel database di │ │. │ │ │ │ Se lasci questo campo vuoto, la password salvata in precedenza │ │ verrà utilizzata di nuovo. │ │ │ │ Password amministratore LDAP: │ │ │ │ ******** _________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘  

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Configurazione di esempio della funzionalità Switch GNU Name Service. # Se sono installati i pacchetti `glibc-doc-reference 'e` info', provare: #` info libc "Name Service Switch" 'per informazioni su questo file. passwd: compat ldap
gruppo: compat ldap
ombra: compat ldap
gshadow: file hosts: file dns networks: file protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

Modifichiamo il file /etc/pam.d/password-comune, andiamo alla riga 26 ed eliminiamo il valore «use_autok":

root @ mail: ~ # nano /etc/pam.d/common-password
# # /etc/pam.d/common-password - moduli relativi alla password comuni a tutti i servizi # # Questo file è incluso da altri file di configurazione PAM specifici del servizio, # e dovrebbe contenere un elenco di moduli che definiscono i servizi da # utilizzato per modificare le password degli utenti. L'impostazione predefinita è pam_unix. # Spiegazione delle opzioni pam_unix: # # L'opzione "sha512" abilita le password SHA512 salate. Senza questa opzione, # l'impostazione predefinita è Unix crypt. Le versioni precedenti utilizzavano l'opzione "md5". # # L'opzione "oscuro" sostituisce la vecchia opzione `OBSCURE_CHECKS_ENAB 'in # login.defs. # # Vedere la manpage pam_unix per altre opzioni. # A partire da pam 1.0.1-6, questo file è gestito da pam-auth-update per impostazione predefinita. # Per trarre vantaggio da ciò, si consiglia di configurare qualsiasi # modulo locale prima o dopo il blocco predefinito e utilizzare # pam-auth-update per gestire la selezione di altri moduli. Vedi # pam-auth-update (8) per i dettagli. # ecco i moduli per pacchetto (il blocco "Primario") password [successo = 2 predefinito = ignora] pam_unix.so oscuro sha512
password [success = 1 user_unknown = ignore default = die] pam_ldap.so try_first_pass
# ecco il fallback se nessun modulo riesce password richiesta pam_deny.so # adescare lo stack con un valore di ritorno positivo se non ce n'è già uno; # questo ci evita di restituire un errore solo perché nulla imposta un codice di successo # poiché i moduli sopra salteranno ognuno intorno alla password richiesta pam_permit.so # e qui ci sono più moduli per pacchetto (il blocco "aggiuntivo") # fine di pam- config

In caso avessimo bisogno l'accesso locale degli utenti archiviati nel LDAP e desideriamo che le loro cartelle vengano create automaticamente home, dobbiamo modificare il file /etc/pam.d/sessione-comune e aggiungi la seguente riga alla fine del file:

sessione opzionale pam_mkhomedir.so skel = / etc / skel umask = 077

Nell'esempio di OpenLDAP Directory Service sviluppato in precedenza, l'unico utente locale creato era l'utente brusio, mentre in LDAP creiamo gli utenti passi, Legolas, gandalf e Bilbo. Se le configurazioni fatte finora sono corrette, allora dovremmo essere in grado di elencare gli utenti locali e quelli mappati come locali ma memorizzati nel server LDAP remoto:

root @ mail: ~ # getent passwd 
buzz: x: 1001: 1001: Buzz Debian First OS ,,,: / home / buzz: / bin / bash
Strides: x: 10000: 10000: Strides El Rey: / home / strides: / bin / bash
legolas: x: 10001: 10000: Legolas Archer: / home / legolas: / bin / bash
gandalf: x: 10002: 10000: Gandalf The Wizard: / home / gandalf: / bin / bash
bilbo: x: 10003: 10000: bilbo: / home / bilbo: / bin / bash

Dopo le modifiche all'autenticazione del sistema, è valido riavviare il server se non siamo di fronte a un servizio critico:

root @ mail: ~ # riavvia

Successivamente avviamo una sessione locale sul server mail.swl.fan con le credenziali di un utente memorizzate nel database LDAP di master.swl.fan. Possiamo anche provare ad accedere tramite SSH.

buzz @ sysadmin: ~ $ ssh gandalf @ mail
password di gandalf @ mail: creazione della directory "/ home / gandalf". I programmi inclusi con il sistema Debian GNU / Linux sono software libero; i termini esatti di distribuzione per ogni programma sono descritti nei singoli file in / usr / share / doc / * / copyright. Debian GNU / Linux viene fornita ASSOLUTAMENTE NESSUNA GARANZIA, nella misura consentita dalla legge applicabile.
gandalf @ mail: ~ $ su
Password:

root @ mail: / home / gandalf # getent group
buzz: x: 1001: utenti: *: 10000:

root @ mail: / home / gandalf # exit
exit

gandalf @ mail: ~ $ ls -l / home /
totale 8 drwxr-xr-x 2 buzz buzz     4096 17 giugno 12:25 buzz drwx ------ 2 utenti gandalf 4096 17 giugno 13:05 gandalf

Il servizio di directory implementato a livello di server e client funziona correttamente.

Kerberos

Da Wikipedia:

  • Kerberos è un protocollo di autenticazione di rete di computer creato da CON che consente a due computer su una rete non sicura di dimostrare reciprocamente la propria identità in modo sicuro. I suoi progettisti si sono inizialmente concentrati su un modello client-server e fornisce l'autenticazione reciproca: sia il client che il server verificano l'identità l'uno dell'altro. I messaggi di autenticazione sono protetti per prevenire intercettazioni y riprodurre gli attacchi.

    Kerberos si basa sulla crittografia a chiave simmetrica e richiede una terza parte affidabile. Inoltre, ci sono estensioni al protocollo per poter utilizzare la crittografia a chiave asimmetrica.

    Kerberos è basato su Protocollo Needham-Schroeder. Utilizza una terza parte fidata, denominata "Key Distribution Center" (KDC), che consiste di due parti logiche separate: un "Authentication Server" (AS o Authentication Server) e un "ticket issuing server" (TGS o Ticket Granting Server ). Kerberos funziona sulla base di "ticket", che servono a dimostrare l'identità degli utenti.

    Kerberos mantiene un database di chiavi segrete; Ogni entità sulla rete, sia essa client o server, condivide una chiave segreta nota solo a se stessa e a Kerberos. La conoscenza di questa chiave serve a provare l'identità dell'entità. Per una comunicazione tra due entità, Kerberos genera una chiave di sessione, che possono utilizzare per proteggere i loro problemi.

Svantaggi di Kerberos

De Assicurato:

Anche se Kerberos rimuove una minaccia alla sicurezza comune, che può essere difficile da implementare per una serie di motivi:

  • Migrazione delle password utente da un database di password standard UNIX, come / etc / passwd o / etc / shadow, a un database di password Kerberos, può essere noioso e non esiste un meccanismo rapido per eseguire questa operazione.
  • Kerberos presume che ogni utente sia attendibile, ma utilizza una macchina non attendibile su una rete non attendibile. Il suo obiettivo principale è impedire l'invio in rete di password non crittografate. Tuttavia, se qualsiasi altro utente, a parte l'utente appropriato, ha accesso alla macchina per il ticketing (KDC) per l'autenticazione, Kerberos sarebbe a rischio.
  • Affinché un'applicazione possa utilizzare Kerberos, il codice deve essere modificato per effettuare le chiamate appropriate alle librerie Kerberos. Le applicazioni che vengono modificate in questo modo sono considerate kerberizzate. Per alcune applicazioni, questo può essere uno sforzo di programmazione eccessivo, a causa delle dimensioni dell'applicazione o del suo design. Per altre applicazioni incompatibili, è necessario apportare modifiche al modo in cui comunicano il server di rete ei suoi client; ancora una volta, questo può richiedere un po 'di programmazione. In generale, le applicazioni closed source che non supportano Kerberos sono solitamente le più problematiche.
  • Infine, se decidi di utilizzare Kerberos sulla tua rete, devi renderti conto che è una scelta tutto o niente. Se decidi di utilizzare Kerberos sulla tua rete, devi ricordare che se una password viene passata a un servizio che non utilizza Kerberos per l'autenticazione, corri il rischio che il pacchetto possa essere intercettato. Pertanto, la tua rete non trarrà alcun vantaggio dall'utilizzo di Kerberos. Per proteggere la tua rete con Kerberos, dovresti usare solo le versioni kerberizzate di tutte le applicazioni client / server che inviano password non crittografate o che non utilizzano nessuna di queste applicazioni sulla rete.

L'implementazione e la configurazione manuale di OpenLDAP come back-end Kerberos non è un compito facile. Tuttavia, in seguito vedremo che Samba 4 Active Directory - Domain Controller si integra in modo trasparente per Sysadmin, un server DNS, la rete Microsoft e il suo controller di dominio, il server LDAP come back-end di quasi tutti i suoi oggetti, e il servizio di autenticazione basato su Kerberos come componenti fondamentali di Active Directory in stile Microsoft.

Ad oggi non abbiamo avuto la necessità di implementare una "Rete Kerberizzata". Questo è il motivo per cui non abbiamo scritto su come implementare Kerberos.

Samba 4 Active Directory - Controller di dominio

Importante:

Non esiste documentazione migliore del sito wiki.samba.org. Il Sysadmin che si rispetti dovrebbe visitare quel sito -in inglese- e sfogliare il gran numero di pagine interamente dedicate a Samba 4, scritte dallo stesso Team Samba. Non credo che ci sia documentazione disponibile su Internet per sostituirlo. A proposito, osserva il numero di visite riportato in fondo a ogni pagina. Un esempio di ciò è che è stata visitata la tua pagina principale o «Pagina principale» 276,183 volte a partire da oggi 20 giugno 2017 alle 10:10 Eastern Standard Time. Inoltre, la documentazione è mantenuta molto aggiornata, poiché quella pagina è stata modificata il 6 giugno.

Da Wikipedia:

Samba è un'implementazione gratuita del protocollo di condivisione file di Microsoft Windows (precedentemente chiamato SMB, recentemente ribattezzato CIFS) per sistemi tipo UNIX. In questo modo, è possibile che i computer con GNU / Linux, Mac OS X o Unix in generale assomiglino a server o agiscano come client nelle reti Windows. Samba consente inoltre agli utenti di convalidare come controller di dominio primario (PDC), come membro di dominio e persino come dominio Active Directory per reti basate su Windows; oltre ad essere in grado di servire code di stampa, directory condivise e autenticarsi con il proprio archivio utente.

Tra i sistemi Unix-like su cui Samba può essere eseguito ci sono le distribuzioni GNU / Linux, Solaris e le diverse varianti BSD tra i che possiamo trovare Mac OS X Server di Apple.

Samba 4 AD-DC con il suo DNS interno

  • Partiamo da un'installazione pulita -senza interfaccia grafica- di una Debian 8 "Jessie".

Controlli iniziali

root @ master: ~ # hostname
Mastercard
root @ master: ~ # hostname --fqdn
master.swl.fan
root @ master: ~ # ip addr
1: cosa: mtu 65536 qdisc noqueue state UNKNOWN group default link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft sempre preferito_lft per sempre inet6 :: Host dell'ambito 1/128 valid_lft per sempre preferito_lft per sempre 2: eth0: mtu 1500 qdisc pfifo_fast stato UNKNOWN gruppo predefinito qlen 1000 link / ether 00: 0c: 29: 80: 3b: 3f brd ff: ff: ff: ff: ff: ff
    inet 192.168.10.5/24 brd 192.168.10.255 scope globale eth0
       valid_lft per sempre preferito_lft per sempre inet6 fe80 :: 20c: 29ff: fe80: 3b3f / 64 collegamento ambito valid_lft per sempre preferito_lft per sempre
root @ master: ~ # cat /etc/resolv.conf
cerca swl.fan nameserver 127.0.0.1
  • Con cui dichiariamo il ramo principale solo, è più che sufficiente per i nostri scopi.
root @ master: ~ # cat /etc/apt/sources.list
debuttante http://192.168.10.1/repos/jessie-8.6/debian/ jessie principale
debuttante http://192.168.10.1/repos/jessie-8.6/debian/security/ jessie / aggiornamenti principale

Postfix di Exim e utilità

root @ master: ~ # aptitude install postfix htop mc deborphan

  ┌─────────────────────────┤ Configurazione Postfissa ├───────────────────── ────┐ │ Scegli il tipo di configurazione del server di posta che meglio si adatta alle tue │ │ esigenze. │ │ │ │ Nessuna configurazione: │ │ Mantiene intatta la configurazione corrente. │ │ Sito Internet: │ │ La posta viene inviata e ricevuta direttamente tramite SMTP. │ │ Internet con "smarthost": │ │ La posta viene ricevuta direttamente tramite SMTP o eseguendo uno strumento │ │ come "fetchmail". La posta in uscita viene inviata utilizzando │ │ uno "smarthost". │ │ Solo posta locale: │ │ L'unica posta che viene consegnata è per gli utenti locali. No │ │ c'è una rete. │ │ │ │ Tipo generico di configurazione della posta: │ │ │ │ Nessuna configurazione │ │ Sito Internet │ │ Internet con "smarthost" │ │ Sistema satellitare │ │                         Solo posta locale                                │ │ │ │ │ │                                     │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌──────────────────── ─────┤ Configurazione Postfix ├──────────────────────────┐ "Il" nome del sistema di posta "è il nome del dominio che │ │ viene utilizzato per "qualificare" _ALL_ indirizzi email senza un nome di dominio. Ciò include la posta da e verso "root": per favore non fare in modo che la tua macchina invii email da root@esempio.org a │ │ inferiore a root@esempio.org chiesto. │ │ │ │ Altri programmi useranno questo nome. Deve essere un nome di dominio qualificato (FQDN) univoco. │ │ │ │ Pertanto, se un indirizzo e-mail sulla macchina locale è │ │ qualcosa@esempio.org, il valore corretto per questa opzione sarà example.org. │ │ │ │ Nome del sistema di posta: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘  

Noi puliamo

root @ master: ~ # aptitude purge ~ c
root @ master: ~ # aptitude install -f
root @ master: ~ # aptitude clean
root @ master: ~ # aptitude autoclean

Installiamo i requisiti per compilare Samba 4 e altri pacchetti necessari

root @ master: ~ # aptitude install acl attr autoconf bison \
build-essential debhelper dnsutils docbook-xml docbook-xsl flex gdb \
krb5-utente libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl\
libpopt-dev libreadline-dev perl perl-modules pkg-config \
python-all-dev python-dev python-dnspython python-crypto\
xsltproc zlib1g -dev libgpgme11 -dev python -gpgme python -m2crypto \
libgnutls28-dbg gnutls-dev ldap-utils krb5-config

 ┌───────────────┤ Configurazione dell'autenticazione Kerberos ├───────────────┐ │ Quando gli utenti tentano di utilizzare Kerberos e specificano un nome │ │ principal o user senza chiarire a quale dominio amministrativo Kerberos appartiene il principal │ │, il sistema assume il realm │ │ predefinito.  Il realm predefinito può essere utilizzato anche come realm │ │ di un servizio Kerberos in esecuzione sulla macchina locale.  │ │ Tipicamente, il realm predefinito è il nome maiuscolo del dominio │ │ DNS locale.  │ │ │ │ Reame predefinito di Kerberos versione 5: │ │ │ │ SWL.FAN __________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ──────────────────────────────┘ ┌────────────────┤ Configurazione dell'autenticazione Kerberos ├───────────────┐ │ Immettere i nomi dei server Kerberos nel regno SWL.FAN di │ │ Kerberos, separati da spazi.  │ │ │ │ Server Kerberos per il tuo regno: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ──────────────────────────────┘ ┌────────────────┤ Configurazione dell'autenticazione Kerberos ├───────────────┐ │ Immettere il nome del server di amministrazione (modifica della password) │ │ per il regno Kerberos SWL.FAN.   

Il processo di cui sopra ha richiesto un po 'di tempo perché non abbiamo ancora installato alcun servizio DNS. Tuttavia, hai scelto correttamente il dominio dalle impostazioni del file / Etc / hosts. Ricordalo nel file /etc/resolv.conf abbiamo dichiarato come server dei nomi di dominio all'IP 127.0.0.1.

Ora configuriamo il file / etc / ldap / ldap / conf

root @ master: ~ # nano /etc/ldap/ldap.conf
BASE dc = swl, dc = fan URI ldap: //master.swl.fan

Per le query che utilizzano il comando ldapsearch realizzati dall'utente root sono del tipo ldapsearch -x -W cn = xxxx, dobbiamo creare il file /root/.ldapsearch con il seguente contenuto:

root @ master: ~ # nano .ldaprc
BINDDN CN = Administrator, CN = Users, DC = swl, DC = fan

Il file system deve supportare ACL - Access Control List

root @ master: ~ # nano / etc / fstab
# / etc / fstab: informazioni sul file system statico. # # Usa 'blkid' per stampare l'identificatore univoco universale per un # dispositivo; questo può essere usato con UUID = come un modo più robusto per nominare i dispositivi # che funziona anche se i dischi vengono aggiunti e rimossi. Vedere fstab (5). # # # / era su / dev / sda1 durante l'installazione UUID = 33acb024-291b-4767-b6f4-cf207a71060c / ext4 user_xattr, acl, barrier = 1, noatime, errors = remount-ro 0 1
# lo swap era su / dev / sda5 durante l'installazione UUID = cb73228a-615d-4804-9877-3ec225e3ae32 nessuno swap sw 0 0 / dev / sr0 / media / cdrom0 udf, iso9660 user, noauto 0 0

root @ master: ~ # mount -a

root @ master: ~ # touch testing_acl.txt
root @ master: ~ # setfattr -n user.test -v test testing_acl.txt
root @ master: ~ # setfattr -n security.test -v test2 testing_acl.txt
root @ master: ~ # getfattr -d testing_acl.txt
# file: testing_acl.txt user.test = "test"

root @ master: ~ # getfattr -n security.test -d testing_acl.txt
# file: testing_acl.txt security.test = "test2"

root @ master: ~ # setfacl -mg: adm: rwx testing_acl.txt

root @ master: ~ # getfacl testing_acl.txt
# file: testing_acl.txt # proprietario: root # gruppo: utente root :: rw- group :: r-- gruppo: adm: rwx mask :: rwx altro :: r--

Otteniamo il sorgente di Samba 4, lo compiliamo e lo installiamo

Si consiglia vivamente di scaricare il file sorgente della versione Stabile dal sito https://www.samba.org/. Nel nostro esempio scarichiamo la versione samba-4.5.1.tar.gz verso la cartella /optare.

root @ master: ~ # cd / opt
root @ master: / opt # wget https://download.samba.org/pub/samba/stable/samba-4.5.1.tar.gz
root @ master: / opt # tar xvfz samba-4.5.1.tar.gz
root @ master: / opt # cd samba-4.5.1 /

Opzioni di configurazione

Se vogliamo personalizzare le opzioni di configurazione, eseguiamo:

root @ master: /opt/samba-4.5.1# ./configure --help

e seleziona molto attentamente quelli di cui abbiamo bisogno. Si consiglia di verificare se il pacchetto scaricato può essere installato sulla distribuzione Linux che stiamo utilizzando, che nel nostro caso è Debian 8.6 Jessie:

root @ master: /opt/samba-4.5.1# . / Configure dist check

Configuriamo, compiliamo e installiamo samba-4.5.1

  • Dai requisiti precedentemente installati e dai file 8604 (che compongono il compatto samba-4.5.1.tar.gz) che pesano circa 101.7 megabyte -incluse le cartelle source3 e source4 che pesano circa 61.1 megabyte- otterremo un sostituto per un Active Directory in stile Microsoft, di qualità e stabilità più che accettabili per qualsiasi ambiente di produzione. Dobbiamo evidenziare il lavoro del Team Samba nel fornire il software libero Samba 4.

I comandi seguenti sono quelli classici per la compilazione e l'installazione dei pacchetti dai loro sorgenti. Dobbiamo essere pazienti finché dura l'intero processo. È l'unico modo per ottenere risultati validi e corretti.

root @ master: /opt/samba-4.5.1# ./configure --con-systemd - tazze -disable
root @ master: /opt/samba-4.5.1# make
root @ master: /opt/samba-4.5.1# make install

Durante il processo di comando make, possiamo vedere che i sorgenti Samba 3 e Samba 4 sono compilati.Questo è il motivo per cui Team Samba afferma che la sua versione 4 è l'aggiornamento naturale della versione 3, sia per i controller di dominio basati su Samba 3 + OpenLDAP, sia per i file server, o più vecchi versioni di Samba 4.

Provisioning di Samba

Useremo come DNS il file SAMBA_INTERNO. In https://wiki.samba.org/index.php?title=Samba_Internal_DNS_Back_End troveremo maggiori informazioni. Quando ci chiedono la password dell'utente Amministratore, dobbiamo digitarne una di lunghezza minima di 8 caratteri e anche con lettere - maiuscole e minuscole - e numeri.

Prima di procedere con il provisioning e per semplificarti la vita, aggiungiamo il file sentiero degli eseguibili di Samba nel nostro file .bashrcQuindi chiudiamo e accediamo di nuovo.

root @ master: ~ # nano .bashrc
# ~ / .bashrc: eseguito da bash (1) per shell non di login. # Nota: PS1 e umask sono già impostati in / etc / profile. Non dovresti averne bisogno a meno che tu non voglia impostazioni predefinite diverse per root. # PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ h: \ w \ $' # umask 022 # Puoi rimuovere il commento dalle seguenti righe se vuoi che `ls 'sia colorato: # export LS_OPTIONS =' - color = auto '# eval "` dircolors` "# alias ls =' ls $ LS_OPTIONS '# alias ll =' ls $ LS_OPTIONS -l '# alias l =' ls $ LS_OPTIONS -lA '# # Altri alias per evitare di commettere errori: # alias rm = 'rm -i' # alias cp = 'cp -i' # alias mv = 'mv -i'
dichiarare -x PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: \ / sbin: / bin: / usr / local / samba / sbin: / usr / local / samba / bin "

root @ master: ~ # esci dal logout Connessione al master chiusa. xeon @ sysadmin: ~ $ ssh root @ master

root @ master: ~ # fornitura del dominio samba-tool --use-rfc2307 --interactive
Reame [SWL.FAN]: VENTOLA SWL
 Dominio [SWL]: SWL
 Ruolo server (dc, membro, autonomo) [dc]: dc
 Backend DNS (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNO
 Indirizzo IP del server di inoltro DNS (scrivi "nessuno" per disabilitare l'inoltro) [192.168.10.5]: 8.8.8.8
Password amministratore: La tua password2017
Ripeti password: La tua password2017
Ricerca di indirizzi IPv4 Ricerca di indirizzi IPv6 Nessun indirizzo IPv6 verrà assegnato Configurazione di share.ldb Configurazione di secrets.ldb Configurazione del registro Configurazione del database dei privilegi Configurazione di idmap db Configurazione di SAM db Configurazione di partizioni e impostazioni sam.ldb Configurazione up sam.ldb rootDSE Precaricamento dello schema Samba 4 e AD Aggiunta di DomainDN: DC = swl, DC = fan Aggiunta del contenitore di configurazione Impostazione dello schema sam.ldb Impostazione dei dati di configurazione sam.ldb Impostazione degli specificatori di visualizzazione Modifica degli specificatori di visualizzazione Aggiunta del contenitore degli utenti Modifica del contenitore degli utenti Aggiunta del contenitore dei computer Modifica del contenitore dei computer Impostazione dei dati sam.ldb Impostazione delle entità di sicurezza note Impostazione degli utenti e dei gruppi sam.ldb Impostazione dell'auto join Aggiunta di account DNS Creazione di CN = MicrosoftDNS, CN = System, DC = swl, DC = fan Creazione di partizioni DomainDnsZones e ForestDnsZones Popolamento di partizioni DomainDnsZones e ForestDnsZones Impostazione del contrassegno rootDSE di sam.ldb come sincronizzato Correzione dei GUID di fornituraUna configurazione Kerberos adatta per Samba 4 è stata generata in /usr/local/samba/private/krb5.conf Configurazione delle impostazioni del server yp false Una volta installati i file sopra, il tuo server Samba4 sarà pronto per usare Ruolo del server: dominio della directory attiva controller Nome host: master NetBIOS Dominio: SWL DNS Dominio: swl.fan DOMINIO SID: S-1-5-21-32182636-2892912266-1582980556

Non dimentichiamo di copiare il file di configurazione Kerberos come indicato dall'output del file vettovagliamento:

root @ master: ~ # cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

Per non digitare il comando strumento di samba con il tuo nome completo, creiamo un collegamento simbolico con il nome breve :

root @ master: ~ # ln -s / usr / local / samba / bin / samba-tool / usr / local / samba / bin / tool

Installiamo l'NTP

Un tassello fondamentale in una Active Directory è il Network Time Service. Poiché l'autenticazione avviene tramite Kerberos e i suoi Ticket, la sincronizzazione dell'ora con Samba 4 AD-DC è vitale.

root @ master: ~ # aptitude install ntp
root @ master: ~ # mv /etc/ntp.conf /etc/ntp.conf.original

root @ master: ~ # nano /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift ntpsigndsocket / usr / local / samba / var / lib / ntp_signd statistiche loopstats peerstats clockstats filegen loopstats file loopstats tipo day enable filegen peerstats file peerstats type day enable filegenstats file clockstats clock type day enable server 192.168.10.1 restringere -4 predefinito kod notrap nomodify noquery restringere -6 predefinito kod notrap nomodify noquery limitare predefinito mssntp limitare 127.0.0.1 limitare :: 1 trasmissione 192.168.10.255

root @ master: ~ # service ntp riavvio
root @ master: ~ # stato del servizio ntp

root @ master: ~ # tail -f / var / log / syslog

Se durante l'esame del file syslog utilizzando il comando precedente o utilizzando journalctl -f otteniamo il messaggio:

19 giugno 12:13:21 master ntpd_intres [1498]: il genitore è morto prima che finissimo, uscendo

dobbiamo riavviare il servizio e riprovare. Ora creiamo la cartella ntp_signd:

root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
ls: impossibile accedere a / usr / local / samba / var / lib / ntp_signd: il file o la directory non esistono

root @ master: ~ # mkdir / usr / local / samba / var / lib / ntp_signd
root @ master: ~ # chown root: ntp / usr / local / samba / var / lib / ntp_signd /
root @ master: ~ # chmod 750 / usr / local / samba / var / lib / ntp_signd / root @ master: ~ # chmod gs, g + x / usr / local / samba / var / lib / ntp_signd /

# Come richiesto su samba.wiki.org
root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
drwxr-x --- 2 root ntp 4096 19 giugno 12:21 / usr / local / samba / var / lib / ntp_signd

Configuriamo l'inizio di Samba usando systemd

root @ master: ~ # nano /lib/systemd/system/samba-ad-dc.service
[Servizio] Tipo = fork PIDFile = / usr / local / samba / var / run / samba.pid LimitNOFILE = 16384 # EnvironmentFile = - / etc / conf.d / samba ExecStart = / usr / local / samba / sbin / samba ExecReload = / usr / bin / kill -HUP $ MAINPID [Install] WantedBy = multi-user.target

root @ master: ~ # systemctl abilita samba-ad-dc
root @ master: ~ # riavvio

root @ master: ~ # systemctl stato samba-ad-dc
root @ master: ~ # systemctl status ntp

Posizioni dei file AD-DC di Samba 4

TUTTI -meno il samba-ad-dc.service appena creato- i file sono in:

root @ master: ~ # ls -l / usr / local / samba /
totale 32 personale radice drwxr-sr-x 2 4096 19 giugno 11:55 bidone
drwxr-sr-x 2 root rig 4096 19 giugno 11:50 eccetera
drwxr-sr-x 7 root rig 4096 19 giugno 11:30 includere
drwxr-sr-x 15 root personale 4096 19 giugno 11:33 lib
drwxr-sr-x 7 root rig 4096 19 giugno 12:40 un bagno
drwxr-sr-x 2 root rig 4096 19 giugno 11:33 sbin
drwxr-sr-x 5 root rig 4096 19 giugno 11:33 Share
drwxr-sr-x 8 root rig 4096 19 giugno 12:28 var

nel miglior stile UNIX. È sempre consigliabile navigare tra le diverse cartelle ed esaminarne il contenuto.

File /usr/local/samba/etc/smb.conf

root @ master: ~ # nano /usr/local/samba/etc/smb.conf 
# Parametri globali [global] netbios name = MASTER realm = SWL.FAN workgroup = SWL dns forwarder = 8.8.8.8 server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate , ruolo server dns = controller di dominio active directory consente aggiornamenti dns = solo protetto idmap_ldb: usa rfc2307 = si config idmap *: backend = tdb idmap config *: range = 1000000-1999999 il server ldap richiede un'autenticazione forte = nessun nome printcap = / dev / null [netlogon] percorso = /usr/local/samba/var/locks/sysvol/swl.fan/scripts sola lettura = No [sysvol] percorso = / usr / local / samba / var / locks / sysvol sola lettura = No

root @ master: ~ # testparm
Carica i file di configurazione smb da /usr/local/samba/etc/smb.conf Sezione di elaborazione "[netlogon]" Sezione di elaborazione "[sysvol]" File dei servizi caricati OK. Ruolo del server: ROLE_ACTIVE_DIRECTORY_DC Premi Invio per vedere un dump delle definizioni del tuo servizio # Parametri globali [global] realm = SWL.FAN workgroup = SWL dns forwarder = 192.168.10.1 ldap server require strong auth = No passdb backend = samba_dsdb server role = active directory controller di dominio rpc_server: tcpip = no rpc_daemon: spoolssd = embedded rpc_server: spoolss = embedded rpc_server: winreg = embedded rpc_server: ntsvcs = embedded rpc_server: eventlog = embedded rpc_server: srvsvc = embedded rvcct_server esterno: usa rvcct_server esterno: usa server_cct esterno predefinito pipe = true idmap config *: range = 1000000-1999999 idmap_ldb: usa rfc2307 = yes idmap config *: backend = tdb map archive = No map readonly = no store dos attributes = Yes vfs objects = dfs_samba4 acl_xattr [netlogon] path = / usr / local / samba / var / locks / sysvol / swl.fan / scripts sola lettura = No [sysvol] percorso = / usr / local / samba / var / locks / sysvol solo lettura = No

Controlli minimi

root @ master: ~ # mostra il livello di dominio dello strumento
Livello di funzione del dominio e della foresta per il dominio 'DC = swl, DC = fan' Livello di funzione della foresta: (Windows) 2008 R2 Livello di funzione del dominio: (Windows) 2008 R2 Livello di funzione più basso di un controller di dominio: (Windows) 2008 R2

root @ master: ~ # ldapsearch -x -W

root @ master: ~ # strumento dbcheck
Verifica di 262 oggetti Verifica di 262 oggetti (0 errori)

root @ master: ~ # kinit Administrator
Password per Amministratore@SWL.FAN: 
root @ master: ~ # klist -f
Cache dei biglietti: FILE: / tmp / krb5cc_0
Default principale: Amministratore@SWL.FAN

Valido a partire da Scadenza Servizio principale 19/06/17 12:53:24 19/06/17 22:53:24  krbtgt/SWL.FAN@SWL.FAN
    rinnovo fino al 20/06/17 12:53:18, Bandiere: RIA

root @ master: ~ # kdestroy
root @ master: ~ # klist -f
klist: file di cache delle credenziali "/ tmp / krb5cc_0" non trovato

root @ master: ~ # smbclient -L localhost -U%
Dominio = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1] Nome condivisione Tipo Commento --------- ---- ------- netlogon Disk sysvol Disk IPC $ IPC IPC Servizio (Samba 4.5.1) Dominio = [SWL] Sistema operativo = [Windows 6.1] Server = [Samba 4.5.1] Commento server --------- ------- Workgroup Master ---- ----- -------

root @ master: ~ # smbclient // localhost / netlogon -UAdministrator -c 'ls'
Immettere la password dell'amministratore: Dominio = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1]. D 0 Mon Jun 19 11:50:52 2017 .. D 0 Mon Jun 19 11:51:07 2017 19091584 blocchi di dimensione 1024. 16198044 blocchi disponibili

root @ master: ~ # tool dns serverinfo master -U amministratore

root @ master: ~ # host -t SRV _ldap._tcp.swl.fan
_ldap._tcp.swl.fan ha record SRV 0 100 389 master.swl.fan.

root @ master: ~ # host -t SRV _kerberos._udp.swl.fan
_kerberos._udp.swl.fan ha record SRV 0 100 88 master.swl.fan.

root @ master: ~ # host -t Un master.swl.fan
master.swl.fan ha l'indirizzo 192.168.10.5

root @ master: ~ # host -t SOA swl.fan
swl.fan ha il record SOA master.swl.fan. hostmaster.swl.fan. 1 900 600

root @ master: ~ # host -t NS swl.fan
server dei nomi swl.fan master.swl.fan.

root @ master: ~ # host -t MX swl.fan
swl.fan non ha record MX

root @ master: ~ # samba_dnsupdate --verbose

root @ master: ~ # elenco utenti dello strumento
Amministratore krbtgt Guest

root @ master: ~ # elenco dei gruppi di strumenti
# L'output è un mucchio di gruppi. ;-)

Gestiamo il Samba 4 AD-DC appena installato

Se vogliamo modificare la scadenza in giorni della password dell'amministratore; la complessità delle password; la lunghezza minima della password; la durata minima e massima -in giorni- della password; e modificare la password dell'amministratore dichiarata durante il vettovagliamento, dobbiamo eseguire i seguenti comandi con il valori adeguati alle vostre esigenze:

root @ master: ~ # strumento
Utilizzo: samba-tool Strumento di amministrazione principale di samba. Opzioni: -h, --help mostra questo messaggio di aiuto ed esce Opzioni versione: -V, --version Visualizza il numero di versione Sottocomandi disponibili: dbcheck - Controlla il database AD locale per gli errori. delegazione - Gestione delle delegazioni. dns - Gestione DNS (Domain Name Service). dominio: gestione del dominio. drs - Gestione di Directory Replication Services (DRS). dsacl: manipolazione degli ACL di DS. fsmo: gestione dei ruoli Flexible Single Master Operations (FSMO). gpo: gestione degli oggetti Criteri di gruppo (GPO). gruppo - Gestione del gruppo. ldapcmp - Confronta due database ldap. ntacl - Manipolazione di ACL NT. processi - Elenca i processi (per aiutare il debug su sistemi senza setproctitle). rodc - Gestione del controller di dominio di sola lettura (RODC). siti - Gestione siti. spn - Gestione del nome dell'entità servizio (SPN). testparm - Controlla la sintassi del file di configurazione. time - Recupera l'ora su un server. utente - Gestione utenti. Per ulteriore aiuto su un sottocomando specifico, digita: samba-tool (-h | --help)

root @ master: ~ # tool user setexpiry administrator --noexpiry
root @ master: ~ # set di impostazioni password del dominio dello strumento --min-pwd-length = 7
root @ master: ~ # set di impostazioni password del dominio dello strumento --min-pwd-age = 0
root @ master: ~ # set di impostazioni password del dominio dello strumento --max-pwd-age = 60
root @ master: ~ # tool user setpassword --filter = samaccountname = Administrator --newpassword = Passw0rD

Aggiungiamo diversi record DNS

root @ master: ~ # tool dns
Utilizzo: samba-tool dns Gestione del Domain Name Service (DNS). Opzioni: -h, --help mostra questo messaggio di aiuto ed esce Sottocomandi disponibili: aggiungi - Aggiungi un record DNS elimina - Elimina una query di record DNS - Interroga un nome. roothints - Query root hints. serverinfo - Query per le informazioni sul server. update - Aggiorna un record DNS zonecreate - Crea una zona. zonedelete - Elimina una zona. zoneinfo - Query per informazioni sulla zona. zonelist - Query per zone. Per ulteriore assistenza su un sottocomando specifico, digita: samba-tool dns (-h | --help)

Server email

root @ master: ~ # tool dns add master swl.fan mail A 192.168.10.9 -U administrator
root @ master: ~ # tool dns add master swl.fan swl.fan MX "mail.swl.fan 10" -U amministratore

IP fisso di altri server

root @ master: ~ # tool dns add master swl.fan sysadmin A 192.168.10.1 -U amministratore
root @ master: ~ # tool dns add master swl.fan fileserver A 192.168.10.10 -U amministratore
root @ master: ~ # tool dns add master swl.fan proxy A 192.168.10.11 -U amministratore
root @ master: ~ # tool dns add master swl.fan chat A 192.168.10.12 -U amministratore

Zona inversa

root @ master: ~ # tool dns zonecreate master 10.168.192.in-addr.arpa -U amministratore
Password per [SWL \ administrator]: Zona 10.168.192.in-addr.arpa creata con successo

root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 5 PTR master.swl.fan. -Amministratore
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 9 PTR mail.swl.fan. -Amministratore
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 1 PTR sysadmin.swl.fan. -Amministratore
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 10 PTR fileserver.swl.fan. -Amministratore
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 11 PTR proxy.swl.fan. -Amministratore
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 12 PTR chat.swl.fan. -Amministratore

Controlli

root @ master: ~ # tool dns query master swl.fan mail ALL -U amministratore
Password per [SWL \ administrator]: Name =, Records = 1, Children = 0 A: 192.168.10.9 (flags = f0, serial = 2, ttl = 900)

root @ master: ~ # host master
master.swl.fan ha l'indirizzo 192.168.10.5
root @ master: ~ # host sysadmin
sysadmin.swl.fan ha l'indirizzo 192.168.10.1
root @ master: ~ # host mail
mail.swl.fan ha l'indirizzo 192.168.10.9
root @ master: ~ # host chat
chat.swl.fan ha l'indirizzo 192.168.10.12
root @ master: ~ # proxy host
proxy.swl.fan ha l'indirizzo 192.168.10.11
root @ master: ~ # server di file host
fileserver.swl.fan ha indirizzo 192.168.10.10
root @ master: ~ # host 192.168.10.1
1.10.168.192.in-addr.arpa puntatore del nome di dominio sysadmin.swl.fan.
root @ master: ~ # host 192.168.10.5
5.10.168.192.in-addr.arpa puntatore al nome di dominio master.swl.fan.
root @ master: ~ # host 192.168.10.9
9.10.168.192.in-addr.arpa puntatore al nome di dominio mail.swl.fan.
root @ master: ~ # host 192.168.10.10
10.10.168.192.in-addr.arpa puntatore al nome di dominio fileserver.swl.fan.
root @ master: ~ # host 192.168.10.11
11.10.168.192.in-addr.arpa puntatore al nome di dominio proxy.swl.fan.
root @ master: ~ # host 192.168.10.12
12.10.168.192.in-addr.arpa puntatore al nome di dominio chat.swl.fan.

Per i curiosi

root @ master: ~ # ldbsearch -H /usr/local/samba/private/sam.ldb.d/ \
DC = DOMAINDNSZONES, DC = SWL, DC = FAN.ldb | grep dn:

Aggiungiamo utenti

root @ master: ~ # utente dello strumento
Utilizzo: utente dello strumento samba Gestione utenti. Opzioni: -h, --help mostra questo messaggio di aiuto ed esce Sottocomandi disponibili: add - Crea un nuovo utente. create - Crea un nuovo utente. elimina: elimina un utente. disable - Disabilita un utente. enable: abilita un utente. getpassword - Ottieni i campi della password di un account utente / computer. list - Elenca tutti gli utenti. password - Modifica la password per un account utente (quello fornito nell'autenticazione). setexpiry - Imposta la scadenza di un account utente. setpassword - Imposta o reimposta la password di un account utente. syncpasswords - Sincronizza la password degli account utente. Per ulteriore aiuto su un sottocomando specifico, digita: samba-tool user (-h | --help)

root @ master: ~ # tool user create strides Trancos01
Utente "trancos" creato con successo
root @ master: ~ # tool user create gandalf Gandalf01
L'utente "gandalf" è stato creato correttamente
root @ master: ~ # tool user create legolas Legolas01
L'utente "legolas" è stato creato con successo
root @ master: ~ # elenco utenti dello strumento
Amministratore gandalf legolas strides krbtgt Guest

Amministrazione tramite interfaccia grafica o tramite web client

Visita wiki.samba.org per informazioni dettagliate su come installare il file RSAT Microsoft o Strumenti di amministrazione remota del server. Se non sono necessari i criteri classici forniti da Microsoft Active Directory, è possibile installare il pacchetto ldap-account manager che offre una semplice interfaccia per l'amministrazione tramite un browser web.

La suite di programmi Microsoft Remote Server Administration Tools (RSAT) è inclusa nei sistemi operativi Windows Server.

Uniamo il dominio a un client Windows 7 denominato "seven"

Poichè non abbiamo un server DHCP in rete, la prima cosa che dobbiamo fare è configurare la scheda di rete del client con un IP fisso, dichiarare che il DNS primario sarà l'IP del samba-ad-dce verificare che l'opzione "Registra l'indirizzo di questa connessione in DNS" sia attivata. Non è inutile controllare che il nome «Sette»Non è ancora registrato nel DNS interno di Samba.

Dopo aver unito il computer al dominio e averlo riavviato, proviamo ad accedere con l'utente «passi«. Controlleremo che tutto funzioni correttamente. Si consiglia inoltre di controllare i registri del client Windows e controllare come l'ora è sincronizzata correttamente.

Gli amministratori con una certa esperienza di Windows scopriranno che qualsiasi controllo che eseguono sul client produrrà risultati soddisfacenti.

Riassunto

Spero che l'articolo sia utile ai lettori della Community. DesdeLinux.

Addio!


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Gonzalo martinez suddetto

    Articolo lungo ma dettagliato, molto buono passo dopo passo su come fare tutto.

    Sottolineo NIS, la verità è che sebbene conosca la sua esistenza, non ho mai saputo davvero come funziona, poiché ad essere sincero mi ha sempre dato l'impressione che fosse praticamente morto accanto a LDAP e Samba 4.

    PS: Congratulazioni per il tuo nuovo progetto personale! Peccato che non continuerai a scrivere qui, ma almeno c'è un posto dove seguirti.

  2.   HO2Gi suddetto

    Enorme tutorial come sempre ai miei preferiti, Saluti Fico.
    Congratulazioni per il progetto.

  3.   IWO suddetto

    La sezione NIS è fantastica, simpatizzo per Gonzalo Martinez, lo sapevo brevemente ma non avevo idea di come implementarlo e in quali situazioni viene utilizzato.
    Grazie una volta per un enorme "tronco" di articoli teorici e pratici.
    Finalmente nuovi successi nel tuo nuovo progetto «gigainside».

  4.   federico suddetto

    Grazie mille a tutti per il commento !!!.
    saluti

  5.   mussola suddetto

    lo smb.conf che mostri non ha alcun collegamento con LDAP, è così apposta o ho lasciato qualcosa?

  6.   phico suddetto

    mussol: Questo è un controller di dominio Active Directory Samba 4 che ha già il suo server LDAP integrato.

  7.   Vincent suddetto

    Potresti commentare come unire un mac (mela) a un samba 4 AD-DC?
    Grazie.

  8.   jramirez suddetto

    Come stai;

    Grazie per il manuale, è fantastico. Ho una domanda su un messaggio che mi appare.

    root @ AD: ~ # nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
    Impossibile risolvere il nome host / IP specificato: ad.rjsolucionessac.com. Tieni presente che non puoi utilizzare intervalli IP di stile "/ mask" AND "1-4,7,100-"
    Impossibile trovare un target valido. Assicurati che gli host specificati siano indirizzi IP in notazione standard o nomi host che possono essere risolti con DNS
    root @ AD: ~ #