Как сделать файловый сервер на linux и ввести его в домен

Обновлено: 07.07.2024

Развернуть файловый сервер для Windows машин на Ubuntu достаточно просто. Обычно такой сервер используется для организации файловых хранилищ в рамках Active Directory домена.

В то же время можно без труда создавать файловые сервера и в бездоменной сети, в том числе для домашнего применения.

В любом случае воспользуйтесь Samba – установите ее с помощью менеджера пакетов Synaptic или следующей командой:

Файловый сервер в составе домена Active Directory

Для создания файлового сервера, интегрированного в домен Active Directory, сначала необходимо ввести Вашу машину с Ubuntu в домен.

Чтобы создать файловый сервер, настройка PAM не потребуется, достаточно добавить доменных пользователей и группы через Winbind в систему.

Войдя в домен, настройте расшаренные ресурсы на компьютере. Учтите, что Samba будет проецировать права на файлы Windows на права Unix, однако принципиальные различия в механизмах присвоения прав скорее всего не дадут ей это сделать. Права на файлы всегда и в любом случае управляются Вашей файловой системой на компьютере с Ubuntu, а Samba может только адаптироваться под них, а менять их поведение - нет.

Поддержку POSIX ACL можно найти в ext3/4, и для её активации нужно только добавить к опциям монтирования нужного раздела параметр acl.

Важно! Каталог, который нужно расшарить через Samba, должен лежать на диске, смонтированном с опцией acl. В противном случае будет невозможно нормально применять механизм разграничения прав доступа к файлам на шарах.

Помните еще вот о чем: POSIX ACL не поддерживают наследование прав доступа от родительских каталогов, в то время как в Windows эта возможность есть. Так что в Samba существует дополнительный механизм сохранения информации о наследовании прав доступа, использующий расширенные атрибуты файловой системы. Чтобы Samba корректно обрабатывала наследование прав, кроме acl к опциям монтирования файловой системы добавьте параметр user_xattr, ответственный за включение поддержки расширенных атрибутов.

Например, удобно использовать для организации расшаренных ресурсов отдельные LVM диски. В этом случае строчки в fstab для них выглядят так:

Опция noexec нужна для перестраховки: что на шарах для Windows 100% не должно быть исполняемых файлов Linux.

Установите пакет необходимх утилит для работы с acl на Ubuntu:

Теперь просмотрите расширенные права (т.е. ACL) на файл или каталог следующей командой:

Установите такой командой:

Не забывайте, что механизм POSIX ACL никак не связан с Samba - это только надстройка над стандартным механизмом разграничения прав в Linux. Так что Samba может его использовать, но не способна как-либо изменить или обойти.

Для использования расширенных атрибутов ФС пригодится похожий на acl пакет утилит - attr, поставьте его следующей командой:

Чтобы просмотреть расширенные атрибуты, используйте команду:

А для установки выполните:

Следует помнить, что Samba хранит всю информацию о наследовании в бинарном виде в единственном расширенном атрибуте user.SAMBA_PAI. Так что поменять что-то с помощью setfattr не получится, возможно только полное удаление расширенных атрибутов (в некоторых случаях необходимость в этом возникает).

Контролировать наследование прав с Windows машины возможно с помощью штатных инструментов этой системы, или утилитой smbcacls.

Расширенные атрибуты файловой системы позволяют включить в Samba полную поддержку файловых атрибутов DOS (например скрытого, архивного и пр.).

Если в Вашей системе есть каталог, который нужно расшарить через Samba (и он расположен на диске, подмонтированном с поддержкой acl и user_xattr), настройте его расшаривание – введите нужную информацию в файл /etc/samba/smb.conf.

В первую очередь займитесь общими настройками для добавления в секцию [global] этого файла:

Затем настройте сам расшаренный ресурс. В примере он указан как profiles, а физически на Ubuntu машине расположен по адресу /var/data/profiles:

Существует ряд других опций – вся подробная информация есть в документации по Samba.

Обязательно поставьте правильного владельца и права доступа на расшариваемую папку, иначе в неё может быть запрещена запись на уровне прав Linux. Можете сделать так:

Внимание! Так как Ваша Ubuntu машина введена в домен, вы можете применять пользователей и группы домена в качестве владельцев файлов прямо в Ubuntu.

Проверьте корректность настройки Samba командой:

Далее перезапустите Samba:

Теперь получить доступ к расшаренному ресурсу Вы можете с любой машины домена. Но не забывайте про SGID и Sticky биты для каталогов, предназначенные для наследования группы-владельца и запрещения пользователям удаления не своих файлов - это особенно актуально для многопользовательских хранилищ. При этом, в отличие от редактирования прав из Windows, поменять эти биты на папках на расшаренном ресурсе невозможно - только вручную прямо на Ubuntu компьютере.

