PAM, NIS, LDAP, Kerberos, DS та Samba 4 AD-DC - мережі SMB

Загальний покажчик серії: Комп’ютерні мережі для МСП: Вступ

Привіт друзі та друзі!

Цією статтею я прощаюсь із спільнотою FromLinux. Особливе прощання зі Спеціальною громадою. Відтепер я буду в своєму особистому проекті, в якому ви можете знати http://www.gigainside.com.

Основна мета посту - запропонувати «Велика картина»Про послуги автентифікації з безкоштовним програмним забезпеченням, якими ми маємо у своєму розпорядженні. Принаймні, це наш намір. Тому це буде довго, незважаючи на те, що ми знаємо, що це суперечить загальним правилам написання статей. Ми сподіваємось, що системні адміністратори це оцінять.

Ми хочемо зазначити, що загальним протоколом для багатьох сучасних систем автентифікації є LDAP, а також те, що вивчати його уважно, не спираючись на навчальний матеріал, який ми знайдемо на офіційному сайті http://www.openldap.org/.

Ми не будемо давати детальних визначень - або посилань - щодо аспектів, про які йшлося в попередніх статтях, або щодо тих, опис яких може бути легко доступний у Вікіпедії чи інших сайтах чи статтях в Інтернеті, щоб не втратити об’єктивність повідомлення, яке ми хочемо давати. Ми також використовуватимемо дійсну суміш імен англійською та іспанською мовами, оскільки ми вважаємо, що більшість систем народилися з іменами англійською мовою, і для Сисадміна дуже корисно асимілювати їх мовою оригіналу..

  • PAM: Знімний модуль автентифікації.
  • NIS: Network_Information_Service.
  • LDAP: полегшений протокол доступу до каталогів.
  • Керберос: Протокол безпеки для автентифікації користувачів, комп’ютерів та служб централізовано в мережі, перевіряючи їх облікові дані щодо існуючих записів у базі даних Kerberos.
  • DS: Сервер каталогів або Служба каталогів
  • AD-DC: Active Directory - контролер домену

Індекс

PAM

Ми присвячуємо невеличку серію цьому типу локальної автентифікації, яку ви побачите на щоденній практиці, що вона широко використовується, коли, наприклад, ми приєднуємо робочу станцію до контролера домену або Active Directory; картографувати користувачів, що зберігаються у зовнішніх базах даних LDAP, ніби вони є локальними користувачами; зіставляти користувачів, які зберігаються в Контролері домену Active Directory, ніби вони є локальними користувачами тощо.

NIS

De Вікіпедія:

  • Мережева інформаційна система (відома під абревіатурою NIS, що по-іспанськи означає Мережева інформаційна система) - це назва протоколу служб каталогів клієнт-сервер, розроблений Sun Microsystems для передачі даних конфігурації в розподілених системах, таких як імена користувачів та хостів між комп'ютерами. у мережі.NIS базується на ONC RPC і складається з сервера, бібліотеки на стороні клієнта та різних інструментів адміністрування.

    Спочатку ННС називався Жовтими сторінками, або YP, що все ще використовується для посилання на нього. На жаль, це ім'я є товарним знаком British Telecom, який вимагав від Sun відмовитись від цього імені. Однак YP залишається префіксом в іменах більшості команд, пов'язаних з NIS, таких як ypserv та ypbind.

    DNS обслуговує обмежений спектр інформації, найважливішою є відповідність між іменем вузла та IP-адресою. Що стосується інших типів інформації, такої спеціалізованої служби не існує. З іншого боку, якщо ви керуєте лише невеликою локальною мережею без підключення до Інтернету, здається, не варто налаштовувати DNS. Ось чому Sun розробив Мережеву інформаційну систему (NIS). NIS надає загальні можливості доступу до бази даних, які можна використовувати для розповсюдження, наприклад, інформації, що міститься у файлі passwd, та групує файли серед усіх вузлів у вашій мережі. Це робить мережу схожою на єдину систему з однаковими обліковими записами на всіх вузлах. Подібним чином, NIS можна використовувати для розповсюдження інформації про ім'я вузла, що міститься в / etc / hosts, на всі машини в мережі.

    Сьогодні NIS доступний практично у всіх дистрибутивах Unix, і є навіть безкоштовні реалізації. BSD Net-2 опублікував такий, який був отриманий із довідкової реалізації, наданої Sun. Бібліотечний код для клієнтської частини цієї версії існує у бібліотеці GNU / Linux вже давно, і програми адміністрування були перенесені на GNU / Linux Швеном Тюммлером. Однак на еталонній реалізації немає сервера NIS.

    Пітер Ерікссон розробив нову реалізацію під назвою NYS. Він підтримує як базовий NIS, так і вдосконалену версію Sun NIS +. [1] NYS не тільки надає ряд інструментів NIS та сервер, але й додає цілий новий набір бібліотечних функцій, які вам потрібно скомпілювати у свій libc, якщо ви хочете ними скористатися. Це включає нову схему конфігурації дозволу імен вузлів, яка замінює поточну схему, що використовується файлом "host.conf".

    GNU libc, відомий як libc6 у спільноті GNU / Linux, включає оновлену версію традиційної підтримки NIS, розроблену Торстен Кукуком. Він підтримує всі функції бібліотеки, що надаються NYS, а також використовує вдосконалену схему конфігурації NYS. Інструменти та сервер все ще потрібні, але використання GNU libc економить проблеми з виправленням та перекомпіляцією бібліотеки

    .

Комп’ютер та доменне ім’я, мережевий інтерфейс та вирішувач

  • Ми починаємо з чистої установки - без графічного інтерфейсу - Debian 8 "Джессі". Домен swl.fan означає "Шанувальники вільного програмного забезпечення". Яке краще ім’я, ніж це?.
root @ master: ~ # ім'я хоста
майстер
root @ master: ~ # ім'я хоста -f
master.swl.fan

root @ master: ~ # ip addr 1: lo: mtu 65536 qdisc noqueue стан НЕВІДОМИЙ група за замовчуванням посилання / петля 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 область хосту lo valid_lft назавжди бажаний_lft назавжди inet6 :: 1/128 область хосту valid_lft назавжди бажана_lft назавжди 2: eth0: mtu 1500 qdisc pfifo_fast стан UP група за замовчуванням 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 сфера дії глобальний eth0 valid_lft назавжди бажаний_ліфт назавжди inet6 fe80 :: 20c: 29ff: fe4c: 76d9 / 64 посилання на область дійсності_lft назавжди бажаний_ліфт назавжди

root @ master: ~ # cat /etc/resolv.conf 
пошук сервер імен swl.fan 127.0.0.1

Встановлення bind9, isc-dhcp-сервера та ntp

прив’язати9

root @ master: ~ # aptitude install bind9 bind9-doc nmap
root @ master: ~ # systemctl статус bind9

root @ master: ~ # nano /etc/bind/named.conf
включити "/etc/bind/named.conf.options"; включити "/etc/bind/named.conf.local"; включити "/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
параметри {каталог "/ var / cache / bind"; // Якщо між вами та серверами імен, з якими ви хочете // розмовляти, є брандмауер, можливо, вам доведеться виправити брандмауер, щоб дозволити декілька // портів розмовляти. Побачити http://www.kb.cert.org/vuls/id/800113

        // Якщо ваш провайдер надав одну або кілька IP-адрес для стабільних // серверів імен, ви, ймовірно, хочете використовувати їх як пересилачів. // Розкоментуйте наступний блок і вставте адреси, що замінюють // заповнювач all-0. // експедитори {// 0.0.0.0; //}; // ================================================== = ==================== $ // Якщо BIND реєструє повідомлення про помилки про закінчення терміну дії кореневого ключа, // вам потрібно буде оновити свої ключі. Побачити https://www.isc.org/bind-keys
        // ================================================== = ===================== $ // Ми не хочемо DNSSEC
        dnssec-enable ні;
        // dnssec-перевірка авто; auth-nxdomain no; # відповідати RFC1035 Listen-on-v6 {будь-який; }; // Для перевірок від localhost та sysadmin // через dig swl.fan axfr // У нас немає веденого DNS ... дотепер
        allow-transfer {localhost; 192.168.10.1; };
}; root @ master: ~ # named-checkconf

root @ master: ~ # nano /etc/bind/zones.rfcFreeBSD
// Спільний адресний простір (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 та 6303)
зона "254.169.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// Призначення протоколу IETF (RFC 5735 та 5736)
зона "0.0.192.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// TEST-NET- [1-3] для документації (RFC 5735, 5737 та 6303)
зона "2.0.192.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "100.51.198.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "113.0.203.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// Приклад діапазону IPv6 для документації (RFCs 3849 та 6303)
зона "8.bd0.1.0.0.2.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// Доменні імена для документації та тестування (BCP 32)
зона "тест" {type master; файл "/etc/bind/db.empty"; }; зона "приклад" {майстер типу; файл "/etc/bind/db.empty"; }; зона "недійсний" {type master; файл "/etc/bind/db.empty"; }; зона "example.com" {тип майстра; файл "/etc/bind/db.empty"; }; зона "example.net" {тип майстра; файл "/etc/bind/db.empty"; }; зона "example.org" {тип майстра; файл "/etc/bind/db.empty"; };

// Бенчмарк тестування маршрутизатора (RFC 2544 та 5735)
зона "18.198.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "19.198.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// IANA зарезервовано - Простір класу E (RFC 5735)
зона "240.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "241.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "242.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "243.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "244.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "245.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "246.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "247.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "248.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "249.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "250.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "251.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "252.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "253.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "254.in-addr.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// Непризначені адреси IPv6 (RFC 4291)
зона "1.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "3.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "4.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "5.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "6.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "7.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "8.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "9.ip6.arpa" {тип майстра; файл "/etc/bind/db.empty"; }; зона "a.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "b.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "c.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "d.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "e.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "0.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "1.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "2.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "3.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "4.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "5.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "6.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "7.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "8.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "9.f.ip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "afip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "bfip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "0.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "1.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "2.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "3.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "4.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "5.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "6.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "7.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// IPv6 ULA (RFC 4193 та 6303)
зона "cfip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "dfip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// Місцеве посилання IPv6 (RFC 4291 та 6303)
зона "8.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "9.efip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "aefip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "befip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// Заборонені локальні адреси сайтів IPv6 (RFC 3879 та 6303)
зона "cefip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "defip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "eefip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; }; зона "fefip6.arpa" {майстер типу; файл "/etc/bind/db.empty"; };

// IP6.INT застарілий (RFC 4159)
зона "ip6.int" {майстер типу; файл "/etc/bind/db.empty"; };

root @ master: ~ # nano /etc/bind/named.conf.local
// // Виконайте тут будь-яку локальну конфігурацію // // Подумайте про додавання сюди 1918 зон, якщо вони не використовуються у вашій // організації включають "/etc/bind/zones.rfc1918";
включити "/etc/bind/zones.rfcFreeBSD";

// Оголошення імені, типу, розташування та дозволу на оновлення // зон записів DNS // Обидві зони є MASTER зоною "swl.fan" {master master; файл "/var/lib/bind/db.swl.fan"; }; зона "10.168.192.in-addr.arpa" {майстер типу; файл "/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; послідовний 1D; оновити 1H; повторити спробу 1W; закінчиться 3H); мінімальний або; Негативний час кешування для життя; @ В NS master.swl.fan. @ IN MX 10 mail.swl.fan. @ В 192.168.10.5 @ IN TXT "Для любителів вільного програмного забезпечення"; sysadmin В А 192.168.10.1 файловий сервер В А 192.168.10.4 master В А 192.168.10.5 proxyweb В А 192.168.10.6 блог В А 192.168.10.7 ftpserver В А 192.168.10.8 пошта В А 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; послідовний 1D; оновити 1H; повторити спробу 1W; закінчиться 3H); мінімальний або; Негативний час кешування для життя; @ В NS master.swl.fan. ; 1 В PTR sysadmin.swl.fan. 4 В PTR fileserver.swl.fan. 5 В PTR master.swl.fan. 6 В PTR proxyweb.swl.fan. 7 В PTR blog.swl.fan. 8 В PTR ftpserver.swl.fan. 9 В PTR mail.swl.fan.

root @ master: ~ # named-checkzone swl.fan /var/lib/bind/db.swl.fan
зона swl.fan/IN: завантажений серійний 1 OK
root @ master: ~ # named-checkzone 10.168.192.in-addr.arpa /var/lib/bind/db.10.168.192.in-addr.arpa
зона 10.168.192.in-addr.arpa/IN: завантажений серійний 1 OK

root @ master: ~ # named-checkconf -zp
root @ master: ~ # systemctl перезапустіть bind9.service
root @ master: ~ # systemctl статус bind9.service

Чеки Bind9

root @ master: ~ # dig swl.fan axfr
root @ master: ~ # dig 10.168.192.in-addr.arpa axfr
root @ master: ~ # копати в SOA swl.fan
root @ master: ~ # dig IN NS swl.fan
root @ master: ~ # копати в MX swl.fan
root @ master: ~ # proxyweb хост root @ master: ~ # nping --tcp -p 53 -c 3 localhost
root @ master: ~ # nping --udp -p 53 -c 3 localhost
root @ master: ~ # nping --tcp -p 53 -c 3 master.swl.fan
root @ master: ~ # nping --udp -p 53 -c 3 master.swl.fan
Починаючи з Nping 0.6.47 ( http://nmap.org/nping ) у 2017-05-27 09:32 EDT НАДІСЛАНО (0.0037с) UDP 192.168.10.5:53> 192.168.10.245:53 ttl = 64 id = 20743 iplen = 28 НАДІСЛАНО (1.0044с) UDP 192.168.10.5:53> 192.168.10.245 .53: 64 ttl = 20743 id = 28 iplen = 2.0060 НАДІСЛАНО (192.168.10.5 с) UDP 53:192.168.10.245> 53:64 ttl = 20743 id = 28 iplen = 3 Макс. Rtt: Н / Д | Мінімальний rtt: Не застосовується | Сер. Rtt: Недоступно Відправлено необроблених пакетів: 84 (0B) | Rcvd: 0 (3B) | Загублено: 100.00 (1%) Nping виконано: 3.01 IP-адреса пінгується за XNUMX секунди 

isc-dhcp-сервер

root @ master: ~ # aptitude install isc-dhcp-server
root @ master: ~ # nano / etc / default / isc-dhcp-server
# На яких інтерфейсах сервер DHCP (dhcpd) повинен обслуговувати запити DHCP? # Розділіть кілька інтерфейсів пробілами, наприклад "eth0 eth1".
ІНТЕРФЕЙСИ = "eth0"

root @ master: ~ # dnssec-keygen -a HMAC-MD5 -b 128 -r / dev / urandom -n КОРИСТУВАЧ dhcp-ключ
root @ master: ~ # cat Kdhcp-ключ. +157 + 51777. приватний 
Формат приватного ключа: v1.3 Алгоритм: 157 (HMAC_MD5) Ключ: Ba9GVadq4vOCixjPN94dCQ == Біти: AAA = Створено: 20170527133656 Опублікувати: 20170527133656 Активувати: 20170527133656

root @ master: ~ # nano dhcp.key
ключ dhcp-ключ {
        алгоритм hmac-md5;
        таємний "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
включити "/etc/bind/dhcp.key";

зона "swl.fan" {майстер типу; файл "/var/lib/bind/db.swl.fan";
        allow-update {ключ dhcp-ключ; };
}; зона "10.168.192.in-addr.arpa" {майстер типу; файл "/var/lib/bind/db.10.168.192.in-addr.arpa";
        allow-update {ключ dhcp-ключ; };
};

root @ master: ~ # named-checkconf

root @ master: ~ # mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original
root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-проміжний стиль оновлення; ddns-оновлення на; ddns-ім'я домену "swl.fan."; ddns-rev-ім'я домену "in-addr.arpa."; ігнорувати оновлення клієнта; оновлення-оптимізація false; # Може знадобитися на Debian авторитетно; опція ip-переадресація вимкнена; опція домен-ім'я "swl.fan"; включити "/etc/dhcp/dhcp.key"; зона swl.fan. {первинна 127.0.0.1; ключ dhcp-ключ; } зона 10.168.192.in-addr.arpa. {первинна 127.0.0.1; ключ dhcp-ключ; } спільна мережа redlocal {підмережа 192.168.10.0 мережева маска 255.255.255.0 {маршрутизатори опцій 192.168.10.1; опція підмережа-маска 255.255.255.0; опція трансляція-адреса 192.168.10.255; опція домен-ім'я-сервери 192.168.10.5; опція netbios-name-сервери 192.168.10.5; опція ntp-сервери 192.168.10.5; опція time-сервери 192.168.10.5; діапазон 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
Консорціум Інтернет-систем DHCP Server 4.3.1 Copyright 2004-2014 Консорціум Інтернет-систем. Всі права захищені. Для отримання інформації, будь ласка, відвідайте https://www.isc.org/software/dhcp/
Файл конфігурації: /etc/dhcp/dhcpd.conf Файл бази даних: /var/lib/dhcp/dhcpd.leases PID-файл: /var/run/dhcpd.pid

root @ master: ~ # systemctl перезапустіть bind9.service 
root @ master: ~ # systemctl статус bind9.service 

root @ master: ~ # systemctl start isc-dhcp-server.service
root @ master: ~ # systemctl статус isc-dhcp-server.service

ntp

root @ master: ~ # aptitude встановити ntp ntpdate
root @ master: ~ # cp /etc/ntp.conf /etc/ntp.conf.original
root @ master: ~ # nano /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift статистика loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 192.168.10.1 обмежити -4 за замовчуванням код notrap nomodify nopeer noqueery обмежити -6 за замовчуванням код notrap nomodify nopeer noquery обмеження 127.0.0.1 обмеження :: 1 трансляція 192.168.10.255

root @ master: ~ # systemctl перезапустіть ntp.service 
root @ master: ~ # systemctl статус ntp.service
root @ master: ~ # ntpdate -u sysadmin.swl.fan
27 травня 10:04:01 ntpdate [18769]: налаштування часу сервера 192.168.10.1 зміщення 0.369354 сек

Глобальні перевірки на наявність ntp, bind9 та isc-dhcp-сервера

З клієнта Linux, BSD, Mac OS або Windows перевірте, чи правильно синхронізовано час. Що він отримує динамічну IP-адресу і що ім'я цього хоста вирішується за допомогою прямих і зворотних запитів DNS. Змініть ім’я клієнта та повторіть усі перевірки. Не продовжуйте, поки не переконаєтесь, що встановлені на даний момент служби працюють правильно. Для чогось ми написали всі статті про DNS та DHCP у Комп’ютерні мережі для МСП.

Встановлення сервера NIS

root @ master: ~ # aptitude show nis
Конфлікти з: netstd (<= 1.26) Опис: клієнти та демони Мережевої інформаційної служби (NIS) Цей пакет надає інструменти для налаштування та обслуговування домену NIS. NIS, спочатку відомий як Yellow Pages (YP), в основному використовується для того, щоб кілька машин у мережі мали спільний доступ до однієї інформації облікового запису, наприклад, файлу пароля.

root @ master: ~ # aptitude встановити nis
Конфігурація пакета ┌─────────────────────────┤ Ніська конфігурація ├──────────────── ── ────────┐ │ Виберіть "доменне ім'я" NIS для цієї системи. Якщо ви хочете, щоб ця машина │ │ була лише клієнтом, вам слід ввести ім’я домену IS │ NIS, до якого ви хочете приєднатися. │ │ │ В іншому випадку, якщо ця машина повинна бути сервером NIS, ви можете │ │ ввести нове "доменне ім'я" NIS або ім'я існуючого домену NIS │ │. │ │ │ │ Домен NIS: │ │ │ │ swl.fan __________________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ─────────────────────────────┘  

Це затримає вашу, оскільки конфігурація служби як така не існує. Зачекайте, поки процес закінчиться.

root @ master: ~ # nano / etc / default / nis
# Ми сервер NIS, і якщо так, то якого типу (значення: false, slave, master)?
NISSERVER = майстер

root @ master: ~ # nano /etc/ypserv.securenets # securenets Цей файл визначає права доступу до вашого сервера NIS # для клієнтів NIS (і підлеглі сервери - ypxfrd використовує і цей # файл). Цей файл містить пари маски / мережі. # IP-адреса клієнта повинна відповідати принаймні одній з них. # # Можна використовувати слово "хост" замість мережевої маски # 255.255.255.255. У цьому файлі дозволено лише IP-адреси, а не імена хостів. # # Завжди дозволяти доступ для localhost 255.0.0.0 127.0.0.0 # Цей рядок надає доступ усім. БУДЬ ЛАСКА, РЕГУЛЮЙТЕ! # 0.0.0.0 0.0.0.0
255.255.255.0 192.168.10.0

root @ master: ~ # nano / var / yp / Makefile # Чи слід об'єднувати файл passwd з файлом тіні? # MERGE_PASSWD = true | false
MERGE_PASSWD = істина

# Чи слід об'єднувати файл групи з файлом gshadow? # MERGE_GROUP = true | false
MERGE_GROUP = істина

Ми будуємо базу даних NIS

root @ master: ~ # / usr / lib / yp / ypinit -m
На цьому етапі ми повинні скласти список хостів, на яких будуть працювати сервери NIS. master.swl.fan є у списку хостів сервера NIS. Продовжуйте додавати імена інших хостів, по одному на рядок. Коли закінчите зі списком, введіть a . наступний хост для додавання: master.swl.fan наступний хост для додавання: Поточний список серверів NIS виглядає так: master.swl.fan Це правильно? [y / n: y] Нам потрібно кілька хвилин для створення баз даних ... make [1]: Залишення каталогу '/var/yp/swl.fan' master.swl.fan було налаштовано як головний сервер NIS . Тепер ви можете запустити ypinit -s master.swl.fan на всіх підлеглих серверах.

root @ master: ~ # systemctl перезапустити nis
root @ master: ~ # systemctl статус nis

Ми додаємо місцевих користувачів

root @ master: ~ # adduser bilbo
Додавання користувача `bilbo '... Додавання нової групи` bilbo' (1001) ... Додавання нового користувача `bilbo '(1001) до групи` bilbo' ... Створення домашнього каталогу `/ home / bilbo ' ... Копіювання файлів з `/ etc / skel '... Введіть новий пароль UNIX: Введіть новий пароль UNIX: passwd: пароль оновлений правильно Зміна інформації про користувача для bilbo Введіть нове значення або натисніть ENTER, щоб використовувати за замовчуванням Повне ім’я []: Bilbo Bagins Номер кімнати []: Робочий телефон []: Домашній телефон []: Інше []: Чи правильна інформація? [Т / п]

root @ master: ~ # adduser крокує root @ master: ~ # adduser legolas

і так далі.

root @ master: ~ # пальці леголи
Логін: legolas Ім'я: Legolas Archer Каталог: / home / legolas Shell: / bin / bash Ніколи не входив. Пошти немає. Немає плану.

Ми оновлюємо базу даних NIS

root @ master: / var / yp # make
make [1]: Введення каталогу '/var/yp/swl.fan' Оновлення passwd.byname ... Оновлення passwd.byuid ... Оновлення group.byname ... Оновлення group.bygid ... Оновлення netid.byname. .. Оновлення shadow.byname ... Проігноровано -> об'єднано з passwd make [1]: Вихід із каталогу '/var/yp/swl.fan'

Ми додаємо параметри NIS на сервер isc-dhcp

root @ master: ~ # nano /etc/dhcp/dhcpd.conf
ddns-проміжний стиль оновлення; ddns-оновлення на; ddns-ім'я домену "swl.fan."; ddns-rev-ім'я домену "in-addr.arpa."; ігнорувати оновлення клієнта; оновлення-оптимізація false; авторитетний; опція ip-переадресація вимкнена; опція домен-ім'я "swl.fan"; включити "/etc/dhcp/dhcp.key"; зона swl.fan. {первинна 127.0.0.1; ключ dhcp-ключ; } зона 10.168.192.in-addr.arpa. {первинна 127.0.0.1; ключ dhcp-ключ; } спільна мережа redlocal {підмережа 192.168.10.0 мережева маска 255.255.255.0 {маршрутизатори опцій 192.168.10.1; опція підмережа-маска 255.255.255.0; опція трансляція-адреса 192.168.10.255; опція домен-ім'я-сервери 192.168.10.5; опція netbios-name-сервери 192.168.10.5; опція ntp-сервери 192.168.10.5; опція time-сервери 192.168.10.5;
                варіант nis-домен "swl.fan";
                опція nis-сервери 192.168.10.5;
                діапазон 192.168.10.30 192.168.10.250; }}

root @ master: ~ # dhcpd -t
root @ master: ~ # systemctl перезапустіть isc-dhcp-server.service

Встановлення клієнта NIS

  • Ми починаємо з чистої установки - без графічного інтерфейсу - Debian 8 "Джессі".
root @ mail: ~ # hostname -f
mail.swl.fan

root @ mail: ~ # ip addr
2: ет0: mtu 1500 qdisc pfifo_fast стан UP група за замовчуванням 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 сфера дії глобальний eth0

root @ mail: ~ # aptitude встановити
root @ mail: ~ # nano /etc/yp.conf # # yp.conf Файл конфігурації для процесу ypbind. Тут ви можете визначити # сервери NIS вручну, якщо їх не вдається знайти за допомогою # трансляції в локальній мережі (це за замовчуванням). # # Синтаксис цього файлу див. На сторінці з інструкціями ypbind. # # ВАЖЛИВО: Для "ypserver" використовуйте IP-адреси або переконайтесь, що # хост знаходиться в / etc / hosts. Цей файл інтерпретується лише # раз, і якщо DNS ще недоступний, сервер ypserver не може бути вирішений, і ypbind ніколи не зв'язується з сервером. # ypserver ypserver.network.com ypserver master.swl.fan домен swl.fan

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Приклад конфігурації функціональності комутатора послуг імен GNU. # Якщо у вас встановлені пакети `glibc-doc-reference 'та` info', спробуйте: # `info libc" Перемикач служби імен "для отримання інформації про цей файл. passwd: compat nis група: compat nis тінь: compat nis gshadow: файли хости: файли dns nis мережі: файли протоколи: db файли служби: db файли ефіри: db файли rpc: db файли netgroup: nis

root @ mail: ~ # nano /etc/pam.d/common-session
# pam-auth-update (8) для деталей.
сеанс необов’язковий pam_mkhomedir.so skel = / etc / skel umask = 077
# ось модулі для кожного пакета (блок "Основний")

root @ mail: ~ # systemctl статус nis
root @ mail: ~ # systemctl перезапустити nis

Ми закриваємо сеанс і починаємо його знову, але з користувачем, зареєстрованим у базі даних NIS за адресою master.swl.fan.

root @ mail: ~ # вихід
вийти Підключення до пошти закрито.

buzz @ sysadmin: ~ $ ssh legolas @ mail
Пароль legolas @ mail: Створення каталогу '/ home / legolas'. Програми, що входять до системи Debian GNU / Linux, є вільним програмним забезпеченням; точні умови розповсюдження для кожної програми описані в окремих файлах у / usr / share / doc / * / copyright. Debian GNU / Linux поставляється з АБСОЛЮТНО БЕЗ ГАРАНТІЙ, наскільки це дозволено чинним законодавством.
legolas @ mail: ~ $ pwd
/ дім / леголи
legolas @ mail: ~ $ 

Ми міняємо пароль користувача legolas і перевіряємо

legolas @ mail: ~ $ yppasswd 
Зміна інформації про рахунок NIS для легол на master.swl.fan. Будь ласка, введіть старий пароль: legolas Зміна пароля NIS для legolas на master.swl.fan. Будь ласка, введіть новий пароль: archer Пароль повинен мати як великі, так і малі літери або небукви. Введіть новий пароль: Arquero2017 Будь ласка, введіть новий пароль: Arquero2017 Пароль NIS змінено на master.swl.fan.

legolas @ mail: ~ $ вихід
вийти Підключення до пошти закрито.

buzz @ sysadmin: ~ $ ssh legolas @ mail
Пароль legolas @ mail: Arquero2017

Програми, що входять до системи Debian GNU / Linux, є вільним програмним забезпеченням; точні умови розповсюдження для кожної програми описані в окремих файлах у / usr / share / doc / * / copyright. Debian GNU / Linux поставляється з АБСОЛЮТНО БЕЗ ГАРАНТІЙ, наскільки це дозволено чинним законодавством. Останній вхід: субота, 27 травня 12:51:50, 2017 від sysadmin.swl.fan
legolas @ mail: ~ $

Служба NIS, реалізована на рівні сервера та клієнта, працює коректно.

LDAP

З Вікіпедії:

  • LDAP - це абревіатура від Lightweight Directory Access Protocol (іспанською мовою - Lightweight Directory Access Protocol), що відноситься до протоколу на рівні програми, що дозволяє отримати доступ до впорядкованої та розподіленої служби каталогів для пошуку різної інформації в мережі середовища. LDAP також вважається базою даних (хоча система її зберігання може бути іншою), до якої можна надіслати запит.Каталог - це сукупність об’єктів з атрибутами, організованими логічно та ієрархічно. Найпоширенішим прикладом є телефонний довідник, який складається з ряду імен (осіб або організацій), розташованих за алфавітом, до кожного імені є адреса та прикріплений до нього номер телефону. Щоб краще зрозуміти, це книга чи папка, в якій записані імена людей, телефони та адреси, і вони розташовані в алфавітному порядку.

    Дерево каталогів LDAP іноді відображає різні політичні, географічні чи організаційні межі, залежно від обраної моделі. Поточні розгортання LDAP, як правило, використовують імена системи доменних імен (DNS) для структурування вищих рівнів ієрархії. Коли ви прокручуєте каталог вниз, можуть з’являтися записи, що представляють людей, організаційні підрозділи, принтери, документи, групи людей або що-небудь, що представляє даний запис у дереві (або кілька записів).

    Зазвичай він зберігає інформацію про автентифікацію (ім’я користувача та пароль) і використовується для автентифікації, хоча можливо зберігати й іншу інформацію (контактні дані користувача, розташування різних мережевих ресурсів, дозволи, сертифікати тощо). Таким чином, LDAP - це уніфікований протокол доступу до набору інформації в мережі.

    Поточна версія - LDAPv3, і вона визначена у RFC RFC 2251 та RFC 2256 (базовий документ LDAP), RFC 2829 (метод автентифікації для LDAP), RFC 2830 (розширення для TLS) та RFC 3377 (технічна специфікація)

    .

НадовгоПротокол LDAP - і його бази даних, сумісні чи не з OpenLDAP - сьогодні є найбільш використовуваними в більшості систем автентифікації. Як приклад попереднього викладу, ми наведемо нижче деякі назви систем - Безкоштовна або Приватна -, які використовують бази даних LDAP як серверну систему для зберігання всіх своїх об'єктів:

  • OpenLDAP
  • Сервер каталогів Apache
  • Сервер каталогів Red Hat - 389 DS
  • Послуги каталогів Novell - eDirectory
  • Мікросистема SUN Open DS
  • Red Hat Identity Manager
  • FreeIPA
  • Класичний контролер домену Samba NT4.
    Ми хочемо пояснити, що ця система була розробкою Team Samba з Samba 3.xxx + OpenLDAP as базова. Microsoft ніколи не реалізовувала нічого подібного. Перейшов з контролерів домену NT 4 на їхні активні каталоги
  • Samba 4 Active Directory - контролер домену
  • ClearOS
  • Зенталь
  • Корпоративний сервер UCS Uninvention
  • Microsoft Active Directory

Кожна реалізація має свої особливості, і найбільш стандартною та сумісною є OpenLDAP.

Active Directory, будь то оригінал від Microsoft або той із Samba 4, є об'єднанням декількох основних компонентів, які:

Ми не повинні плутати а Служба каталогів o Служба каталогів з a Active Directory o Active Directory. Перші можуть, а можуть і не розміщувати автентифікацію Kerberos, але вони не пропонують службу мережі Microsoft, яку надає домен Windows, а також не мають контролера домену Windows як такого.

Служба каталогів або Служба каталогів може використовуватися для автентифікації користувачів у змішаній мережі з клієнтами UNIX / Linux та Windows. Для останнього на кожному клієнті повинна бути встановлена ​​програма, яка виступає посередником між Службою каталогів та самим клієнтом Windows, наприклад, Вільне програмне забезпечення. сторінки.

Служба каталогів з OpenLDAP

  • Ми починаємо з чистої установки - без графічного інтерфейсу - Debian 8 "Джессі", з тим самим "головним" іменем машини, що використовується для встановлення NIS, а також конфігурацією мережевого інтерфейсу та файлом /etc/resolv.conf. На цей новий сервер ми встановлюємо ntp, bind9 та isc-dhcp-сервер, не забуваючи про загальні перевірки правильної роботи трьох попередніх служб.
root @ master: ~ # aptitude встановити slapd ldap-utils

Конфігурація пакета

┌───────────────────┤ Конфігурація Slapd ├─────────────────────┐ │ Введіть пароль для введення адміністратором вашого каталогу LDAP │ │. │ │ │ │ Пароль адміністратора: │ │ │ │ ******** _________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ─────────────────────┘

Перевіряємо початкову конфігурацію

root @ master: ~ # slapcat
dn: dc = swl, dc = вентилятор
objectClass: top objectClass: dcObject objectClass: organization o: swl.fan dc: swl structObjectClass: organization entryUUID: c8510708-da8e-1036-8fe1-71d022a16904 creatorsName: cn = admin, dc = swl, dc = entry entry createTimesta20170531205219Timeta20170531205219.833955TMT000000TMTA000TMT000000TMTA20170531205219TMTXNUMXTMTAXNUMX : XNUMXZNXNUMX запис Z # XNUMX # XNUMX # XNUMX модифікатори Назва: cn = admin, dc = swl, dc = fan modifyTimestamp: XNUMXZ

dn: cn = адміністратор, dc = swl, dc = вентилятор
Objectclass: simpleSecurityObject Objectclass: organizationalRole сп: Опис адміністратора: адміністратор LDAP Парольпользователя :: e1NTSEF9emJNSFU1R3l2OWVEN0pmTmlYOVhKSUF4ekY1bU9YQXc = structuralObjectClass: organizationalRole entryUUID: c851178e- da8fe1036e entrySw8d-da2fe71 entrySw022c16904e-da20170531205219fe20170531205219.834422e-000000 entrySw000e-da000000fe20170531205219e = entrySXNUMX entrySwXNUMXe-daXNUMXfeXNUMXeXNUMXpmTmlYOVhKSUXNUMX entrySXNUMXe-XNUMXe-вхід = cXNUMXe +XNUMX Z # XNUMX # XNUMX # XNUMX модифікатори Ім'я: cn = admin, dc = swl, dc = fan modifyTimestamp: XNUMXZ

Ми модифікуємо файл /etc/ldap/ldap.conf

root @ master: ~ # nano /etc/ldap/ldap.conf
BASE dc = swl, dc = URI вентилятора    ldap: // localhost

Організаційні підрозділи та загальна група «користувачі»

Ми додаємо мінімально необхідні Організаційні Одиниці, а також групу «користувачі» Posix, до якої ми будемо вводити всіх користувачів, за прикладом багатьох систем, що мають групу «користувачі«. Ми позначаємо його іменем «користувачі», щоб не вступати в можливі конфлікти з групою «користувач"системи.

root @ master: ~ # nano base.ldif
dn: ou = люди, dc = swl, dc = вентилятор objectClass: organizationUnit ou: people dn: ou = groups, dc = swl, dc = fan objectClass: organisationUnit 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
Введіть пароль LDAP: додайте новий запис "ou = people, dc = swl, dc = fan" додайте новий запис "ou = groups, dc = swl, dc = fan"

Ми перевіряємо додані записи

root @ master: ~ # ldapsearch -x ou = люди
# люди, swl.fan dn: ou = люди, dc = swl, dc = вентилятор об'єкт Клас: організаційний Одиниця ou: люди

root @ master: ~ # ldapsearch -x ou = групи
# groups, swl.fan dn: ou = groups, dc = swl, dc = fan object Клас: organizationalUnit ou: groups

root @ master: ~ # ldapsearch -x cn = користувачі
# користувачі, групи, swl.fan dn: cn = users, ou = groups, dc = swl, dc = fan objectClass: posixGroup cn: users gidNumber: 10000

Додаємо кількох користувачів

Пароль, який ми повинні оголосити в LDAP, потрібно отримати за допомогою команди slappasswd, який повертає зашифрований пароль SSHA.

Пароль для кроків користувача:

root @ master: ~ # slappasswd 
Новий пароль: Повторно введіть новий пароль: 
{SSHA}Fn8Juihsr137u8KnxGTNPmnV8ai//0lp

Пароль для користувачів legolas

root @ master: ~ # slappasswd 
Новий пароль: Повторно введіть новий пароль: 
{SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD

Пароль для користувача gandalf

root @ master: ~ # slappasswd 
Новий пароль: Повторно введіть новий пароль: 
{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 пошта: trancos@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 cn: legolas cn: legolas : Legolas sn: Archer userPassword: {SSHA}rC50/W3kBmmDd+8+0Lz70vkGEu34tXmD
uidNumber: 10001 gidNumber: 10000 пошта: 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 cName: gandalf cName: gandalf cName Gandalf sn: користувач майстра Пароль: {SSHA} oIVFelqv8WIxJ40r12lnh3bp + SXGbV + u
uidNumber: 10002 gidNumber: 10000 пошта: gandalf@swl.fan
gecos: Gandalf The Wizard login Shell: / bin / bash home Каталог: / home / gandalf

root @ master: ~ # ldapadd -x -D cn = admin, dc = swl, dc = fan -W -f users.ldif
Введіть пароль LDAP: додавання нового запису "uid = кроки, ou = люди, dc = swl, dc = вентилятор" додавання нового запису "uid = legolas, ou = people, dc = swl, dc = fan" додавання нового запису "uid = gandalf, ou = люди, dc = swl, dc = вентилятор "

Ми перевіряємо додані записи

root @ master: ~ # ldapsearch -x cn = кроки
root @ master: ~ # ldapsearch -x uid = кроки

Ми управляємо базою даних slpad за допомогою консольних утиліт

Вибираємо пакет ldapscripts для такого завдання. Процедура встановлення та конфігурації така:

root @ master: ~ # aptitude встановити 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 = Комп'ютери' GIDSTART = 10001 UIDSTART = 10003 # MIDSTART = 10000 # Клієнтські команди 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 =" posixTEMPL = . /ldapadduser.template "PASSWORDGEN =" echo% u "

Зверніть увагу, що сценарії використовують команди пакунка ldap-utils. Біжи dpkg -L ldap-utils | grep / bin щоб знати, які вони.

root @ master: ~ # sh -c "echo -n 'admin-password'> \
/etc/ldapscripts/ldapscripts.passwd "
 
root @ master: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd
 
root @ master: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \
/etc/ldapscripts/ldapadduser.template
 
root @ master: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: cn: givenName: sn: displayName: uidNumber: gidNumber: 10000 home Каталог: оболонка входу: пошта: @ swl.fan гекони: опис: Обліковий запис користувача
 
root @ master: ~ # nano /etc/ldapscripts/ldapscripts.conf
## ми видаляємо коментар UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Ми додаємо користувача "bilbo" і робимо його членом групи "users"

root @ master: ~ # ldapadduser користувачів bilbo
[dn: uid = bilbo, ou = people, dc = swl, dc = fan] Введіть значення для "givenName": Bilbo [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Введіть значення для " sn ": Bagins [dn: uid = bilbo, ou = people, dc = swl, dc = fan] Введіть значення для" displayName ": Bilbo Bagins успішно додано користувача bilbo до LDAP Успішно встановлено пароль для користувача bilbo

root @ master: ~ # ldapsearch -x uid = bilbo
# bilbo, people, swl.fan dn: uid = bilbo, ou = people, dc = swl, dc = fan objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: bilbo cn: bilbo givenName: Bilbo sn: Bagins displayName: Bilbo Bagins uidNumber: 10003 gidNumber: 10000 homeDirectory: / home / bilbo loginШелл: / bin / bash mail: bilbo@swl.fan
gecos: опис bilbo: Обліковий запис користувача

Щоб побачити хеш пароля користувача bilbo, необхідно виконати запит з аутентифікацією:

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

Щоб видалити користувача bilbo, який ми виконуємо:

root @ master: ~ # ldapdelete -x -D cn = admin, dc = swl, dc = fan -W uid = bilbo, ou = people, dc = swl, dc = fan
Введіть пароль LDAP:

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

Ми управляємо базою даних slapd через веб-інтерфейс

У нас функціональна служба каталогів, і ми хочемо керувати нею простіше. Для цього завдання створено багато програм, таких як phpldapadmin, ldap-обліковий запис-менеджертощо, які доступні безпосередньо зі сховищ. Ми також можемо керувати Службою каталогів через Студія каталогів Apache, яку ми повинні завантажити з Інтернету.

Для отримання додаткової інформації відвідайте https://blog.desdelinux.net/ldap-introduccion/, та наступні 6 статей.

Клієнт LDAP

Етап:

Скажімо, у нас є команда mail.swl.fan як поштовий сервер, реалізований, як ми бачили в статті Postfix + Dovecot + Squirrelmail та місцеві користувачі, який, хоча і розроблений на CentOS, цілком може слугувати орієнтиром для Debian та багатьох інших дистрибутивів Linux. Ми хочемо, щоб на додаток до локальних користувачів, яких ми вже заявили, користувачі, що зберігаються в базі даних OpenLDAP, що існує в master.swl.fan. Для досягнення цього ми повинні «планувати»Для користувачів LDAP як локальних користувачів на сервері mail.swl.fan. Це рішення також діє для будь-якої служби, заснованої на аутентифікації PAM. Загальна процедура для Debian, є наступним:

root @ mail: ~ # aptitude встановити libnss-ldap libpam-ldap ldap-utils

  ┌────────────────────┤ Конфігурація libnss-ldap │─────────────────────┐ │ Введіть URI (“Уніфікований ідентифікатор ресурсу” або │ сервідор або Уніфікований ідентифікатор ресурсу) сервера LDAP. Цей рядок схожий на │ │ «ldap: //: / ». Ви також можете │ │ використовувати «ldaps: // » або "ldapi: //". Номер порту необов’язковий. │ │ │ │ Рекомендується використовувати IP-адресу, щоб уникнути збою, коли послуги доменних імен │ │ недоступні. RI │ │ │ URI сервера LDAP: │ │ │ │ ldap: //master.swl.fan __________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ───────────────────────────┘ ┌───────────────────── ┤ Конфігурація libnss-ldap │──────────────────────┐ │ Введіть відмінне ім’я (DN) бази пошуку LDAP. Багато сайтів використовують компоненти доменних імен для цієї мети. Наприклад, домен "example.net" буде використовувати │ │ "dc = example, dc = net" як відмінне ім'я бази пошуку. │ │ │ │ Розрізнене ім’я (DN) бази пошуку: │ │ │ │ dc = swl, dc = вентилятор ____________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libnss-ldap │──────────────────────┐ │ Введіть версію протоколу LDAP, яку повинен використовувати ldapns. │ │ рекомендується використовувати найвищий доступний номер версії. │ │ │ │ Версія LDAP для використання: │ │ │ │                                     3                                     │ │ 2 │ │ │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libnss-ldap │──────────────────────┐ │ Виберіть, який обліковий запис буде використовуватися для запитів nss із правами root │ │. │ │ │ Примітка. Щоб цей параметр працював, обліковий запис потребує дозволів, щоб мати доступ до атрибутів LDAP, пов’язаних із користувачами shadow │ "тіньовими" записами, а також паролями користувачів та груп │ │ . Account │ │ │ Обліковий запис LDAP для кореня: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libnss-ldap │─────────────────────┐ │ Введіть пароль, який буде використовуватися, коли libnss-ldap намагається │ │ автентифікуватися в каталозі LDAP за допомогою облікового запису LDAP з кореневою адресою. │ │ │ │ Пароль буде збережено в окремому файлі │ │ ("/etc/libnss-ldap.secret"), до якого може отримати доступ лише root. │ │ │ │ Якщо ви введете порожній пароль, старий пароль буде використаний повторно. │ │ │ │ Пароль для кореневого облікового запису LDAP: │ │ │ │ ******** ________________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ───────────────────────────┘┘ ┌──────────────────── ─┤ Конфігурація libnss-ldap ├──────────────────────┐ │ │ │ nsswitch.conf не управляється автоматично │ │ │ │ Ви повинні змінити свій файл "/etc/nsswitch.conf "використовувати джерело даних LDAP, якщо ви хочете, щоб пакет libnss-ldap працював. │ │ Ви можете використовувати зразок файлу │ │ у "/usr/share/doc/libnss-ldap/examples/nsswitch.ldap" як приклад конфігурації nsswitch або │ │ ви можете скопіювати його у поточній конфігурації. │ │ │ Зауважте, що перед видаленням цього пакету може бути зручним │ │ видалити записи "ldap" із файлу nsswitch.conf, щоб основні служби continue │ продовжували працювати. │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libpam-ldap ├──────────────────────┐ │ │ │ Ця опція дозволяє інструментам паролів, що використовують PAM, змінювати локальні паролі. │ │ │ │ Пароль для облікового запису адміністратора LDAP зберігатиметься в окремому файлі │ │, який може прочитати лише адміністратор. Option │ │ │ Цей параметр слід вимкнути, якщо встановлюється "/ etc" через NFS. │ │ │ │ Ви хочете дозволити обліковому запису адміністратора LDAP поводитися як │ │ локальний адміністратор? │ │ │ │                                            │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libpam-ldap │──────────────────────┐ │ │ │ Виберіть, чи примушує сервер LDAP виконувати ідентифікацію перед тим, як отримувати записи te оглядача. Setting │ │ │ Це налаштування рідко буває необхідним. │ │ │ │ Чи потрібен користувачеві доступ до бази даних LDAP? │ │ │ │                                               │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libpam-ldap ├──────────────────────┐ │ Введіть ім’я облікового запису адміністратора LDAP. Account │ │ │ Цей обліковий запис буде автоматично використовуватися для управління базами даних │ │, тому він повинен мати відповідні права адміністратора. Account │ │ │ Обліковий запис адміністратора LDAP: │ │ │ │ cn = admin, dc = swl, dc = fan ___________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌─────────────────── ──┤ Конфігурація libpam-ldap ├──────────────────────┐ │ Введіть пароль для облікового запису адміністратора. │ │ │ │ Пароль буде збережено у файлі "/etc/pam_ldap.secret". Адміністратор │ │ буде єдиним, хто зможе прочитати цей файл, і дозволить │ │ libpam-ldap автоматично контролювати управління з’єднаннями в базі даних │ │. You │ │ │ Якщо залишити це поле порожнім, попередньо збережений пароль │ │ буде використаний знову. │ │ │ │ Пароль адміністратора LDAP: │ │ │ │ ******** _________________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ─────────────────────────────┘  

root @ mail: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Приклад конфігурації функціональності комутатора послуг імен GNU. # Якщо у вас встановлені пакети `glibc-doc-reference 'та` info', спробуйте: # `info libc" Перемикач служби імен "для отримання інформації про цей файл. passwd: compat ldap
група: комп ldap
тінь: compat ldap
gshadow: файли хости: файли dns мережі: файлові протоколи: db файлові служби: db файли ефіри: db файли rpc: db файли netgroup: nis

Давайте відредагуємо файл /etc/pam.d/common-password, переходимо до рядка 26 і виключаємо значення «use_authtok":

root @ mail: ~ # nano /etc/pam.d/common-password
# # /etc/pam.d/common-password - модулі, пов’язані з паролем, загальні для всіх служб # # Цей файл включений з інших конфігураційних файлів PAM, # і повинен містити список модулів, які визначають послуги, які будуть # використовується для зміни паролів користувачів. За замовчуванням - pam_unix. # Пояснення параметрів pam_unix: # # Опція "sha512" дає змогу посолити паролі SHA512. Без цієї опції # за замовчуванням використовується Unix crypt. Попередні випуски використовували опцію "md5". # # Параметр "неясний" замінює старий параметр `OBSCURE_CHECKS_ENAB 'у # login.defs. # # Інші варіанти див. На сторінці pam_unix. # Станом на pam 1.0.1-6 цим файлом за замовчуванням керує pam-auth-update. # Щоб скористатися цим, рекомендується налаштувати будь-який # локальний модуль до або після блоку за замовчуванням і використовувати # pam-auth-update для управління вибором інших модулів. Детальніше див. У розділі # pam-auth-update (8). # ось модулі для кожного пакета (блок "Основний") пароль [успіх = 2 за замовчуванням = ігнорувати] pam_unix.so неясний sha512
пароль [успіх = 1 user_unknown = ігнорувати за замовчуванням = die] pam_ldap.so try_first_pass
# ось запасний варіант, якщо жоден модуль не вдається ввести пароль, необхідний pam_deny.so # грунтуйте стек із позитивним значенням повернення, якщо його ще немає; # це дозволяє нам повернути помилку лише тому, що ніщо не встановлює код успіху #, оскільки наведені вище модулі просто перескакують навколо пароля, необхідного pam_permit.so #, і ось більше модулів для кожного пакета ("Додатковий" блок) # кінець pam- auth-update config

На випадок, якщо нам знадобиться Локальний вхід користувачів, що зберігаються в LDAP, і ми хочемо, щоб їх папки створювалися автоматично будинки, ми повинні відредагувати файл /etc/pam.d/common-session і додайте наступний рядок у кінець файлу:

сеанс необов’язковий pam_mkhomedir.so skel = / etc / skel umask = 077

У прикладі служби каталогів OpenLDAP, розробленому раніше, єдиним створеним локальним користувачем був користувач дзижчання, тоді як у LDAP ми створюємо користувачів кроки, Леголас, ГендальфІ ножні кайдани. Якщо конфігурації, зроблені дотепер, правильні, тоді ми повинні мати можливість перерахувати локальних користувачів та тих, хто відображений як локальний, але зберігається на віддаленому сервері LDAP:

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

Після змін у системі автентифікації допустимо перезапустити сервер, інакше ми стикаємося з критичною службою:

root @ mail: ~ # перезавантажити

Пізніше ми починаємо локальний сеанс на сервері mail.swl.fan з обліковими даними користувача, що зберігаються в базі даних LDAP master.swl.fan. Ми також можемо спробувати увійти через SSH.

 

buzz @ sysadmin: ~ $ ssh gandalf @ mail
пароль gandalf @ mail: Створення каталогу '/ home / gandalf'. Програми, що входять до системи Debian GNU / Linux, є вільним програмним забезпеченням; точні умови розповсюдження для кожної програми описані в окремих файлах у / usr / share / doc / * / copyright. Debian GNU / Linux поставляється з АБСОЛЮТНО БЕЗ ГАРАНТІЙ, наскільки це дозволено чинним законодавством.
gandalf @ mail: ~ $ su
Пароль:

root @ mail: / home / gandalf # getent group
buzz: x: 1001: користувачі: *: 10000:

root @ mail: / home / gandalf # вихід
вихід

gandalf @ mail: ~ $ ls -l / home /
всього 8 drwxr-xr-x 2 кайф кайф     4096 17 червня 12:25 дзвінок drwx ------ 2 користувачі gandalf 4096 17 червня 13:05 гандальф

Служба каталогів, реалізована на рівні сервера та клієнта, працює коректно.

Керберос

З Вікіпедії:

  • Kerberos - це протокол автентифікації комп'ютерної мережі, створений MIT що дозволяє двом комп’ютерам у незахищеній мережі надійно довести свою особу одне одному. Її розробники спочатку зосередилися на моделі клієнт-сервер, і вона забезпечує взаємну автентифікацію: і клієнт, і сервер перевіряють ідентичність один одного. Повідомлення автентифікації захищені для запобігання підслуховування y відтворення атак.

    Kerberos базується на симетричній криптографії ключів і вимагає довіреної третьої сторони. Крім того, існують розширення протоколу для використання криптографії асиметричного ключа.

    Kerberos базується на Протокол Нідема-Шредера. У ньому використовується довірена третя сторона, яка називається "Центр розподілу ключів" (KDC), що складається з двох окремих логічних частин: "Сервера автентифікації" (AS або Authentication Server) і "сервера видачі квитків" (TGS або Ticket Granting Server). ). Kerberos працює на основі "квитків", які служать для підтвердження особи користувачів.

    Kerberos підтримує базу даних секретних ключів; Кожна сутність мережі - будь то клієнт чи сервер - ділиться секретним ключем, відомим лише собі та Kerberos. Знання цього ключа служить для підтвердження особи сутності. Для зв'язку між двома об'єктами Kerberos генерує ключ сеансу, який вони можуть використовувати для захисту своїх проблем.

Недоліки Kerberos

De Вилікували:

Навіть хоча Керберос усуває загальну загрозу безпеці, її може бути важко реалізувати з різних причин:

  • Міграція паролів користувачів зі стандартної бази даних паролів UNIX, такі як / etc / passwd або / etc / shadow, до бази даних паролів Kerberos, може бути нудним і не існує швидкого механізму для виконання цього завдання.
  • Kerberos припускає, що кожному користувачеві довіряють, але він використовує ненадійну машину в ненадійній мережі. Його головна мета - запобігти надсилання незашифрованих паролів через мережу. Однак, якщо будь-який інший користувач, крім відповідного користувача, має доступ до автомата для продажу квитків (KDC) для автентифікації, Kerberos буде під загрозою.
  • Щоб програма використовувала Kerberos, код повинен бути змінений, щоб здійснювати відповідні виклики до бібліотек Kerberos. Додатки, які модифіковані таким чином, вважаються керберизованими. Для деяких програм це може бути надмірним зусиллям програмування через розмір програми або її дизайн. Для інших несумісних програм необхідно внести зміни в спосіб спілкування мережевого сервера та його клієнтів; знову ж таки, це може зайняти досить багато програмування. Загалом програми з закритим кодом, які не мають підтримки Kerberos, як правило, є найбільш проблемними.
  • Нарешті, якщо ви вирішили використовувати Kerberos у своїй мережі, ви повинні усвідомити, що це вибір все або нічого. Якщо ви вирішите використовувати Kerberos у своїй мережі, ви повинні пам’ятати, що якщо будь-які паролі передаються службі, яка не використовує Kerberos для автентифікації, ви ризикуєте перехопити пакет. Таким чином, ваша мережа не отримає жодної вигоди від використання Kerberos. Щоб захистити свою мережу за допомогою Kerberos, слід використовувати лише kerberized версії всіх клієнтських / серверних програм, які надсилають незашифровані паролі або не використовують жодну з цих програм у мережі.

Впровадження та налаштування OpenLDAP як Back-End Kerberos вручну не є простим завданням. Однак пізніше ми побачимо, що Samba 4 Active Directory - контролер домену прозоро інтегрується для Sysadmin, DNS-сервера, мережі Microsoft та його контролера домену, LDAP-сервера як Back-End майже всіх його об’єктів, і служба автентифікації на основі Kerberos як основні компоненти Active Directory у стилі Microsoft.

На сьогоднішній день у нас не було необхідності впроваджувати "керберизовану мережу". Ось чому ми не писали про те, як реалізувати Kerberos.

Samba 4 Active Directory - контролер домену

Важливо:

Немає кращої документації, ніж сайт wiki.samba.org. Поважаючий себе Сисадмін повинен відвідати цей сайт - англійською мовою - та переглянути велику кількість сторінок, повністю присвячених Samba 4, написаних самою командою Samba. Я не вірю, що в Інтернеті є документація, яка може замінити її. До речі, спостерігайте за кількістю відвідувань, відображеними внизу кожної сторінки. Прикладом цього є відвідування вашої головної сторінки або «Головної сторінки» 276,183 разів станом на сьогодні 20 червня 2017 року о 10:10 за східним стандартним часом. Крім того, документація ведеться дуже актуальною, оскільки ця сторінка була змінена 6 червня.

З Вікіпедії:

Samba - це безкоштовна реалізація протоколу спільного використання файлів Microsoft Windows (раніше називався SMB, нещодавно перейменований у CIFS) для UNIX-подібних систем. Таким чином, можливо, що комп’ютери з GNU / Linux, Mac OS X або Unix загалом виглядають як сервери або виступають клієнтами в мережах Windows. Samba також дозволяє користувачам перевіряти як основний контролер домену (PDC), як член домену і навіть як домен Active Directory для мереж на базі Windows; окрім можливості обслуговувати черги друку, спільні каталоги та аутентифікацію за допомогою власного архіву користувача.

Серед Unix-подібних систем, на яких Samba може працювати, є дистрибутиви GNU / Linux, Solaris та різні варіанти BSD серед що ми можемо знайти сервер Mac OS X від Apple.

Samba 4 AD-DC із внутрішнім DNS

  • Ми починаємо з чистої установки - без графічного інтерфейсу - Debian 8 "Джессі".

Початкові перевірки

root @ master: ~ # ім'я хоста
майстер
root @ master: ~ # ім'я хоста --fqdn
master.swl.fan
root @ master: ~ # ip addr
1: що: mtu 65536 qdisc noqueue стан НЕВІДОМИЙ група за замовчуванням посилання / петля 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 область хосту lo valid_lft назавжди бажаний_lft назавжди inet6 :: 1/128 область хосту valid_lft назавжди бажана_lft назавжди 2: eth0: mtu 1500 qdisc pfifo_fast стан НЕВІДОМИЙ група за замовчуванням 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 сфера дії глобальний eth0
       valid_lft назавжди prefer_lft назавжди inet6 fe80 :: 20c: 29ff: fe80: 3b3f / 64 посилання сфери дії valid_lft назавжди бажано_lft назавжди
root @ master: ~ # cat /etc/resolv.conf
пошук сервер імен swl.fan 127.0.0.1
  • За допомогою якого ми декларуємо гілку основний лише, цього більш ніж достатньо для наших цілей.
root @ master: ~ # cat /etc/apt/sources.list
деб http://192.168.10.1/repos/jessie-8.6/debian/ jessie основний
деб http://192.168.10.1/repos/jessie-8.6/debian/security/ jessie / оновлення основний

Postfix від Exim та комунальні послуги

root @ master: ~ # aptitude встановити postfix htop mc deborphan

  ┌────────────────────────┤ Конфігурація постфікса ├───────────────────── ────┐ │ Виберіть тип конфігурації поштового сервера, який найкраще відповідає вашим │ │ потребам. │ │ │ │ Без конфігурації: │ │ Зберігає поточну конфігурацію недоторканою. │ Інтернет-сайт: │ │ Пошта надсилається та отримується безпосередньо за допомогою SMTP. │ │ Інтернет із “smarthost”: │ │ Пошта отримується безпосередньо за допомогою SMTP або за допомогою інструмента │ like, наприклад “fetchmail”. Вихідна пошта надсилається за допомогою smart │ "smarthost". │ │ Лише локальна пошта: │ │ Пошта, яка доставляється лише для місцевих користувачів. Ні │ │ немає мережі. │ │ │ │ Загальний тип конфігурації пошти: │ │ │ │ Без конфігурації │ │ Інтернет-сайт │ │ Інтернет із “smarthost” │ │ Супутникова система │ │                         Лише місцева пошта                                │ │ │ │ │ │                                     │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌──────────────────── ─────┤ Конфігурація Postfix ├─────────────────────────┐ │ „Ім'я поштової системи“ - це ім’я домену, який │ │ використовується для "кваліфікації" _ALL_ електронних адрес без доменного імені. Сюди входить пошта до і з "root": будь ласка, не змушуйте вашу машину надсилати електронні листи з root@example.org до │ │ менше ніж root@example.org запитав. │ │ │ │ Інші програми використовуватимуть цю назву. Це має бути унікальне │ │ кваліфіковане доменне ім’я (FQDN). │ │ │ │ Отже, якщо електронна адреса на локальній машині │ │ something@example.org, правильним значенням для цього параметра буде example.org. │ │ │ │ Ім'я поштової системи: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ─────────────────────────────┘  

Ми прибираємо

root @ master: ~ # очищення здібностей ~ c
root @ master: ~ # aptitude install -f
root @ master: ~ # aptitude clean
root @ master: ~ # aptitude autoclean

Ми встановлюємо вимоги до компіляції Samba 4 та інші необхідні пакети

root @ master: ~ # aptitude встановити acl attr autoconf bison \
вбудований дебелпер dnsutils docbook-xml docbook-xsl flex gdb \
krb5-користувач libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
libpopt-dev libreadline-dev perl perl-modules pkg-config \
python-all-dev python-dev python-dnspython python-crypto \
xsltproc zlib1g-dev libgpgme11-dev python-gpgme python-m2crypto \
libgnutls28-dbg gnutls-dev ldap-utils krb5-config

 ┌───────────────┤ Налаштування автентифікації Kerberos ├───────────────┐ │ Коли користувачі намагаються використовувати Kerberos і вказують ім’я │ │ принципалу або користувачеві, не уточнюючи, до якого адміністративного домену Kerberos належить принципал │ │, система приймає область за замовчуванням │ │.  Сфера за замовчуванням також може використовуватися як область service │ служби Kerberos, що працює на локальній машині.  │ Зазвичай область за замовчуванням - це велике ім’я локального домену DNS │ │.  │ │ │ │ Область Kerberos версії 5 за замовчуванням: │ │ │ │ SWL.FAN __________________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌───────────────┤ Налаштування автентифікації Kerberos ├───────────────┐ │ Введіть імена серверів Kerberos у сферу SWL.FAN │ │ Kerberos, розділені пробілами.  │ │ │ │ Сервери Kerberos для вашого царства: │ │ │ │ master.swl.fan ___________________________________________________________ │ │ │ │ │ │ │ └───────────────────────────────────────────── ────────────────────────────┘ ┌───────────────┤ Налаштування автентифікації Kerberos ├───────────────┐ │ Введіть ім’я адміністративного сервера (зміна пароля) │ │ для області Kerberos SWL.FAN.   

Вищезазначений процес зайняв трохи часу, оскільки у нас ще не встановлено жодної служби DNS. Однак ви правильно вибрали домен за налаштуваннями файлу / Etc / хостів. Запам’ятайте це у файлі / Etc / resolv.conf ми оголосили сервером доменних імен до IP 127.0.0.1.

Тепер ми налаштовуємо файл / etc / ldap / ldap / conf

root @ master: ~ # nano /etc/ldap/ldap.conf
BASE dc = swl, dc = URI вентилятора ldap: //master.swl.fan

Для запитів за допомогою команди ldapsearch зроблені від кореневого користувача, мають тип ldapsearch -x -W cn = xxxx, ми повинні створити файл /root/.ldapsearc з таким змістом:

root @ master: ~ # nano .ldaprc
BINDDN CN = адміністратор, CN = користувачі, DC = swl, DC = вентилятор

Файлова система повинна підтримувати ACL - Список контролю доступу

root @ master: ~ # nano / etc / fstab
# / etc / fstab: статична інформація про файлову систему. # # Використовуйте 'blkid', щоб надрукувати універсальний унікальний ідентифікатор # пристрою; це може використовуватися з UUID = як більш надійний спосіб називати пристрої #, який працює, навіть якщо диски додаються та видаляються. Див. Fstab (5). # # # / було увімкнено / dev / sda1 під час встановлення UUID = 33acb024-291b-4767-b6f4-cf207a71060c / ext4 user_xattr, acl, barrier = 1, noatime, error = remount-ro 0 1
# підкачка була включена / dev / sda5 під час встановлення UUID = cb73228a-615d-4804-9877-3ec225e3ae32 немає підкачки sw 0 0 / dev / sr0 / media / cdrom0 udf, iso9660 user, noauto 0 0

root @ master: ~ # mount -a

root @ master: ~ # дотик 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
# файл: testing_acl.txt user.test = "тест"

root @ master: ~ # getfattr -n security.test -d testing_acl.txt
# файл: testing_acl.txt security.test = "test2"

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

root @ master: ~ # getfacl testing_acl.txt
# файл: testing_acl.txt # власник: root # група: root користувач :: rw- group :: r-- group: adm: rwx mask :: rwx other :: r--

Ми отримуємо джерело Samba 4, компілюємо його та встановлюємо

Настійно рекомендується завантажити вихідний файл версії Стабільний з сайту https://www.samba.org/. У нашому прикладі ми завантажуємо версію самба-4.5.1.tar.gz до папки / 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 /

Параметри конфігурації

Якщо ми хочемо налаштувати параметри конфігурації, ми виконуємо:

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

і з великою обережністю виберіть ті, які нам потрібні. Бажано перевірити, чи можна завантажений пакет встановити в дистрибутиві Linux, який ми використовуємо, а в нашому випадку це Debian 8.6 Jessie:

root @ master: /opt/samba-4.5.1# . / Налаштувати диспетчерська перевірка

Ми налаштовуємо, компілюємо та встановлюємо samba-4.5.1

  • Починаючи з раніше встановлених вимог та 8604 файлів (які складають компактний samba-4.5.1.tar.gz), що важать близько 101.7 мегабайт - включаючи папки source3 та source4, що важать близько 61.1 мегабайт - ми отримаємо замінник Active Directory у стилі Microsoft, якість та стабільність більш ніж прийнятна для будь-якого виробничого середовища. Ми повинні виділити роботу Team Samba у наданні вільного програмного забезпечення Samba 4.

Наведені нижче команди є класичними для компіляції та встановлення пакетів з їх джерел. Ми повинні бути терплячими, поки триває весь процес. Це єдиний спосіб отримати достовірні та правильні результати.

root @ master: /opt/samba-4.5.1# ./configure --with-systemd - чашки-інваліди
root @ master: /opt/samba-4.5.1# зробити
root @ master: /opt/samba-4.5.1# зробити установку

Під час командного процесу зробити, ми можемо бачити, що джерела Samba 3 та Samba 4. Ось чому команда Samba підтверджує, що її версія 4 є природним оновленням версії 3, як для контролерів домену на базі Samba 3 + OpenLDAP, так і для файлових серверів або старіших версій версії Samba 4.

Надання Самба

Ми будемо використовувати як DNS файл SAMBA_INTERNAL, в https://wiki.samba.org/index.php?title=Samba_Internal_DNS_Back_End ми знайдемо більше інформації. Коли вони запитують у нас пароль користувача Адміністратора, ми повинні ввести мінімальну довжину 8 символів, а також літери - великі та малі регістри - та цифри.

Перш ніж приступити до забезпечення та полегшити життя, ми додамо шлях виконуваних файлів Samba у нашому файлі .bashrc, Потім ми закриваємо і входимо знову.

root @ master: ~ # nano .bashrc
# ~ / .bashrc: виконується bash (1) для оболонок, що не входять в систему. # Примітка: PS1 та umask вже встановлені в / etc / profile. Вам це не потрібно #, якщо ви не хочете, щоб за замовчуванням були різними значеннями для root. # PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ h: \ w \ $' # umask 022 # Ви можете прокоментувати наступні рядки, якщо хочете, щоб `ls 'був розфарбований: # export LS_OPTIONS =' - color = auto '# eval "` dircolors` "# псевдонім ls =' ls $ LS_OPTIONS '# псевдонім ll =' ls $ LS_OPTIONS -l '# псевдонім l =' ls $ LS_OPTIONS -lA '# # Ще кілька псевдонімів, щоб уникнути помилок: # псевдонім rm = 'rm -i' # псевдонім cp = 'cp -i' # псевдонім mv = 'mv -i'
оголосити -x PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: \ / sbin: / bin: / usr / local / samba / sbin: / usr / local / samba / bin "

root @ master: ~ # вихід із виходу Підключення до майстра закрито. xeon @ sysadmin: ~ $ ssh root @ master

root @ master: ~ # самба-інструмент надання домену --use-rfc2307 --interactive
Сфера [SWL.FAN]: SWL.ФАН
 Домен [SWL]: SWL
 Роль сервера (постійний, член, автономний) [постійний]: dc
 Бекенд DNS (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
 IP-адреса переадресатора DNS (напишіть "none", щоб вимкнути переадресацію) [192.168.10.5]: 8.8.8.8
Пароль адміністратора: TuPassword2017
Повторно введіть пароль: TuPassword2017
Пошук адрес IPv4 Пошук адрес IPv6 Не буде призначено адресу IPv6 Налаштування share.ldb Налаштування секретів.ldb Налаштування реєстру Налаштування бази даних привілеїв Налаштування idmap db Налаштування SAM db Налаштування розділів та налаштувань sam.ldb Налаштування вгору sam.ldb rootDSE Попереднє завантаження схеми Samba 4 і AD Додавання домену DN: DC = swl, DC = вентилятор Додавання контейнера конфігурації Налаштування схеми sam.ldb Налаштування даних конфігурації sam.ldb Налаштування специфікаторів дисплея Змінення специфікаторів дисплея Додавання контейнера користувачів Змінення контейнера для користувачів Додавання контейнера для комп'ютерів Змінення контейнера для комп'ютерів Налаштування даних sam.ldb Налаштування добре відомих принципів безпеки Налаштування користувачів і груп sam.ldb Налаштування самостійного приєднання Додавання облікових записів DNS Створення CN = MicrosoftDNS, CN = System, DC = swl, DC = вентилятор Створення розділів DomainDnsZones та ForestDnsZones Заповнення розділів DomainDnsZones та ForestDnsZones Налаштування розмітки sam.ldb rootDSE як синхронізованих ідентифікаторів надання виправленняКонфігурацію Kerberos, придатну для Samba 4, було створено за адресою /usr/local/samba/private/krb5.conf Налаштування підроблених налаштувань сервера yp Після встановлення вищезазначених файлів сервер Samba4 буде готовий до використання Роль сервера: активний домен каталогу контролер Ім'я хосту: ведучий NetBIOS Домен: SWL DNS Домен: swl.fan DOMAIN SID: S-1-5-21-32182636-2892912266-1582980556

Не забуваймо скопіювати файл конфігурації Kerberos, як зазначено в результатах Резервування:

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

Щоб не вводити команду інструмент самба з вашим повним ім’ям, ми створюємо символічне посилання з коротким ім’ям інструмент:

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

Встановлюємо NTP

Основною частиною Active Directory є мережева служба часу. Оскільки аутентифікація здійснюється за допомогою Kerberos та її квитків, життєво необхідна синхронізація часу з Samba 4 AD-DC.

root @ master: ~ # aptitude встановити 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 статистика loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegenstats file clockstats clock type day enable server 192.168.10.1 обмежити -4 за замовчуванням код notrap nomodify nopeer noquery обмежити -6 за замовчуванням код notrap nomodify nopeer noquery обмежити за замовчуванням mssntp обмежити 127.0.0.1 обмежити :: 1 трансляція 192.168.10.255

root @ master: ~ # перезапуск служби ntp
root @ master: ~ # статус служби ntp

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

Якщо при вивченні системний журнал використовуючи наведену вище команду або використовуючи journalctl -f ми отримуємо повідомлення:

19 червня 12:13:21 master ntpd_intres [1498]: батько помер до того, як ми закінчили, вихід

ми повинні перезапустити службу і спробувати ще раз. Тепер ми створюємо папку ntp_signd:

root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
ls: / usr / local / samba / var / lib / ntp_signd неможливо отримати доступ: файл або каталог не існує

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 /

# За запитом на samba.wiki.org
root @ master: ~ # ls -ld / usr / local / samba / var / lib / ntp_signd
drwxr-x --- 2 корінь ntp 4096 19 червня 12:21 / usr / local / samba / var / lib / ntp_signd

Ми налаштовуємо Samba на використання systemd

root @ master: ~ # nano /lib/systemd/system/samba-ad-dc.service
[Сервіс] Тип = розгалуження 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 [Встановити] WantedBy = multi-user.target

root @ master: ~ # systemctl увімкнути samba-ad-dc
root @ master: ~ # перезавантажити

root @ master: ~ # systemctl статус samba-ad-dc
root @ master: ~ # systemctl статус ntp

Розташування файлів Samba 4 AD-DC

ALL -мінус новостворена служба samba-ad-dc.service- файли знаходяться в:

root @ master: ~ # ls -l / usr / local / samba /
всього 32 drwxr-sr-x 2 кореневий персонал 4096 19 червня 11:55 Бен
drwxr-sr-x 2 root staff 4096 19 червня 11:50 і т.д.
drwxr-sr-x 7 root staff 4096 19 червня 11:30 включати
drwxr-sr-x 15 root staff 4096 19 червня 11:33 либ
drwxr-sr-x 7 root staff 4096 19 червня 12:40 приватний
drwxr-sr-x 2 root staff 4096 19 червня 11:33 сбін
drwxr-sr-x 5 root staff 4096 19 червня 11:33 частка
drwxr-sr-x 8 root staff 4096 19 червня 12:28 було

в найкращому стилі UNIX. Завжди бажано переглядати різні папки та вивчати їх вміст.

Файл /Usr/local/samba/etc/smb.conf

root @ master: ~ # nano /usr/local/samba/etc/smb.conf 
# Глобальні параметри [глобальний] netbios name = MASTER realm = SWL.FAN робоча група = SWL dns forwarder = 8.8.8.8 серверні послуги = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate , роль сервера dns = активний контролер домену каталогу дозволяє дозволити оновлення dns = захистити лише idmap_ldb: використовувати rfc2307 = так idmap config *: backend = tdb idmap config *: range = 1000000-1999999 ldap server вимагає надійного auth = no printcap name = / dev / null [netlogon] path = /usr/local/samba/var/locks/sysvol/swl.fan/scripts only read = No [sysvol] path = / usr / local / samba / var / locks / sysvol only read = No

root @ master: ~ # testparm
Завантажте конфігураційні файли smb з /usr/local/samba/etc/smb.conf Розділ обробки "[netlogon]" Розділ обробки "[sysvol]" Завантажений файл служб OK. Роль сервера: ROLE_ACTIVE_DIRECTORY_DC Натисніть клавішу Enter, щоб побачити дамп визначень вашої служби контролер домен rpc_server: TCPIP = немає rpc_daemon: spoolssd = вбудованих rpc_server: spoolss = вбудовані rpc_server: WinREG = вбудовані rpc_server: ntsvcs = вбудовані rpc_server: EventLog = вбудовані rpc_server: srvsvc = вбудованого rvcct_server = використовувати зовнішні rvcct_server = використовувати зовнішній rvcct_server: spc_server = вбудовані зовнішнє використання зовнішні канали = справжня конфігурація idmap *: діапазон = 192.168.10.1-1000000 idmap_ldb: використовуйте rfc1999999 = так idmap config *: backend = tdb map archive = Немає карт для читання = немає атрибутів dos dos = Так vfs об'єкти = dfs_samba2307 acl_xattr [netlogon] шлях = / usr / local / samba / var / locks / sysvol / swl.fan / скрипти лише для читання = Ні [sysvol] шлях = / usr / local / samba / var / locks / sysvol тільки для читання = Ні

Мінімальні перевірки

root @ master: ~ # інструмент шоу рівня домену
Рівень функції домену та лісу для домену 'DC = swl, DC = вентилятор' Рівень функції лісу: (Windows) 2008 R2 Рівень функції домену: (Windows) 2008 R2 Найнижчий рівень функції DC: (Windows) 2008 R2

root @ master: ~ # ldapsearch -x -W

root @ master: ~ # інструмент dbcheck
Перевірка 262 об’єктів Перевірка 262 об’єктів (0 помилок)

root @ master: ~ # kinit Administrator
Пароль для Administrator@SWL.FAN: 
root @ master: ~ # klist -f
Кеш квитків: ФАЙЛ: / tmp / krb5cc_0
Основне за замовчуванням: Administrator@SWL.FAN

Дійсний старт Закінчується Сервіс основний 19 06:17:12 53 24:19:06  krbtgt/SWL.FAN@SWL.FAN
    продовжити до 20 06:17:12, прапори: RIA

root @ master: ~ # kdestroy
root @ master: ~ # klist -f
klist: Файл кешу облікових даних '/ tmp / krb5cc_0' не знайдено

root @ master: ~ # smbclient -L localhost -U%
Домен = [SWL] OS = [Windows 6.1] Сервер = [Samba 4.5.1] Тип імені спільного доступу Коментар --------- ---- ------- netlogon Disk sysvol Disk IPC $ IPC IPC Сервіс (Samba 4.5.1) Домен = [SWL] OS = [Windows 6.1] Сервер = [Samba 4.5.1] Коментар сервера --------- ------- Майстер робочої групи ---- ----- -------

root @ master: ~ # smbclient // localhost / netlogon -UAdministrator -c 'ls'
Введіть пароль адміністратора: Домен = [SWL] OS = [Windows 6.1] Сервер = [Samba 4.5.1]. D 0 пн черв. 19 11:50:52 2017 .. D 0 пн. Черв. 19 11:51:07 2017 19091584 блоки розміром 1024. доступні 16198044 блоки

root @ master: ~ # інструмент dns serverinfo master -U адміністратор

root @ master: ~ # host -t SRV _ldap._tcp.swl.fan
_ldap._tcp.swl.fan має запис SRV 0 100 389 master.swl.fan.

root @ master: ~ # host -t SRV _kerberos._udp.swl.fan
_kerberos._udp.swl.fan має запис SRV 0 100 88 master.swl.fan.

root @ master: ~ # host -t A master.swl.fan
master.swl.fan має адресу 192.168.10.5

root @ master: ~ # хост -t SOA swl.fan
swl.fan має SOA запис master.swl.fan. hostmaster.swl.fan. 1 900 600

root @ master: ~ # host -t NS swl.fan
swl.fan сервер імен master.swl.fan.

root @ master: ~ # хост -t MX swl.fan
swl.fan не має запису MX

root @ master: ~ # samba_dnsupdate --verbose

root @ master: ~ # список користувачів інструменту
Адміністратор krbtgt Гість

root @ master: ~ # список груп інструментів
# Результат - це купа груп. ;-)

Ми керуємо нещодавно встановленою Samba 4 AD-DC

Якщо ми хочемо змінити термін дії пароля адміністратора в днях; складність паролів; мінімальна довжина пароля; мінімальна та максимальна тривалість пароля протягом днів; і змінити пароль адміністратора, оголошений під час Резервування, ми повинні виконати наступні команди за допомогою значення з урахуванням ваших потреб:

root @ master: ~ # інструмент
Використання: інструмент самба Основний інструмент адміністрування самби. Параметри: -h, --help показати це довідкове повідомлення та вийти Параметри версії: -V, --version Відображення номера версії Доступні підкоманди: dbcheck - Перевірити локальну базу даних AD на наявність помилок. делегування - управління делегаціями. dns - управління службою доменних імен (DNS). домен - управління доменом. drs - управління службами реплікації каталогів (DRS). dsacl - маніпуляція DS ACL. fsmo - управління ролями гнучких одноосібних операцій (FSMO). gpo - управління об’єктом групової політики (GPO). група - управління групою. ldapcmp - Порівняйте дві бази даних ldap. ntacl - маніпуляція з ACL NT. процеси - Перерахувати процеси (для налагодження налагодження в системах без setproctitle). rodc - Керування контролером домену лише для читання (RODC). сайти - управління сайтами. spn - управління іменем основної послуги (SPN). testparm - перевірка синтаксису файлу конфігурації. час - Отримати час на сервері. користувач - управління користувачами. Щоб отримати додаткову допомогу щодо конкретного підкоманди, введіть: samba-tool (-h | --help)

root @ master: ~ # користувач інструмента setexpiry administrator --noexpiry
root @ master: ~ # набір налаштувань пароля домену інструмента --min-pwd-length = 7
root @ master: ~ # набір налаштувань пароля домену інструмента --min-pwd-age = 0
root @ master: ~ # набір налаштувань пароля домену інструмента --max-pwd-age = 60
root @ master: ~ # користувач інструмента setpassword --filter = samaccountname = Адміністратор --newpassword = Passw0rD

Ми додаємо кілька записів DNS

root @ master: ~ # інструмент dns
Використання: самба-інструмент dns Управління службою доменних імен (DNS). Параметри: -h, --help показати це довідкове повідомлення та вийти Доступні підкоманди: додати - Додати видалення запису DNS - Видалити запит запису DNS - Запросити ім’я. roothints - Запитувати кореневі підказки serverinfo - Запит на інформацію про сервер. оновити - Оновити зону запису DNS створити - Створити зону. zonedelete - Видалити зону. zoneinfo - Запит на інформацію про зону. zonelist - запит щодо зон. Щоб отримати додаткову допомогу щодо конкретного підкоманди, введіть: samba-tool dns (-h | --help)

Поштовий сервер

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 адміністратор

Виправлений IP інших серверів

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 адміністратор
root @ master: ~ # tool dns add master swl.fan chat A 192.168.10.12 -U administrator

Зворотна зона

root @ master: ~ # інструмент dns zonecreate master 10.168.192.in-addr.arpa -U адміністратор
Пароль для [SWL \ administrator]: Зона 10.168.192.in-addr.arpa створена успішно

root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 5 PTR master.swl.fan. -Адміністратор
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 9 PTR mail.swl.fan. -Адміністратор
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 1 PTR sysadmin.swl.fan. -Адміністратор
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 10 PTR fileserver.swl.fan. -Адміністратор
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 11 PTR proxy.swl.fan. -Адміністратор
root @ master: ~ # tool dns add master 10.168.192.in-addr.arpa 12 PTR chat.swl.fan. -Адміністратор

Перевірки

root @ master: ~ # інструмент dns запит master swl.fan пошта ALL -U адміністратор
Пароль для [SWL \ адміністратор]: Ім'я =, Записи = 1, Діти = 0 A: 192.168.10.9 (прапори = f0, послідовний = 2, ttl = 900)

root @ master: ~ # хост-майстер
master.swl.fan має адресу 192.168.10.5
root @ master: ~ # хост sysadmin
sysadmin.swl.fan має адресу 192.168.10.1
root @ master: ~ # хост-пошта
mail.swl.fan має адресу 192.168.10.9
root @ master: ~ # хост-чат
chat.swl.fan має адресу 192.168.10.12
root @ master: ~ # проксі-хост
proxy.swl.fan має адресу 192.168.10.11
root @ master: ~ # хост-файловий сервер
fileserver.swl.fan має адресу 192.168.10.10
root @ master: ~ # хост 192.168.10.1
1.10.168.192.in-addr.arpa покажчик доменного імені sysadmin.swl.fan.
root @ master: ~ # хост 192.168.10.5
5.10.168.192.in-addr.arpa вказівник доменного імені master.swl.fan.
root @ master: ~ # хост 192.168.10.9
9.10.168.192.in-addr.arpa покажчик доменного імені mail.swl.fan.
root @ master: ~ # хост 192.168.10.10
10.10.168.192.in-addr.arpa вказівник доменного імені fileserver.swl.fan.
root @ master: ~ # хост 192.168.10.11
11.10.168.192.in-addr.arpa вказівник доменного імені proxy.swl.fan.
root @ master: ~ # хост 192.168.10.12
12.10.168.192.in-addr.arpa покажчик доменного імені chat.swl.fan.

Для допитливих

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

Ми додаємо користувачів

root @ master: ~ # користувач інструменту
Використання: користувач інструменту samba Управління користувачами. Параметри: -h, --help показати це довідкове повідомлення та вийти Доступні підкоманди: add - Створити нового користувача. create - Створити нового користувача. delete - Видалити користувача. вимкнути - вимкнути користувача. enable - Увімкнути користувача. getpassword - Отримайте поля пароля облікового запису користувача / комп’ютера. list - Список усіх користувачів. пароль - Змінити пароль для облікового запису користувача (того, що надається при автентифікації). setexpiry - Встановіть термін дії облікового запису користувача. setpassword - Встановіть або скиньте пароль облікового запису користувача. syncpasswords - синхронізувати пароль облікових записів користувачів. Щоб отримати додаткову допомогу щодо конкретного підкоманди, введіть: користувач інструменту samba (-h | --help)

root @ master: ~ # користувач інструменту створює кроки Trancos01
Користувача "trancos" створено успішно
root @ master: ~ # користувач інструменту створить gandalf Gandalf01
Користувача "gandalf" створено успішно
root @ master: ~ # користувач інструменту створює legolas Legolas01
Користувача "legolas" створено успішно
root @ master: ~ # список користувачів інструменту
Адміністратор Гендальф Леголас крокує вперед krbtgt Гість

Адміністрування через графічний інтерфейс або через веб-клієнт

Відвідайте wiki.samba.org, щоб отримати детальну інформацію про те, як встановити Microsoft RSAT o Засоби віддаленого адміністрування серверів. Якщо вам не потрібні класичні політики, надані Microsoft Active Directory, ви можете встановити пакет ldap-обліковий запис-менеджер який пропонує простий інтерфейс для адміністрування через веб-браузер.

Пакет програм віддаленого адміністрування сервера Microsoft (RSAT) включений в операційні системи Windows Server.

Ми приєднуємо домен до клієнта Windows 7 під назвою "сім"

Оскільки у нас немає DHCP-сервера в мережі, перше, що нам потрібно зробити, це налаштувати мережеву карту клієнта з фіксованою IP-адресою, оголосити, що основним DNS буде IP-адреса samba-ad-dcта перевірте, чи активована опція "Зареєструвати адресу цього з'єднання в DNS". Перевіряти, чи ім'я «сім»Ще не зареєстровано у внутрішньому DNS Samba.

Після того, як ми приєднаємо комп'ютер до домену і перезапустимо його, спробуємо увійти з користувачем «кроки«. Ми перевіримо, чи все працює нормально. Також рекомендується перевірити журнали клієнта Windows і перевірити правильність синхронізації часу.

Адміністратори з певним досвідом роботи з ОС Windows виявлять, що будь-які перевірки клієнта дадуть задовільні результати.

Резюме

Сподіваюся, стаття буде корисною для читачів спільноти FromLinux.

До побачення!


Зміст статті відповідає нашим принципам редакційна етика. Щоб повідомити про помилку, натисніть тут.

8 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Гонсало Мартинес - сказав він

    Довга, але детальна стаття, дуже хороший крок за кроком, як все зробити.

    Я наголошую на NIS, правда в тому, що, хоча я знаю про його існування, я ніколи не знав, як це працює, оскільки, чесно кажучи, це завжди створювало у мене враження, що він практично мертвий поруч з LDAP і Samba 4.

    PS: Вітаємо з вашим новим особистим проектом! Шкода, що ви не збираєтесь далі писати тут, але принаймні є де слідувати за вами.

  2.   HO2Gi - сказав він

    Величезний підручник, як завжди для моїх улюблених, Вітаю Фіцо.
    Вітаю з проектом.

  3.   IWO - сказав він

    Розділ НІС чудовий, я співчуваю Гонсало Мартінесу, я це знав коротко, але не уявляв, як його впровадити та в яких ситуаціях він використовується.
    Дякую один раз за величезний "багажник" теоретичної та практичної статті.
    Нарешті нові успіхи у вашому новому проекті «gigainside».

  4.   Федеріко - сказав він

    Дякуємо всім за коментар !!!.
    привіт

  5.   муссоль - сказав він

    smb.conf, який ви показуєте, не має жодного зв’язку з LDAP, це навмисно так чи я щось залишив?

  6.   phico - сказав він

    mussol: Це контролер домену Samba 4 Active Directory, який вже має вбудований сервер LDAP.

  7.   Вінсент - сказав він

    Чи можете ви прокоментувати, як приєднати mac (apple) до samba 4 AD-DC?
    Спасибо.

  8.   jramirez - сказав він

    Як справи;

    Дякую за посібник, це чудово. У мене є запитання щодо повідомлення, яке з’являється мені.

    root @ AD: ~ # nping –tcp -p 53 -c 3 ad.rjsolucionessac.com
    Не вдалося вирішити вказане ім’я хосту / IP: ad.rjsolucionessac.com. Зверніть увагу, що ви не можете використовувати діапазони IP у стилі "/ mask" І "1-4,7,100-"
    Не вдається знайти дійсну ціль. Переконайтесь, що вказані хости - це або IP-адреси у стандартній нотації, або імена хостів, які можна вирішити за допомогою DNS
    root @ AD: ~ #