PAM, NIS, LDAP, Kerberos, DS en Samba 4 AD-DC - SMB-netwerken

Algemene index van de serie: Computernetwerken voor het MKB: inleiding

Hallo vrienden en vrienden!

Met dit artikel neem ik afscheid van de Community DesdeLinux. Een bijzonder afscheid voor een bijzondere gemeenschap. Vanaf nu zit ik in mijn persoonlijke project dat je kunt zien op http://www.gigainside.com.

Het belangrijkste doel van de post is om een ​​«Grote foto»Over de authenticatiediensten met gratis software die we tot onze beschikking hebben. Dat is tenminste onze bedoeling. Daarom zal het lang duren, ondanks het feit dat we weten dat het in strijd is met de algemene regels voor het schrijven van artikelen. We hopen dat de systeembeheerders het op prijs stellen.

We willen erop wijzen dat het gemeenschappelijke protocol voor veel van de moderne authenticatiesystemen het LDAP, en dat het niet nutteloos is om het zorgvuldig te bestuderen, uit het studiemateriaal dat we op de officiële site zullen vinden http://www.openldap.org/.

We zullen geen gedetailleerde definities geven - of links - over aspecten die in eerdere artikelen zijn behandeld, of over aspecten waarvan de beschrijving gemakkelijk toegankelijk is op Wikipedia of andere sites of artikelen op internet, om de objectiviteit van de boodschap die we willen niet te verliezen. geven. We zullen ook een geldige mix van namen in het Engels en Spaans gebruiken, aangezien we van mening zijn dat de meeste systemen zijn geboren met namen in het Engels en het is zeer nuttig voor een sysadmin om ze in hun oorspronkelijke taal te assimileren.

  • PAM: Inplugbare authenticatiemodule.
  • NIS: Netwerk_Informatie_Service.
  • LDAP: Lichtgewicht Directory Access Protocol.
  • Kerberos: Beveiligingsprotocol om gebruikers, computers en services centraal in een netwerk te verifiëren, waarbij hun referenties worden vergeleken met bestaande vermeldingen in de Kerberos-database.
  • DS: Directory Server of Directory Service
  • AD–DC: Active Directory - Domain Controler

PAM

We wijden een kleine serie aan dit type lokale authenticatie, waarvan je in de dagelijkse praktijk zult zien dat het veel wordt gebruikt wanneer we bijvoorbeeld een werkstation koppelen aan een Domain Controller of een Active Directory; om gebruikers die zijn opgeslagen in externe LDAP-databases in kaart te brengen alsof ze lokale gebruikers zijn; om gebruikers die zijn opgeslagen in de domeincontroller van een Active Directory toe te wijzen alsof ze lokale gebruikers zijn, enzovoort.

NIS

De Wikipedia:

  • Network Information System (bekend onder de afkorting NIS, wat in het Spaans Network Information System betekent), is de naam van een client-server directory services-protocol ontwikkeld door Sun Microsystems voor het verzenden van configuratiegegevens in gedistribueerde systemen zoals namen van gebruikers en hosts tussen computers in een netwerk.NIS is gebaseerd op ONC RPC en bestaat uit een server, een client-side bibliotheek en verschillende beheertools.

    NIS heette oorspronkelijk de Gouden Gids, of YP, wat nog steeds wordt gebruikt om ernaar te verwijzen. Helaas is die naam een ​​handelsmerk van British Telecom, waardoor Sun die naam moest laten vallen. YP blijft echter een voorvoegsel in de namen van de meeste NIS-gerelateerde commando's, zoals ypserv en ypbind.

    DNS bedient een beperkt scala aan informatie, waarvan de belangrijkste de correspondentie tussen de knooppuntnaam en het IP-adres is. Voor andere soorten informatie is er geen dergelijke gespecialiseerde dienst. Aan de andere kant, als u alleen een klein LAN beheert zonder internetverbinding, lijkt het niet de moeite waard om DNS in te stellen. Daarom heeft Sun het Network Information System (NIS) ontwikkeld. NIS biedt generieke databasetoegangsmogelijkheden die kunnen worden gebruikt om bijvoorbeeld de informatie in passwd- en groepsbestanden te distribueren naar alle knooppunten op uw netwerk. Hierdoor ziet het netwerk eruit als een enkel systeem, met dezelfde accounts op alle knooppunten. Evenzo kan NIS worden gebruikt om de knooppuntnaaminformatie in / etc / hosts naar alle machines op het netwerk te distribueren.

    Tegenwoordig is NIS beschikbaar in praktisch alle Unix-distributies, en er zijn zelfs gratis implementaties. BSD Net-2 heeft er een gepubliceerd die is afgeleid van een referentie-implementatie in het publieke domein die is geschonken door Sun. De bibliotheekcode voor het clientgedeelte van deze versie bestaat al heel lang in de GNU / Linux-libc en de beheerprogramma's werden door Swen Thümmler naar GNU / Linux geport. Een NIS-server ontbreekt echter vanaf de referentie-implementatie.

    Peter Eriksson heeft een nieuwe implementatie ontwikkeld genaamd NYS. Het ondersteunt zowel basis-NIS als de verbeterde versie van Sun NIS +. [1] NYS biedt niet alleen een aantal NIS-tools en een server, maar het voegt ook een hele nieuwe set bibliotheekfuncties toe die je in je libc moet compileren als je ze wilt gebruiken. Dit omvat een nieuw configuratieschema voor het omzetten van knooppuntnamen dat het huidige schema vervangt dat wordt gebruikt door het "host.conf" -bestand.

    De GNU libc, bekend als libc6 in de GNU / Linux-gemeenschap, bevat een bijgewerkte versie van de traditionele NIS-ondersteuning ontwikkeld door Thorsten Kukuk. Het ondersteunt alle bibliotheekfuncties van NYS en maakt ook gebruik van het geavanceerde NYS-configuratieschema. De tools en de server zijn nog steeds nodig, maar het gebruik van GNU libc bespaart het werk van het patchen en hercompileren van de bibliotheek

    .

Computer- en domeinnaam, netwerkinterface en resolver

  • We beginnen met een schone installatie -zonder grafische interface- van een Debian 8 "Jessie". Het domein swl.fan betekent "Fans van Vrije Software". Welke betere naam dan deze?.
root @ master: ~ # hostnaam
meester
root @ master: ~ # hostnaam -f
meester.swl.fan

root @ master: ~ # ip addr 1: lo: mtu 65536 qdisc noqueue state ONBEKEND groep standaard 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 forever preferred_lft forever inet6 :: 1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast status UP groep standaard 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 globaal eth0 valid_lft forever preferred_lft forever inet6 fe80 :: 20c: 29ff: fe4c: 76d9 / 64 scope link valid_lft forever preferred_lft forever

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

Installatie van bind9, isc-dhcp-server en ntp

binden9

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

root @ master: ~ # nano /etc/bind/named.conf
omvatten "/etc/bind/named.conf.options"; omvatten "/etc/bind/named.conf.local"; omvatten "/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
opties {directory "/ var / cache / bind"; // Als er een firewall is tussen jou en de naamservers waarmee je // wilt praten, moet je mogelijk de firewall repareren om meerdere // poorten te laten praten. Zien http://www.kb.cert.org/vuls/id/800113

        // Als uw ISP een of meer IP-adressen voor stabiele // naamservers heeft verstrekt, wilt u deze waarschijnlijk als doorstuurservers gebruiken. // Uncommenteer het volgende blok en voeg de adressen in ter vervanging van // de tijdelijke aanduiding voor alle 0. // doorstuurservers {// 0.0.0.0; //}; // ================================================= = ==================== $ // Als BIND foutmeldingen registreert over het verlopen van de root-sleutel, // moet u uw sleutels bijwerken. Zien https://www.isc.org/bind-keys
        // ================================================== ====================== $ // We willen geen DNSSEC
        dnssec-enable nee;
        // dnssec-validatie auto; auth-nxdomain no; # conform RFC1035 listen-on-v6 {any; }; // Voor controles van localhost en sysadmin // via dig swl.fan axfr // We hebben geen Slave DNS ... tot nu toe
        allow-transfer {localhost; 192.168.10.1; };
}; root @ master: ~ # named-checkconf

root @ master: ~ # nano /etc/bind/zones.rfcFreeBSD
// Gedeelde adresruimte (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's 3927, 5735 en 6303)
zone "254.169.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IETF-protocoltoewijzingen (RFC's 5735 en 5736)
zone "0.0.192.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; };

// TEST-NET- [1-3] voor documentatie (RFC's 5735, 5737 en 6303)
zone "2.0.192.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "100.51.198.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "113.0.203.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IPv6-voorbeeldbereik voor documentatie (RFC's 3849 en 6303)
zone "8.bd0.1.0.0.2.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; };

// Domeinnamen voor documentatie en testen (BCP 32)
zone "test" {type master; bestand "/etc/bind/db.empty"; }; zone "voorbeeld" {type master; bestand "/etc/bind/db.empty"; }; zone "ongeldig" {type master; bestand "/etc/bind/db.empty"; }; zone "example.com" {type master; bestand "/etc/bind/db.empty"; }; zone "example.net" {type master; bestand "/etc/bind/db.empty"; }; zone "example.org" {type master; bestand "/etc/bind/db.empty"; };

// Router Benchmark-tests (RFC's 2544 en 5735)
zone "18.198.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "19.198.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IANA gereserveerd - oude klasse E-ruimte (RFC 5735)
zone "240.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "241.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "242.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "243.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "244.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "245.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "246.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "247.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "248.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "249.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "250.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "251.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "252.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "253.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "254.in-addr.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IPv6 niet-toegewezen adressen (RFC 4291)
zone "1.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "3.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "4.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "5.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "6.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "7.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "8.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "9.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "a.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "b.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "c.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "d.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "e.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "0.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "1.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "2.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "3.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "4.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "5.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "6.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "7.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "8.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "9.f.ip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "afip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "bfip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "0.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "1.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "2.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "3.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "4.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "5.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "6.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "7.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IPv6 ULA (RFC's 4193 en 6303)
zone "cfip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "dfip6.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IPv6 Link Local (RFC's 4291 en 6303)
zone "8.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "9.efip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "aefip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "befip6.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IPv6 verouderde site-lokale adressen (RFC's 3879 en 6303)
zone "cefip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "defip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "eefip6.arpa" {type master; bestand "/etc/bind/db.empty"; }; zone "fefip6.arpa" {type master; bestand "/etc/bind/db.empty"; };

// IP6.INT is verouderd (RFC 4159)
zone "ip6.int" {type master; bestand "/etc/bind/db.empty"; };

root @ master: ~ # nano /etc/bind/named.conf.local
// // Voer hier een lokale configuratie uit // // Overweeg om hier de 1918-zones toe te voegen, als ze niet worden gebruikt in uw // -organisatie: "/etc/bind/zones.rfc1918";
omvatten "/etc/bind/zones.rfcFreeBSD";

// Verklaring van de naam, het type, de locatie en de updatemachtiging // van de DNS-recordzones // Beide zones zijn MASTER-zone "swl.fan" {type master; bestand "/var/lib/bind/db.swl.fan"; }; zone "10.168.192.in-addr.arpa" {type master; bestand "/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; serieel 1D; vernieuwen 1H; opnieuw proberen 1W; vervallen 3H); minimum of; Negatieve cachetijd om te leven; @ IN NS master.swl.fan. @ IN MX 10 mail.swl.fan. @ IN A 192.168.10.5 @ IN TXT "Voor fans van vrije software"; 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; serieel 1D; vernieuwen 1H; opnieuw proberen 1W; verlopen 3H); minimum of; Negatieve cachetijd om te leven; @ 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: geladen serieel 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: geladen serieel 1 OK

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

Bind9 cheques

root @ master: ~ # dig swl.fan axfr
root @ master: ~ # dig 10.168.192.in-addr.arpa axfr
root @ master: ~ # graven IN SOA swl.fan
root @ master: ~ # graven 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
Nping starten met 0.6.47 ( http://nmap.org/nping ) op 2017-05-27 09:32 EDT VERZONDEN (0.0037s) UDP 192.168.10.5:53> 192.168.10.245:53 ttl = 64 id = 20743 iplen = 28 VERZONDEN (1.0044s) UDP 192.168.10.5:53> 192.168.10.245 .53: 64 ttl = 20743 id = 28 iplen = 2.0060 VERZONDEN (192.168.10.5s) UDP 53:192.168.10.245> 53:64 ttl = 20743 id = 28 iplen = 3 Max. Rtt: nvt | Min rtt: nvt | Gem rtt: n.v.t. Onbewerkte pakketten verzonden: 84 (0B) | Rcvd: 0 (3B) | Verloren: 100.00 (1%) Nping voltooid: 3.01 IP-adres gepingd in XNUMX seconden 

isc-dhcp-server

root @ master: ~ # aptitude install isc-dhcp-server
root @ master: ~ # nano / etc / default / isc-dhcp-server
# Op welke interfaces moet de DHCP-server (dhcpd) DHCP-verzoeken verwerken? # Scheid meerdere interfaces met spaties, bijv. "Eth0 eth1".
INTERFACES = "eth0"

root @ master: ~ # dnssec-keygen -a HMAC-MD5 -b 128 -r / dev / urandom -n GEBRUIKER dhcp-key
root @ master: ~ # cat Kdhcp-key. +157 + 51777. privé 
Private-key-format: v1.3 Algoritme: 157 (HMAC_MD5) Sleutel: Ba9GVadq4vOCixjPN94dCQ == Bits: AAA = Gemaakt: 20170527133656 Publiceren: 20170527133656 Activeren: 20170527133656

root @ master: ~ # nano dhcp.key
sleutel dhcp-sleutel {
        algoritme hmac-md5;
        geheim "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
omvatten "/etc/bind/dhcp.key";

zone "swl.fan" {type master; bestand "/var/lib/bind/db.swl.fan";
        allow-update {key dhcp-key; };
}; zone "10.168.192.in-addr.arpa" {type master; bestand "/var/lib/bind/db.10.168.192.in-addr.arpa";
        allow-update {key dhcp-key; };
};

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-stijl tussentijds; ddns-updates op; ddns-domeinnaam "swl.fan."; ddns-rev-domeinnaam "in-addr.arpa."; negeer client-updates; update-optimalisatie false; # Mogelijk vereist op Debian gezaghebbend; optie ip-forwarding uit; optie domeinnaam "swl.fan"; omvatten "/etc/dhcp/dhcp.key"; zone swl.fan. {primair 127.0.0.1; sleutel dhcp-sleutel; } zone 10.168.192.in-addr.arpa. {primair 127.0.0.1; sleutel dhcp-sleutel; } gedeeld netwerk redlocal {subnet 192.168.10.0 netmask 255.255.255.0 {optie routers 192.168.10.1; optie subnetmasker 255.255.255.0; optie broadcast-adres 192.168.10.255; optie domeinnaam-servers 192.168.10.5; optie netbios-name-servers 192.168.10.5; optie ntp-servers 192.168.10.5; optie tijdservers 192.168.10.5; bereik 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
Internet Systems Consortium DHCP Server 4.3.1 Copyright 2004-2014 Internet Systems Consortium. Alle rechten voorbehouden. Bezoek voor meer informatie https://www.isc.org/software/dhcp/
Config-bestand: /etc/dhcp/dhcpd.conf Databasebestand: /var/lib/dhcp/dhcpd.leases PID-bestand: /var/run/dhcpd.pid

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

root @ master: ~ # systemctl start 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 statistieken loopstats peerstats clockstats filegen loopstats file loopstats type dag inschakelen bestandegen peerstats bestand peerstats type day inschakelen bestandegen clockstats bestand clockstats type dag server 192.168.10.1 beperken -4 standaard kod notrap nomodify nopeer noquery restrict -6 standaard kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict :: 1 uitzending 192.168.10.255

root @ master: ~ # systemctl herstart ntp.service 
root @ master: ~ # systemctl status ntp.service
root @ master: ~ # ntpdate -u sysadmin.swl.fan
27 mei 10:04:01 ntpdate [18769]: tijdserver 192.168.10.1 offset 0.369354 sec aanpassen

Globale controles voor ntp, bind9 en isc-dhcp-server

Controleer vanaf een Linux-, BSD-, Mac OS- of Windows-client of de tijd correct is gesynchroniseerd. Dat het een dynamisch IP-adres verkrijgt en dat de naam van die host wordt omgezet via directe en omgekeerde DNS-query's. Wijzig de klantnaam en voer alle controles opnieuw uit. Ga pas verder als u zeker weet dat de tot dusver geïnstalleerde services correct werken. Voor iets schreven we alle artikelen over DNS en DHCP in Computernetwerken voor het MKB.

NIS-serverinstallatie

root @ master: ~ # aptitude show nis
Conflicteert met: netstd (<= 1.26) Beschrijving: clients en daemons voor de Network Information Service (NIS) Dit pakket biedt tools voor het opzetten en onderhouden van een NIS-domein. NIS, oorspronkelijk bekend als Yellow Pages (YP), wordt meestal gebruikt om meerdere machines in een netwerk dezelfde accountinformatie te laten delen, zoals het wachtwoordbestand.

root @ master: ~ # aptitude install nis
Pakketconfiguratie ┌─────────────────────────┤ Nis configuratie ├──────────────── ──────────┐ │ Kies de NIS "domeinnaam" voor dit systeem. Als je wilt dat deze │ │ machine alleen een cliënt is, moet je de naam invoeren van het │ │ NIS-domein waar je lid van wilt worden. │ │ │ │ Als alternatief, als deze machine een NIS-server moet zijn, kunt u "│ een nieuwe NIS-" domeinnaam "invoeren of de naam van een bestaand NIS-domein. │ │ │ │ NIS-domein: │ │ │ │ swl.fan __________________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘  

Het zal de uwe vertragen omdat de serviceconfiguratie niet als zodanig bestaat. Wacht tot het proces is voltooid.

root @ master: ~ # nano / etc / default / nis
# Zijn we een NIS-server en zo ja, wat voor soort (waarden: false, slave, master)?
NISSERVER = meester

root @ master: ~ # nano /etc/ypserv.securenets # securenets Dit bestand definieert de toegangsrechten tot je NIS-server # voor NIS-clients (en slaveservers - ypxfrd gebruikt dit # ook). Dit bestand bevat netmasker / netwerkparen. # Het IP-adres van een klant moet overeenkomen met minstens één daarvan. # # Men kan het woord "host" gebruiken in plaats van een netmasker van # 255.255.255.255. Alleen IP-adressen zijn toegestaan ​​in dit # bestand, geen hostnamen. # # Sta altijd toegang toe voor localhost 255.0.0.0 127.0.0.0 # Deze regel geeft toegang aan iedereen. GELIEVE AAN TE PASSEN! # 0.0.0.0 0.0.0.0
255.255.255.0 192.168.10.0

root @ master: ~ # nano / var / yp / Makefile # Moeten we het passwd-bestand samenvoegen met het schaduwbestand? # MERGE_PASSWD = true | false
MERGE_PASSWD = waar

# Moeten we het groepsbestand samenvoegen met het gshadow-bestand? # MERGE_GROUP = true | false
MERGE_GROUP = waar

We bouwen de NIS-database

root @ master: ~ # / usr / lib / yp / ypinit -m
Op dit punt moeten we een lijst samenstellen van de hosts die NIS-servers zullen draaien. master.swl.fan staat in de lijst met NIS-serverhosts. Ga door met het toevoegen van de namen voor de andere hosts, één per regel. Als je klaar bent met de lijst, typ je een . volgende host om toe te voegen: master.swl.fan volgende host om toe te voegen: De huidige lijst met NIS-servers ziet er als volgt uit: master.swl.fan Is dit correct? [y / n: y] We hebben een paar minuten nodig om de databases te bouwen ... make [1]: Verlaten directory '/var/yp/swl.fan' master.swl.fan is opgezet als een NIS-masterserver . Nu kunt u ypinit -s master.swl.fan op alle slaveservers draaien.

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

We voegen lokale gebruikers toe

root @ master: ~ # adduser bilbo
De gebruiker `bilbo 'toevoegen ... De nieuwe groep` bilbo' (1001) toevoegen ... De nieuwe gebruiker `bilbo '(1001) toevoegen met de groep` bilbo' ... De homedirectory `/ home / bilbo 'aanmaken ... Bestanden kopiëren van `/ etc / skel '... Voer het nieuwe UNIX-wachtwoord in: Typ het nieuwe UNIX-wachtwoord opnieuw: passwd: wachtwoord correct bijgewerkt De gebruikersinformatie voor bilbo wijzigen Voer de nieuwe waarde in, of druk op ENTER om de standaard volledige naam te gebruiken []: Bilbo Bagins Kamernummer []: Telefoon werk []: Telefoon thuis []: Anders []: Is de informatie correct? [J / n]

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

enzovoort.

root @ master: ~ # vinger legolas
Login: legolas Naam: Legolas Archer Directory: / home / legolas Shell: / bin / bash Nooit ingelogd. Geen mail. Geen plan.

We updaten de NIS-database

root @ master: / var / yp # make
make [1]: Directory '/var/yp/swl.fan' invoeren Passwd.byname updaten ... passwd.byuid updaten ... group.byname updaten ... group.bygid updaten ... netid.byname updaten. .. Bijwerken shadow.byname ... Genegeerd -> samengevoegd met passwd make [1]: Verlaat directory '/var/yp/swl.fan'

We voegen NIS-opties toe aan de isc-dhcp-server

root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-update-stijl tussentijds; ddns-updates op; ddns-domeinnaam "swl.fan."; ddns-rev-domeinnaam "in-addr.arpa."; negeer client-updates; update-optimalisatie false; gezaghebbend; optie ip-forwarding uit; optie domeinnaam "swl.fan"; omvatten "/etc/dhcp/dhcp.key"; zone swl.fan. {primair 127.0.0.1; sleutel dhcp-sleutel; } zone 10.168.192.in-addr.arpa. {primair 127.0.0.1; sleutel dhcp-sleutel; } gedeeld netwerk redlocal {subnet 192.168.10.0 netmask 255.255.255.0 {optie routers 192.168.10.1; optie subnetmasker 255.255.255.0; optie broadcast-adres 192.168.10.255; optie domeinnaam-servers 192.168.10.5; optie netbios-name-servers 192.168.10.5; optie ntp-servers 192.168.10.5; optie tijdservers 192.168.10.5;
                optie nis-domein "swl.fan";
                optie nis-servers 192.168.10.5;
                bereik 192.168.10.30 192.168.10.250; }}

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

NIS Client Installatie

  • We beginnen met een schone installatie -zonder grafische interface- van een Debian 8 "Jessie".
root @ mail: ~ # hostnaam -f
mail.swl.fan

root @ mail: ~ # ip addr
2: eth0: mtu 1500 qdisc pfifo_fast status UP groep standaard 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: ~ # APTIVITY INSTALLEER NIS
root @ mail: ~ # nano /etc/yp.conf # # yp.conf Configuratiebestand voor het ypbind-proces. U kunt hier # NIS-servers handmatig definiëren als ze niet kunnen worden gevonden door # uitzending op het lokale net (wat de standaardinstelling is). # # Zie de handleidingpagina van ypbind voor de syntaxis van dit bestand. # # BELANGRIJK: Gebruik voor de "ypserver" IP-adressen, of zorg ervoor dat # de host in / etc / hosts staat. Dit bestand wordt slechts één keer # geïnterpreteerd, en als DNS nog niet bereikbaar is, kan de ypserver # niet worden omgezet en zal ypbind nooit binden aan de server. # ypserver ypserver.network.com ypserver master.swl.fan domein swl.fan

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Voorbeeldconfiguratie van GNU Name Service Switch-functionaliteit. # Als je de `glibc-doc-reference 'en` info' pakketten hebt geïnstalleerd, probeer dan: #` info libc "Name Service Switch" 'voor informatie over dit bestand. passwd: compat nis groep: compat nis shadow: compat nis gshadow: files hosts: files dns nis netwerken: files protocollen: 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) voor details.
sessie optioneel pam_mkhomedir.so skel = / etc / skel umask = 077
# hier zijn de modules per pakket (het "Primaire" blok)

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

We sluiten de sessie en starten deze opnieuw, maar met een gebruiker die is geregistreerd in de NIS-database op meester.swl.fan.

root @ mail: ~ # exit
uitloggen Verbinding met mail gesloten.

buzz @ sysadmin: ~ $ ssh legolas @ mail
wachtwoord van legolas @ mail: directory '/ home / legolas' aanmaken. De programma's die bij het Debian GNU / Linux-systeem worden geleverd, zijn gratis software; de exacte distributievoorwaarden voor elk programma worden beschreven in de afzonderlijke bestanden in / usr / share / doc / * / copyright. Debian GNU / Linux wordt geleverd met ABSOLUUT GEEN GARANTIE, voor zover toegestaan ​​door de toepasselijke wetgeving.
legolas @ mail: ~ $ pwd
/ home / legolas
legolas @ mail: ~ $ 

We wijzigen het wachtwoord van de legolas-gebruiker en controleren

legolas @ mail: ~ $ yppasswd 
NIS-accountgegevens voor legolas wijzigen op master.swl.fan. Voer het oude wachtwoord in: legolas NIS-wachtwoord wijzigen voor legolas op master.swl.fan. Voer een nieuw wachtwoord in: archer Het wachtwoord moet zowel hoofdletters als kleine letters bevatten, of niet-letters. Voer een nieuw wachtwoord in: Arquero2017 Typ een nieuw wachtwoord opnieuw: Arquero2017 Het NIS-wachtwoord is gewijzigd op master.swl.fan.

legolas @ mail: ~ $ exit
uitloggen Verbinding met mail gesloten.

buzz @ sysadmin: ~ $ ssh legolas @ mail
wachtwoord van legolas @ mail: Arquero2017

De programma's die bij het Debian GNU / Linux-systeem worden geleverd, zijn gratis software; de exacte distributievoorwaarden voor elk programma worden beschreven in de individuele bestanden in / usr / share / doc / * / copyright. Debian GNU / Linux wordt geleverd met ABSOLUUT GEEN GARANTIE, voor zover toegestaan ​​door de toepasselijke wetgeving. Laatste login: za 27 mei 12:51:50 2017 vanaf sysadmin.swl.fan
legolas @ mail: ~ $

De NIS-service geïmplementeerd op server- en clientniveau werkt correct.

LDAP

Van Wikipedia:

  • LDAP is het acroniem voor Lightweight Directory Access Protocol (in het Spaans Lightweight Directory Access Protocol) dat verwijst naar een protocol op toepassingsniveau dat toegang geeft tot een geordende en gedistribueerde directoryservice om te zoeken naar verschillende informatie in een omgeving netwerk. LDAP wordt ook beschouwd als een database (hoewel het opslagsysteem ervan kan verschillen) die kan worden opgevraagd.Een directory is een set objecten met attributen die op een logische en hiërarchische manier zijn georganiseerd. Het meest voorkomende voorbeeld is de telefoongids, die bestaat uit een reeks namen (personen of organisaties) die alfabetisch zijn gerangschikt, met aan elke naam een ​​adres en een telefoonnummer. Om het beter te begrijpen, is het een boek of map, waarin de namen, telefoonnummers en adressen van mensen zijn geschreven, en het is alfabetisch gerangschikt.

    Een LDAP-directorystructuur geeft soms verschillende politieke, geografische of organisatorische grenzen weer, afhankelijk van het gekozen model. Huidige LDAP-implementaties gebruiken vaak DNS-namen (Domain Name System) om de hogere niveaus van de hiërarchie te structureren. Terwijl u door de directory scrollt, kunnen vermeldingen verschijnen die personen, organisatie-eenheden, printers, documenten, groepen mensen of iets anders vertegenwoordigen dat een bepaald item in de boomstructuur vertegenwoordigt (of meerdere vermeldingen).

    Gewoonlijk slaat het authenticatie-informatie op (gebruiker en wachtwoord) en wordt het gebruikt om te authenticeren, hoewel het mogelijk is om andere informatie op te slaan (contactgegevens van de gebruiker, locatie van verschillende netwerkbronnen, machtigingen, certificaten, enz.). Samenvattend is LDAP een uniform toegangsprotocol tot een set informatie op een netwerk.

    De huidige versie is LDAPv3 en wordt gedefinieerd in RFC's RFC 2251 en RFC 2256 (LDAP-basisdocument), RFC 2829 (authenticatiemethode voor LDAP), RFC 2830 (extensie voor TLS) en RFC 3377 (technische specificatie)

    .

Voor lang, Het LDAP-protocol - en de databases die al dan niet compatibel zijn met OpenLDAP - wordt tegenwoordig het meest gebruikt in de meeste authenticatiesystemen. Als voorbeeld van de vorige verklaring geven we hieronder enkele namen van systemen -Gratis of Privé- die LDAP-databases gebruiken als back-end om al hun objecten op te slaan:

  • OpenLDAP
  • Apache Directory-server
  • Red Hat Directory Server - 389 DS
  • Novell Directory Services - eDirectory
  • Sun Microsystem Open DS
  • Red Hat Identity Manager
  • GratisIPA
  • Samba NT4 klassieke domeincontroller.
    We willen duidelijk maken dat dit systeem een ​​ontwikkeling was van Team Samba met Samba 3.xxx + OpenLDAP als backend. Microsoft heeft zoiets nooit geïmplementeerd. Overgestapt van NT 4-domeincontrollers naar hun actieve mappen
  • Samba 4 Active Directory - Domain Controler
  • ClearOS
  • Zential
  • UCS Uninvention bedrijfsserver
  • Microsoft Active Directory

Elke implementatie heeft zijn eigen kenmerken, en de meest standaard en compatibele is de OpenLDAP.

Active Directory, of het nu het origineel van Microsoft is of dat van Samba 4, vormt een combinatie van verschillende hoofdcomponenten die zijn:

We moeten een Directoryservice o Directory Service met een Active Directory o Active Directory. De eerste kan al dan niet Kerberos-verificatie hosten, maar ze bieden niet de Microsoft-netwerkservice die een Windows-domein biedt, en ze hebben ook geen Windows-domeincontroller als zodanig.

Een Directory Service of Directory Service kan worden gebruikt om gebruikers in een gemengd netwerk met UNIX / Linux- en Windows-clients te authenticeren. Voor het laatste moet op elke client een programma worden geïnstalleerd dat fungeert als tussenpersoon tussen de Directory Service en de Windows-client zelf, zoals Vrije Software. pGina.

Directory Service met OpenLDAP

  • We beginnen met een schone installatie -zonder grafische interface- van een Debian 8 "Jessie", met dezelfde "master" machinenaam gebruikt voor de NIS-installatie, evenals de configuratie van de netwerkinterface en het /etc/resolv.conf bestand. We hebben de ntp, bind9 en isc-dhcp-server voor deze nieuwe server geïnstalleerd, zonder de globale controles van de correcte werking van de drie vorige services te vergeten.
root @ master: ~ # aptitude install slapd ldap-utils

Pakket configuratieSlapd-configuratie ├─────────────────────┐ │ Voer het wachtwoord in voor de beheerdersinvoer van uw LDAP │ │-directory. │ │ │ │ Beheerderswachtwoord: │ │ │ │ ******** _________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────┘

We controleren de initiële configuratie

root @ master: ~ # slapcat
dn: dc = swl, dc = fan
objectClass: top objectClass: dcObject objectClass: organisation o: swl.fan dc: swl structureObjectClass: organisation entryUUID: c8510708-da8e-1036-8fe1-71d022a16904 creatorsName: cn = admin, dc = swl, dc = fan entry create20170531205219ZN20170531205219.833955 entry createTimestamp000000: 000ZN000000 entry Z # 20170531205219 # XNUMX # XNUMX modifiers Naam: cn = admin, dc = swl, dc = fan wijzigen Tijdstempel: XNUMXZ

dn: cn = admin, dc = swl, dc = fan
objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin beschrijving LDAP administrator userPassword :: e1NTSEF9emJNSFU1R3l2OWVEN0pmTmlYOVhKSUF4ekY1bU9YQXc = structuralObjectClass: organizationalRole entryUUID: c851178e-da8fe1036e-entrySw8d-2-dm71c-022-entrySw16904e-da20170531205219fe-20170531205219.834422-invoer-000000-fancimes-c000emp000000a20170531205219-entrySwXNUMX-cXNUMXempXNUMXeXNUMXpmTmlYOVhKSUXNUMX-entry-XNUMXc-XNUMX-f-XNUMX-entry-XNUMXc-XNUMX-f-c-f-XNUMX-entry-XNUMX-cXNUMX-daXNUMXfe-XNUMX-invoer-XNUMX-fancimes-entry-XNUMX-entry-u-f-r-ol-invoer: XNUMXZ # XNUMX # XNUMX # XNUMX modifiers Naam: cn = admin, dc = swl, dc = ventilator wijzigen Tijdstempel: XNUMXZ

We wijzigen het bestand /etc/ldap/ldap.conf

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

Organisatie-eenheden en algemene groep «gebruikers»

We voegen de minimaal noodzakelijke organisatie-eenheden toe, evenals de Posix-groep «gebruikers» waartoe we alle gebruikers lid zullen maken, naar het voorbeeld van vele systemen die de groep «gebruikers«. We noemen het met de naam van «gebruikers» om mogelijke conflicten met de groep niet aan te gaan «gebruiker" van het systeem.

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

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f base.ldif
Voer LDAP-wachtwoord in: nieuwe vermelding "ou = people, dc = swl, dc = fan" nieuwe vermelding toevoegen "ou = groups, dc = swl, dc = fan"

We controleren de toegevoegde vermeldingen

root @ master: ~ # ldapsearch -x ou = mensen
# mensen, swl.fan dn: ou = mensen, dc = swl, dc = fan object Klasse: organisatie Eenheid ou: mensen

root @ master: ~ # ldapsearch -x ou = groepen
# groups, swl.fan dn: ou = groups, dc = swl, dc = fan object Klasse: organisatie Eenheid ou: groepen

root @ master: ~ # ldapsearch -x cn = gebruikers
# gebruikers, groepen, swl.fan dn: cn = gebruikers, ou = groepen, dc = swl, dc = fan object Klasse: posix Groep cn: gebruikers gid Nummer: 10000

We voegen meerdere gebruikers toe

Het wachtwoord dat we in de LDAP moeten declareren, moet worden verkregen via de opdracht SlapPasswd, die een met SSHA gecodeerd wachtwoord retourneert.

Wachtwoord voor de stappen van de gebruiker:

root @ master: ~ # slappasswd 
Nieuw wachtwoord: voer het nieuwe wachtwoord opnieuw in: 
{SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp

Wachtwoord voor gebruiker legolas

root @ master: ~ # slappasswd 
Nieuw wachtwoord: voer het nieuwe wachtwoord opnieuw in: 
{SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD

Wachtwoord voor gebruiker Gandalf

root @ master: ~ # slappasswd 
Nieuw wachtwoord: voer het nieuwe wachtwoord opnieuw in: 
{SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u

root @ master: ~ # nano-gebruikers.ldif
dn: uid = strides, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: strides cn: strides opgegeven Naam: Strides sn: El Rey userPassword: {SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp
uidNumber: 10000 gidNumber: 10000 mail: striders@swl.fan
gecos: Strider El Rey loginShell: / bin / bash homeDirectory: / home / strider dn: uid = legolas, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: legolas cn: legolas givenName : Legolas sn: Archer-gebruiker Wachtwoord: {SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD
uidNumber: 10001 gidNumber: 10000 mail: legolas@swl.fan
gecos: Legolas Archer login Shell: / bin / bash home Directory: / 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 userPassword: {SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u
uidNumber: 10002 gidNumber: 10000 mail: gandalf@swl.fan
gecos: Gandalf The Wizard loginShell: / bin / bash home Directory: / home / gandalf

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f users.ldif
Voer LDAP-wachtwoord in: nieuwe invoer toevoegen "uid = strides, ou = mensen, dc = swl, dc = fan" nieuwe invoer toevoegen "uid = legolas, ou = mensen, dc = swl, dc = fan" nieuwe invoer toevoegen "uid = gandalf, ou = mensen, dc = swl, dc = fan "

We controleren de toegevoegde vermeldingen

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

We beheren de slpad-database met console-hulpprogramma's

We selecteren het pakket ldapscripts voor zo'n taak. De installatie- en configuratieprocedure is als volgt:

root @ master: ~ # aptitude install 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 = groepen' USUFFIX = 'ou = people' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10003 # MIDSTART = 10000 # OpenLDAP-clientopdrachten 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 "# UTEMPLATE =" / etc. / ldapadduser.template "PASSWORDGEN =" echo% u "

Merk op dat de scripts de pakketopdrachten gebruiken ldap-utils. Rennen dpkg -L ldap-utils | grep / bin om te weten wat ze zijn.

root @ master: ~ # sh -c "echo -n 'admin-wachtwoord'> \
/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: gegeven naam: sn: Weergavenaam: uidNumber: gidNumber: 10000 homeDirectory: loginShell: mail: @ swl.fan gekko's: description: Gebruikersaccount
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
## we verwijderen de opmerking UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

We voegen de gebruiker "bilbo" toe en maken hem lid van de groep "gebruikers"

root @ master: ~ # ldapadduser bilbo-gebruikers
[dn: uid = bilbo, ou = mensen, dc = swl, dc = fan] Voer een waarde in voor "givenName": Bilbo [dn: uid = bilbo, ou = mensen, dc = swl, dc = fan] Voer een waarde in voor " sn ": Bagins [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Voer waarde in voor" displayName ": Bilbo Bagins Succesvol gebruiker bilbo toegevoegd aan LDAP Wachtwoord succesvol instellen voor gebruiker 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: Bilbo Bagins uidNumber: 10003 gidNumber: 10000 homeDirectory: / home / bilbo loginShell: / bin / bash mail: bilbo@swl.fan
gecos: bilbo beschrijving: Gebruikersaccount

Om de hash van het wachtwoord van de bilbo-gebruiker te zien, is het nodig om de zoekopdracht met authenticatie uit te voeren:

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

Om de bilbo-gebruiker te verwijderen, voeren we het volgende uit:

root @ master: ~ # ldapdelete -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo, ou = mensen, dc = swl, dc = fan
Voer het LDAP-wachtwoord in:

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

We beheren de slapd-database via een webinterface

We hebben een functionele Directory Service en we willen deze gemakkelijker beheren. Er zijn veel programma's ontworpen voor deze taak, zoals het phpldapadmin, ldap-accountmanager, enz., die rechtstreeks beschikbaar zijn vanuit de repositories. We kunnen ook een Directory Service beheren via de Apache Directory Studio, die we van internet moeten downloaden.

Voor meer informatie kunt u terecht op https://blog.desdelinux.net/ldap-introduccion/, en de volgende 6 artikelen.

LDAP-client

podium:

Stel dat we het team hebben mail.swl.fan als een mailserver geïmplementeerd zoals we in het artikel zagen Postfix + Dovecot + Squirrelmail en lokale gebruikers, dat hoewel ontwikkeld op CentOS, kan dienen als een gids voor Debian en vele andere Linux-distributies. We willen dat, naast de lokale gebruikers die we al hebben aangegeven, de gebruikers die zijn opgeslagen in de OpenLDAP-database die bestaan ​​in meester.swl.fan. Om het bovenstaande te bereiken, moeten we «in kaart te brengen»Aan LDAP-gebruikers als lokale gebruikers op de server mail.swl.fan. Deze oplossing is ook geldig voor elke service op basis van PAM-authenticatie. De algemene procedure voor Debian, is de volgende:

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

  ┌────────────────────┤ Configuratie van libnss-ldap ├─────────────────────┐ │ Voer de URI ("Uniform Resource Identifier" of │ servidor Uniform Resource Identifier) ​​van de LDAP-server in. Deze string is vergelijkbaar met │ │ «ldap: //: / ». U kunt ook │ │ gebruiken «ldaps: // » of "ldapi: //". Het poortnummer is optioneel. │ │ │ │ Het wordt aanbevolen om een ​​IP-adres te gebruiken om fouten te voorkomen wanneer domeinnaamservices estén │ niet beschikbaar zijn. │ │ │ │ LDAP-server-URI: │ │ │ │ ldap: //master.swl.fan__________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ───────────────────────────┘ ┌───────────────────── ┤ Configuratie van libnss-ldap ├──────────────────────┐ │ Voer de DN-naam (DN) van de LDAP-zoekbasis in. Veel sites gebruiken hiervoor de domeinnaamcomponenten. Het domein "example.net" zou bijvoorbeeld │ │ "dc = example, dc = net" gebruiken als de DN-naam van de zoekbasis. │ │ │ │ De DN-naam (DN) van de zoekbasis: │ │ │ │ dc = swl, dc = fan ____________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libnss-ldap ├──────────────────────┐ │ Voer de versie in van het LDAP-protocol dat ldapns moet gebruiken. Het wordt │ │ aanbevolen om het hoogste beschikbare versienummer te gebruiken. │ │ │ │ Te gebruiken LDAP-versie: │ │ │ │                                     3                                     │ │ 2 │ │ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libnss-ldap ├──────────────────────┐ │ Kies welk account zal worden gebruikt voor nss-queries met │ │ rootprivileges. │ this │ │ Opmerking: om deze optie te laten werken, heeft het account machtigingen nodig om │ │ toegang te krijgen tot de LDAP-kenmerken die zijn gekoppeld aan de │ │ "schaduw" -items van de gebruiker, evenals de wachtwoorden van de gebruikers en │ │ groepen . │ │ │ │ LDAP-account voor root: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libnss-ldap ├────────────────────┐ │ Voer het wachtwoord in dat moet worden gebruikt wanneer libnss-ldap probeert te │ authenticeren in de LDAP-directory met het LDAP-account van root. │ │ │ │ Het wachtwoord wordt opgeslagen in een apart bestand │ │ ("/etc/libnss-ldap.secret") waartoe alleen root toegang heeft. │ │ │ │ Als u een leeg wachtwoord invoert, wordt het oude wachtwoord opnieuw gebruikt. │ │ │ │ Wachtwoord voor het root LDAP-account: │ │ │ │ ******** ________________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ────────────────────────────┘ ┌──────────────────── ─┤ Configuratie van libnss-ldap ├──────────────────────┐ │ │ │ nsswitch.conf wordt niet automatisch beheerd │ │ │ │ U moet uw bestand "/etc/nsswitch.conf" wijzigen om een ​​LDAP-gegevensbron te gebruiken als u wilt dat het libnss-ldap-pakket werkt. │ │ U kunt het voorbeeldbestand │ │ in "/usr/share/doc/libnss-ldap/examples/nsswitch.ldap" gebruiken als een voorbeeld van de nsswitch-configuratie of │ │ u kunt het kopiëren over uw huidige configuratie. Opmerking: voordat u dit pakket verwijdert, kan het handig zijn om │ │ de "ldap" -vermeldingen uit het bestand nsswitch.conf te verwijderen, zodat de basisservices │ blijven functioneren. │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libpam-ldap ├──────────────────────┐ │ │ │ Met deze optie kunnen wachtwoordhulpmiddelen die PAM gebruiken, lokale wachtwoorden wijzigen. │ │ │ │ Het wachtwoord voor het LDAP-beheerdersaccount wordt opgeslagen in een apart │ │-bestand dat alleen kan worden gelezen door de beheerder. │ │ │ │ Deze optie zou uitgeschakeld moeten zijn als "/ etc" gemount wordt via NFS. │ │ │ │ Wilt u toestaan ​​dat de LDAP-beheerdersaccount zich gedraagt ​​als │ │ de lokale beheerder? │ │ │ │                                            │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libpam-ldap ├──────────────────────┐ │ │ │ Kies of de LDAP-server identificatie afdwingt voordat entradas │-vermeldingen worden opgehaald. │ │ │ │ Deze instelling is zelden nodig. │ │ │ │ Is een gebruiker vereist voor toegang tot de LDAP-database? │ │ │ │                                               │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libpam-ldap ├──────────────────────┐ │ Voer de naam van het LDAP-beheerdersaccount in. │ │ │ │ Dit account wordt automatisch gebruikt voor databasebeheer, │ │ het moet de juiste beheerdersrechten hebben. │ │ │ │ LDAP-beheerdersaccount: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Configuratie van libpam-ldap ├──────────────────────┐ │ Voer het wachtwoord in voor het beheerdersaccount. │ │ │ │ Het wachtwoord wordt opgeslagen in het bestand "/etc/pam_ldap.secret". De │ │ administrator zal de enige zijn die dit bestand kan lezen, en zal │ │ libpam-ldap toestaan ​​om automatisch het beheer van verbindingen in de │ │ database te controleren. │ │ │ │ Als u dit veld leeg laat, wordt het eerder opgeslagen wachtwoord │ │ opnieuw gebruikt. │ │ │ │ LDAP-beheerderswachtwoord: │ │ │ │ ******** _________________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘  

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Voorbeeldconfiguratie van GNU Name Service Switch-functionaliteit. # Als je de `glibc-doc-reference 'en` info' pakketten hebt geïnstalleerd, probeer dan: #` info libc "Name Service Switch" 'voor informatie over dit bestand. passwd: compat ldap
groep: compat ldap
schaduw: compat ldap
gshadow: bestanden hosts: bestanden dns netwerken: bestanden protocollen: db bestanden services: db bestanden ethers: db bestanden rpc: db bestanden netgroep: nis

Laten we het bestand bewerken /etc/pam.d/common-password, we gaan naar regel 26 en elimineren de waarde «gebruik_authenticatie":

root @ mail: ~ # nano /etc/pam.d/common-password
# # /etc/pam.d/common-password - wachtwoordgerelateerde modules die gemeenschappelijk zijn voor alle services # # Dit bestand is opgenomen in andere servicespecifieke PAM-configuratiebestanden # en moet een lijst met modules bevatten die de services definiëren die moeten worden # gebruikt om gebruikerswachtwoorden te wijzigen. De standaardwaarde is pam_unix. # Uitleg van pam_unix opties: # # De "sha512" optie activeert gezouten SHA512 wachtwoorden. Zonder deze optie is # de standaardinstelling Unix crypt. Eerdere releases gebruikten de optie "md5". # # De "obscure" optie vervangt de oude `OBSCURE_CHECKS_ENAB 'optie in # login.defs. # # Zie de pam_unix manpage voor andere opties. # Vanaf pam 1.0.1-6 wordt dit bestand standaard beheerd door pam-auth-update. # Om hiervan te profiteren, is het aanbevolen dat u lokale modules voor of na het standaardblok configureert, en # pam-auth-update gebruikt om de selectie van andere modules te beheren. Zie # pam-auth-update (8) voor details. # hier zijn de modules per pakket (het "Primaire" blok) wachtwoord [success = 2 default = ignore] pam_unix.so obscure sha512
wachtwoord [succes = 1 user_unknown = negeer standaard = die] pam_ldap.so try_first_pass
# hier is de terugval als geen enkele module slaagt met het wachtwoord vereist pam_deny.so # vul de stapel met een positieve retourwaarde als er nog geen is; # dit voorkomt dat we een fout teruggeven alleen omdat niets een succescode instelt # aangezien de bovenstaande modules elk gewoon om het wachtwoord heen springen vereist pam_permit.so # en hier zijn meer modules per pakket (het "Aanvullende" blok) # einde van pam- auth-update config

Voor het geval we dat nodig hebben de lokale login van de gebruikers die zijn opgeslagen in de LDAP, en we willen dat hun mappen automatisch worden gemaakt home, we moeten het bestand bewerken /etc/pam.d/common-session en voeg de volgende regel toe aan het einde van het bestand:

sessie optioneel pam_mkhomedir.so skel = / etc / skel umask = 077

In het eerder ontwikkelde OpenLDAP Directory Service-voorbeeld was de enige lokale gebruiker die werd aangemaakt de gebruiker gezoem, terwijl we in LDAP de gebruikers maken stappen, Legolas, gandalfEn bilbo. Als de tot dusver gemaakte configuraties correct zijn, zouden we in staat moeten zijn om de lokale gebruikers te vermelden en degenen die zijn toegewezen als lokaal maar opgeslagen op de externe LDAP-server:

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 Magician: / home / gandalf: / bin / bash
bilbo: x: 10003: 10000: bilbo: / home / bilbo: / bin / bash

Na de wijzigingen in de authenticatie van het systeem, is het geldig om de server opnieuw op te starten, anders worden we geconfronteerd met een kritieke service:

root @ mail: ~ # herstart

Later starten we een lokale sessie op de server mail.swl.fan met de referenties van een gebruiker opgeslagen in de LDAP-database van meester.swl.fan. We kunnen ook proberen in te loggen via SSH.

buzz @ sysadmin: ~ $ ssh gandalf @ mail
wachtwoord van gandalf @ mail: directory '/ home / gandalf' aanmaken. De programma's die bij het Debian GNU / Linux-systeem worden geleverd, zijn gratis software; de exacte distributievoorwaarden voor elk programma worden beschreven in de individuele bestanden in / usr / share / doc / * / copyright. Debian GNU / Linux wordt geleverd met ABSOLUUT GEEN GARANTIE, voor zover toegestaan ​​door de toepasselijke wetgeving.
gandalf @ mail: ~ $ zo
Wachtwoord:

root @ mail: / home / gandalf # getent groep
buzz: x: 1001: gebruikers: *: 10000:

root @ mail: / home / gandalf # exit
afrit

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

De Directory Service geïmplementeerd op server- en clientniveau, werkt correct.

Kerberos

Van Wikipedia:

  • Kerberos is een verificatieprotocol voor computernetwerken dat is gemaakt door het MIT waarmee twee computers op een onveilig netwerk hun identiteit veilig aan elkaar kunnen bewijzen. De ontwerpers concentreerden zich eerst op een client-server-model en het biedt wederzijdse authenticatie: zowel client als server verifiëren de identiteit van elkaar. Authenticatieberichten zijn beschermd om te voorkomen afluisteren y herhalingsaanvallen.

    Kerberos is gebaseerd op symmetrische sleutelcryptografie en vereist een vertrouwde derde partij. Verder zijn er uitbreidingen op het protocol om asymmetrische sleutelcryptografie te kunnen gebruiken.

    Kerberos is gebaseerd op de Needham-Schroeder-protocol. Het maakt gebruik van een vertrouwde derde partij, een "Key Distribution Center" (KDC) genaamd, dat uit twee afzonderlijke logische delen bestaat: een "Authentication Server" (AS of Authentication Server) en een "ticketuitgevende server" (TGS of Ticket Granting Server). Kerberos werkt op basis van "tickets", die dienen om de identiteit van gebruikers te bewijzen.

    Kerberos houdt een database bij met geheime sleutels; Elke entiteit op het netwerk - of het nu een client of server is - deelt een geheime sleutel die alleen bekend is bij zichzelf en Kerberos. Kennis van deze sleutel dient om de identiteit van de entiteit te bewijzen. Voor communicatie tussen twee entiteiten genereert Kerberos een sessiesleutel, die ze kunnen gebruiken om hun problemen te beveiligen.

Nadelen van Kerberos

De genezen:

Ook al zijn Kerberos verwijdert een veelvoorkomende beveiligingsdreiging, kan het om verschillende redenen moeilijk te implementeren zijn:

  • Migratie van gebruikerswachtwoorden vanuit een standaard wachtwoorddatabase UNIX, zoals / etc / passwd of / etc / shadow, naar een Kerberos-wachtwoorddatabase, kan vervelend zijn en er is geen snel mechanisme om deze taak uit te voeren.
  • Kerberos gaat ervan uit dat elke gebruiker vertrouwd is, maar gebruikt een niet-vertrouwde machine op een niet-vertrouwd netwerk. Het belangrijkste doel is om te voorkomen dat niet-versleutelde wachtwoorden via het netwerk worden verzonden. Als echter een andere gebruiker, afgezien van de juiste gebruiker, toegang heeft tot de ticketautomaat (KDC) voor authenticatie, loopt Kerberos risico.
  • Om een ​​toepassing Kerberos te laten gebruiken, moet de code worden gewijzigd om de juiste aanroepen naar de Kerberos-bibliotheken te doen. Toepassingen die op deze manier worden gewijzigd, worden als kerberized beschouwd. Voor sommige applicaties kan dit een buitensporige programmeerinspanning zijn, vanwege de grootte van de applicatie of het ontwerp ervan. Voor andere incompatibele toepassingen moeten wijzigingen worden aangebracht in de manier waarop de netwerkserver en zijn clients communiceren; nogmaals, dit kan nogal wat programmeren vergen. Over het algemeen zijn closed source-applicaties die geen Kerberos-ondersteuning hebben, meestal het meest problematisch.
  • Ten slotte, als u besluit Kerberos op uw netwerk te gebruiken, moet u zich realiseren dat het een alles of niets keuze is. Als u besluit om Kerberos op uw netwerk te gebruiken, moet u onthouden dat als er wachtwoorden worden doorgegeven aan een service die Kerberos niet gebruikt voor authenticatie, u het risico loopt dat het pakket wordt onderschept. Uw netwerk zal dus geen enkel voordeel halen uit het gebruik van Kerberos. Om uw netwerk met Kerberos te beveiligen, moet u alleen de kerberized versies gebruiken van alle client / server-applicaties die onversleutelde wachtwoorden verzenden of geen van deze applicaties op het netwerk gebruiken.

Het handmatig implementeren en configureren van OpenLDAP als een Kerberos Back-End is geen gemakkelijke taak. Later zullen we echter zien dat de Samba 4 Active Directory - Domain Controller op een transparante manier integreert voor de Sysadmin, een DNS-server, het Microsoft Network en zijn Domain Controller, LDAP-server als back-end van bijna al zijn objecten, en de op Kerberos gebaseerde authenticatieservice als de fundamentele componenten van een Active Directory in Microsoft-stijl.

Tot op heden hebben we niet de behoefte gehad om een ​​"Kerberized Network" te implementeren. Dit is waarom we niet hebben geschreven over het implementeren van Kerberos.

Samba 4 Active Directory - Domeincontroller

Belangrijk:

Er is geen betere documentatie dan de site wiki.samba.org. De zichzelf respecterende Sysadmin zou die site -in het Engels- moeten bezoeken en het grote aantal pagina's volledig gewijd aan Samba 4, geschreven door Team Samba zelf, doorbladeren. Ik geloof niet dat er documentatie op internet beschikbaar is om deze te vervangen. Bekijk trouwens het aantal bezoeken dat onderaan elke pagina wordt weergegeven. Een voorbeeld hiervan is dat uw hoofdpagina of «Hoofdpagina» werd bezocht 276,183 tijden tot en met vandaag 20 juni 2017 om 10:10 uur Eastern Standard Time. Bovendien wordt de documentatie zeer up-to-date gehouden, aangezien die pagina op 6 juni is aangepast.

Van Wikipedia:

Samba is een gratis implementatie van het Microsoft Windows-protocol voor het delen van bestanden (voorheen SMB genoemd, onlangs omgedoopt tot CIFS) voor UNIX-achtige systemen. Op deze manier is het mogelijk dat computers met GNU / Linux, Mac OS X of Unix in het algemeen op servers lijken of als clients in Windows-netwerken fungeren. Met Samba kunt u gebruikers ook valideren als Primary Domain Controller (PDC), als domeinlid en zelfs als Active Directory-domein voor Windows-netwerken; afgezien van het kunnen bedienen van afdrukwachtrijen, gedeelde mappen en authenticatie met zijn eigen gebruikersarchief.

Onder de Unix-achtige systemen waarop Samba kan worden uitgevoerd, zijn de GNU / Linux-distributies, Solaris en de verschillende BSD-varianten onder de dat we Apple's Mac OS X Server kunnen vinden.

Samba 4 AD-DC met zijn interne DNS

  • We beginnen met een schone installatie -zonder grafische interface- van een Debian 8 "Jessie".

Eerste controles

root @ master: ~ # hostnaam
meester
root @ master: ~ # hostnaam --fqdn
meester.swl.fan
root @ master: ~ # ip addr
1: wat: mtu 65536 qdisc noqueue state ONBEKEND groep standaard 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 forever preferred_lft forever inet6 :: 1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast staat ONBEKEND groep standaard 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 forever preferred_lft forever inet6 fe80 :: 20c: 29ff: fe80: 3b3f / 64 scope link valid_lft forever preferred_lft forever
root @ master: ~ # cat /etc/resolv.conf
zoek swl.fan nameserver 127.0.0.1
  • Waarmee we de branche aangeven hoofd- alleen is het meer dan genoeg voor onze doeleinden.
root @ master: ~ # cat /etc/apt/sources.list
deb http://192.168.10.1/repos/jessie-8.6/debian/ jessie hoofd-
deb http://192.168.10.1/repos/jessie-8.6/debian/security/ jessie / updates hoofd-

Postfix door Exim en hulpprogramma's

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

  ┌────────────────────────┤ Configuratie postfix ├───────────────────── ────┐ │ Kies het type mailserverconfiguratie dat het beste bij uw │ │-behoeften past. │ │ │ │ Geen configuratie: │ │ Houdt de huidige configuratie intact. │ │ Internetsite: │ │ E-mail wordt rechtstreeks via SMTP verzonden en ontvangen. │ │ Internet met "smarthost": │ │ Mail wordt rechtstreeks ontvangen via SMTP of door een │ │-tool zoals "fetchmail" uit te voeren. Uitgaande e-mail wordt verzonden met │ │ een "smarthost". │ │ Alleen lokale e-mail: │ │ De enige e-mail die wordt bezorgd, is voor lokale gebruikers. Nee │ │ er is een netwerk. │ │ │ │ Algemeen type mailconfiguratie: │ │ │ │ Geen configuratie │ │ Internetsite │ │ Internet met "smarthost" │ │ Satellietsysteem │ │                         Alleen lokale post                                │ │ │ │ │ │                                     │ │ │ └─────────────────────────────────────────────── ────────────────────────────┘ ┌──────────────────── ─────┤ Configuratie postfix ├──────────────────────────┐ │ De "mailsysteemnaam" is de naam van het domein dat │ │ wordt gebruikt om _ALL_ e-mailadressen zonder domeinnaam te "kwalificeren". Dit omvat e-mail van en naar "root": zorg ervoor dat │ │ uw machine geen e-mails verstuurt vanaf root@voorbeeld.org tot │ │ minder dan root@voorbeeld.org vroeg. │ │ │ │ Andere programma's zullen deze naam gebruiken. Het moet een unieke │ │ gekwalificeerde domeinnaam (FQDN) zijn. │ │ │ │ Daarom, als een e-mailadres op de lokale computer │ │ is iets@example.org, is de juiste waarde voor deze optie example.org. │ │ │ │ Naam mailsysteem: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘  

We maken schoon

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

We installeren vereisten om Samba 4 en andere noodzakelijke pakketten

root @ master: ~ # aptitude install acl attr autoconf bison \
BOUW-SENTIAL DEBHELPER DNSUTILS DOCOK-XML DOCOK-XSL FLEX GDB \
krb5-gebruiker 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\
LUBPOPT-DEV FreeAdline-Dev Perl Perl-modules PKG-Config \
python-alall-dev python-dev python-dnspython python-crypto \
xsltproc zlib1g -dev libgpgme11 -dev python -gpgme python -m2crypto \
libgnutls28-dbg gnutls-dev LDAP-UTILS KRB5-Config

 ┌───────────────┤ Kerberos-authenticatie configureren ├────────────────┐ │ Wanneer gebruikers Kerberos proberen te gebruiken en een naam opgeven │ │ principal of gebruiker zonder duidelijk te maken tot welk administratief Kerberos-domein de principal │ │ behoort, neemt het systeem de standaard realm │ │.  Het standaard rijk kan ook worden gebruikt als het │ │ rijk van een Kerberos-service die op de lokale computer draait.  │ │ Normaal gesproken is de standaardrealm de hoofdletter van het lokale DNS │ │-domein.  │ │ │ │ Kerberos versie 5 standaard realm: │ │ │ │ SWL.FAN __________________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌───────────────┤ Verificatie configureren Kerberos ├───────────────┐ │ Voer de namen in van de Kerberos-servers in het SWL.FAN-rijk van │ │ Kerberos, gescheiden door spaties.  │ │ │ │ Kerberos-servers voor uw realm: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └─────────────────────────────────────────────── ─────────────────────────────┘ ┌───────────────┤ Verificatie configureren Kerberos ├───────────────┐ │ Voer de beheerdersservernaam in (wachtwoordwijziging) │ │ voor de Kerberos SWL.FAN-realm.   

Het bovenstaande proces kostte wat tijd omdat we nog geen DNS-services hebben geïnstalleerd. U heeft het domein echter correct gekozen door de bestandsinstellingen / Etc / hosts. Onthoud dat in het bestand / Etc / resolv.conf we hebben gedeclareerd als een domeinnaamserver voor het IP 127.0.0.1.

We configureren nu het bestand / etc / ldap / ldap / conf

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

Voor vragen met de opdracht ldapzoeken gemaakt van de root-gebruiker zijn van het type ldapsearch -x -W cn = xxxx, we moeten het bestand maken /root/.ldapsearch met de volgende inhoud:

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

Het bestandssysteem moet ACL - Access Control List ondersteunen

root @ master: ~ # nano / etc / fstab
# / etc / fstab: statische bestandssysteeminformatie. # # Gebruik 'blkid' om de universeel unieke ID voor een apparaat # af te drukken; dit kan worden gebruikt met UUID = als een robuustere manier om apparaten # een naam te geven die zelfs werkt als schijven worden toegevoegd en verwijderd. Zie fstab (5). # # # / was op / dev / sda1 tijdens installatie UUID = 33acb024-291b-4767-b6f4-cf207a71060c / ext4 user_xattr, acl, barrier = 1, noatime, errors = remount-ro 0 1
# swap was aan / dev / sda5 tijdens installatie UUID = cb73228a-615d-4804-9877-3ec225e3ae32 geen 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 # owner: root # group: root user :: rw- group :: r-- group: adm: rwx mask :: rwx other :: r--

We halen de Samba 4-broncode op, compileren deze en installeren deze

Het wordt sterk aanbevolen om het bronbestand van de versie te downloaden Stal van de site https://www.samba.org/. In ons voorbeeld downloaden we de versie SAMBA-4.5.1.tar.gz richting de map / opt.

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 /

Configuratie-opties

Als we de configuratie-opties willen aanpassen, voeren we het volgende uit:

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

en kies met grote zorg degene die we nodig hebben. Het is raadzaam om te controleren of het gedownloade pakket kan worden geïnstalleerd op de Linux-distributie die we gebruiken, in ons geval Debian 8.6 Jessie:

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

We configureren, compileren en installeren samba-4.5.1

  • Van de eerder geïnstalleerde vereisten en de 8604 bestanden (die samen de compacte samba-4.5.1.tar.gz vormen) die ongeveer 101.7 megabytes wegen - inclusief de source3- en source4-mappen die ongeveer 61.1 megabytes wegen - zullen we een vervanging krijgen voor een Active Directory in Microsoft-stijl, van een kwaliteit en stabiliteit die meer dan aanvaardbaar zijn voor elke productieomgeving. We moeten het werk van Team Samba benadrukken bij het leveren van de Vrije Software Samba 4.

De onderstaande commando's zijn de klassieke commando's voor het compileren en installeren van pakketten vanaf hun broncode. We moeten geduld hebben zolang het hele proces duurt. Het is de enige manier om geldige en correcte resultaten te krijgen.

root @ master: /opt/samba-4.5.1# ./configure --with-systemd - uitschakelen-cups
root @ master: /opt/samba-4.5.1# maken
root @ master: /opt/samba-4.5.1# make install

Tijdens het opdrachtproces makenkunnen we zien dat de Samba 3- en Samba 4-bronnen zijn gecompileerd.Daarom bevestigt Team Samba dat versie 4 de natuurlijke update is van versie 3, zowel voor Domain Controllers gebaseerd op Samba 3 + OpenLDAP als bestandsservers of oudere versies van Samba 4.

Samba inrichten

We zullen als DNS het SAMBA_INTERNAL. In https://wiki.samba.org/index.php?title=Samba_Internal_DNS_Back_End we zullen meer informatie vinden. Als ze ons om het wachtwoord van de Administrator-gebruiker vragen, moeten we er een typen van minimaal 8 tekens en ook met letters - hoofdletters en kleine letters - en cijfers.

Voordat we verder gaan met het inrichten en om het leven gemakkelijker te maken, voegen we het pad van de Samba-uitvoerbare bestanden in ons bestand .bashrcDan sluiten we en loggen we weer in.

root @ master: ~ # nano .bashrc
# ~ / .bashrc: uitgevoerd door bash (1) voor niet-login shells. # Opmerking: PS1 en umask zijn al ingesteld in / etc / profile. Je zou dit # niet nodig moeten hebben, tenzij je verschillende standaardinstellingen voor root wilt. # PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ h: \ w \ $' # umask 022 # U kunt de commentaren op de volgende regels verwijderen als u wilt dat `ls 'wordt ingekleurd: # export LS_OPTIONS =' - kleur = auto '# eval "` dircolors` "# alias ls =' ls $ LS_OPTIONS '# alias ll =' ls $ LS_OPTIONS -l '# alias l =' ls $ LS_OPTIONS -lA '# # Nog enkele aliassen om fouten te voorkomen : # alias rm = 'rm -i' # alias cp = 'cp -i' # alias mv = 'mv -i'
declareer -x PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: \ / sbin: / bin: / usr / local / samba / sbin: / usr / local / samba / bin "

root @ master: ~ # exit logout Verbinding met master gesloten. xeon @ sysadmin: ~ $ ssh root @ master

root @ master: ~ # samba-tool domeinvoorziening --use-rfc2307 --interactief
Rijk [SWL.FAN]: SWL.VENTILATOR
 Domein [SWL]: SWL
 Serverrol (dc, member, standalone) [dc]: dc
 DNS-backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
 IP-adres van DNS-forwarder (schrijf 'none' om doorsturen uit te schakelen) [192.168.10.5]: 8.8.8.8
Administrator wachtwoord: UwWachtwoord2017
Geef nogmaals het wachtwoord: UwWachtwoord2017
IPv4-adressen opzoeken IPv6-adressen opzoeken Er wordt geen IPv6-adres toegewezen. Share.ldb instellen secrets.ldb Register instellen De database met privileges instellen idmap db instellen SAM db instellen SAM db-partities en instellingen instellen up sam.ldb rootDSE Vooraf laden van het Samba 4- en AD-schema DomainDN toevoegen: DC = swl, DC = fan Configuratiecontainer toevoegen Sam.ldb-schema instellen Sam.ldb-configuratiegegevens instellen Displayspecificaties instellen Displayspecificaties wijzigen Gebruikerscontainer toevoegen Gebruikerscontainer aanpassen Computerscontainer aanpassen Computerscontainer aanpassen Sam.ldb-gegevens instellen Bekende beveiligingsprincipes instellen sam.ldb-gebruikers en -groepen instellen Self-join instellen DNS-accounts toevoegen CN = MicrosoftDNS, CN = System, DC = swl, DC maken = fan DomainDnsZones- en ForestDnsZones-partities aanmaken DomainDnsZones- en ForestDnsZones-partities vullen Sam.ldb rootDSE-markering instellen als gesynchroniseerd GUID's reparerenEen Kerberos-configuratie die geschikt is voor Samba 4 is gegenereerd op /usr/local/samba/private/krb5.conf Valse yp-serverinstellingen instellen Zodra de bovenstaande bestanden zijn geïnstalleerd, is uw Samba4-server klaar om Serverrol te gebruiken: active directory domein controller Hostnaam: master NetBIOS Domain: SWL DNS Domain: swl.fan DOMEIN SID: S-1-5-21-32182636-2892912266-1582980556

Laten we niet vergeten het Kerberos-configuratiebestand te kopiëren zoals aangegeven door de uitvoer van het Provisioning:

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

Om de opdracht niet te typen Samba-tool met uw volledige naam maken we een symbolische link met de korte naam tools:

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

We installeren de NTP

Een fundamenteel onderdeel van een Active Directory is de Network Time Service Omdat de authenticatie gebeurt via Kerberos en zijn Tickets, is de synchronisatie van de tijd met de Samba 4 AD-DC van vitaal belang.

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 statistieken loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegenstats file clockstats kloktype dag server inschakelen 192.168.10.1 restrict -4 standaard kod notrap nomodify nopeer noquery restrict -6 standaard kod notrap nomodify nopeer noquery restrict standaard mssntp restrict 127.0.0.1 restrict :: 1 uitzending 192.168.10.255

root @ master: ~ # service ntp herstart
root @ master: ~ # service ntp-status

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

Als bij het onderzoeken van de syslog met behulp van de bovenstaande opdracht of met dagboekctl -f we krijgen de boodschap:

19 juni 12:13:21 meester ntpd_intres [1498]: ouder stierf voordat we klaar waren, weggaan

we moeten de service opnieuw starten en het opnieuw proberen. Nu maken we de map ntp_ondertekend:

root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
ls: Geen toegang tot / usr / local / samba / var / lib / ntp_signd: bestand of map bestaat niet

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 /

# Zoals gevraagd op samba.wiki.org
root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
drwxr-x --- 2 root ntp 4096 19 juni 12:21 / usr / local / samba / var / lib / ntp_signd

We configureren de Samba door systemd te gebruiken

root @ master: ~ # nano /lib/systemd/system/samba-ad-dc.service
[Service] Type = forking 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 [Installeren] WantedBy = multi-user.target

root @ master: ~ # systemctl zet samba-ad-dc aan
root @ master: ~ # herstart

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

Samba 4 AD-DC bestandslocaties

ALLE -minus de nieuw aangemaakte samba-ad-dc.service- de bestanden zijn in:

root @ master: ~ # ls -l / usr / local / samba /
totaal 32 drwxr-sr-x 2 root personeel 4096 19 juni 11:55 bak
drwxr-sr-x 2 hoofdpersoneel 4096 19 juni 11:50 etc
drwxr-sr-x 7 hoofdpersoneel 4096 19 juni 11:30 omvatten
drwxr-sr-x 15 hoofdpersoneel 4096 19 juni 11:33 lib
drwxr-sr-x 7 hoofdpersoneel 4096 19 juni 12:40 privaat
drwxr-sr-x 2 hoofdpersoneel 4096 19 juni 11:33 sbin
drwxr-sr-x 5 hoofdpersoneel 4096 19 juni 11:33 deel
drwxr-sr-x 8 hoofdpersoneel 4096 19 juni 12:28 var

in de beste UNIX-stijl. Het is altijd raadzaam om door de verschillende mappen te bladeren en hun inhoud te bekijken.

/Usr/local/samba/etc/smb.conf bestand

root @ master: ~ # nano /usr/local/samba/etc/smb.conf 
# Globale parameters [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 , dns server role = active directory domeincontroller toestaan ​​dns updates = alleen beveiligd idmap_ldb: use rfc2307 = yes idmap config *: backend = tdb idmap config *: range = 1000000-1999999 ldap server vereist sterke auth = geen printcap name = / dev / null [netlogon] pad = /usr/local/samba/var/locks/sysvol/swl.fan/scripts alleen lezen = Nee [sysvol] pad = / usr / local / samba / var / locks / sysvol alleen lezen = Nee

root @ master: ~ # testparm
Laad smb-configuratiebestanden uit /usr/local/samba/etc/smb.conf Verwerkingssectie "[netlogon]" Verwerkingssectie "[sysvol]" Geladen servicesbestand OK. Serverrol: ROLE_ACTIVE_DIRECTORY_DC Druk op enter om een ​​dump van uw servicedefinities te zien # Globale parameters [global] realm = SWL.FAN workgroup = SWL dns forwarder = 192.168.10.1 ldap-server vereist sterke auth = Geen passdb backend = samba_dsdb-serverrol = active directory domeincontroller 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 = gebruik externe rvc-server = gebruik externe rvc-server = externe rvc-server gebruiken: rct_ctvc externe leidingen = echte idmap-configuratie *: bereik = 1000000-1999999 idmap_ldb: gebruik rfc2307 = ja idmap-configuratie *: backend = tdb kaartarchief = Geen kaart alleen-lezen = geen opslagdos-attributen = Ja vfs-objecten = dfs_samba4 acl_xattr [netlogon] pad = / usr / local / samba / var / locks / sysvol / swl.fan / scripts alleen lezen = Nee [sysvol] pad = / usr / local / samba / var / locks / sysvol alleen lezen = Nee

Minimale controles

root @ master: ~ # tool domeineniveau tonen
Domein- en forest-functieniveau voor domein 'DC = swl, DC = fan' Forest-functieniveau: (Windows) 2008 R2 Domeinfunctieniveau: (Windows) 2008 R2 Laagste functieniveau van een DC: (Windows) 2008 R2

root @ master: ~ # ldapsearch -x -W

root @ master: ~ # tool dbcheck
262 objecten gecontroleerd 262 objecten gecontroleerd (0 fouten)

root @ master: ~ # kinit Administrator
Wachtwoord voor Beheerder@SWL.FAN: 
root @ master: ~ # klist -f
Ticket-cache: BESTAND: / tmp / krb5cc_0
Primaire standaard: Beheerder@SWL.FAN

Geldige start Expires Service main 19/06/17 12:53:24 19/06/17 22:53:24  krbtgt/SWL.FAN@SWL.FAN
    verlengen tot 20-06-17 12:53:18 PM, vlaggen: RIA

root @ master: ~ # kdestroy
root @ master: ~ # klist -f
klist: Credentials cache-bestand '/ tmp / krb5cc_0' niet gevonden

root @ master: ~ # smbclient -L localhost -U%
Domain = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1] Sharenaam Type Commentaar --------- ---- ------- netlogon Disk sysvol Disk IPC $ IPC IPC Service (Samba 4.5.1) Domein = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1] Servercommentaar --------- ------- Werkgroep Master ---- ----- -------

root @ master: ~ # smbclient // localhost / netlogon -UAdministrator -c 'ls'
Voer het beheerderswachtwoord in: Domain = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1]. D 0 ma 19 jun 11:50:52 2017 .. D 0 ma 19 jun 11:51:07 2017 19091584 blokken van 1024. 16198044 blokken beschikbaar

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

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

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

root @ master: ~ # host -t Een master.swl.fan
master.swl.fan heeft adres 192.168.10.5

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

root @ master: ~ # host -t NS swl.fan
swl.fan naamserver master.swl.fan.

root @ master: ~ # host -t MX swl.fan
swl.fan heeft geen MX-record

root @ master: ~ # samba_dnsupdate --verbose

root @ master: ~ # tool gebruikerslijst
Beheerder krbtgt Gast

root @ master: ~ # lijst met gereedschapsgroepen
# De output is een stel groepen. ;-)

Wij beheren de nieuw geïnstalleerde Samba 4 AD-DC

Als we de vervaldatum in dagen van het beheerderswachtwoord willen wijzigen; de complexiteit van wachtwoorden; de minimale lengte van het wachtwoord; de minimale en maximale duur -in dagen- van het wachtwoord; en verander het beheerderswachtwoord dat is opgegeven tijdens het Provisioning, moeten we de volgende opdrachten uitvoeren met de waarden aangepast aan uw behoeften:

root @ master: ~ # tool
Gebruik: samba-tool Belangrijkste samba-beheertool. Opties: -h, --help toon dit helpbericht en sluit versie af Opties: -V, --version Versienummer weergeven Beschikbare subopdrachten: dbcheck - Controleer de lokale AD-database op fouten. delegatie - delegatiebeheer. dns - Domain Name Service (DNS) -beheer. domein - Domeinbeheer. drs - Beheer van Directory Replication Services (DRS). dsacl - DS ACL's manipulatie. fsmo - Flexible Single Master Operations (FSMO) rollenbeheer. gpo - Beheer van groepsbeleidsobjecten (GPO). group - Groepsbeheer. ldapcmp - Vergelijk twee ldap-databases. ntacl - manipulatie van NT ACL's. processen - Lijst met processen (om te helpen bij het debuggen op systemen zonder setproctitle). rodc - Read-Only Domain Controller (RODC) -beheer. sites - Beheer van sites. spn - Beheer van de Service Principal Name (SPN). testparm - Syntax controleer het configuratiebestand. tijd - Haal de tijd op een server op. gebruiker - Gebruikersbeheer. Voor meer hulp bij een specifiek subcommando, typ je: samba-tool (-h | --help)

root @ master: ~ # tool gebruiker setexpiry administrator --noexpiry
root @ master: ~ # tool domein wachtwoordinstellingen ingesteld --min-pwd-length = 7
root @ master: ~ # tool domein wachtwoordinstellingen ingesteld --min-pwd-age = 0
root @ master: ~ # tool domein wachtwoordinstellingen ingesteld --max-pwd-age = 60
root @ master: ~ # tool user setpassword --filter = samaccountname = Administrator --newpassword = Passw0rD

We voegen verschillende DNS-records toe

root @ master: ~ # tool dns
Gebruik: samba-tool dns Domain Name Service (DNS) beheer. Opties: -h, --help toon dit helpbericht en sluit af Beschikbare subopdrachten: add - Voeg een DNS-record toe verwijderen - Verwijder een DNS-recordquery - Vraag een naam op. roothints - Hoofdhints voor zoekopdrachten. serverinfo - Query voor serverinformatie. update - Update een DNS-record zonecreate - Maak een zone aan. zonedelete - Verwijder een zone. zoneinfo - Vraag naar zone-informatie. zonelist - Query voor zones. Voor meer hulp bij een specifiek subcommando typt u: samba-tool dns (-h | --help)

Mail server

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 administrator

Vaste IP van andere servers

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

Omgekeerde zone

root @ master: ~ # tool dns zonecreate master 10.168.192.in-addr.arpa -U administrator
Wachtwoord voor [SWL \ administrator]: Zone 10.168.192.in-addr.arpa succesvol aangemaakt

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

Cheques

root @ master: ~ # tool dns query master swl.fan mail ALL -U administrator
Wachtwoord voor [SWL \ administrator]: naam =, records = 1, kinderen = 0 A: 192.168.10.9 (vlaggen = f0, serie = 2, ttl = 900)

root @ master: ~ # host-master
master.swl.fan heeft adres 192.168.10.5
root @ master: ~ # host sysadmin
sysadmin.swl.fan heeft adres 192.168.10.1
root @ master: ~ # hostmail
mail.swl.fan heeft adres 192.168.10.9
root @ master: ~ # host-chat
chat.swl.fan heeft adres 192.168.10.12
root @ master: ~ # proxyhost
proxy.swl.fan heeft adres 192.168.10.11
root @ master: ~ # host-bestandsserver
fileserver.swl.fan heeft adres 192.168.10.10
root @ master: ~ # host 192.168.10.1
1.10.168.192.in-addr.arpa domeinnaam pointer sysadmin.swl.fan.
root @ master: ~ # host 192.168.10.5
5.10.168.192.in-addr.arpa domeinnaam pointer master.swl.fan.
root @ master: ~ # host 192.168.10.9
9.10.168.192.in-addr.arpa domeinnaam pointer mail.swl.fan.
root @ master: ~ # host 192.168.10.10
10.10.168.192.in-addr.arpa domeinnaam pointer fileserver.swl.fan.
root @ master: ~ # host 192.168.10.11
11.10.168.192.in-addr.arpa domeinnaam pointer proxy.swl.fan.
root @ master: ~ # host 192.168.10.12
12.10.168.192.in-addr.arpa domeinnaam pointer chat.swl.fan.

Voor nieuwsgierigen

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

We voegen gebruikers toe

root @ master: ~ # toolgebruiker
Gebruik: samba-tool-gebruiker Gebruikersbeheer. Opties: -h, --help toon dit helpbericht en sluit af Beschikbare subopdrachten: toevoegen - Maak een nieuwe gebruiker aan. create - Maak een nieuwe gebruiker aan. delete - Verwijder een gebruiker. uitschakelen - Schakel een gebruiker uit. inschakelen - Schakel een gebruiker in. getpassword - Haal de wachtwoordvelden van een gebruikers- / computeraccount op. lijst - Lijst met alle gebruikers. wachtwoord - Wijzig het wachtwoord voor een gebruikersaccount (degene die is opgegeven bij authenticatie). setexpiry - Stel de vervaldatum van een gebruikersaccount in. setpassword - Stel het wachtwoord van een gebruikersaccount in of reset het. syncpasswords - Synchroniseer het wachtwoord van gebruikersaccounts. Voor meer hulp bij een specifiek subcommando, typ je: samba-tool user (-h | --help)

root @ master: ~ # tool gebruiker maak trancos Trancos01
Gebruiker 'trancos' succesvol aangemaakt
root @ master: ~ # tool gebruiker creëer gandalf Gandalf01
Gebruiker 'gandalf' is succesvol aangemaakt
root @ master: ~ # toolgebruiker legolas Legolas01 aanmaken
Gebruiker 'legolas' succesvol aangemaakt
root @ master: ~ # tool gebruikerslijst
Beheerder gandalf legolas schrijdt krbtgt Gast

Beheer via grafische interface of via webclient

Bezoek wiki.samba.org voor gedetailleerde informatie over het installeren van het Microsoft RSAT o Remote Server Administration Tools. Als u het klassieke beleid van Microsoft Active Directory niet nodig heeft, kunt u het pakket installeren ldap-accountmanager die een eenvoudige interface biedt voor beheer via een webbrowser.

Het Microsoft Remote Server Administration Tools (RSAT) -programmapakket is opgenomen in Windows Server-besturingssystemen.

We voegen het domein toe aan een Windows 7-client met de naam 'zeven'

Aangezien we geen DHCP-server in het netwerk hebben, moeten we eerst de netwerkkaart van de klant configureren met een vast IP-adres, verklaren dat de primaire DNS het IP-adres is van de samba-ad-dc, en controleer of de optie "Registreer het adres van deze verbinding in DNS" is geactiveerd. Het is niet nutteloos om te controleren of de naam «zeven»Staat nog niet geregistreerd in de interne DNS van Samba.

Nadat we de computer met het domein hebben verbonden en het opnieuw hebben opgestart, proberen we in te loggen met de gebruiker «stappen«. We zullen controleren of alles goed werkt. Het wordt ook aanbevolen om de Windows Client-logboeken te controleren en te controleren hoe de tijd correct is gesynchroniseerd.

Beheerders met enige Windows-ervaring zullen merken dat alle controles die ze op de client uitvoeren, bevredigende resultaten zullen opleveren.

Overzicht

Ik hoop dat het artikel nuttig is voor lezers van de community. DesdeLinux.

Vaarwel!


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Gonzalo Martinez zei

    Lang maar gedetailleerd artikel, heel goed stap voor stap over hoe je alles moet doen.

    Ik benadruk NIS, de waarheid is dat hoewel ik weet van het bestaan ​​ervan, ik nooit echt wist hoe het werkt, want om eerlijk te zijn gaf het me altijd de indruk dat het praktisch dood was naast LDAP en Samba 4.

    PS: Gefeliciteerd met je nieuwe persoonlijke project! Jammer dat je hier niet verder gaat schrijven, maar er is tenminste een plek om je te volgen.

  2.   HO2Gi zei

    Enorme tutorial zoals altijd naar mijn favorieten, Greetings Fico
    Gefeliciteerd met het project.

  3.   IWO zei

    De NIS-sectie is geweldig, ik sympathiseer met Gonzalo Martinez, ik wist het kort maar had geen idee hoe het moest worden geïmplementeerd en in welke situaties het wordt gebruikt.
    Een keer bedankt voor een enorme "koffer" met theoretische en praktische artikelen.
    Eindelijk nieuwe successen in uw nieuwe project «gigainside».

  4.   Federico zei

    Heel erg bedankt iedereen voor commentaar !!!.
    groeten

  5.   mossel zei

    de smb.conf die je leert heeft geen enkele link met LDAP, is dat expres zo of heb ik iets achtergelaten?

  6.   fico zei

    mussol: Dit is een Samba 4 Active Directory Domain Controller die al een ingebouwde LDAP-server heeft.

  7.   Vincent zei

    Kunt u zeggen hoe u een mac (appel) verenigt met een samba 4 AD-DC?
    Dank u.

  8.   Jramirez zei

    Hoe is het met je;

    Bedankt voor de handleiding, het is geweldig. Ik heb een vraag over een bericht dat aan mij verschijnt.

    root @ AD: ~ # nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
    Kan de opgegeven hostnaam / IP niet vinden: ad.rjsolucionessac.com. Merk op dat u geen IP-bereiken in de stijl '/ mask' EN '1-4,7,100-' kunt gebruiken
    Kan geen geldig doel vinden. Zorg ervoor dat de opgegeven hosts IP-adressen in standaardnotatie zijn of hostnamen die kunnen worden omgezet met DNS
    root @ AD: ~ #