Samba позволяет хранить предыдущие версии файлов, что может пригодиться при создании общих ресурсов с пользовательскими данными.

Автономный файловый сервер

Далеко не все располагают доменом Active Directory. Поэтому часто появляется необходимость организовать на Linux машине независимое файловое хранилище с собственной системой авторизации. Это несложно.

В этом случае вся информация о пользователях будет храниться в базе данных Samba, а добавлять и удалять пользователей на нее придется вручную.

Главное – нужно определиться с используемым способом доступа к ресурсу. Следует корректно установить значение параметра security в секции [global] файла /etc/samba/smb.conf.

Стандартно применяется значение share или user.

И не забудьте изменить значение параметра workgroup на соответствующее, причем все остальные настройки напрямую будут зависеть от конкретных целей.

Автономный файловый сервер без авторизации

В домашних условиях удобно, когда все видят всех. Для этого просто добавьте 4 строчки в секцию [global] файла /etc/samba/smb.conf (некоторые могут уже быть в наличии):

NOTEBOOK - имя компьютера, которое будет в сети. Также установите дополнительные программы:

Дополнительно для kubuntu необходимо установить smb4k . После редактирования настроек перезапустите службы. В systemd (начиная с 15.04) перезапуск осуществляется так:

В англоязычной документации для обозначения процесса настройки Samba на выполнение роли AD DC используется термин "provisioning", в данном тексте в качестве перевода будет использоваться термин "Назначение".

Выполнение Назначения требует наличия привилегий суперпользователя (в Astra Linux Special Edition - суперпользователя с высоким уровнем целостности) для создания конфигурационных файлов и установки прав доступа. После выполнения Назначения служба smbd перестанет работать, а службы winbind,nmbd, krb5-kdc перейдут под управление доменной службы samba-ad-dc. Однако, после установки всех необходимых пакетов все эти службы будут автоматически запущены, и перед выполнением Назначения их нужно будет остановить и заблокировать их автоматический запуск. Приведённые далее сценарии Назначения содержат соответствующие команды.

Samba, начиная с версии 4.0, может работать как контроллер домена (domain controller, DC) Active Directory (AD).

При применении Samba в качестве DC AD в условиях реальной эксплуатации
рекомендуется использовать два или более DC для обеспечения отказоустойчивости.

Эта статья рассказывает, как настроить Samba как первый DC в домене, чтобы построить новый лес AD.
Дополнительно, эту статью можно использовать для миграции из домена Samba NT4 в домен Samba AD.

Если требуется подключить Samba к уже существующему доменному лесу AD, как дополнительный DC

  • Для быстрого подключения с помощью графического инструмента fly-admin-ad-server см. Samba: инструменты Astra Linux для быстрой настройки
  • Подробные инструкции см. Присоединение Samba DC к существующему домену Active Directory.

Samba при использовании в роли AD DC поддерживает:

  • Интегрированый сервер LDAP как база данных AD. Подробности см. Поддерживают ли Samba AD DC работу с OpenLDAP или другими службами LDAP;
  • Авторизацию через службу Kerberos Key Distribution Center (KDC). Поддерживаются варианты MIT KDC и Heimdal KDC;
    Поставляемая в составе Astra Linux Samba использует MIT KDC, также поставляемый в составе этих ОС;
  • Работу с встроенным сервером DNS;
  • Работу с внешним сервером DNS (в примерах ниже рассматривается работа с сервером DNS BIND9).

Подготовка к инсталляции

  • Выберите имя хоста для вашего AD DC. Не рекомендуется использовать в качестве имен хостов такие идентификаторы, как PDC или BDC, унаследованные от NT4 . Эти сущности отсутствуют в AD, и такие названия вызывают путаницу;

Выберите DNS-имя для вашего доменного леса AD. Это имя также будет использовано как имя области (realm) Kerberos AD ;

Для создания домена AD используйте DNS-имя, которое не понадобится изменять. Samba не поддерживает переименование зон DNS AD и областей Kerberos.

Отключите инструменты (например, resolvconf), которые автоматически обновляют файл настроек DNS /etc/resolv.conf.
AD DC и члены домена обязаны использовать сервер DNS, способный разрешать зоны DNS AD . Если в сети нет других серверов DNS, то файл /etc/resolv.conf должен указывать адрес самого сервера:

Убедитесь, что файл /etc/hosts на DC корректно разрешает полное доменное имя (fully-qualified domain name, FQDN) и короткое имя хоста DC во внешний сетевой IP-адрес DC. Например:

Имя хоста не должно разрешаться в IP-адрес 127.0.0.1 или в любой другой IP-адрес, кроме используемого на внешнем сетевом интерфейсе DC.
Для проверки правильности настроек можно использовать команду:

Если Samba уже была установлена (настроена)

Если Samba уже была установлена (настроена):

  • Проверьте, что все процессы Samba остановлены:
    • Если вывод команды показывает наличие любого из процессов samba, smbd, nmbd, или winbindd, то остановите эти процессы и запретите их автоматический запуск:
    • Пакет (apt install winbind) называется winbind с одним 'd';
    • Процесс (ps fax | grep winbindd) называется winbindd с двумя 'dd';
    • Сервис (sytemsctl status winbind) называется winbind с одним 'd';
    • Удалите все существующие файлы конфигурации Samba smb.conf file. Чтобы получить список путей к этим файлам:
      • Удалите все файлы баз данных Samba (*.tdb и *.ldb). Чтобы получить список путей к этим файлам:

      LOCKDIR: /usr/local/samba/var/lock/
      STATEDIR: /usr/local/samba/var/locks/
      CACHEDIR: /usr/local/samba/var/cache/
      PRIVATE_DIR: /usr/local/samba/private/

      Только полная очистка настроек поможет предотвратить ошибки, и гарантирует, что никакие файлы из предыдущей настроки Samba не попадут в новые настройки DC.

      • Если существует файл настроек Kerberos /etc/krb5.conf file, также удалите его:

      Пакет samba входит в дистрибутивы Astra Linux, и может быть установлен с помощью графического менеджера пакетов,
      или из командной строки командой

      После установки пакета samba сервис smbd будет запущен автоматически с настройками "по умолчанию".

      Отдельно установленный пакет samba может быть использован как файловый сервер или сервер печати. Для использования samba в качестве домена AD нужно установить пакет samba и дополнительные пакеты:

      sudo apt install samba winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user krb5-kdc bind9

      Обратите внимание - указанная команда устанавливает также и пакет bind9 - сервер DNS.

      Подготовительные команды

      Перед Назначением останавливаем далее ненужные службы, запрещаем их запуск, и удаляем установленную по умолчанию конфигурацию Samba:

      sudo systemctl stop winbind smbd nmbd krb5-kdc
      sudo systemctl mask winbind smbd nmbd krb5-kdc
      sudo rm /etc/samba/smb.conf

      Назначение

      Назначение выполняется с помощью команды samba-tool domain provision. Эта команда поддерживает возможность выполнения настроек в интерактивном или автоматическом режимах. Подробности см.:

      samba-tool domain provision --help

      При создании нового домена AD рекомендуется сразу включить так называемые расширения NIS (NIS extensions), передав инструменту samba-tool domain provision параметр --use-rfc2307.
      Это позволит хранить в AD специфические атрибуты Unix:

      • Числовые идентификаторы пользователей (UID);
      • Пути у домашним каталогам;
      • Идентификаторы групп.

      Включение расширений NIS при установке не влечёт за собой никаких отрицательных побочных эффектов, а их включение в существующем домене требует ручного расширения схемы AD.

      Подробности см. в:

      Описание возможных параметров Назначения

      При Назначении будут применяться следующие параметры:

      Выбирает службу DNS.

      Варианты служб NONE и BIND9_FLATFILE более не поддерживается.

      Устанавливает пароль администратора домена.

      Если заданный пароль не будет соответствовать требованиям по сложности пароля, Назначение не будет выполнено.

      Другие параметры, часто используемые в команде samba-tool domain provision:

      --option="interfaces=lo eth0" --option="bind interfaces only=yes": Если сервер имеет несколько сетевых интерфейсов, используйте эти параметры для привязки Samba к нужным интерфейсам. Это позволить команде samba-tool зарегистрировать корректный сетевой адрес при настройке.

      • Не используйте NONE как службу DNS, эта возможность больше не поддерживается;
      • При использовании в качестве службы DNS службы BiIND, не используйте вариант BIND9_FLATFILE, эта возможность больше не поддерживается;
      • После назначения первого DC в домене AD не настраивайте больше таким способом никакие другие DC в этом домене, используйте процедуру присоединение (Join) для настройки остальных DC.

      Назначение Samba в интерактивном режиме

      Для выполнения Назначения в интерактивном режиме выполнить команду:

      sudo samba-tool domain provision --use-rfc2307 --interactive

      В процессе Назначения должен произойти примерно такой диалог:

      Интерактивный режим настройки поддерживает различные параметры команды samba-tool domain provision, что позволяет задавать настройки, не содержащиеся в интерактивном диалоге.

      Назначение Samba в автоматическом режиме

      Для примера назначения Samba в автоматическом режиме используем следующие параметры:

      Для указанных параметров команда назначения будет выглядеть так:

      Завершающие команды

      После успешного выполнения команды Назначения:

      Подробно команды для проверки результатов настройки контроллера домена описаны в статье Присоединение Samba к существующему домену AD. Разница только в том, что домена AD сейчас нет, сервер только один, соответственно, опрашивать нужно только один сервер, и в ответах будет только один сервер.

      С помощью команды samba-tool dns zonecreate м ожно добавить необязательную зону реверсивного поиска:

      Если требуется использовать несколько реверсивных зон, просто выполните команду несколько раз с указанием параметров соответствующих подсетей.
      Изменение реверсивных зон не требует перезапуска сервисов Samba или BIND.

      Настройка синхронизации времени

      Для нормальной рабботы службы Kerberos требуется синхронизация времени всех участников домена. Подробности см. в Настройка NTP или в Синхронизация времени.

      Участники домена AD используют DNS для поиска сервисов, например, таких, как LDAP и Kerberos. Для этого они должны использовать сервер DNS, способный разрешать зоны DNS AD.

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

      Помимо использования DHCP, настройку на нужный сервер можно выполнить непосредствнно на хостах - участниках домена в файле /etc/resolv.conf.
      Для этого укажите в файле:

      • имя домена DNS AD как имя домена для поиска (search),
      • IP-адрес вашего DC как значение параметра nameserver.

      Разрешение имён для клиентских машин

      После выполнения указанных выше настроек DNS сервер не может получать и, соответственно, выдавать информацию об именах и IP-адресах клиентских машин.

      Если в домене используются клиентские машины, получающие динамические IP-адреса от сервера DHCP, сервер DNS может быть настроен на автоматическое получение информации о выданных адресах. Примерный порядок настройки см. в статье Динамическое обновление DNS клиентских машин FreeIPA;

      Если в домене используются клиентские машины, которым присваиваются статические адреса, то:

      1. Можно использовать для присвоения этих статических адресов сервер DHCP с динамическим обновлением адресов;
      2. Можно вручную задавать соответствие имени и адреса для каждого такого клиента. См. Администрирование DNS.

      Kerberos

      При работе в домене AD, Kerberos используется для аутентификации пользователей, хостов, и сервисов.

      Процедуры установки и настройки клиентов Kerberos см. Kerberos

      Во время процедуры назначения Samba автоматическм создает конфигурационный файл /var/lib/samba/private/krb5.conf для клиентов Kerberos, настроенный на создаваемый DC.

      В автоматически создаваемом файле конфигурации Kerberos для поиска доменного контроллера Kerberos (KDC) используются сервисные записи (SRV). Для того, чтобы такая конфигурация работала корректно, в домене должна быть правильно настроена и работать служба, в том числе созданы файлы зон, в которых размещены соответствующие сервисные записи (см. статью DNS-сервер BIND9).

      Во время назначения автоматически создаются разделяемые ресурсы netlogon и sysvol, и они обязательно должны существовать в DC. Чтобы увидеть все разделяемые файловые ресурсы, предоставляемые DC:

      smbclient -L localhost -U%

      Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]

      Sharename Type Comment
      --------- ---- -------
      netlogon Disk
      sysvol Disk
      IPC$ IPC IPC Service (Samba x.y.z)
      Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]

      Для проверки работы аутентификации, подключитесь к ресурсу netlogon с использованием учётной записи администратора домена:

      Enter Administrator's password:
      Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]
      . D 0 Tue Nov 1 08:40:00 2016
      .. D 0 Tue Nov 1 08:40:00 2016

      49386 blocks of size 524288. 42093 blocks available

      Если тесты не выполняются, см. Поиск и устранение проблем

      Для управления Samba AD DC в состав пакета Samba входит инструмент командной строки samba-tool.

      Основные команды иструмента:

      Подробная информация об инструменте доступна в справочнике man:

      Краткую справку по работе инструмента можно получить командой

      Инструмент wbinfo

      При установке пакета samba автоматически устанавливается служба winbindd.

      Для работы с этой службой используется инструмент командной строки wbinfo,
      позволяющий получать информацию о пользователях и группах AD.

      КомандаОписание
      wbinfo -uВывести список пользователей
      wbinfo -g Вывести список групп
      wbinfo -i имя_пользователя Вывести подробную информацию о пользователе
      wbinfo -?
      wbinfo --help
      Вывести справку по командам

      По умолчанию, пользователи домена AD не могут выполнять вход в Linux-системы.
      Для обеспечения входа в Linux-системы с учетными записями Active Directory необходимо внести следующие изменения в настройки Samba AD DC в настройки пользовательских компьютеров.

      Настрока Samba AD DC

      В конфигурационном файле Samba /etc/samba/smb.conf необходимо добавить настройки службы winbind и разрешение авторизоваться через эту службу (добавленные строки выделены жирным шрифтом):

      template shell = /bin/bash
      winbind use default domain = true
      winbind offline logon = false
      winbind nss info = rfc2307

      winbind enum users = yes
      winbind enum groups = yes

      После внесения изменений проверить правильность конфигурации командой

      И перезапустить службы samba.

      Настройка пользовательских компьютеров

      На пользовательском компьютере использовать команду:

      И убедиться, что включены все профили PAM.
      При необходимости - включить аутентификацию winbind, используя клавишу "пробел".
      По окончании нажать клавишу "Tab", перейти на "ОК", и записать изменения.

      В файле /etc/nsswitch.conf добавить слово winbind параметры password и group:

      passwd: compat winbind
      group: compat winbind
      shadow: compat

      hosts: files dns
      networks: files

      protocols: db files
      services: db files
      ethers: db files
      rpc: db files

      Чтобы пользователи AD после аутентификации могли менять свой пароль из командной строки
      в файле /etc/pam.d/common-password из строки password [success=1 default=ignore] pam_winbind.so use_authtok try_first_passfile убрать слово use_authtok statement:

      Несмотря на то, что Samba в режиме AD DC может предоставлять услуги разделения файлов так же, как и в любом другом режиме применения, разработчкики Samba не рекомендуют использовать DC как файловый север по следующим причинам:

      • Для всех организаций, за исключением самых маленьких, наличие более, чем одного DC, является реально хорошим способом резервирования, повышающим безопасность обновлений;
      • Отсутствие сложных данных и влияния на другие сервисы позволяет обновлять DC совместно с ОС хоста каждые год или два;
      • Обновления могут выполняться путем установки новых версий, или внесения изменений, которые лучше проверены в Samba, что позволяет получить новые возможности, избежав множества рисков, связанных с повреждением данных;
      • Необходимость модернизации DC и файлового сервера наступает в разные моменты. Потребность в новых возможностях DC и файлового сервера возникает в разные моментв времени. В то время, как AD DC стремительно развивается, приобретая новые возможности, файловый сервер, после более 20 лет, гораздо более консервативен;
      • mandatory smb signing is enforced on the DC.

      Если вы изучаете возможность использовать Samba DC как файловый сервер, рассмотрите вместо этого возможность использовать на DC виртуальную машину VM, содержащую отдельного участника домена.

      Если вы вынуждены использовать Samba DC как файловый сервер, помните, что виртуальная файловая система (virtual file system, VFS) позволяет настраивать разделяемые ресурсы только со списками управления доступом access (control lists, ACL) Windows.
      Разделяемые ресурсы с ACL POSIX на Samba DC не поддерживаются, и не работают.

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

      Если у вас маленький домен (маленький офис, домашняя сеть), нет желания следовать рекомендациям разработчиков Samba, и DC используется как файловый сервер, настройте Winbindd до начала настройки раздеяемых ресурсов.
      Подробности см.: Configuring Winbindd on a Samba AD DC.

      В этой статье будет описан процесс добавления Linux-машины (Ubuntu 20.04) в домен Windows AD.

      Шаг 1. Установка пакетов и подготовка

      Сначала обновите пакеты.

      sudo apt updatesudo apt upgrade

      После этого установите требуемые пакеты.

      sudo apt -y install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit

      Далее мы настроим все инструменты. Вам требуется знать:

      • Домен: office.local
      • IP DNS-сервера: 192.168.0.1
      • IP второго DNS-сервера: 192.168.0.2

      Шаг 2. Настройка DNS

      Откройте конфигурационный файл netplan:

      sudo nano /etc/netplan/*.yaml

      network:ethernets:enp0s3:addresses:- 192.168.0.15/24gateway4: 192.168.0.10nameservers:addresses: [192.168.0.1, 192.168.0.2]search:- office.localoptional: trueversion: 2

      • addresses — это IP, назначаемый сетевой карте;
      • gateway4 — IP роутера;
      • nameservers — DNS-сервера;
      • search — целевой домен.

      sudo netplan apply

      Шаг 3. Обнаружение домена, присоединение к нему и проверка результата.

      В первую очередь требуется обнаружить домен:

      realm discover office.local

      Вы увидите что-то подобное. Это означает, что настройки сети верны и машина получила ответ от домена. Если нет, вам необходимо проверить настройки сети, домен и работоспособность DNS.

      office.localtype: kerberosrealm-name: OFFICE.LOCALdomain-name: office.localconfigured: no.

      Затем присоединитесь к домену AD. Замените admin1 на имя администратора и укажите пароль.

      realm join -U admin1 office.localPassword for admin1:

      Проверьте, возможен ли прием информации о пользователе AD. Замените user1 на имя пользователя вашего домена.

      id user1@office.localuid=687821651(user1@office.local) gid=687800512(user1@office.local) groups=687800512(domain users@office.local)

      Шаг 4. Последние настройки и авторизация.

      Необходимо произвести настройку, чтобы в будущем каждый раз не добавлять имя домена к имени пользователя.

      sudo nano /etc/sssd/sssd.conf

      Измените значение use_fully_qualified_names на False. Перезагрузите и проверьте:

      sudo systemctl restart sssdid useruid=687821651(user1@office.local) gid=687800512(user1@office.local) groups=687800512(domain users@office.local)

      Теперь нужно настроить создание домашних каталогов для пользователей AD при входе в систему.

      Войдите в систему как пользователь AD.

      Это означает, что вы успешно вошли в систему как пользователь AD.

      Также вы можете разрешить авторизацию для некоторых пользователей и групп AD или же ограничить других. В приведенном ниже примере настроен запрет для всех пользователей, кроме user0, user1 и группы Main Admins.

      sudo realm deny –allsudo realm permit user0@office.local user1@office.localsudo realm permit -g 'Main Admins'

      Настройка пользователей AD для получения root-прав такая же, как и для локальных, но выполняется в другом файле.



      Ох, и обленились же в последнее время все системные администраторы. Софт, как и прежде, можно юзать пиратский, поэтому абсолютно никто не мешает им ставить серверные виндовозы для решения элементарных задач. Таких как, например, поднятие файлового сервера. С windows на это требуется каких то пол часа времени. Немного, да? А как насчет Linux? С ним нужно подольше поковыряться? Не согласен.

      На самом деле для поднятия файлового хранилища на Linux требуется ничуть не больше времени. И сейчас, уважаемый читатель, я тебе это докажу. Я покажу, как настроить Debian Linux для работы с Active Directory, а так же поднять веб-интерфейс для администрирования.

      ]]> Определимся с задачей

      Пусть у нас имеется контроллер домена на Windows 2003 Server и системник под файловый сервер без ОС. Задача состоит в том, чтобы: установить ОС, ввести машину в домен, настроить аутентификацию доменных пользователей без запроса логина и пароля, поднять веб-интерфейс для управления, создать необходимые общедоступные ресурсы.
      Итак, приступимс…

      Условимся, что:
      Имя нашего нового файлового сервера: vr-online
      Домен: mydomain
      Контроллер домена: dataserver
      Полное доменное имя контроллера домена (FQDN): dataserver.mydomain.local
      IP контроллера домена: 192.168.0.1
      IP DNS-сервера: 192.168.0.1
      Виртуальная машина – сила!

      Для удобства будем ставить и настраивать на виртуальной машине Virtual Box. Если тоже захочешь попрактиковаться на виртуалке, то не забудь тип сетевого подключения поставить “Сетевой мост” с сетевой картой, которая смотрит в локальную сеть:


      На данный момент последним является Debian Linux 5 под кодовым именем Lenny. Его и устанавливаем.


      Установка Дебиана проста до безобразия. Выбирай “Graphical install”, затем укажи нужный язык. Во время установки понадобится ввести следующие параметры:
      Имя компа : vr-online
      Домен : mydomain.local
      Разметка диска : Авто (отдельные разделы под home, usr, var, tmp). При желании можно разметить вручную. На твоё усмотрение.
      Выбор программного обеспечения: ТОЛЬКО “стандартная система”, ничего более.


      Настройку сети я пропустил, т.к. в любой нормальной корпоративной локалке есть DHCP-сервер. Т.е. программа установки получит все параметры автоматом. На этом установка окончена.
      Log in, please!


      Логинимся под рутом.

      Первым делом убираем CD/DVD привод из sources.list. В реале это позволяет физически отключить привод от нашего сервака. Ведь больше он на нём не понадобится.

      Комментируем строчку, что начинается на “deb cdrom” и сохраняем.
      Теперь:

      Поднимаем SSH. Ведь рулить серваком проще всего c помощью классной утилиты Putty.

      > apt-get install ssh

      Т.к. сервер стоит во внутренней сети, то можно не менять настройки безопасности SSH и сразу логиниться со своего компа от имени рута. Делать так на public сервере ни в коем случае нельзя.

      Теперь смотрим какой IP получил наш сервер:

      Можно заходить по SSH. Открываем Putty, пишем IP. В разделе Translation указываем UTF -8. Огромное достоинство Putty заключается в том, что данные из буфера обмена вставляются с командную строку по клику правой клавиши мыши по области окна. Т.е. скопировал ранее заготовленную команду со всеми нужными параметрами, кликнул по окну Putty, данные попали в командную строку.


      Куда же нам теперь без файлового менеджера? Он обязательно пригодится. Ставим Midnight Commander. Кстати в mc при работе через putty можно пользоваться даже мышкой.

      > apt-get install mc

      Переходим к настройке сервера

      На всякий случай добавим в hosts инфу о нашем контроллере домена:

      192.168.0.1 dataserver.mydomain.local dataserver

      Ставим ntpdate для синхронизации времени c DC(Domain Controller), это нужно для нормальной работы Kerberos.

      > apt-get install ntpdate

      Прописываем наш контроллер домена:

      Запускаем синхронизацию времени вручную:

      > ntpdate –s dataserver.mydomain.local

      Для проверки запускаем:

      Должны увидеть правильное время и дату.

      Пришла пора уточнить сервер(ы) DNS, обслуживающий домен.

      Там обязательно должна быть строка:

      Ведь наш DC так же несёт на себе DNS
      Ставим все нужные для работы пакеты.

      > apt-get install samba winbind libpam-smbpass krb5-user krb5-config

      Небольшое описание того, что мы устанавливаем:

      Samba - это набор программ, которые реализуют протокол SMB/CIFS в системах unix, позволяя обслуживать запросы к файлам и принтерам клиентов Windows, NT, OS/2 и DOS. Этот протокол иногда называют LanManager или NetBIOS.

      Winbind - для получения информации о пользователях и группах с серверов Windows NT. Также служба может выполнять функции авторизации через PAM-модуль.

      Libpam-smbpass – это модуль для PAM. Позволяет преобразовывать Unix пользователей в пользователей Samba. Т.к. у Samba своя собственная база пользователей, поэтому её обязательно нужно синхронизировать с базой Unix.

      Krb5-conf – создаёт начальную конфигурацию пакета.

      Во время установки появится окно конфигурирования samba. Спросит рабочую группу/домен. пишем всё, что угодно. Всё равно потом эти конфиги перезапишем. Следующий вопрос будет об использовании WINS. нажми “Нет”. Следом выйдет запрос настройки Kerberos. Пишем тоже всё, что угодно. На следующий вопрос отвечаем аналогично.

      Всё. Установилось. Настроим сначала Kerberos.
      Лёгким жестом руки удаляем всё из конфига:

      > cat /dev/null > /etc/krb5.conf

      Не подумай, что я – маньяк. Просто я не люблю, когда в конфигах находится сотни строк с комментариями. Всегда удаляю всё лишнее. Теперь правим его:

      Вот мой начальный рабочий конфиг кербероса:
      [libdefaults]
      default_realm = MYDOMAIN.LOCAL

      krb4_config = /etc/krb.conf
      krb4_realms = /etc/krb.realms
      kdc_timesync = 1
      ccache_type = 4
      forwardable = true
      proxiable = true

      v4_instance_resolve = false
      v4_name_convert = <
      host = <
      rcmd = host
      ftp = ftp
      >
      plain = <
      something = something-else
      >
      >
      fcc-mit-ticketflags = true

      [realms]
      DATASERVER.MYDOMAIN.LOCAL = <
      kdc = dataserver.mydomain.local
      admin_server = dataserver.mydomain.local
      >

      [domain_realm]
      .mydomain.local = MYDOMAIN.LOCAL
      mydomain.local = MYDOMAIN.LOCAL

      [login]
      krb4_convert = true
      krb4_get_tickets = false

      Важно. Соблюдать регистр букв! Точно так же как и у меня.
      Обрати внимание, что в разделе [realms] мы пишем DATASERVER.MYDOMAIN.LOCAL, а не MYDOMAIN.LOCAL .

      Просто замени MYDOMAIN.LOCAL и DATASERVER.MYDOMAIN.LOCAL на своё и все будет работать. По факту это – и есть стандартный конфиг. Я лишь вырезал из него комментарии и realms доменов, которыми ты всё равно никогда не будешь пользоваться.

      Так же безжалостно поступаем с конфигом самбы. Дропаем всё.

      > cat /dev/null > /etc/samba/smb.conf
      > nano /etc/samba/smb.conf

      Вот мой рабочий конфиг, с которого я всегда начинаю настройку:
      [global]
      workgroup = MYDOMAIN
      server string = File server
      dns proxy = no
      log file = /var/log/samba/log.%m
      max log size = 1000
      syslog = 0
      panic action = /usr/share/samba/panic-action %d
      security = ads
      realm = MYDOMAIN.LOCAL
      encrypt passwords = true
      passdb backend = tdbsam
      obey pam restrictions = yes
      unix password sync = yes
      passwd program = /usr/bin/passwd %u
      pam password change = yes
      socket options = TCP_NODELAY
      idmap uid = 1000-20000
      idmap gid = 1000-20000
      template shell = /bin/bash
      winbind use default domain = yes
      winbind enum groups = yes
      winbind enum users = yes

      [printers]
      comment = All Printers
      browseable = no
      path = /var/spool/samba
      printable = yes
      guest ok = no
      read only = yes
      create mask = 0700

      Расписывать каждый параметр не буду. Лень Описание можно найти без проблем в инете. Потестим конфиг самбы:

      Получили:
      Load smb config files from /etc/samba/smb.conf
      Processing section "[homes]"
      Loaded services file OK.
      Server role: ROLE_DOMAIN_MEMBER

      Отлично. Осталось совсем немного.

      В файле /etc/nsswitch.conf указать, откуда брать информацию о пользователях:

      passwd: compat winbind
      group: compat winbind
      shadow: compat winbind

      hosts: files dns winbind

      Модифицируем PAM. Настраиваем системную аутенфикацию и авторизацию контроллером домена.

      Пишем:
      account required pam_unix.so
      account sufficient pam_winbind.so

      Пишем:
      auth sufficient pam_winbind.so
      auth sufficient pam_unix.so nullok_secure use_first_pass

      Пишем:
      password sufficient pam_winbind.so
      password required pam_unix.so nullok obscure min=4 max=8 md5

      Пишем:
      session required pam_unix.so
      session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

      Т.к. у нас объявлена в конфиге Samba одна шара (домашняя директория каждого юзера домена), то нужно создать папку MYDOMAIN в /home.

      Перезапускаем winbind и samba

      > /etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start

      Теперь джойнимся в домен:

      > net ads join -U administrator

      Здесь administrator – логин администратора домена. Писать просто логин.
      Не [email protected], и не eval(unescape('document.write(' [email protected] ');')) . А просто administrator!

      Далее вбиваем пароль. Вуяля! И мы в домене.

      Делаем reload winbind, чтобы он перечитал информацию о доменных юзерах и группах:

      После чего проверяем что же получили. Отобразим доменных юзеров и группы:

      > wbinfo –u
      > wbinfo –g

      -u отобразит списки доменных пользователей
      -g отобразит списки доменных групп
      Поздравляю, мой дорогой читатель!

      Теперь можно зайти на наш файловый сервер:

      Пока ты увидишь лишь одну шару – папку с именем своего пользователя. Эта личная папка создастся для каждого доменного пользователя, зашедшего по сети на файловый сервер. Доступ к папке имеет только сам пользователь, и никто более.

      Дело почти сделано. Теперь нужно поставить удобную панель администрирования Samba. Ставим, конечно же, WebMin.

      Webmin - это программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс, в большинстве случаев, позволяя обойтись без использования командной строки и запоминания системных команд и их параметров. Используя любой браузер, администратор сервера может создавать новые учётные записи пользователей, почтовые ящики, изменять настройки служб и сервисов, например : веб-сервера Apache, DNS, файл-сервера Samba.

      Удобней всего ставить из репозитория. Правим /etc/apt/sources.list. Добавим в него строку:
      Цитировать

      Далее нужно установить GPG ключ следующими командами:
      Цитировать

      > apt-get update
      > apt-get install webmin

      Все зависимости подтянуться автоматически.

      Теперь со своего рабочего места можно уже заходить на сервер через браузер:


      Логинимся под root’ом. Для начала нужно сменить язык интерфейса:
      Webmin – Change Language and theme - выбираем Russian UTF-8.

      Надо залогиниться заново, чтобы увидеть русскоязычный интерфейс. Кое-что всё равно останется на англицком, но это не страшно.

      Вот теперь можно заняться настройкой Samba.
      Идём Службы – Файл-сервер Samba.
      Выбирай “Настройка автоматической синхронизации пользователей Unix и Samba”.

      Ставь галочки:
      - Добавлять пользователя Samba при добавлении пользователя Unix
      - Изменить пользователя Samba при изменении пользователя Unix
      - Удалить пользователя Samba при удалении пользователя Unix
      Кликай пимпу “Применить”.

      Аналогично нужно настроить синхронизацию групп Samba с группами Unix. Кнопка “Configure automatic Unix and Samba group synchronisation”

      Остаётся лишь перенести всех доменных пользователей и группы в Samba. Для этого кликай “Преобразование пользователей Unix в пользователи Samba”.

      Ну вот и всё. Теперь можно создавать новые файловые ресурсы и админить существующие, используя удобный веб-интерфейс.
      Напоследок.

      Установку и настройку я производил попутно с написанием статьи, поэтому ошибок быть не может. Но если, всё-таки, ты нашёл недочет, то пиши в личку или на мыло. Поправлю.

      Как видишь, нет абсолютно ничего сверхсложного. Первый раз я копался с настройкой 2 дня. Теперь мне хватает 30-ти минут на поднятие файлового сервера на Debian Linux. Качай свой скилл и сможешь делать всё это с закрытыми глазами. Удачи!

      Читайте также: