PAM, NIS, LDAP, Kerberos, DS i Samba 4 AD-DC - sieci SMB

Indeks ogólny serii: Sieci komputerowe dla MŚP: wprowadzenie

Witajcie przyjaciele i przyjaciele!

Tym artykułem żegnam się ze Wspólnotą DesdeLinux. Wyjątkowe pożegnanie wyjątkowej społeczności. Od teraz będę w moim osobistym projekcie, który możecie zobaczyć na http://www.gigainside.com.

Głównym celem postu jest oferowanie «Duże zdjęcie»O usługach uwierzytelniania za pomocą bezpłatnego oprogramowania, które mamy do dyspozycji. Przynajmniej taki jest nasz zamiar. Dlatego będzie długi, mimo że wiemy, że jest to sprzeczne z ogólnymi zasadami pisania artykułów. Mamy nadzieję, że administratorzy systemu to docenią.

Chcemy zwrócić uwagę, że wspólnym protokołem wielu współczesnych systemów uwierzytelniania jest LDAPi że dokładne przestudiowanie go nie jest bezczynne, na podstawie materiałów do nauki, które znajdziemy na oficjalnej stronie http://www.openldap.org/.

Nie będziemy podawać szczegółowych definicji - ani linków - dotyczących aspektów omawianych w poprzednich artykułach, ani tych, których opis może być łatwo dostępny w Wikipedii lub innych witrynach lub artykułach w Internecie, aby nie stracić obiektywizmu wiadomości, którą chcemy dawać. Będziemy również używać prawidłowej mieszanki nazw w języku angielskim i hiszpańskim, ponieważ uważamy, że większość systemów urodziła się z nazwami w języku angielskim i bardzo korzystne jest przyswojenie ich przez administratora systemu w ich oryginalnym języku.

  • WFP: Wtykowy moduł uwierzytelniania.
  • NIS: Usługa_informacyjna_sieci.
  • LDAP: lekki protokół dostępu do katalogu.
  • Kerberos: Protokół bezpieczeństwa do centralnego uwierzytelniania użytkowników, komputerów i usług w sieci, weryfikujący ich poświadczenia z istniejącymi wpisami w bazie danych Kerberos.
  • DS: Serwer katalogowy lub usługa katalogowa
  • AD-DC: Active Directory - Kontroler domeny

WFP

Poświęcamy krótką serię temu rodzajowi uwierzytelniania lokalnego, o którym w codziennej praktyce przekonasz się, że jest on szeroko stosowany, gdy na przykład przyłączamy stację roboczą do kontrolera domeny lub Active Directory; odwzorowywać użytkowników przechowywanych w zewnętrznych bazach danych LDAP tak, jakby byli użytkownikami lokalnymi; mapowanie użytkowników przechowywanych w kontrolerze domeny usługi Active Directory, tak jakby byli użytkownikami lokalnymi, i tak dalej.

NIS

De Wikipedia:

  • Network Information System (znany pod akronimem NIS, który w języku hiszpańskim oznacza Network Information System) to nazwa protokołu usług katalogowych klient-serwer opracowanego przez Sun Microsystems do wysyłania danych konfiguracyjnych w systemach rozproszonych, takich jak nazwy użytkowników i hostów między komputerami w sieci.NIS jest oparty na ONC RPC i składa się z serwera, biblioteki po stronie klienta oraz różnych narzędzi administracyjnych.

    Pierwotnie NIS nosił nazwę Yellow Pages lub YP, który nadal jest używany w odniesieniu do niego. Niestety ta nazwa jest znakiem towarowym firmy British Telecom, która zobowiązała Sun do usunięcia tej nazwy. Jednak YP pozostaje przedrostkiem w nazwach większości poleceń związanych z NIS, takich jak ypserv i ypbind.

    DNS obsługuje ograniczony zakres informacji, z których najważniejsza jest zgodność między nazwą węzła a adresem IP. W przypadku innych rodzajów informacji nie ma takiej specjalistycznej usługi. Z drugiej strony, jeśli tylko mała sieć LAN jest zarządzana bez połączenia z Internetem, nie wydaje się, aby warto było konfigurować DNS. Dlatego firma Sun opracowała system informacji o sieci (NIS). Usługa NIS zapewnia ogólne możliwości dostępu do bazy danych, które można wykorzystać do dystrybucji, na przykład, informacji zawartych w plikach passwd i group do wszystkich węzłów w sieci. To sprawia, że ​​sieć wygląda jak pojedynczy system z tymi samymi kontami na wszystkich węzłach. Podobnie, NIS może być użyty do dystrybucji informacji o nazwach węzłów zawartych w / etc / hosts do wszystkich maszyn w sieci.

    Obecnie NIS jest dostępny praktycznie we wszystkich dystrybucjach Uniksa, a są nawet bezpłatne implementacje. BSD Net-2 opublikował taki, który powstał na podstawie referencyjnej implementacji domeny publicznej przekazanej przez Sun. Kod biblioteki dla części klienckiej tej wersji istnieje w bibliotece GNU / Linux libc przez długi czas, a programy administracyjne zostały przeportowane do systemu GNU / Linux przez Swena Thümmlera. Jednak w implementacji referencyjnej brakuje serwera NIS.

    Peter Eriksson opracował nową implementację o nazwie NYS. Obsługuje zarówno podstawowy NIS, jak i ulepszoną wersję Sun NIS +. [1] NYS nie tylko zapewnia szereg narzędzi NIS i serwer, ale także dodaje zupełnie nowy zestaw funkcji bibliotecznych, które musisz wkompilować do swojej libc, jeśli chcesz ich używać. Obejmuje to nowy schemat konfiguracji rozpoznawania nazw węzłów, który zastępuje bieżący schemat używany przez plik „host.conf”.

    Biblioteka GNU libc, znana w społeczności GNU / Linux jako libc6, zawiera zaktualizowaną wersję tradycyjnej obsługi NIS, opracowaną przez Thorstena Kukuka. Obsługuje wszystkie funkcje biblioteczne dostarczane przez NYS, a także wykorzystuje zaawansowany schemat konfiguracji NYS. Narzędzia i serwer są nadal potrzebne, ale używanie GNU libc oszczędza kłopotów z łataniem i rekompilacją biblioteki

    .

Nazwa komputera i domeny, interfejs sieciowy i resolver

  • Zaczynamy od czystej instalacji - bez interfejsu graficznego - Debiana 8 „Jessie”. Domena swl.fan oznacza „Fani wolnego oprogramowania”. Czy może być lepsze imię niż to?.
root @ master: ~ # nazwa hosta
mistrz
root @ master: ~ # nazwa hosta -f
master.swl.fan

root @ master: ~ # ip adres 1: lo: mtu 65536 qdisc noqueue stan UNKNOWN grupa domyślny link / pętla zwrotna 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft foreverferred_lft forever inet6 :: 1/128 zakres hosta valid_lft na zawsze preferowany_lft na zawsze 2: eth0: mtu 1500 qdisc pfifo_fast stan UP grupa domyślna 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 zakres globalny eth0 valid_lft na zawsze preferowany_lft na zawsze inet6 fe80 :: 20c: 29ff: fe4c: 76d9 / 64 link do zakresu valid_lft forever preferowany_lft na zawsze

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

Instalacja bind9, isc-dhcp-server i ntp

wiązać9

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

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

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

root @ master: ~ # nano /etc/bind/named.conf.options
opcje {katalog "/ var / cache / bind"; // Jeśli między tobą a serwerami nazw istnieje zapora ogniowa, z którą chcesz // rozmawiać, może być konieczne jej naprawienie, aby umożliwić komunikację wielu // portom. Widzieć http://www.kb.cert.org/vuls/id/800113

        // Jeśli twój dostawca usług internetowych podał jeden lub więcej adresów IP dla stabilnych // serwerów nazw, prawdopodobnie będziesz chciał ich użyć jako usług przesyłania dalej. // Usuń komentarz z następującego bloku i wstaw adresy, zastępując // symbol zastępczy all-0. // usługi przesyłania dalej {// 0.0.0.0; //}; // ================================================= = ==================== $ // Jeśli BIND rejestruje komunikaty o błędach dotyczące wygaśnięcia klucza głównego, // będziesz musiał zaktualizować swoje klucze. Widzieć https://www.isc.org/bind-keys
        // ================================================= = ==================== $ // Nie chcemy DNSSEC
        dnsec-włącz nie;
        // dnssec-validation auto; auth-nxdomain no; # zgodne z RFC1035 nasłuchiwanie w wersji 6 {any; }; // Do sprawdzeń z localhost i sysadmin // poprzez dig swl.fan axfr // Nie mamy Slave DNS ... aż do teraz
        zezwolić na transfer {localhost; 192.168.10.1; };
}; root @ master: ~ # named-checkconf

root @ master: ~ # nano /etc/bind/zones.rfcFreeBSD
// Wspólna przestrzeń adresowa (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 (RFCs 3927, 5735 i 6303)
zone "254.169.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; };

// Przypisania protokołu IETF (RFC 5735 i 5736)
zone "0.0.192.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; };

// TEST-NET- [1-3] dla dokumentacji (RFCs 5735, 5737 i 6303)
zone "2.0.192.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "100.51.198.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "113.0.203.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; };

// Przykładowy zakres IPv6 dla dokumentacji (RFCs 3849 i 6303)
zone "8.bd0.1.0.0.2.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; };

// Nazwy domen do dokumentacji i testowania (BCP 32)
zone "test" {type master; plik "/etc/bind/db.empty"; }; zone "example" {type master; plik "/etc/bind/db.empty"; }; zone "invalid" {type master; plik "/etc/bind/db.empty"; }; zone "example.com" {type master; plik "/etc/bind/db.empty"; }; zone "example.net" {typ master; plik "/etc/bind/db.empty"; }; zone "example.org" {type master; plik "/etc/bind/db.empty"; };

// Testy porównawcze routerów (RFCs 2544 i 5735)
zone "18.198.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "19.198.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; };

// IANA Reserved - przestrzeń starej klasy E (RFC 5735)
zone "240.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "241.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "242.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "243.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "244.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "245.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "246.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "247.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "248.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "249.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "250.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "251.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "252.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "253.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "254.in-addr.arpa" {typ master; plik "/etc/bind/db.empty"; };

// Nieprzypisane adresy IPv6 (RFC 4291)
zone "1.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "3.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "4.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "5.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "6.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "7.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "8.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "9.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "a.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "b.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "c.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "d.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "e.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "0.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "1.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "2.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "3.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "4.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "5.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "6.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "7.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "8.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "9.f.ip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "afip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "bfip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "0.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "1.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "2.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "3.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "4.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "5.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "6.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "7.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; };

// ULA IPv6 (RFC 4193 i 6303)
zone "cfip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "dfip6.arpa" {typ master; plik "/etc/bind/db.empty"; };

// Lokalne łącze IPv6 (RFC 4291 i 6303)
zone "8.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "9.efip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "aefip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "befip6.arpa" {typ master; plik "/etc/bind/db.empty"; };

// Przestarzałe adresy lokalne dla witryny w protokole IPv6 (RFC 3879 i 6303)
zone "cefip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "defip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "eefip6.arpa" {typ master; plik "/etc/bind/db.empty"; }; zone "fefip6.arpa" {typ master; plik "/etc/bind/db.empty"; };

// IP6.INT jest przestarzały (RFC 4159)
zone "ip6.int" {typ master; plik "/etc/bind/db.empty"; };

root @ master: ~ # nano /etc/bind/named.conf.local
// // Wykonaj tutaj dowolną konfigurację lokalną // // Rozważ dodanie tutaj stref 1918, jeśli nie są one używane w Twojej // organizacji include "/etc/bind/zones.rfc1918";
include "/etc/bind/zones.rfcFreeBSD";

// Deklaracja nazwy, typu, lokalizacji i uprawnień do aktualizacji // stref rekordów DNS // Obie strefy są strefą MASTER "swl.fan" {type master; plik "/var/lib/bind/db.swl.fan"; }; zone "10.168.192.in-addr.arpa" {typ master; plik „/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; serial 1D; odśwież 1 godz; ponów 1 W; wygaśnięcie 3 godz.); minimum lub; Ujemny czas buforowania do życia; @ IN NS master.swl.fan. @ IN MX 10 mail.swl.fan. @ IN A 192.168.10.5 @ IN TXT "Dla fanów wolnego oprogramowania"; sysadmin IN A 192.168.10.1 fileserver WE 192.168.10.4 master IN A 192.168.10.5 proxyweb IN A 192.168.10.6 blog WE 192.168.10.7 ftpserver WE 192.168.10.8 poczta WE 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; serial 1D; odśwież 1H; ponów 1W; wygaśnięcie 3H); minimum lub; Ujemny czas buforowania do życia; @ IN NS master.swl.fan. ; 1 IN PTR sysadmin.swl.fan. 4 W PTR fileserver.swl.fan. 5 W PTR master.swl.fan. 6 IN PTR proxyweb.swl.fan. 7 W PTR blog.swl.fan. 8 IN PTR ftpserver.swl.fan. 9 W PTR mail.swl.fan.

root @ master: ~ # named-checkzone swl.fan /var/lib/bind/db.swl.fan
zone swl.fan/IN: załadowano serial 1 OK
root @ master: ~ # named-checkzone 10.168.192.in-addr.arpa /var/lib/bind/db.10.168.192.in-addr.arpa
strefa 10.168.192.in-addr.arpa/IN: załadowany serial 1 OK

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

Bind9 sprawdza

root @ master: ~ # dig swl.fan axfr
root @ master: ~ # dig 10.168.192.in-addr.arpa axfr
root @ master: ~ # dig W SOA swl.fan
root @ master: ~ # dig IN NS swl.fan
root @ master: ~ # dig IN MX swl.fan
root @ master: ~ # proxyweb host root @ master: ~ # nping --tcp -p 53 -c 3 localhost
root @ master: ~ # nping --udp -p 53 -c 3 localhost
root @ master: ~ # nping --tcp -p 53 -c 3 master.swl.fan
root @ master: ~ # nping --udp -p 53 -c 3 master.swl.fan
Uruchamianie Nping 0.6.47 ( http://nmap.org/nping ) o godzinie 2017-05-27 09:32 EDT SENT (0.0037 s) UDP 192.168.10.5:53> 192.168.10.245:53 ttl = 64 id = 20743 iplen = 28 SENT (1.0044s) UDP 192.168.10.5:53> 192.168.10.245 .53: 64 ttl = 20743 id = 28 iplen = 2.0060 SENT (192.168.10.5s) UDP 53:192.168.10.245> 53:64 ttl = 20743 id = 28 iplen = 3 Maks. Rtt: nie dotyczy | Min rtt: nie dotyczy | Śr. Rtt: nie dotyczy Wysłane pakiety surowe: 84 (0B) | Rcvd: 0 (3B) | Utracono: 100.00 (1%) Nping zakończony: 3.01 adres IP wysłany w ciągu XNUMX sekundy 

isc-dhcp-server

root @ master: ~ # aptitude install isc-dhcp-server
root @ master: ~ # nano / etc / default / isc-dhcp-server
# Na jakich interfejsach serwer DHCP (dhcpd) powinien obsługiwać żądania DHCP? # Poszczególne interfejsy oddziel spacjami, np. „Eth0 eth1”.
INTERFEJSY = „eth0”

root @ master: ~ # dnssec-keygen -a HMAC-MD5 -b 128 -r / dev / urandom -n USER dhcp-key
root @ master: ~ # cat Kdhcp-key. +157 + 51777.private 
Format klucza prywatnego: v1.3 Algorytm: 157 (HMAC_MD5) Klucz: Ba9GVadq4vOCixjPN94dCQ == Bity: AAA = Utworzono: 20170527133656 Opublikować: 20170527133656 Aktywować: 20170527133656

root @ master: ~ # nano dhcp.key
klucz dhcp-klucz {
        algorytm hmac-md5;
        sekret ”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
include "/etc/bind/dhcp.key";

zone "swl.fan" {typ master; plik "/var/lib/bind/db.swl.fan";
        allow-update {klucz dhcp-key; };
}; zone "10.168.192.in-addr.arpa" {typ master; plik „/var/lib/bind/db.10.168.192.in-addr.arpa”;
        allow-update {klucz 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-style interim; aktualizacje ddns włączone; ddns-domainname "swl.fan."; ddns-rev-domainname "in-addr.arpa."; ignoruj ​​aktualizacje klienta; aktualizacja optymalizacji fałsz; # Może być wymagane na autorytatywnym Debianie; opcja IP-forwarding wyłączona; opcja nazwa-domeny "swl.fan"; include "/etc/dhcp/dhcp.key"; zone swl.fan. {pierwotne 127.0.0.1; klucz dhcp-key; } strefa 10.168.192.in-addr.arpa. {pierwotne 127.0.0.1; klucz dhcp-key; } redlokalna sieć współdzielona {podsieć 192.168.10.0 maska ​​sieci 255.255.255.0 {opcjonalne routery 192.168.10.1; opcja maska ​​podsieci 255.255.255.0; opcja broadcast-address 192.168.10.255; opcja serwery nazw-domen 192.168.10.5; opcja serwery nazw-netbios 192.168.10.5; opcja ntp-servers 192.168.10.5; opcja serwery czasu 192.168.10.5; zakres 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
Konsorcjum Internet Systems Serwer DHCP 4.3.1 Copyright 2004-2014 Konsorcjum Internet Systems. Wszelkie prawa zastrzeżone. Aby uzyskać informacje, odwiedź https://www.isc.org/software/dhcp/
Plik konfiguracyjny: /etc/dhcp/dhcpd.conf Plik bazy danych: /var/lib/dhcp/dhcpd.leases Plik PID: /var/run/dhcpd.pid

root @ master: ~ # systemctl zrestartuj 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 statystyki loopstats peerstats clockstats filegen loopstats plik loopstats typ dzień włącz filegen plik peerstats peerstats typ dzień włącz filegen clockstats plik clockstats typ dzień włącz serwer 192.168.10.1 ogranicz -4 domyślny kod notrap nomodify nopeer noquery ogranicz -6 domyślny kod notrap nomodify nopeer noquery ogranicz 127.0.0.1 ogranicz :: 1 emisja 192.168.10.255

root @ master: ~ # systemctl zrestartuj ntp.service 
root @ master: ~ # systemctl status ntp.service
root @ master: ~ # ntpdate -u sysadmin.swl.fan
27 maja 10:04:01 ntpdate [18769]: dostosuj przesunięcie serwera czasu 192.168.10.1 0.369354 s

Globalne testy ntp, bind9 i isc-dhcp-server

Na kliencie Linux, BSD, Mac OS lub Windows sprawdź, czy czas jest poprawnie zsynchronizowany. Że uzyskuje dynamiczny adres IP i że nazwa tego hosta jest rozpoznawana poprzez bezpośrednie i odwrotne zapytania DNS. Zmień nazwę klienta i powtórz wszystkie kontrole. Nie kontynuuj, dopóki nie będziesz pewien, że zainstalowane do tej pory usługi działają poprawnie. Po coś napisaliśmy wszystkie artykuły o DNS i DHCP w Sieci komputerowe dla MŚP.

Instalacja serwera NIS

root @ master: ~ # aptitude show nis
Konflikty z: netstd (<= 1.26) Opis: klienci i demony dla Network Information Service (NIS) Ten pakiet zawiera narzędzia do konfigurowania i utrzymywania domeny NIS. NIS, pierwotnie znany jako Yellow Pages (YP), jest używany głównie do udostępniania kilku maszynom w sieci tych samych informacji o koncie, takich jak plik z hasłami.

root @ master: ~ # aptitude install nis
Konfiguracja pakietu ┌─────────────────────────┤ Konfiguracja Nis ── ────────┐ │ Wybierz „nazwę domeny” NIS dla tego systemu. Jeśli chcesz, aby ta │ │ maszyna była tylko klientem, powinieneś wpisać nazwę domeny │ │ NIS, do której chcesz się przyłączyć. │ │ │ │ Alternatywnie, jeśli ta maszyna ma być serwerem NIS, możesz │ │ wprowadzić nową "nazwę domeny" NIS lub nazwę istniejącej domeny NIS │ │. │ │ │ │ Domena NIS: │ │ │ │ wentylator swl __________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘  

To opóźni twoje, ponieważ konfiguracja usługi jako taka nie istnieje. Zaczekaj na zakończenie procesu.

root @ master: ~ # nano / etc / default / nis
# Czy jesteśmy serwerem NIS i jeśli tak, jakiego rodzaju (wartości: false, slave, master)?
NISSERVER = mistrz

root @ master: ~ # nano /etc/ypserv.securenets # securenets Ten plik definiuje prawa dostępu do twojego serwera NIS # dla klientów NIS (i serwerów slave - ypxfrd również używa tego pliku). Ten plik zawiera pary maski sieci / sieci. # Adres IP klienta musi być zgodny z co najmniej jednym # z nich. # # Można użyć słowa „host” zamiast maski sieci o numerze # 255.255.255.255. W tym pliku # dozwolone są tylko adresy IP, a nie nazwy hostów. # # Zawsze zezwalaj na dostęp dla lokalnego hosta 255.0.0.0 127.0.0.0 # Ta linia daje dostęp każdemu. PROSZĘ REGULOWAĆ! # 0.0.0.0 0.0.0.0
255.255.255.0 192.168.10.0

root @ master: ~ # nano / var / yp / Makefile # Czy powinniśmy scalić plik passwd z plikiem shadow? # MERGE_PASSWD = true | false
MERGE_PASSWD = true

# Czy powinniśmy scalić plik grupy z plikiem gshadow? # MERGE_GROUP = true | false
MERGE_GROUP = true

Budujemy bazę danych NIS

root @ master: ~ # / usr / lib / yp / ypinit -m
W tym momencie musimy stworzyć listę hostów, na których będą działać serwery NIS. master.swl.fan znajduje się na liście hostów serwera NIS. Kontynuuj dodawanie nazw pozostałych hostów, po jednej w każdym wierszu. Gdy skończysz z listą, wpisz a . następny host do dodania: master.swl.fan następny host do dodania: Aktualna lista serwerów NIS wygląda następująco: master.swl.fan Czy to prawda? [y / n: y] Potrzebujemy kilku minut na zbudowanie baz danych ... make [1]: Opuszczanie katalogu '/var/yp/swl.fan' master.swl.fan został ustawiony jako główny serwer NIS . Teraz możesz uruchomić ypinit -s master.swl.fan na wszystkich serwerach slave.

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

Dodajemy lokalnych użytkowników

root @ master: ~ # adduser bilbo
Dodawanie użytkownika `bilbo '... Dodawanie nowej grupy` bilbo' (1001) ... Dodawanie nowego użytkownika` bilbo '(1001) z grupą` bilbo' ... Tworzenie katalogu domowego `/ home / bilbo ' ... Kopiowanie plików z `/ etc / skel '... Wprowadź nowe hasło UNIX: Wpisz ponownie nowe hasło UNIX: passwd: hasło zaktualizowane poprawnie Zmiana informacji użytkownika dla bilbo Wprowadź nową wartość lub naciśnij klawisz ENTER, aby użyć domyślne Imię i nazwisko []: Numer pokoju Bilbo Bagins []: Telefon służbowy []: Telefon domowy []: Inne []: Czy informacje są prawidłowe? [T / n]

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

i tak dalej.

root @ master: ~ # finger legolas
Login: legolas Imię: Legolas Archer Katalog: / home / legolas Shell: / bin / bash Nigdy nie zalogowany. Bez poczty. Brak planu.

Aktualizujemy bazę danych NIS

root @ master: / var / yp # make
make [1]: Przechodzenie do katalogu '/var/yp/swl.fan' Aktualizowanie passwd.byname ... Aktualizowanie passwd.byuid ... Aktualizowanie group.byname ... Aktualizowanie group.bygid ... Aktualizowanie netid.byname. .. Aktualizowanie shadow.byname ... Ignorowane -> połączone z hasłem make [1]: Opuszczanie katalogu „/var/yp/swl.fan”

Dodajemy opcje NIS do isc-dhcp-server

root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-update-style interim; aktualizacje ddns włączone; ddns-domainname "swl.fan."; ddns-rev-domainname "in-addr.arpa."; ignoruj ​​aktualizacje klienta; aktualizacja optymalizacji fałsz; autorytatywny; opcja IP-forwarding wyłączona; opcja nazwa-domeny "swl.fan"; include "/etc/dhcp/dhcp.key"; zone swl.fan. {pierwotne 127.0.0.1; klucz dhcp-key; } strefa 10.168.192.in-addr.arpa. {pierwotne 127.0.0.1; klucz dhcp-key; } wspólna sieć lokalna redlokalna {podsieć 192.168.10.0 maska ​​sieci 255.255.255.0 {opcjonalne routery 192.168.10.1; opcja maska ​​podsieci 255.255.255.0; opcja broadcast-address 192.168.10.255; opcja serwery nazw-domen 192.168.10.5; opcja serwery nazw-netbios 192.168.10.5; opcja ntp-servers 192.168.10.5; opcja serwery czasu 192.168.10.5;
                opcja nis-domain "swl.fan";
                opcja serwery nis-192.168.10.5;
                zakres 192.168.10.30 192.168.10.250; }}

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

Instalacja klienta NIS

  • Zaczynamy od czystej instalacji - bez interfejsu graficznego - Debiana 8 „Jessie”.
root @ mail: ~ # nazwa_hosta -f
poczta.swl.fan

root @ mail: ~ # adres ip
2: eth0: mtu 1500 kolejka pfifo_fast stan UP grupa domyślna 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 zakres globalny eth0

root @ mail: ~ # aptitude zainstaluj nis
root @ mail: ~ # nano /etc/yp.conf # # yp.conf Plik konfiguracyjny dla procesu ypbind. Możesz tutaj ręcznie zdefiniować # serwery NIS, jeśli nie można ich znaleźć # poprzez rozgłaszanie w sieci lokalnej (co jest domyślne). # # Zobacz stronę podręcznika ypbind, aby poznać składnię tego pliku. # # WAŻNE: dla "ypserver" użyj adresów IP lub upewnij się, że # host znajduje się w / etc / hosts. Ten plik jest # interpretowany tylko raz, a jeśli DNS nie jest jeszcze osiągalny, to ypserver nie może zostać # rozwiązany, a ypbind nigdy nie połączy się z serwerem. # ypserver ypserver.network.com ypserver master.swl.fan domena swl.fan

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Przykładowa konfiguracja funkcji GNU Name Service Switch. # Jeśli masz zainstalowane pakiety `glibc-doc-reference 'i` info', spróbuj: #` info libc "Name Service Switch" 'w celu uzyskania informacji o tym pliku. passwd: kompatybil nis grupa: kompatybil nis shadow: kompatybil nis gshadow: pliki hosty: pliki dns sieci nis: protokoły plików: usługi plików db: pliki db ethers: pliki db rpc: pliki db grupa sieciowa: nis

root @ mail: ~ # nano /etc/pam.d/common-session
Aby uzyskać szczegółowe informacje, # pam-auth-update (8).
sesja opcjonalna pam_mkhomedir.so skel = / etc / skel umask = 077
# tutaj są moduły na pakiet (blok „Podstawowy”)

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

Zamykamy sesję i uruchamiamy ją ponownie, ale z użytkownikiem zarejestrowanym w bazie danych NIS pod adresem master.swl.fan.

root @ mail: ~ # wyjście
wyloguj Połączenie z pocztą zamknięte.

buzz @ sysadmin: ~ $ ssh legolas @ mail
hasło legolas @ mail: Tworzenie katalogu '/ home / legolas'. Programy dołączone do systemu Debian GNU / Linux są wolnym oprogramowaniem; dokładne warunki dystrybucji każdego programu są opisane w poszczególnych plikach w / usr / share / doc / * / copyright. Debian GNU / Linux nie jest objęty ABSOLUTNIE ŻADNĄ GWARANCJĄ w zakresie dozwolonym przez obowiązujące prawo.
legolas @ mail: ~ $ pwd
/ home / legolas
legolas @ mail: ~ $ 

Zmieniamy hasło użytkownika legolas i sprawdzamy

legolas @ mail: ~ $ yppasswd 
Zmiana informacji o koncie NIS dla legolas na master.swl.fan. Proszę podać stare hasło: legolas Zmiana hasła NIS dla legolasa na master.swl.fan. Wprowadź nowe hasło: archer Hasło musi zawierać zarówno duże, jak i małe litery lub inne niż litery. Wprowadź nowe hasło: Arquero2017 Wpisz ponownie nowe hasło: Arquero2017 Hasło NIS zostało zmienione na master.swl.fan.

legolas @ mail: ~ $ wyjście
wyloguj Połączenie z pocztą zamknięte.

buzz @ sysadmin: ~ $ ssh legolas @ mail
hasło legolas @ mail: Arquero2017

Programy dołączone do systemu Debian GNU / Linux są wolnym oprogramowaniem; dokładne warunki dystrybucji każdego programu są opisane w poszczególnych plikach w / usr / share / doc / * / copyright. Debian GNU / Linux jest objęty ABSOLUTNIE ŻADNĄ GWARANCJĄ, w zakresie dozwolonym przez obowiązujące prawo. Ostatnie logowanie: sob., 27 maja, 12:51:50 2017, z sysadmin.swl.fan
legolas @ mail: ~ $

Usługa NIS zaimplementowana na poziomie serwera i klienta działa poprawnie.

LDAP

Z Wikipedii:

  • LDAP to skrót od Lightweight Directory Access Protocol (w języku hiszpańskim Lightweight / Simplified Directory Access Protocol), który odnosi się do protokołu na poziomie aplikacji, który umożliwia dostęp do uporządkowanej i rozproszonej usługi katalogowej w celu wyszukiwania różnych informacji w sieci środowiska. LDAP jest również uważany za bazę danych (chociaż jej system przechowywania może być inny), do której można zapytać.Katalog to zbiór obiektów z atrybutami zorganizowanymi w sposób logiczny i hierarchiczny. Najczęstszym przykładem jest książka telefoniczna, która składa się z szeregu nazwisk (osób lub organizacji) ułożonych alfabetycznie, przy czym każda nazwa ma przypisany adres i numer telefonu. Aby lepiej zrozumieć, jest to książka lub folder, w którym zapisane są nazwiska osób, numery telefonów i adresy i są ułożone alfabetycznie.

    Drzewo katalogów LDAP czasami odzwierciedla różne granice polityczne, geograficzne lub organizacyjne, w zależności od wybranego modelu. Obecne wdrożenia LDAP zwykle używają nazw systemu nazw domen (DNS) do tworzenia struktury wyższych poziomów hierarchii. Podczas poruszania się w dół katalogu mogą pojawiać się wpisy reprezentujące osoby, jednostki organizacyjne, drukarki, dokumenty, grupy osób lub wszystko, co reprezentuje daną pozycję w drzewie (lub wiele pozycji).

    Zwykle przechowuje informacje uwierzytelniające (nazwa użytkownika i hasło) i służy do uwierzytelniania, chociaż możliwe jest przechowywanie innych informacji (dane kontaktowe użytkownika, lokalizacja różnych zasobów sieciowych, uprawnienia, certyfikaty itp.). Podsumowując, LDAP jest ujednoliconym protokołem dostępu do zestawu informacji w sieci.

    Obecna wersja to LDAPv3 i jest zdefiniowana w RFCs RFC 2251 i RFC 2256 (dokument podstawowy LDAP), RFC 2829 (metoda uwierzytelniania dla LDAP), RFC 2830 (rozszerzenie dla TLS) i RFC 3377 (specyfikacja techniczna)

    .

Na długo, Protokół LDAP - i jego bazy danych kompatybilne lub nie z OpenLDAP - jest obecnie najczęściej używany w większości systemów uwierzytelniania. Jako przykład poprzedniej instrukcji podajemy poniżej kilka nazw systemów - Wolny lub Prywatny - które używają baz danych LDAP jako zaplecza do przechowywania wszystkich swoich obiektów:

  • OpenLDAP
  • Serwer katalogów Apache
  • Serwer katalogów Red Hat - 389 DS
  • Novell Directory Services - eDirectory
  • SUN Microsystems Open DS
  • Menedżer tożsamości firmy Red Hat
  • BezpłatneIPA
  • Klasyczny kontroler domeny Samba NT4.
    Chcemy wyjaśnić, że ten system był rozwinięciem Team Samba z Sambą 3.xxx + OpenLDAP as Backend. Microsoft nigdy nie wdrożył czegoś takiego. Przeskoczono z kontrolerów domeny NT 4 do ich aktywnych katalogów
  • Samba 4 Active Directory - kontroler domeny
  • ClearOS
  • zentyal
  • Serwer korporacyjny UCS Uninvention
  • Microsoft Active Directory

Każda implementacja ma swoją własną charakterystykę, a najbardziej standardowa i kompatybilna to OpenLDAP.

Active Directory, czy to oryginał od Microsoft, czy ten z Samby 4, stanowi połączenie kilku głównych komponentów, którymi są:

Nie wolno nam mylić Usługa katalogowa o Usługa katalogowa z rozszerzeniem Active Directory o Active Directory. Te pierwsze mogą, ale nie muszą, hostować uwierzytelnianie Kerberos, ale nie oferują usługi Microsoft Network dostarczanej przez domenę Windows, ani nie mają kontrolera domeny Windows jako takiego.

Usługi katalogowej lub usługi katalogowej można używać do uwierzytelniania użytkowników w sieci mieszanej z klientami UNIX / Linux i Windows. W tym drugim przypadku na każdym kliencie musi być zainstalowany program, który działa jako pośrednik między usługą katalogową a samym klientem Windows, taki jak Wolne Oprogramowanie. strona.

Usługa katalogowa z OpenLDAP

  • Zaczynamy od czystej instalacji - bez interfejsu graficznego - Debiana 8 „Jessie”, z tą samą nazwą maszyny „master”, która została użyta do instalacji NIS, a także do konfiguracji jego interfejsu sieciowego i pliku /etc/resolv.conf. Zainstalowaliśmy ntp, bind9 i isc-dhcp-server dla tego nowego serwera, nie zapominając o globalnych kontrolach poprawności działania trzech poprzednich usług.
root @ master: ~ # aptitude install slapd ldap-utils

Konfiguracja pakietu

┌┌──────────────────┤┤┤. Konfiguracja Slapd ├─────────────────────┐ │ Wprowadź hasło dla wpisu administratora katalogu │ │ LDAP. │ │ │ │ Hasło administratora: │ │ │ │ ******** _________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────┘

Sprawdzamy wstępną konfigurację

root @ master: ~ # slapcat
dn: dc = swl, dc = fan
objectClass: top objectClass: dcObject objectClass: organization o: swl.fan dc: swl structureObjectClass: pozycja organizacji UUID: c8510708-da8e-1036-8fe1-71d022a16904 creatorsName: cn = admin, dc = swl, dc = wpis fanem createTimestamp20170531205219Z20170531205219.833955: : 000000ZN000 wpis Z # 000000 # 20170531205219 # XNUMX modyfikatory Nazwa: cn = admin, dc = swl, dc = fan zmodyfikuj Sygnatura czasowa: XNUMXZ

dn: cn = admin, dc = swl, dc = fan
objectClass: simpleSecurityObject objectClass: organizationalRole cn admin Opis: administrator LDAP userPassword :: e1NTSEF9emJNSFU1R3l2OWVEN0pmTmlYOVhKSUF4ekY1bU9YQXc = structuralObjectClass: organizationalRole entryUUID: c851178e-da8fe1036e-entrySw8d-2-dm71c-022-entrySw16904e-da20170531205219fe-20170531205219.834422-entry-000000-fancimes-c000emp000000a20170531205219-entrySwXNUMX -cXNUMXempXNUMXeXNUMXpmTmlYOVhKSUXNUMX-entry-XNUMXc-XNUMX-f-XNUMX-entry-XNUMX-c-XNUMX-fcf-XNUMX-entry-XNUMX-cXNUMX-daXNUMXfe-XNUMX-entry-XNUMX-fancimes-entry-XNUMX-entry-ufr-ole -wpis: XNUMXZ # XNUMX # XNUMX # XNUMX modyfikatory Nazwa: cn = admin, dc = swl, dc = fan zmodyfikuj Znacznik czasu: XNUMXZ

Modyfikujemy plik /etc/ldap/ldap.conf

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

Jednostki organizacyjne i grupa ogólna «użytkownicy»

Dodajemy minimalne niezbędne Jednostki Organizacyjne, a także grupę Posix «użytkownicy», do której będziemy członkami wszystkich użytkowników, na przykładzie wielu systemów, które mają tę grupę «Użytkownicy«. Nazywamy to nazwą „użytkowników”, aby uniknąć możliwych konfliktów z grupą. «użytkownik" systemu.

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

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f base.ldif
Wprowadź hasło LDAP: dodawanie nowego wpisu "ou = people, dc = swl, dc = fan" dodawanie nowego wpisu "ou = groups, dc = swl, dc = fan"

Sprawdzamy dodane wpisy

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

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

root @ master: ~ # ldapsearch -x cn = użytkownicy
# użytkownicy, grupy, swl.fan dn: cn = użytkownicy, ou = grupy, dc = swl, dc = fan object Klasa: posixGroup cn: liczba użytkowników gid: 10000

Dodajemy kilku użytkowników

Hasło, które musimy zadeklarować w LDAP, należy uzyskać za pomocą polecenia slappasswd, która zwraca zaszyfrowane hasło SSHA.

Hasło dla użytkownika:

root @ master: ~ # slappasswd 
Nowe hasło: wprowadź ponownie nowe hasło: 
{SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp

Hasło dla użytkownika legolas

root @ master: ~ # slappasswd 
Nowe hasło: wprowadź ponownie nowe hasło: 
{SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD

Hasło dla użytkownika gandalf

root @ master: ~ # slappasswd 
Nowe hasło: wprowadź ponownie nowe hasło: 
{SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u

root @ master: ~ # nano users.ldif
dn: uid = strides, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: strides cn: strides givenName: Strides sn: El Rey userPassword: {SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp
uidNumber: 10000 gidNumber: 10000 mail: 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 dane : Legolas sn: Użytkownik Archer Hasło: {SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD
uidNumber: 10001 gidNumber: 10000 mail: legolas@swl.fan
gecos: Legolas Archer loginShell: / bin / bash homeDirectory: / home / legolas dn: uid = gandalf, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount Uid: gandalf cn: gandalf podano Imię: Gandalf sn: Hasło użytkownika kreatora: {SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u
uidNumber: 10002 gidNumber: 10000 mail: gandalf@swl.fan
gecos: Gandalf The Wizard loginShell: / bin / bash homeDirectory: / home / gandalf

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f users.ldif
Wprowadź hasło LDAP: dodanie nowego wpisu "uid = strides, ou = people, dc = swl, dc = fan" dodanie nowego wpisu "uid = legolas, ou = people, dc = swl, dc = fan" dodanie nowego wpisu "uid = gandalf, ou = ludzie, dc = swl, dc = fan "

Sprawdzamy dodane wpisy

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

Bazą danych slpad zarządzamy za pomocą narzędzi konsoli

Wybieramy pakiet ldapscripts za takie zadanie. Procedura instalacji i konfiguracji jest następująca:

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 = groups' USUFFIX = 'ou = people' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10003 # MIDSTART = 10000 # Polecenia klienta OpenLDAP LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posix / etcPLoup "=" posixGroup "= . /ldapadduser.template "PASSWORDGEN =" echo% u "

Zwróć uwagę, że skrypty używają poleceń pakietu narzędzia ldap. Biegać dpkg -L ldap-utils | grep / bin wiedzieć, czym one są.

root @ master: ~ # sh -c "echo -n 'hasło-administratora'> \
/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: nadane imię: sn: wyświetlana nazwa: uidNumber: gidNumber: 10000 homeDirectory: loginShell: Poczta: @ swl.fan gekony: opis: Konto użytkownika
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
## usuwamy komentarz UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Dodajemy użytkownika „bilbo” i czynimy go członkiem grupy „users”

root @ master: ~ # ldapadduser bilbo użytkownicy
[dn: uid = bilbo, ou = people, dc = swl, dc = fan] Wprowadź wartość dla „givenName”: Bilbo [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Wprowadź wartość dla „ sn ": Bagins [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Wprowadź wartość dla" displayName ": Bilbo Bagins Pomyślnie dodano użytkownika bilbo do LDAP Pomyślnie ustawiono hasło dla użytkownika bilbo

root @ master: ~ # ldapsearch -x uid = bilbo
# bilbo, people, swl.fan dn: uid = bilbo, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: bilbo cn: bilbo givenName: Bilbo sn: Bagins displayName: Bilbo Bagins uidNumber: 10003 gidNumber: 10000 homeDirectory: / home / bilbo loginShell: / bin / bash mail: bilbo@swl.fan
gecos: bilbo description: Konto użytkownika

Aby zobaczyć hash hasła użytkownika bilbo, konieczne jest przeprowadzenie zapytania z uwierzytelnieniem:

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

Aby usunąć użytkownika bilbo, wykonujemy:

root @ master: ~ # ldapdelete -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo, ou = people, dc = swl, dc = fan
Wprowadź hasło LDAP:

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

Bazą danych slapd zarządzamy poprzez interfejs WWW

Mamy funkcjonalną usługę katalogową i chcemy łatwiej nią zarządzać. Istnieje wiele programów przeznaczonych do tego zadania, takich jak phpldapadmin, menedżer-konta-ldapitp., które są dostępne bezpośrednio z repozytoriów. Możemy również zarządzać usługą katalogową za pośrednictwem Studio katalogów Apache, które musimy pobrać z Internetu.

Aby uzyskać więcej informacji prosimy odwiedzić https://blog.desdelinux.net/ldap-introduccion/i następnych 6 artykułów.

Klient LDAP

Etap:

Powiedz, że mamy zespół poczta.swl.fan jako serwer pocztowy zaimplementowany, jak widzieliśmy w artykule Postfix + Dovecot + Squirrelmail i lokalni użytkownicy, który chociaż został opracowany na CentOS, może również służyć jako przewodnik dla Debiana i wielu innych dystrybucji Linuksa. Chcemy, aby oprócz użytkowników lokalnych, których już zadeklarowaliśmy, użytkownicy przechowywani w bazie danych OpenLDAP istniejącej w master.swl.fan. Aby osiągnąć powyższe, musimy «planować»Do użytkowników LDAP jako użytkowników lokalnych na serwerze poczta.swl.fan. To rozwiązanie obowiązuje również dla każdej usługi opartej na uwierzytelnianiu PAM. Ogólna procedura dla Debianjest następująca:

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

  ┌────────────────────┤ Konfiguracja libnss-ldap ├─────────────────────┐ │ Wprowadź URI („Uniform Resource Identifier” lub │ │ Uniform Resource Identifier) ​​serwera LDAP. Ten ciąg jest podobny do │ │ «ldap: //: / ». Możesz także │ │ użyć «ldaps: // » lub „ldapi: //”. Numer portu jest opcjonalny. │ │ │ │ Zaleca się używanie adresu IP, aby uniknąć awarii, gdy usługi nazw domen │ │ nie są dostępne. │ │ │ │ Identyfikator URI serwera LDAP: │ │ │ │ ldap: //master.swl.fan__________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ───────────────────────────┘ ┌───────────────────── ┤ Konfiguracja libnss-ldap ├──────────────────────┐ │ Wprowadź nazwę wyróżniającą (DN) bazy wyszukiwania LDAP. Wiele witryn używa składników nazwy domeny do tego │ │ celu. Na przykład domena „example.net” użyłaby │ │ „dc = example, dc = net” jako nazwy wyróżniającej bazy wyszukiwania. │ │ │ │ Nazwa wyróżniająca (DN) bazy wyszukiwania: │ │ │ │ dc = swl, dc = fan ____________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libnss-ldap ├──────────────────────┐ │ Wprowadź wersję protokołu LDAP, której ma używać ldapns. │ │ Zaleca się użycie najwyższego dostępnego numeru wersji. │ │ │ │ Wersja LDAP do użycia: │ │ │ │                                     3                                     │ │ 2 │ │ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libnss-ldap ├──────────────────────┐ │ Wybierz konto, które będzie używane do zapytań nss z uprawnieniami roota │.. │ │ │ │ Uwaga: Aby ta opcja działała, konto musi mieć uprawnienia │ │ dostępu do atrybutów LDAP skojarzonych z użytkownikiem │ │ wpisów „shadow”, a także haseł użytkowników i │ │ grup . │ │ │ │ Konto LDAP dla roota: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libnss-ldap ├─────────────────────┐ │ Wprowadź hasło, które będzie używane, gdy libnss-ldap spróbuje │ │ uwierzytelnić się w katalogu LDAP z kontem użytkownika root LDAP. │ │ │ │ Hasło zostanie zapisane w oddzielnym pliku │ │ („/etc/libnss-ldap.secret”), do którego ma dostęp tylko root. │ │ │ │ Jeśli wprowadzisz puste hasło, stare hasło zostanie ponownie użyte. │ │ │ │ Hasło do głównego konta LDAP: │ │ │ │ ******** ________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ────────────────────────────┘ ┌──────────────────── ─┤ Konfiguracja libnss-ldap ├──────────────────────┐ │ │ │ nsswitch.conf nie jest zarządzany automatycznie │ │ │ │ Musisz zmodyfikować swój plik "/etc/nsswitch.conf "aby użyć źródła danych LDAP, jeśli chcesz, aby pakiet libnss-ldap działał. │ │ Możesz użyć przykładowego pliku │ │ w "/usr/share/doc/libnss-ldap/examples/nsswitch.ldap" jako przykładu konfiguracji nsswitch lub │ │ możesz skopiować go do bieżącej konfiguracji. │ │ │ │ Zauważ, że przed usunięciem tego pakietu może być wygodne │ │ usunięcie wpisów "ldap" z pliku nsswitch.conf, aby services │ podstawowe usługi nadal działały. │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libpam- ldap ├──────────────────────┐ │ │ │ Ta opcja pozwala narzędziom haseł używającym PAM do zmiany lokalnych haseł. │ │ │ │ Hasło do konta administratora LDAP będzie przechowywane w oddzielnym pliku │ │, który może odczytać tylko administrator. │ │ │ │ Ta opcja powinna być wyłączona, jeśli montujesz "/ etc" przez NFS. │ │ │ │ Czy chcesz zezwolić kontu administratora LDAP na działanie jako as │ administrator lokalny? │ │ │ │                                            │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libpam- ldap ├──────────────────────┐ │ │ │ Wybierz, czy serwer LDAP ma wymuszać identyfikację przed uzyskaniem wpisów entradas │. │ │ │ │ To ustawienie jest rzadko potrzebne. │ │ │ │ Czy użytkownik musi mieć dostęp do bazy danych LDAP? │ │ │ │                                               │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libpam- ldap ├──────────────────────┐ │ Wprowadź nazwę konta administratora LDAP. │ │ │ │ To konto będzie automatycznie używane do zarządzania bazą danych, que │ musi mieć odpowiednie uprawnienia administracyjne. │ │ │ │ Konto administratora LDAP: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌─────────────────── ──┤ Konfiguracja libpam- ldap ├──────────────────────┐ │ Wprowadź hasło do konta administratora. │ │ │ │ Hasło zostanie zapisane w pliku „/etc/pam_ldap.secret”. Administrator │ │ będzie jedyną osobą, która może odczytać ten plik i pozwoli │ │ libpam-ldap automatycznie kontrolować zarządzanie połączeniami w bazie danych │ │. │ │ │ │ Jeśli pozostawisz to pole puste, zostanie ponownie użyte poprzednie zapisane hasło │ │. │ │ │ │ Hasło administratora LDAP: │ │ │ │ ******** _________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘  

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Przykładowa konfiguracja funkcji GNU Name Service Switch. # Jeśli masz zainstalowane pakiety `glibc-doc-reference 'i` info', spróbuj: #` info libc "Name Service Switch" 'w celu uzyskania informacji o tym pliku. passwd: kompatybil ldap
grupa: kompatybil ldap
cień: kompatybil ldap
gshadow: pliki hosty: pliki dns sieci: protokoły plików: usługi plików db: pliki db ethers: pliki db rpc: pliki db grupa sieciowa: nis

Edytujmy plik /etc/pam.d/wspólne-hasłoprzechodzimy do linii 26 i usuwamy wartość «użyj_autoryzacji":

root @ mail: ~ # nano /etc/pam.d/common-password
# # /etc/pam.d/common-password - moduły związane z hasłami, wspólne dla wszystkich usług # # Ten plik jest zawarty w innych plikach konfiguracyjnych PAM związanych z usługami, # i powinien zawierać listę modułów definiujących usługi # służy do zmiany haseł użytkowników. Wartość domyślna to pam_unix. # Wyjaśnienie opcji pam_unix: # # Opcja "sha512" włącza solone hasła SHA512. Bez tej opcji wartością domyślną jest krypt Unix. W poprzednich wersjach korzystano z opcji „md5”. # # Opcja "obscure" zastępuje starą opcję `OBSCURE_CHECKS_ENAB 'w # login.defs. # # Zobacz stronę podręcznika pam_unix po inne opcje. # Od pam 1.0.1-6 ten plik jest domyślnie zarządzany przez pam-auth-update. # Aby to wykorzystać, zaleca się skonfigurowanie dowolnych # lokalnych modułów przed lub po domyślnym bloku i użycie # pam-auth-update do zarządzania wyborem innych modułów. Aby uzyskać szczegółowe informacje, zobacz # pam-auth-update (8). # tutaj są moduły dla poszczególnych pakietów (blok "Primary") hasło [sukces = 2 domyślne = ignoruj] pam_unix.so niejasne sha512
hasło [sukces = 1 użytkownik_unknown = ignoruj ​​domyślne = zgiń] pam_ldap.so try_first_pass
# tutaj jest rozwiązanie awaryjne, jeśli żaden moduł się nie powiedzie, hasło wymagane pam_deny.so # uzupełnij stos dodatnią wartością zwracaną, jeśli jeszcze jej nie ma; # pozwala to uniknąć zwracania błędu tylko dlatego, że nic nie ustawia kodu sukcesu # ponieważ każdy z powyższych modułów po prostu przeskakuje wokół wymaganego hasła pam_permit.so # i tutaj jest więcej modułów na pakiet (blok "Dodatkowe") auth-update config

Na wypadek, gdybyśmy potrzebowali lokalnego logowania użytkowników przechowywanych w LDAP i chcemy, aby ich foldery były tworzone automatycznie dom, musimy edytować plik /etc/pam.d/wspólna sesja i dodaj następujący wiersz na końcu pliku:

sesja opcjonalna pam_mkhomedir.so skel = / etc / skel umask = 077

W opracowanym wcześniej przykładzie usługi katalogowej OpenLDAP jedynym utworzonym użytkownikiem lokalnym był użytkownik brzęczenienatomiast w LDAP tworzymy użytkowników kroki, Legolas, GandalfI Bilbo. Jeśli dotychczas wykonane konfiguracje są poprawne, powinniśmy być w stanie wyświetlić listę użytkowników lokalnych i tych zmapowanych jako lokalnych, ale przechowywanych na zdalnym serwerze LDAP:

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

Po zmianach w uwierzytelnianiu systemu ważne jest ponowne uruchomienie serwera, jeśli nie mamy usługi krytycznej:

root @ mail: ~ # reboot

Później rozpoczynamy lokalną sesję na serwerze poczta.swl.fan z poświadczeniami użytkownika przechowywanymi w bazie danych LDAP master.swl.fan. Możemy też spróbować zalogować się przez SSH.

buzz @ sysadmin: ~ $ ssh gandalf @ mail
gandalf @ mail's password: Tworzenie katalogu '/ home / gandalf'. Programy dołączone do systemu Debian GNU / Linux są wolnym oprogramowaniem; dokładne warunki dystrybucji każdego programu są opisane w poszczególnych plikach w / usr / share / doc / * / copyright. Debian GNU / Linux nie jest objęty ABSOLUTNIE ŻADNĄ GWARANCJĄ w zakresie dozwolonym przez obowiązujące prawo.
gandalf @ mail: ~ $ su
Hasło:

root @ mail: / home / gandalf # getent group
buzz: x: 1001: użytkownicy: *: 10000:

root @ mail: / home / gandalf # exit
wyjście

gandalf @ mail: ~ $ ls -l / home /
łącznie 8 drwxr-xr-x 2 buzz buzz     4096 17 czerwca 12:25 buzz drwx ------ 2 gandalf użytkowników 4096 17 czerwca 13:05 gandalf

Usługa katalogowa zaimplementowana na poziomie serwera i klienta działa poprawnie.

Kerberos

Z Wikipedii:

  • Kerberos to protokół uwierzytelniania w sieci komputerowej utworzony przez MIT która umożliwia dwóm komputerom w niezabezpieczonej sieci bezpieczne potwierdzenie swojej tożsamości. Jego projektanci skupili się najpierw na modelu klient-serwer i zapewnia wzajemne uwierzytelnianie: zarówno klient, jak i serwer weryfikują swoją tożsamość. Wiadomości uwierzytelniające są chronione przed podsłuch y powtórz ataki.

    Protokół Kerberos jest oparty na szyfrowaniu klucza symetrycznego i wymaga zaufanej strony trzeciej. Ponadto istnieją rozszerzenia protokołu umożliwiające korzystanie z kryptografii klucza asymetrycznego.

    Protokół Kerberos jest oparty na Protokół Needhama-Schroedera. Korzysta z zaufanej strony trzeciej, zwanej „Centrum dystrybucji kluczy” (KDC), która składa się z dwóch oddzielnych części logicznych: „serwera uwierzytelniania” (AS lub serwera uwierzytelniania) i „serwera wystawiającego bilety” (TGS lub serwer przyznawania biletów) ). Kerberos działa w oparciu o „bilety”, które służą do potwierdzania tożsamości użytkowników.

    Kerberos utrzymuje bazę danych tajnych kluczy; Każda jednostka w sieci - czy to klient, czy serwer - współdzieli tajny klucz znany tylko sobie i Kerberosowi. Znajomość tego klucza służy do potwierdzenia tożsamości podmiotu. W celu komunikacji między dwoma podmiotami Kerberos generuje klucz sesji, którego mogą użyć do zabezpieczenia swoich problemów.

Wady protokołu Kerberos

De uratowany:

Mimo to Kerberos usuwa typowe zagrożenie bezpieczeństwa, może być trudne do wdrożenia z różnych powodów:

  • Migracja haseł użytkowników ze standardowej bazy danych haseł UNIX, takich jak / etc / passwd lub / etc / shadow, do bazy danych haseł Kerberos, może być żmudne i nie ma szybkiego mechanizmu do wykonania tego zadania.
  • Kerberos zakłada, że ​​każdy użytkownik jest zaufany, ale używa niezaufanego komputera w niezaufanej sieci. Jego głównym celem jest zapobieganie przesyłaniu niezaszyfrowanych haseł przez sieć. Jeśli jednak jakikolwiek inny użytkownik, inny niż odpowiedni użytkownik, ma dostęp do automatu biletowego (KDC) w celu uwierzytelnienia, Kerberos byłby zagrożony.
  • Aby aplikacja korzystała z protokołu Kerberos, kod musi zostać zmodyfikowany w celu wykonywania odpowiednich wywołań bibliotek Kerberos. Aplikacje zmodyfikowane w ten sposób są uważane za kerberizowane. W przypadku niektórych aplikacji może to oznaczać nadmierny wysiłek programistyczny ze względu na rozmiar aplikacji lub jej projekt. W przypadku innych niekompatybilnych aplikacji należy wprowadzić zmiany w sposobie komunikacji serwera sieciowego i jego klientów; znowu, może to zająć sporo czasu programowania. Ogólnie rzecz biorąc, aplikacje o zamkniętym kodzie źródłowym, które nie obsługują protokołu Kerberos, są zwykle najbardziej problematyczne.
  • Wreszcie, jeśli zdecydujesz się używać protokołu Kerberos w swojej sieci, musisz zdać sobie sprawę, że jest to wybór typu wszystko albo nic. Decydując się na używanie protokołu Kerberos w swojej sieci, należy pamiętać, że jeśli jakiekolwiek hasła są przekazywane do usługi, która nie używa protokołu Kerberos do uwierzytelniania, istnieje ryzyko przechwycenia pakietu. Dlatego Twoja sieć nie odniesie żadnych korzyści z używania protokołu Kerberos. Aby zabezpieczyć swoją sieć za pomocą protokołu Kerberos, należy używać tylko kerberizowanych wersji wszystkich aplikacji klient / serwer, które wysyłają niezaszyfrowane hasła lub nie używają żadnej z tych aplikacji w sieci.

Ręczne wdrażanie i konfigurowanie OpenLDAP jako zaplecza Kerberos nie jest łatwym zadaniem. Jednak później zobaczymy, że Samba 4 Active Directory - kontroler domeny integruje się w przejrzysty sposób z administratorem systemu, serwerem DNS, siecią Microsoft i jej kontrolerem domeny, serwerem LDAP jako zapleczem prawie wszystkich jego obiektów oraz usługa uwierzytelniania oparta na protokole Kerberos jako podstawowe składniki usługi Active Directory w stylu firmy Microsoft.

Do tej pory nie mieliśmy potrzeby wdrażania „sieci Kerberized”. Dlatego nie pisaliśmy o tym, jak zaimplementować Kerberos.

Samba 4 Active Directory - kontroler domeny

Ważne:

Nie ma lepszej dokumentacji niż strona wiki.samba.org. Szanujący się sysadmin powinien odwiedzić tę witrynę - w języku angielskim - i przeglądać dużą liczbę stron poświęconych w całości Sambie 4, napisanych przez samego Team Samba. Nie sądzę, aby w Internecie była dostępna dokumentacja, która mogłaby go zastąpić. Nawiasem mówiąc, zwróć uwagę na liczbę odwiedzin widoczną na dole każdej strony. Przykładem tego jest to, że Twoja strona główna lub «Strona główna» została odwiedzona 276,183 do dziś, 20 czerwca 2017 r., do 10:10 czasu wschodniego. Ponadto dokumentacja jest bardzo aktualna, ponieważ ta strona została zmodyfikowana 6 czerwca.

Z Wikipedii:

Samba to bezpłatna implementacja protokołu udostępniania plików Microsoft Windows (dawniej nazywanego SMB, ostatnio przemianowanego na CIFS) dla systemów typu UNIX. W ten sposób możliwe jest, że komputery z systemem GNU / Linux, Mac OS X lub Unix ogólnie wyglądają jak serwery lub działają jako klienci w sieciach Windows. Samba umożliwia także użytkownikom sprawdzanie poprawności jako podstawowego kontrolera domeny (PDC), jako członka domeny, a nawet jako domena Active Directory w sieciach Windows; oprócz możliwości obsługi kolejek druku, współdzielonych katalogów i uwierzytelniania za pomocą własnego archiwum użytkownika.

Wśród systemów uniksopodobnych, na których Samba może działać, są dystrybucje GNU / Linux, Solaris i różne warianty BSD wśród że możemy znaleźć Mac OS X Server firmy Apple.

Samba 4 AD-DC z wewnętrznym DNS

  • Zaczynamy od czystej instalacji - bez interfejsu graficznego - Debiana 8 „Jessie”.

Wstępne kontrole

root @ master: ~ # nazwa hosta
mistrz
root @ master: ~ # nazwa hosta --fqdn
master.swl.fan
root @ master: ~ # ip adres
1 co: mtu 65536 qdisc noqueue stan UNKNOWN grupa domyślny link / pętla zwrotna 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft foreverferred_lft forever inet6 :: 1/128 zakres hosta valid_lft na zawsze preferowany_lft na zawsze 2: eth0: mtu 1500 kolejka pfifo_fast stan UNKNOWN grupa domyślna 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 zakres globalny eth0
       valid_lft foreverferred_lft forever inet6 fe80 :: 20c: 29ff: fe80: 3b3f / 64 łącze do zakresu valid_lft forever preferowane_lft forever
root @ master: ~ # cat /etc/resolv.conf
search swl.fan nameserver 127.0.0.1
  • Za pomocą którego deklarujemy oddział główny tylko, że to więcej niż wystarczające do naszych celów.
root @ master: ~ # cat /etc/apt/sources.list
deb http://192.168.10.1/repos/jessie-8.6/debian/ jessie główny
deb http://192.168.10.1/repos/jessie-8.6/debian/security/ jessie / updates główny

Postfix autorstwa Exima i narzędzi

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

  ┌────────────────────────┤ Konfiguracja Postfix ├───────────────────── ────┐ │ Wybierz typ konfiguracji serwera poczty, który najlepiej odpowiada Twoim │ │ potrzebom. │ │ │ │ Brak konfiguracji: │ │ Zachowuje bieżącą konfigurację nienaruszoną. │ │ Witryna internetowa: │ │ Poczta jest wysyłana i odbierana bezpośrednio przy użyciu protokołu SMTP. │ │ Internet z «smarthost»: │ │ Poczta jest odbierana bezpośrednio przez SMTP lub przez uruchomienie narzędzia como, takiego jak «fetchmail». Poczta wychodząca jest wysyłana przy użyciu │ │ „hosta inteligentnego”. │ │ Tylko poczta lokalna: │ │ Jedyna dostarczana poczta jest przeznaczona dla użytkowników lokalnych. Nie │ │ jest sieć. │ │ │ │ Ogólny typ konfiguracji poczty: │ │ │ │ Brak konfiguracji │ │ Strona internetowa │ │ Internet z "hostem inteligentnym" │ │ System satelitarny │ │                         Tylko poczta lokalna                                │ │ │ │ │ │                                     │ │ │ └────────────────────────────────────────────── ────────────────────────────┘ ┌──────────────────── ─────┤ Konfiguracja Postfixa ├─────────────────────────┐ "" Nazwa systemu pocztowego "to nazwa domeny, którą │ służy do „kwalifikowania” _ALL_ adresów e-mail bez nazwy domeny. Obejmuje to pocztę do i od "roota": proszę nie │ make wysyłać e-maili z twojego komputera root@example.org do │ │ mniej niż root@example.org zapytał. │ │ │ │ Inne programy będą używać tej nazwy. Musi to być unikalna │ │ kwalifikowana nazwa domeny (FQDN). │ │ │ │ Dlatego, jeśli adres e-mail na komputerze lokalnym to │ │ coś@example.org, poprawną wartością tej opcji będzie example.org. │ │ │ │ Nazwa systemu poczty: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘  

Czyścimy

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

Instalujemy wymagania do kompilacji Samby 4 i inne niezbędne pakiety

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

 ┌───────────────┤ Konfigurowanie uwierzytelniania Kerberos ├───────────────┐ │ Gdy użytkownicy próbują używać protokołu Kerberos i określają nazwę │ │ Principal lub user bez wyjaśnienia, do której administracyjnej domeny Kerberos należy │ │ jednostka główna, system przyjmie domyślną dziedzinę │ │.  Dziedzina domyślna może być również używana jako dziedzina │ │ usługi Kerberos działającej na komputerze lokalnym.  │ │ Zazwyczaj dziedziną domyślną jest nazwa │ │ lokalnej domeny DNS napisana wielkimi literami.  │ │ │ │ Domyślna dziedzina protokołu Kerberos w wersji 5: │ │ │ │ WENTYLATOR SWL __________________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌───────────────┤ Konfigurowanie uwierzytelniania Kerberos ├───────────────┐ │ Wprowadź nazwy serwerów Kerberos w dziedzinie SWL.FAN │ │ Kerberos, oddzielone spacjami.  │ │ │ │ Serwery Kerberos dla twojego królestwa: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └────────────────────────────────────────────── ─────────────────────────────┘ ┌───────────────┤ Konfigurowanie uwierzytelniania Kerberos ├───────────────┐ │ Wprowadź nazwę serwera administracyjnego (zmiana hasła) │ │ dla dziedziny Kerberos SWL.FAN.   

Powyższy proces zajął trochę czasu, ponieważ nie mamy jeszcze zainstalowanych żadnych usług DNS. Jednak domenę wybrałeś poprawnie za pomocą ustawień pliku / Etc / hosts. Pamiętaj o tym w pliku / Etc / resolv.conf zadeklarowaliśmy jako serwer nazw domenowych na adres IP 127.0.0.1.

Skonfigurujemy teraz plik / etc / ldap / ldap / conf

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

W przypadku zapytań za pomocą polecenia ldapsearch wykonane z użytkownika root są typu ldapsearch -x -W cn = xxxx, musimy utworzyć plik /root/.ldapsearch o następującej treści:

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

System plików musi obsługiwać ACL - listę kontroli dostępu

root @ master: ~ # nano / etc / fstab
# / etc / fstab: statyczne informacje o systemie plików. # # Użyj 'blkid', aby wydrukować uniwersalny, unikalny identyfikator dla urządzenia #; może to być używane z UUID = jako bardziej niezawodnym sposobem na nazwanie urządzeń, # który działa nawet wtedy, gdy dyski są dodawane i usuwane. Zobacz fstab (5). # # # / był na / dev / sda1 podczas instalacji UUID = 33acb024-291b-4767-b6f4-cf207a71060c / ext4 user_xattr, acl, barrier = 1, noatime, errors = remount-ro 0 1
# swap był włączony / dev / sda5 podczas instalacji UUID = cb73228a-615d-4804-9877-3ec225e3ae32 brak 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
# plik: testing_acl.txt # właściciel: root # grupa: użytkownik root :: rw- grupa :: r-- grupa: adm: rwx maska ​​:: rwx inne :: r--

Uzyskujemy źródło Samby 4, kompilujemy je i instalujemy

Zdecydowanie zaleca się pobranie wersji pliku źródłowego Stabilny ze strony https://www.samba.org/. W naszym przykładzie pobieramy wersję samba-4.5.1.tar.gz w kierunku folderu / 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 /

Opcje konfiguracji

Jeśli chcemy dostosować opcje konfiguracyjne, wykonujemy:

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

iz wielką starannością wybieramy te, których potrzebujemy. Warto sprawdzić, czy pobrany pakiet można zainstalować na używanej przez nas dystrybucji Linuksa, którą w naszym przypadku jest Debian 8.6 Jessie:

root @ master: /opt/samba-4.5.1# . / Konfiguracja odwrócona

Konfigurujemy, kompilujemy i instalujemy sambę-4.5.1

  • Z wcześniej zainstalowanych wymagań i plików 8604 (składających się na kompaktową sambę-4.5.1.tar.gz), które ważą około 101.7 megabajtów - w tym foldery source3 i source4, które ważą około 61.1 megabajtów - uzyskamy substytut dla Active Directory w stylu Microsoft, o jakości i stabilności bardziej niż akceptowalne dla każdego środowiska produkcyjnego. Musimy podkreślić pracę zespołu Samby w dostarczaniu wolnego oprogramowania Samba 4.

Poniższe polecenia są klasycznymi poleceniami do kompilowania i instalowania pakietów z ich źródeł. Musimy być cierpliwi, dopóki trwa cały proces. To jedyny sposób na uzyskanie wiarygodnych i poprawnych wyników.

root @ master: /opt/samba-4.5.1# ./configure --with-systemd - kubki-dezaktywowane
root @ master: /opt/samba-4.5.1# robić
root @ master: /opt/samba-4.5.1# make install

Podczas procesu wydawania poleceń robić, widzimy, że skompilowano źródła Samby 3 i Samby 4. Dlatego Team Samba potwierdza, że ​​wersja 4 jest naturalną aktualizacją wersji 3, zarówno dla kontrolerów domeny opartych na Sambie 3 + OpenLDAP, jak i serwerów plików lub starszych wersje Samby 4.

Udostępnianie Samby

Będziemy używać jako DNS pliku SAMBA_INTERNAL. W https://wiki.samba.org/index.php?title=Samba_Internal_DNS_Back_End znajdziemy więcej informacji. Kiedy pytają nas o hasło użytkownika Administratora, musimy wpisać jedno o minimalnej długości 8 znaków, a także litery - duże i małe - oraz cyfry.

Przed przystąpieniem do udostępniania i ułatwienia życia dodajemy rozszerzenie ścieżka plików wykonywalnych Samby w naszym pliku .bashrc, Następnie zamykamy i logujemy się ponownie.

root @ master: ~ # nano .bashrc
# ~ / .bashrc: wykonywane przez bash (1) dla powłok niezalogowanych. # Uwaga: PS1 i umask są już ustawione w / etc / profile. Nie powinieneś tego # potrzebować, chyba że chcesz mieć inne ustawienia domyślne dla roota. # PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ h: \ w \ $' # umask 022 # Możesz odkomentować następujące wiersze, jeśli chcesz, aby kolor `` ls '' został pokolorowany: # export LS_OPTIONS = '- color = auto '# eval "` dircolors` "# alias ls =' ls $ LS_OPTIONS '# alias ll =' ls $ LS_OPTIONS -l '# alias l =' ls $ LS_OPTIONS -lA '# # Więcej aliasów, aby uniknąć błędów: # alias rm = 'rm -i' # alias cp = 'cp -i' # alias mv = 'mv -i'
deklaruj -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 Połączenie z masterem zamknięte. xeon @ sysadmin: ~ $ ssh root @ master

root @ master: ~ # udostępnianie domeny samba-tool --use-rfc2307 --interactive
Dziedzina [SWL.FAN]: SWL.WENTYLATOR
 Domena [SWL]: SWL
 Rola serwera (DC, członek, autonomiczny) [dc]: dc
 Backend DNS (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
 Adres IP usługi przesyłania dalej DNS (wpisz „brak”, aby wyłączyć przekazywanie) [192.168.10.5]: 8.8.8.8
Hasło administratora: TwojeHasło2017
Wpisz ponownie hasło: TwojeHasło2017
Wyszukiwanie adresów IPv4 Wyszukiwanie adresów IPv6 Żaden adres IPv6 nie zostanie przypisany Konfigurowanie share.ldb Konfigurowanie secrets.ldb Konfigurowanie rejestru Konfigurowanie bazy danych uprawnień Konfigurowanie idmap db Konfigurowanie SAM db Konfigurowanie partycji i ustawień sam.ldb Konfigurowanie up sam.ldb rootDSE Wstępne ładowanie schematu Samba 4 i AD Dodawanie domenyDN: DC = swl, DC = fan Dodawanie kontenera konfiguracji Konfigurowanie schematu sam.ldb Konfigurowanie danych konfiguracyjnych sam.ldb Konfigurowanie specyfikatorów wyświetlania Modyfikowanie specyfikatorów wyświetlania Dodawanie kontenera użytkowników Modyfikowanie kontenera użytkowników Dodawanie kontenera komputerów Modyfikowanie kontenera komputerów Konfigurowanie danych sam.ldb Konfigurowanie dobrze znanych podmiotów zabezpieczeń Konfigurowanie użytkowników i grup sam.ldb Konfigurowanie samodzielnego łączenia Dodawanie kont DNS Tworzenie CN = MicrosoftDNS, CN = System, DC = swl, DC = fan Tworzenie partycji DomainDnsZones i ForestDnsZones Wypełnianie partycji DomainDnsZones i ForestDnsZones Konfigurowanie oznaczenia rootDSE sam.ldb jako zsynchronizowanego Naprawianie identyfikatorów GUID udostępnianiaKonfiguracja Kerberos odpowiednia dla Samby 4 została wygenerowana pod adresem /usr/local/samba/private/krb5.conf Konfiguracja fałszywych ustawień serwera YP Po zainstalowaniu powyższych plików serwer Samba4 będzie gotowy do użycia Rola serwera: domena active directory nazwa hosta kontrolera: główna domena NetBIOS: SWL domena DNS: swl.fan DOMAIN SID: S-1-5-21-32182636-2892912266-1582980556

Nie zapomnijmy skopiować pliku konfiguracyjnego Kerberos, zgodnie z danymi wyjściowymi pliku Provisioning:

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

Aby nie wpisywać polecenia narzędzie samby z Twoim imieniem i nazwiskiem tworzymy dowiązanie symboliczne z nazwą skróconą narzędzie:

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

Instalujemy NTP

Podstawowym elementem Active Directory jest Network Time Service, ponieważ uwierzytelnianie odbywa się za pośrednictwem protokołu Kerberos i jego biletów, niezbędna jest synchronizacja czasu z Samba 4 AD-DC.

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 statystyki loopstats peerstats clockstats filegen loopstats plik loopstats typ dzień włącz filegen plik peerstats peerstats typ dzień włącz filegenstats plik serwer stan zegara 192.168.10.1 ogranicz -4 domyślny kod notrap nomodify nopeer noquery ogranicz -6 domyślny kod notrap nomodify nopeer noquery ogranicz domyślny mssntp ogranicz 127.0.0.1 ogranicz :: 1 emisja 192.168.10.255

root @ master: ~ # restart usługi ntp
root @ master: ~ # status usługi ntp

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

Jeśli podczas badania syslog używając powyższego polecenia lub używając Journalctl -f otrzymujemy wiadomość:

19 czerwca 12:13:21 mistrz ntpd_intres [1498]: rodzic zmarł, zanim skończyliśmy, wychodząc

musimy ponownie uruchomić usługę i spróbować ponownie. Teraz tworzymy folder ntp_signd:

root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
ls: / usr / local / samba / var / lib / ntp_signd nie jest dostępny: plik lub katalog nie istnieje

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 /

# Zgodnie z żądaniem na samba.wiki.org
root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
drwxr-x --- 2 root ntp 4096 19 czerwca 12:21 / usr / local / samba / var / lib / ntp_signd

Konfigurujemy start Samby za pomocą systemd

root @ master: ~ # nano /lib/systemd/system/samba-ad-dc.service
[Usługa] 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 [Install] WantedBy = multi-user.target

root @ master: ~ # systemctl włącz samba-ad-dc
root @ master: ~ # reboot

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

Lokalizacje plików Samba 4 AD-DC

ALL -minus nowo utworzona usługa samba-ad-dc.service- pliki znajdują się w:

root @ master: ~ # ls -l / usr / local / samba /
łącznie 32 drwxr-sr-x 2 personel root 4096 19 czerwca 11:55 kosz
drwxr-sr-x 2 personel root 4096 19 czerwca 11:50 itp
drwxr-sr-x 7 personel root 4096 19 czerwca 11:30 zawierać
drwxr-sr-x 15 personel root 4096 19 czerwca 11:33 lib
drwxr-sr-x 7 personel root 4096 19 czerwca 12:40 prywatny
drwxr-sr-x 2 personel root 4096 19 czerwca 11:33 sbin
drwxr-sr-x 5 personel root 4096 19 czerwca 11:33 udział
drwxr-sr-x 8 personel root 4096 19 czerwca 12:28 było

w najlepszym stylu UNIX. Zawsze zaleca się przeglądanie różnych folderów i sprawdzanie ich zawartości.

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

root @ master: ~ # nano /usr/local/samba/etc/smb.conf 
# Parametry globalne [global] nazwa netbios = 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 , rola serwera dns = kontroler domeny active directory zezwala na aktualizacje dns = tylko zabezpieczone idmap_ldb: użyj rfc2307 = tak konfiguracja idmap *: backend = tdb konfiguracja idmap *: range = 1000000-1999999 serwer ldap wymaga silnego auth = no printcap name = / dev / null [netlogon] path = /usr/local/samba/var/locks/sysvol/swl.fan/scripts read only = No [sysvol] path = / usr / local / samba / var / locks / sysvol read only = No

root @ master: ~ # testparm
Załaduj pliki konfiguracyjne smb z /usr/local/samba/etc/smb.conf Sekcja przetwarzania "[netlogon]" Sekcja przetwarzania "[sysvol]" Załadowany plik usług OK. Rola serwera: ROLE_ACTIVE_DIRECTORY_DC Naciśnij klawisz Enter, aby zobaczyć zrzut definicji usług # Parametry globalne [globalne] realm = SWL.FAN workgroup = SWL dns forwarder = 192.168.10.1 serwer ldap wymaga silnego auth = brak passdb backend = samba_dsdb rola serwera = active directory kontroler domeny rpc_server: tcpip = no rpc_daemon: spoolssd = osadzony rpc_server: spoolss = wbudowany serwer_ rpc: winreg = osadzony serwer_ rpc: ntsvcs = osadzony zewnętrzny serwer_pc: eventlog = wbudowany serwer_rpc_server: srvsvc = serwer_zewnętrzny rvc : zewnętrzne potoki = prawda idmap config *: range = 1000000-1999999 idmap_ldb: użyj rfc2307 = tak idmap config *: backend = tdb map archive = No map readonly = no store dos attributes = Tak vfs objects = dfs_samba4 acl_xattr [netlogon] ścieżka = / usr / local / samba / var / locks / sysvol / swl.fan / scripts read only = No [sysvol] path = / usr / local / samba / var / locks / sysvol read only = No

Minimalne kontrole

root @ master: ~ # pokaz na poziomie domeny narzędzia
Poziom funkcji domeny i lasu dla domeny 'DC = swl, DC = fan' Poziom funkcji lasu: (Windows) 2008 R2 Poziom funkcji domeny: (Windows) 2008 R2 Najniższy poziom funkcji kontrolera domeny: (Windows) 2008 R2

root @ master: ~ # ldapsearch -x -W

root @ master: ~ # narzędzie dbcheck
Sprawdzanie 262 obiektów Sprawdzono 262 obiekty (0 błędów)

root @ master: ~ # kinit Administrator
Hasło dla Administrator@SWL.FAN: 
root @ master: ~ # klist -f
Pamięć podręczna biletów: PLIK: / tmp / krb5cc_0
Podstawowa wartość domyślna: Administrator@SWL.FAN

Ważny start Wygasa Serwis główny 19/06/17 12:53:24 19/06/17 22:53:24  krbtgt/SWL.FAN@SWL.FAN
    odnowić do 20 06:17:12, Flagi: RIA

root @ master: ~ # kdestroy
root @ master: ~ # klist -f
klist: Nie znaleziono pliku pamięci podręcznej referencji „/ tmp / krb5cc_0”

root @ master: ~ # smbclient -L localhost -U%
Domena = [SWL] OS = [Windows 6.1] Serwer = [Samba 4.5.1] Typ nazwy udziału Komentarz --------- ---- ------- netlogon Dysk sysvol Dysk IPC $ IPC IPC Usługa (Samba 4.5.1) Domena = [SWL] System operacyjny = [Windows 6.1] Serwer = [Samba 4.5.1] Komentarz serwera --------- ------- Grupa robocza ---- ----- -------

root @ master: ~ # smbclient // localhost / netlogon -UAdministrator -c 'ls'
Wprowadź hasło administratora: Domain = [SWL] OS = [Windows 6.1] Server = [Samba 4.5.1]. D 0 Mon Jun 19 11:50:52 2017 .. D 0 Mon Jun 19 11:51:07 2017 19091584 bloki o rozmiarze 1024. 16198044 bloki dostępne

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

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

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

root @ master: ~ # host -t A master.swl.fan
master.swl.fan ma adres 192.168.10.5

root @ master: ~ # host -t SOA swl.fan
swl.fan ma rekord SOA master.swl.fan. hostmaster.swl.fan. 1 900 600 86400 3600

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

root @ master: ~ # host -t MX swl.fan
swl.fan nie ma rekordu MX

root @ master: ~ # samba_dnsupdate --verbose

root @ master: ~ # lista użytkowników narzędzi
Administrator krbtgt Gość

root @ master: ~ # lista grup narzędzi
# Wynik jest zbiorem grup. ;-)

Zarządzamy nowo zainstalowaną Sambą 4 AD-DC

Jeśli chcemy zmodyfikować wygaśnięcie w dniach hasła Administratora; złożoność haseł; minimalna długość hasła; minimalny i maksymalny czas trwania - w dniach - hasła; i zmień hasło administratora zadeklarowane podczas Provisioning, musimy wykonać następujące polecenia z wartości dostosowane do Twoich potrzeb:

root @ master: ~ # narzędzie
Zastosowanie: samba-tool Główne narzędzie administracyjne Samby. Opcje: -h, --help wyświetla ten komunikat pomocy i wychodzi Opcje wersji: -V, --version Wyświetla numer wersji Dostępne komendy: dbcheck - Sprawdza lokalną bazę danych AD pod kątem błędów. delegacja - Zarządzanie delegacją. dns - zarządzanie usługą nazw domen (DNS). domena - zarządzanie domeną. drs - zarządzanie usługami replikacji katalogów (DRS). dsacl - manipulacja listami ACL DS. fsmo - Elastyczne zarządzanie rolami Single Master Operations (FSMO). gpo - zarządzanie obiektami zasad grupy (GPO). grupa - zarządzanie grupą. ldapcmp - porównaj dwie bazy danych ldap. ntacl - manipulacja listami ACL NT. procesy - Lista procesów (aby pomóc w debugowaniu w systemach bez setproctitle). rodc - Zarządzanie kontrolerem domeny tylko do odczytu (RODC). witryny - zarządzanie witrynami. spn - zarządzanie główną nazwą usługi (SPN). testparm - Sprawdzanie składni w pliku konfiguracyjnym. czas - pobierz czas na serwerze. użytkownik - zarządzanie użytkownikami. Aby uzyskać dalszą pomoc dotyczącą określonej podkomendy, wpisz: samba-tool (-h | --help)

root @ master: ~ # użytkownik narzędzia setexpiry administrator --noexpiry
root @ master: ~ # tool domain passwordsettings set --min-pwd-length = 7
root @ master: ~ # tool domain passwordsettings set --min-pwd-age = 0
root @ master: ~ # tool domain passwordsettings set --max-pwd-age = 60
root @ master: ~ # narzędzie użytkownika setpassword --filter = samaccountname = Administrator --newpassword = Passw0rD

Dodajemy kilka rekordów DNS

root @ master: ~ # tool dns
Zastosowanie: samba-tool dns Zarządzanie usługą nazw domen (DNS). Opcje: -h, --help pokaż ten komunikat pomocy i zakończ Dostępne podpolecenia: add - Dodaj rekord DNS usuń - Usuń zapytanie o rekord DNS - Zapytaj o nazwę. roothints - Zapytanie o wskazówki dotyczące katalogu głównego. serverinfo - zapytanie o informacje o serwerze. update - Zaktualizuj rekord DNS zonecreate - Utwórz strefę. zonedelete - Usuń strefę. zoneinfo - zapytanie o informacje o strefie. zonelist - Zapytanie o strefy. Aby uzyskać dalszą pomoc dotyczącą określonej podkomendy, wpisz: samba-tool dns (-h | --help)

Serwer poczty elektronicznej

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

Naprawiono IP innych serwerów

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 administrator
root @ master: ~ # tool dns add master swl.fan proxy A 192.168.10.11 -U administrator
root @ master: ~ # tool dns add master swl.fan chat A 192.168.10.12 -U administrator

Strefa odwrotna

root @ master: ~ # tool dns zonecreate master 10.168.192.in-addr.arpa -U administrator
Hasło dla [SWL \ administrator]: Strefa 10.168.192.in-addr.arpa została utworzona pomyślnie

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

Czeki

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

root @ master: ~ # host master
master.swl.fan ma adres 192.168.10.5
root @ master: ~ # host sysadmin
sysadmin.swl.fan ma adres 192.168.10.1
root @ master: ~ # host mail
mail.swl.fan ma adres 192.168.10.9
root @ master: ~ # host chat
chat.swl.fan ma adres 192.168.10.12
root @ master: ~ # host proxy
proxy.swl.fan ma adres 192.168.10.11
root @ master: ~ # serwer plików hosta
fileserver.swl.fan ma adres 192.168.10.10
root @ master: ~ # host 192.168.10.1
1.10.168.192.in-addr.arpa wskaźnik nazwy domeny sysadmin.swl.fan.
root @ master: ~ # host 192.168.10.5
Wskaźnik nazwy domeny 5.10.168.192.in-addr.arpa master.swl.fan.
root @ master: ~ # host 192.168.10.9
9.10.168.192.in-addr.arpa wskaźnik nazwy domeny mail.swl.fan.
root @ master: ~ # host 192.168.10.10
10.10.168.192.in-addr.arpa wskaźnik nazwy domeny fileserver.swl.fan.
root @ master: ~ # host 192.168.10.11
11.10.168.192.in-addr.arpa wskaźnik nazwy domeny proxy.swl.fan.
root @ master: ~ # host 192.168.10.12
12.10.168.192.in-addr.arpa wskaźnik nazwy domeny chat.swl.fan.

Dla ciekawskich

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

Dodajemy użytkowników

root @ master: ~ # użytkownik narzędzia
Zastosowanie: użytkownik samba-tool Zarządzanie użytkownikami. Opcje: -h, --help pokaż ten komunikat pomocy i zakończ. Dostępne podpolecenia: add - tworzy nowego użytkownika. create - Utwórz nowego użytkownika. delete - Usuń użytkownika. disable - wyłącz użytkownika. enable - Włącz użytkownika. getpassword - Uzyskaj pola hasła konta użytkownika / komputera. lista - lista wszystkich użytkowników. hasło - Zmień hasło do konta użytkownika (podane podczas uwierzytelniania). setexpiry - Ustaw wygaśnięcie konta użytkownika. setpassword - Ustaw lub zresetuj hasło konta użytkownika. syncpasswords - Synchronizuj hasła kont użytkowników. Aby uzyskać dodatkową pomoc dotyczącą określonej podkomendy, wpisz: samba-tool user (-h | --help)

root @ master: ~ # użytkownik narzędzia tworzy kroki Trancos01
Utworzono użytkownika „trancos”
root @ master: ~ # użytkownik narzędzia tworzy gandalf Gandalf01
Utworzono użytkownika „gandalf”
root @ master: ~ # użytkownik narzędzia tworzy legolas Legolas01
Utworzono użytkownika „legolas”
root @ master: ~ # lista użytkowników narzędzi
Administrator gandalf legolas kroczy krbtgt Gość

Administracja poprzez interfejs graficzny lub klienta WWW

Odwiedź wiki.samba.org, aby uzyskać szczegółowe informacje na temat instalowania Microsoft RSAT o Narzędzia administracji zdalnej serwera. Jeśli nie potrzebujesz klasycznych zasad oferowanych przez Microsoft Active Directory, możesz zainstalować pakiet menedżer-konta-ldap który oferuje prosty interfejs do administrowania przez przeglądarkę internetową.

Pakiet programu Microsoft Remote Server Administration Tools (RSAT) jest dołączony do systemów operacyjnych Windows Server.

Łączymy domenę z klientem Windows 7 o nazwie „siedem”

Ponieważ nie mamy w sieci serwera DHCP, pierwszą rzeczą jaką musimy zrobić jest skonfigurowanie karty sieciowej klienta ze stałym adresem IP, zadeklarowanie, że podstawowym DNS będzie samba-ad-dci sprawdź, czy opcja „Zarejestruj adres tego połączenia w DNS” jest aktywna. Sprawdzanie, czy nazwa «siedem»Nie jest jeszcze zarejestrowany w wewnętrznym serwerze DNS Samby.

Po dołączeniu komputera do domeny i ponownym uruchomieniu go spróbujmy zalogować się jako użytkownik «kroki«. Sprawdzimy, czy wszystko działa poprawnie. Wskazane jest również sprawdzenie logów klienta Windows i sprawdzenie, jak czas jest poprawnie zsynchronizowany.

Administratorzy z pewnym doświadczeniem w systemie Windows stwierdzą, że wszelkie kontrole wykonywane na kliencie przyniosą zadowalające wyniki.

streszczenie

Mam nadzieję, że artykuł będzie przydatny dla czytelników Wspólnoty. DesdeLinux.

Do widzenia!


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Gonzalo martinez powiedział

    Długi, ale szczegółowy artykuł, bardzo dobry krok po kroku, jak zrobić wszystko.

    Podkreślam NIS, prawda jest taka, że ​​chociaż wiem o jego istnieniu, nigdy tak naprawdę nie wiedziałem, jak to działa, bo szczerze mówiąc zawsze sprawiało mi to wrażenie, że obok LDAP i Samby 4 było praktycznie martwe.

    PS: Gratulujemy nowego osobistego projektu! Szkoda, że ​​nie zamierzasz tu dalej pisać, ale przynajmniej jest miejsce, gdzie możesz za tobą podążać.

  2.   HO2Gi powiedział

    Ogromny tutorial jak zawsze do moich ulubionych, Greetings Fico.
    Gratulujemy realizacji projektu.

  3.   IWO powiedział

    Sekcja NIS jest świetna, sympatyzuję z Gonzalo Martinezem, znałem ją krótko, ale nie miałem pojęcia, jak ją wdrożyć iw jakich sytuacjach jest używana.
    Dziękuję raz za ogromny „bagażnik” artykułu teoretycznego i praktycznego.
    Wreszcie nowe sukcesy w Twoim nowym projekcie „gigainside”.

  4.   Federico powiedział

    Bardzo dziękuję wszystkim za komentarz !!!.
    pozdrowienia

  5.   muszla powiedział

    pokazany plik smb.conf nie ma żadnego połączenia z LDAP, czy jest tak celowo, czy też coś zostawiłem?

  6.   phico powiedział

    mussol: To jest Kontroler domeny Active Directory Samba 4, który ma już wbudowany serwer LDAP.

  7.   Vincent powiedział

    Czy mógłbyś skomentować, jak połączyć mac (jabłko) z sambą 4 AD-DC?
    Dziękuję.

  8.   jramirez powiedział

    Jak się masz;

    Dzięki za instrukcję, jest super. Mam pytanie dotyczące komunikatu, który się pojawia.

    root @ AD: ~ # nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
    Nie udało się rozwiązać podanej nazwy hosta / adresu IP: ad.rjsolucionessac.com. Zauważ, że nie możesz używać zakresów adresów IP typu „/ mask” ORAZ „1-4,7,100-”
    Nie można znaleźć prawidłowego celu. Upewnij się, że określone hosty są adresami IP w standardowej notacji lub nazwami hostów, które można rozpoznać za pomocą DNS
    root @ AD: ~ #