Файловый сервер на linux для Windows сетей zhitsoboy.ru

Файловый сервер на linux для Windows сетей

Файловый сервер на linux для Windows сетей

  • Главная
  • ТЕХНИЧЕСКАЯ
  • LINUX
  • Файловый сервер Samba в домене Windows

Файловый сервер Samba в домене Windows

  • размер шрифта уменьшить размер шрифтаувеличить размер шрифта
  • Печать
  • Эл. почта

В данной статье будет рассмотрен вариант развёртывания файлового сервера Samba на базе операционной системы UBUNTU и организация его взаимодействия с доменов Windows.

Для примера использован следующие исходные данные:

дистрибутив: UBUNTU 16.04.4
имя сервера Linux: 2UBUNTU-16
домен Windows: TESTDOMAIN.LOCAL
контроллеры домена: 2SRV1.TESTDOMAIN.LOCAL , 2SRV2.TESTDOMAIN.LOCAL
администратор контроллера домена: adm

Подготовка

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

sudo apt-get update
sudo apt-get upgrade

Для удобства работы с сервером можно дополнительно установить Webmin (систему управления сервером LINUX через web-интерфейс).

Если есть необходимость, то меняем имя сервера:

hostnamectl set-hostname 2UBUNTU-16

Добавляем доменное имя сервера в файл hosts

sudo nano /etc/hosts

127.0.0.1 localhost
127.0.1.1 2ubuntu-16 2ubuntu-16.testdomain.local

После этого перезагружаем сервер:

Установка Samba

Помимо установки Samba, так же устанавливаем пакеты Kerberos и Winbind (для возможности подключения и взаимодействия с доменом на Windows):

sudo apt install krb5-user winbind samba libnss-winbind libpam-winbind

При установке Kerberos будет запрошена область по умолчанию — нужно указать адрес домена (в нашем случае TESTDOMAIN.LOCAL)

Проверяем доступность контроллера домена:

ping -c 5 TESTDOMAIN.LOCAL

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

sudo apt install ntp

Настраиваем файл конфигурации службы ntp

sudo nano /etc/ntp.conf

Нужно закомментировать все текущие указанные серверы проверки время и добавить свой домен ( pool TESTDOMAIN.LOCAL)

Перезапускаем службу времени и проверяем статус синхронизации:

sudo systemctl restart ntp
ntpq -p

Запрашиваем тикет у Kerberos у контроллера домена:

kinit Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Если не отобразилась информация об ошибке, то запрос прошёл верно и можно проверить результат:

Настройка Samba

Сохраним резервную копию файла конфигурации:

sudo cp /etc/samba/smb.conf /etc/samba/smb.default.conf

Далее редактируем файл конфигурации:

sudo nano /etc/samba/smb.conf

Пример заполнения раздела [global] [global]
security = ADS
workgroup = TESTDOMAIN
realm = TESTDOMAIN.LOCAL
encrypt passwords = yes
# Default idmap config for local BUILTIN accounts and groups
idmap config * : backend = tdb
idmap config * : range = 3000-7999
# idmap config for the TESTDOMAIN domain
idmap config TESTDOMAIN : backend = rid
idmap config TESTDOMAIN : range = 10000-999999
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes

После сохранения изменений в файле smb.conf выполняем проверку:

Взаимодействие Samba с доменом Windows

Если ошибок не обнаружено, то подключаем сервер к домену:

sudo net ads join -U Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

В случае отсутствия ошибок проверяем наличия сервера в списке компьютеров домена на стороне контроллера.

Перезагружаем сервис Winbind:

service winbind restart

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

wbinfo —ping-dc
wbinfo -u
wbinfo -g

Чтобы UBUNTU могла использовать не только локальные группы и пользователей, но и доменные данные, нужно отредактировать настройки диспетчера службы имен NSS (Name Services Switch)

sudo nano /etc/nsswitch.conf

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

passwd: compat winbind
group: compat winbind

После этого можно проверить возможность просмотра пользователей и групп:

getent passwd adm
getent group «пользователи домена»

Добавляем папку общего ресурса:

sudo mkdir -p /srv/samba/public

Назначаем имя владельца и группу для созданной папки:

sudo chown «adm»:»пользователи домена» /srv/samba/public

Редактируем файл конфигурации Samba, чтобы добавить поддержку Windows ACLs и сетевую папку public

sudo nano /etc/samba/smb.conf

[global]
# Windows ACLs Support
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes

[Public]
path = /srv/samba/public/
read only = no

Перезапустим службу Samba (чтобы применить изменения):

service smbd restart && service nmbd restart

Для удобства удалённой настройки разрешений сетевых ресурсов добавим администраторам домена привилегию SeDiskOperatorPrivilege:

net rpc rights grant «TESTDOMAINадминистраторы домена» SeDiskOperatorPrivilege -U «TESTDOMAINadm»

Проверяем подключение привилегий:

net rpc rights list privileges SeDiskOperatorPrivilege -U «TESTDOMAINadm»

Теперь управлять разрешениями для общих ресурсов можно удалённо с сервера Windows. Для этого запускаем оснастку «Управление компьютером» от имени администратора домена, выбираем «Подключиться к другому компьютеру…» и выбираем имя сервера Linux ( 2UBUNTU-16.TESTDOMAIN.LOCAL)

В разделе «Служебные программы» — «Общие папки» — «Общие ресурсы» будут отображаться сетевые ресурсы, доступные на сервере Linux.

Дополнительно:

Дополнительно можно подключать «корзину» для отдельных ресурсов (чтобы сохранять удалённые файлы и папки).

Проверяем наличие соответствующего модуля:

dpkg -l |grep samba-vfs-modules

Устанавливаем, если он отсутствует:

apt install samba-vfs-modules

Добавляем поддержку корзины для общего ресурса Public

sudo nano /etc/samba/smb.conf

[Public]
path = /srv/samba/public/
read only = no
vfs object = recycle
recycle: repository = .recycle/%U
recycle: touch = yes
recycle: keeptree = yes
recycle: versions = yes

«vfs object = recycle» – включение корзины для общего ресурса;
«recycle: repository = .recycle/%U» – папка, куда будут перемещаться удаленные файлы;
«recycle: touch = yes» – обновлять дату при перемещении файла в корзину;
«recycle: keeptree = yes» – сохранять структуру каталогов удаленного файла;
«recycle: versions = yes» – при перемещении в корзину файла с существующим именем, добавлять к началу имени файла префикс «Copy #».

Блог начинающего линуксоида.

советы, руководства, инструкции.

воскресенье, 4 октября 2015 г.

Настройка локальной сети Linux — Linux и Linux — Windows

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

Общие сведения.

Для создания общих сетевых ресурсов в среде Windows, применяется протокол CIFS (ранее известный как SMB), поддержка которого в UNIX-подобных системах обеспечивается программным обеспечением Samba. Samba работает по протоколам TCP и UDP, соединение шифруется. С помощью Samba возможно обеспечить не только общий доступ к файлам и принтерам, но и, например, построить контроллер домена с поддержкой Active Directory (об этом в следующий раз). С помощью Samba можно открыть общий доступ не только между Windows и Linux, но и между Linux и Linux. Однако есть некоторые ограничения. Во первых, SMB — это «виндовый» протокол, со всеми вытекающими. Он не слишком хорошо интегрируется с UNIX-системами. Не вдаваясь в сложные технические описания, скажу лишь что скорость передачи данных по Samba медленнее, зачастую значительно, она нестабильна, как и загрузка сетевого канала, а также даёт весьма ощутимую нагрузку на процессор. Поэтому если в вашей домашней сети нет Windows-машин, то предпочтительнее использовать протокол сетевой файловой системы — NFS.

Суть работы NFS весьма проста. Удалённый ресурс встраивается в общее дерево файловой системы, и в результате каталог, который находится на файловом сервере или другом компьютере, отображается в вашей системе как локальный, будто находится на диске. NFS работает по протоколу TCP. NFS весьма полезна при создании так называемых тонких клиентов (бездисковые рабочие станции, в которых система загружается по сети). Скорость передачи данных по NFS в 2 раза выше, чем через Samba, загрузка сети равномерная, а нагрузка на центральный процессор минимальная. Однако у NFS есть два недостатка. Первый — довольно фиговая поддержка в Windows (реализуется через подсистему UNIX и отдельное приложение). Второй — отсутствие шифрования (c версии NFSv4, для шифрования может использоваться протокол Kerberos). Тем не менее, для Линуксовой сети, NFS — идеальный вариант.

Внимание: на обеих системах должны быть настроены статические IP адреса.В Windows кликнете правой кнопкой на значке сетевых подключений и выберите «Центр управления сетями и общим доступом», далее «Изменение параметров адаптера», выберите нужный адаптер (вашу сетевую карту) и зайдите в её свойства. Перейдите в пункт «Протокол Интернета версии 4» и выберите «Использовать следующий IP адрес»:

Если ваши компьютеры соединены напрямую, поле «Основной шлюз» можете оставить пустым. Если через роутер — укажите IP адрес роутера (тот, через который осуществляется доступ к его вэб-интерфейсу, обычно 192.168.0.1). В Linux аналогичную операцию можно провести в Network Manager (настройка сетевых подключений, вкладка IPv4):

Читать еще:  Внешняя оперативная память для ноутбука

Если вы используете фаерволл (брандмауэр Windows либо другое аналогичное ПО, а также iptables в Linux или фаерволл в вашем роутере), убедитесь что открыты нужные порты (Для SAMBA: 135, 139, 445/TCP; 137, 138/UDP. Для NFS: 2049/TCP).

Linux => Windows

Представим ситуацию: у вас есть второй компьютер (или файловый сервер), под управлением Ubuntu 14.04, на котором находится большая коллекция ваших видео, фото и так далее, расположенная на отдельном диске, который монтируется в /media/MyDATA. Этот диск нужно расшарить на компьютер под управлением Windows 8.1. Первым делом, установим необходимые пакеты:

sudo apt install samba samba-common smbclient

Теперь необходимо сконфигурировать Самбу. У вас есть два пути: консольный и графический.

Консольный.

Открываем файл /etc/samba/smb.conf:

sudo nano /etc/samba/smb.conf

Полностью удаляем всё содержимое и вписываем такие настройки:

[global]
workgroup = WORKGROUP
netbios name = Ubuntu-PC
server string = Ubuntu PC
map to guest = bad user
guest account = nobody
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

#Следовать по симлинкам
unix extensions = no
wide links = yes
follow symlinks = yes

# UTF кодировка
unix charset = UTF-8
dos charset = cp1251
store dos attributes = yes

max log size = 10

[MyDATA]
path = /media/MyDATA
writeable = yes
available = yes
public = yes
guest ok = yes
force user = nobody
force group = nobody

В секции global описываются общие параметры: WORKGROUP — имя рабочей группы (должно быть одинаково для всех машин в локальной сети), Ubuntu-PC — имя компьютера, с которого расшариваются каталоги (укажите своё), вход без пароля, гостевой доступ и оптимизации для соединения. В секции MyDATA описывается доступ к диску, смонтированному в /media/MyDATA. При желании вы можете указать доступ к отдельным каталогам на этом диске, аналогичным способом. Сохраните файл и выполните команду:

Эта команда проверит конфиг на наличие ошибок и в случае их обнаружения, укажет где что исправить.

Теперь запустите сервер Samba:

sudo service start smbd

Графический.

Для настройки параметров Samba в графическом интерфейсе, существует 2 замечательные утилиты — system-config-samba (есть только в Ubuntu и производных) и gadmin-samba (есть везде). Эти утилиты представляют собой весь конфиг Самбы, выполненный в графическом режиме. Для Ubuntu установим первую утилиту:

sudo apt install syste-config-samba

Здесь всё предельно понятно и в настройках разберётся любой 🙂

Для других дистрибутивов (например Debian), установите пакет gadmin-samba:

sudo apt install gadmin-samba

После настройки, перезапустите демон Samba. Для Ubuntu:

sudo service restart smbd

sudo systemctl restart smbd.service

Также можно открыть доступ к нужному каталогу из файлового менеджера, открыв свойства каталога:

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

После этого, в сетевом окружении, должны появиться расшаренные каталоги.

Linux => Linux

А теперь представим, что у нас есть компьютер с Debian 8 (IP адрес 192.168.0.2), и ноутбук с Ubuntu 14.04 (IP адрес 192.168.0.3). С ноутбука нужно расшарить раздел диска, который смонтирован в /media/DATA (это раздел для торрентов и прочей файлопомойки). Для этого мы используем NFS:

sudo apt install nfs-kernel-server nfs-common rpcbind

Укажем что нужно расшаривать:

sudo nano /etc/exports

/media/DATA — то, что нужно расшарить.
192.168.0.0/255.255.255.0 — только компьютерам в этой подсети будет обеспечен доступ к общему ресурсу (можете указать конкретный IP адрес).
rw — поддержка чтения и записи.
no_root_squash — Позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу.
no_subtree_check — Если монтируется только часть тома, то сервер будет выполнять проверку принадлежности файла запрошенного клиентом, именно к той части тома, которая примонтирована. Это замедляет передачу данных, по этому зачастую данная опция включена в список параметров.
crossmnt — Этот параметр похож на nohide он дает возможности видеть каталоги смонтированные на основной системе. Таким образом, когда дочерняя файловая система «B» установлена на основной «А», установив crossmnt на «А» имеет тот же эффект, что и установка «nohide» на B.
fsid=0 — NFS-сервер должен быть в состоянии идентифицировать каждую файловую систему, которую экспортирует. Для сервера NFSv4, существует выделенная файловая система, которая является корнем всей экспортируемой файловой системе. fsid = root или fsid = 0 означают одно и то же.

sudo exportfs -a

Далее нужно указать, каким хостам в сети разрешено иметь доступ к серверу:

sudo nano /etc/hosts.allow

Указываем доступ для всех машин, находящихся в подсети 192.168.0.0/255.255.255.0:

nfsd: 192.168.0.0/255.255.255.0
rpcbind: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0

Если вы указали в файле exports только IP адрес нужной машины, то соответственно, указывайте его.

Теперь запустите сервис:

sudo service nfs-kernel-server start

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

sudo apt install nfs-common rpcbind

Создайте директорию для монтирования общего ресурса:

sudo mkdir /media/Share

Монтирование вручную.

sudo mount -t nfs4 192.168.0.3:/ /media/Share

В результате всё содержимое диска /media/DATA (на ноутбуке) окажется доступным на компьютере в каталоге /media/Share, как если бы эти данные хранились на нём. Для того чтобы ресурс монтировался автоматически после загрузки системы, есть два способа.

Монтирование через fstab.

Файл /etc/fstab содержит в себе информацию о присутствующих файловых системах, точках монтирования и параметрах монтирования. Чтобы ресурс /media/DATA монтировался на ваш компьютер автоматически, добавьте в конец файла /etc/fstab следуюущую строку:

192.168.0.3:/ /media/Share nfs user,rw,noauto 0 0

Опция noauto запрещает автоматическое монтирование во время загрузки, так как сеть может быть недоступна в этот момент. Вместо этого, в файловом менеджере, в левой колонке появится пункт Share, кликнув на который, сетевой ресурс автоматически смонтируется. Однако при таком способе монтирования, есть пара существенных недостатков. Во первых, если в момент выключения компьютера, был открыт какой-либо файл, расположенный на сетевом ресурсе, компьютер откажется выключаться. Во-вторых, такая же ситуация произойдёт в случае пропажи связи между клиентом (компьютером) и сервером (ноутбуком). Для того, чтобы этих проблем не было, существует второй способ монтирования.

Монтирование с помощью AutoFS.

AutoFS — это пакет для обеспечения монтирования съёмных и сетевых накопителей, только при обращении к ним. При отсутствии обращения к сетевому ресурсу или съёмному устройству в течении определённого времени, он автоматически размонтируется, и мгновенно монтируется при первом же обращении к нему. Устанавливаем:

sudo apt install autofs

sudo nano /etc/auto.master

В конец файла добавляем строку:

/mnt /etc/auto.nfs —timeout=60

/mnt — каталог для монтирования сетевого ресурса.
/etc/auto.nfs — путь к файлу, в котором описаны параметры монтирования.
—timeout=60 — время в секундах, после которого произойдёт размонтирование ресурса (можете указать своё).

Сохраняем и переходим к следующему файлу:

sudo nano /etc/auto.nfs

Share -fstype=nfs,rw,noatime,noexec,nosuid,tcp,async,rsize=32768,wsize=32768,intr,nolock,soft,noauto 192.168.0.3:/

Создадим директорию Share в каталоге /mnt, куда будет монтироваться ресурс:

sudo mkdir /mnt/Share

Вот и всё. Теперь в каталоге /mnt/Share, при первом же обращении к нему, будет появляться содержимое удалённого ресурса /media/DATA. Кнопка подключения сетевого диска появится в файловом менеджере.

Системное администрирование

Файловый сервер Samba в домене Windows

Рассмотрим настройку Samba 4 в роли файлового сервера, являющегося членом домена. Файловый сервер будет настроен с поддержкой Windows ACLs, что позволит администратору производить настройку прав доступа из операционной системы Windows. В качестве платформы будет использоваться Ubuntu Server 16.04.

Подготовка системы

После установки Ubuntu Server 16.04 сменим имя сервера на file

Добавим имя сервера в файл hosts

Настроим конфигурацию сети

В dns-nameservers нужно указать IP адреса доменных DNS серверов. В dns-search нужно указать название домена. Подробнее о настройке сети можно почитать в статье Ubuntu Server настройка сети.

Обновим индексы пакетов и систему

Более подробно об обновлении Ubuntu Server можно прочитать в статье Обновление Ubuntu Server.

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

Для синхронизации времени с контроллерами домена установим пакет NTP

В /etc/ntp.conf нужно закоментировать все строки, начинающиеся со слова pool, и добавить информацию о контроллерах домена

Читать еще:  Как включить локальную сеть на Windows 7?

4skill.loc — нужно заменить на название своего домена.

Перезапустим ntp сервис и проверим статус синхронизации времени

Настройка протокола Kerberos

Для поддержки протокола Kerberos установим следующий пакет

Отредактируем конфигурационный файл Kerberos

В default_realm нужно указать название своего домена.

Попробуем получить билет Kerberos для доменного пользователя administrator

Установка и настройка Samba и Winbind

Установим пакеты Samba и Winbind

Отредактируем конфигурационный файл Samba

В «workgroup» и «realm» нужно указать название своего домена. Параметр «winbind use default domain = yes» не является обязательным. Он позволяет использовать имена доменных пользователей и групп без указания доменной части.

Введем сервер в домен

Administrator — учетная запись администратора домена.

Перезапустим сервис Winbind и проверим возможность соединения Winbind с контроллером домена

Так же для диагностики можно использовать команды

Эти команды выводят список всех доменных пользователей и групп соответственно.

Настройка диспетчера службы имен NSS (Name Services Switch)

Чтобы использовать доменных пользователей в локальной системе, нужно установить необходимую библиотеку

и добавить поддержку Winbind в конфигурационный файл nsswitch.conf

Проверим возможность просмотра доменных пользователей и групп

Включение поддержки Windows ACLs и добавление общего ресурса

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

Добавим в конфигурационный файл Samba строки, обеспечивающие поддержку Windows ACLs и секцию Public, описывающую название и параметры общего ресурса

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

Проверим все ли вышло

Для управления разрешениями общего ресурса, из под пользователя, являющегося членом группы администраторы домена, нужно запустить оснастку управления компьютером. Нажать правой кнопкой мыши по «Управление компьютером», выбрать «Подключиться к другому компьютеру…» ввести имя Linux сервера. Выбрать «Служебные программы» > «Общие папки» > «Общие ресурсы». Нажать правой кнопкой мыши по общему ресурсу и выбрать «Свойства».

В открывшемся окне выбираем вкладку «Разрешения для общего ресурса». Разрешения файловой системы настраиваются во вкладке «Безопасность».

Включение корзины

В Samba есть возможность сохранять удаленные файлы и папки из общего ресурса. За эту возможность отвечает модуль samba-vfs-modules. Проверим установлен ли он в системе

Если модуль отсутствует, его можно установить командой

Добавим поддержку корзины для общего ресурса Public

«vfs object = recycle» – включение корзины для общего ресурса;
«recycle: repository = .recycle/%U» – папка, куда будут перемещаться удаленные файлы;
«recycle: touch = yes» – обновлять дату при перемещении файла в корзину;
«recycle: keeptree = yes» – сохранять структуру каталогов удаленного файла;
«recycle: versions = yes» – при перемещении в корзину файла с существующим именем, добавлять к началу имени файла префикс «Copy #».

Полное описание доступных параметров можно найти на странице официального руководства.

Перезапустим службу smbd

Теперь все удаленные файлы и папки будут перемещаться в скрытую папку .recycle, расположенную в корне общего ресурса Public.

Важно! На момент написания статьи использовался пакет Samba 4.3. При подключении модуля корзины (vfs object = recycle), было невозможно изменить ACL корневого общего ресурса (в данном случае Public). Также, при создании нового каталога, по умолчанию отключалось наследование прав.

Аутентификация доменных пользователей с использованием PAM

PAM — это набор динамически подключаемых модулей, используемых системой, для аутентификации пользователей. По умолчанию выполнить вход в систему могут только локальные пользователи. Для предоставления права входа доменным пользователям, определим в конфигурационном файле Samba расположение домашних каталогов и SHELL

Параметр «winbind offline logon = yes» не является обязательным. Он включает буферизацию личных данных от успешных логинов. Что позволяет выполнить вход в случае недоступности контроллера домена.

Для применения изменений перезапустим службу Winbind

Для связи Winbind с PAM нужно установить следующую библиотеку

Настройка PAM модуля осуществляется командой

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

Если аутентификация происходит на контроллере домена с WIndows Server 2012, при входе может появиться ошибка

По каким-то причинам пользователи домена добавляются в несуществующую группу с выше указанным ID. Чтобы избавиться от этой ошибки, можно добавить группу с таким ID в файл /etc/group

Разрешим локальный вход на сервер только членам группы администраторы домена. Сначала нужно узнать SID этой группы

Внесем изменения в /etc/pam.d/common-auth

В require_membership_of указан SID группы администраторы домена.

Разрешим группе администраторы домена получать root привилегии в sudo

OpenSSH Single sign-on (SSO)

Технология единого входа (англ. Single Sign-On) — технология, при использовании которой пользователь переходит из одного раздела портала в другой без повторной аутентификации.

Настроим возможность подключения к Linux серверу по протоколу SSH без ввода логина и пароля. Для подключения будут использоваться данные, введенные при входе в компьютер.

Для поддержки SSO в OpenSSH нужно внести изменения в sshd_config

и перезапустить службу SSH

В конфигурационный файл Samba нужно добавить следующие строки

Заключительным действием является создания keytab файла для Linux хоста

administrator — администратор домена.

По умолчанию keytab файл создается в /etc/krb5.keytab.

Посмотреть cодержимое созданного keytab файла можно командой

Все готово для подключения. На Windows хосте выполним вход в систему и откроем SSH клиент, например Putty.

Укажем имя сервера для подключения

Используем текущее имя пользователя

Разрешим использование GSS-API интерфейса

Итоговый файл /etc/samba/smb.conf

Дополнительную информацию можно найти на страницах официального руководства в разделах:

Поделиться ссылкой:

Навигация по записям

Файловый сервер Samba в домене Windows : 10 комментариев

Здравствуйте.
Спасибо за статью, все прошло без проблем. Но есть вопрос: как переименовать самба-сервер на Ubuntu, который уже является членом домена?

Здравствуйте!
1. Переименовать Ubuntu сервер командой hostnamectl set-hostname «новое имя сервера».
2. Изменить имя Ubuntu сервера в файле /etc/hosts на новое.
3. Загнать Ubuntu сервер в домен командой net ads join -U Администратор osName=’Ubuntu Server GNU/Linux’ osVer=’16.04 LTS’
4. На контроллере домена открыть оснастку «Пользователи и компьютеры» и из контейнера Computers удалить объект компьютер, имеющий старое имя Ubuntu сервера.
5. На контроллере домена открыть оснастку «DNS» и удалить записи типа A и PTR, связанные со старым именем Ubuntu сервера.

Удивительное дело, все сразу получилось. Самая лучшая инструкция в сети.
Консультант сервер на лине с доступом только определенным доменным группам к нему готов.
Все до включения корзины выполнил. Остальное вроде как не нужно.
Но что про keytab? Для чего это нужно? На сервак пускает и без него.
Вводить свой комп в домен особого смысла не вижу. Запомню пароль доменного юзера для общих папок в бумажнике, а хомяк шифруется все равно.

В доменной реализации от Microsoft (AD DS) основным протоколом аутентификации является Kerberos 5.
Kerberos использует механизм взаимной аутентификации клиента и сервера перед установлением связи между ними.
Иными словами клиент удостоверяет себя серверу, а сервер удостоверяет себя клиенту.
Для удостоверения используется, так называемый, билет Kerberos. Пользователь его получает от контроллера домена, когда вводит свой логин и пароль, при входе в систему.
В свою очередь сервер, использует keytab файл, для получения билета Kerberos. Грубо говоря, keytab файл хранит в себе логин и пароль от учетной записи хоста. Реализация работы данного механизма на linux сервере, позволяет производить аутентификацию без ввода логина и пароля. Как пример, при подключении по ssh, пользователь сразу попадает в свой домашний каталог, без ввода логина и пароля.
В небольшой организации, когда используется малое количество оснасток, возможно и не напрягает постоянно и везде вводить свой логин и пароль, но когда
количество сервисов резко возрастает, это занимает много времени…

у меня не заработало… не удается изменить права доступа к шаре через оснастку mmc, пишет отсутствуют права доступа, хотя подключаюсь доменным администратором. Дополнительный диск vdb1 с шарой «public» — отформатирован в NTFS. Все изменения, которые я делал по инструкции прошли успешно! Хочу использовать эту шару как сетевой диск для хранения перемещаемых профилей терминальных пользователей. Помогите решить проблему.

Читать еще:  Как сбросить настройки в БИОСе по умолчанию?

«Только пользователи и группы, имеющие привилегию SeDiskOperatorPrivilege, могут настраивать разрешения для общего ресурса». Проверьте наличие членства вашего доменного администратора в этой группе. Далее ничего не понятно: «диск vdb1 с шарой «public» — отформатирован в NTFS». NTFS это файловая система Windows, Linux её по умолчанию только на чтение понимает. Все диски должны быть отформатированы в ext4, или ext3 и должна быть включена поддержка ACL.

Спасибо Вам, добрый человек.
Замечательная статья для всех. Многое из неё (статьи) знал, а кое-что подзабыл.
Вот она и пригодилась.

Спасибо за теплые слова=)

Спасибо!
Инструкция рабочая, за 5 минут на Ubuntu 18.04 файловый сервер готов

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

Файловый сервер на linux для Windows сетей

ВНИМАНИЕ: при использовании данной статьи в целях создания и разработки своего файлового сервера под управлением пакета Samba, ОЧЕНЬ РЕКОМЕНДУЕТСЯ прочитать SMB-HOWTO, NET-HOWTO, а также использовать команды man smbclient и man smbmount для более подробной информации.

В данной статье речь пойдет о настройке файлового сервера под управлением Samba. Причем, здесь будут даны только начальные сведения по настройке Samba. Более подробнее об этом можно узнать в SMB-HOWTO, а также в NET-HOWTO. Ну а в этой статье я попробую ввести начинающих пользователей Linux в процесс установки своего собственного файлового сервера под управлением Samba , а так же попытаюсь остановиться на некоторых аспектах файла smb.config.

То, что Linux может работать продолжительно и бесперебойно — это ФАКТ. Возникает вопрос: почему бы не оснастить какую-нибудь «четверку» Linux’ом и не сделаеть из нее сервер? Наверное, это не плохое предложение. Более того, большинство знакомых мне администраторов сети так и делают.

Попробуем реализовать данную догадку на базе пакета Samba. Данный пакет работает на основе протокола SMB. Очень много плюсов он заслуживает за широкую распространенность и нетребовательность к ресурсам (достаточно наличия компьютера на базе 80486 и 4 МБ оперативной памяти *вот до чего техника дошла :)*).

Первым делом инсталлируем пакет Samba. Данный пакет состоит из двух отдельных программ (демонов): smbd (носитель протокола SMB) и nmbd (поддержка имен NetBIOS). Сначала их нужно правильно сконфигурировать и запустить. Только тогда ваша система (Linux) будет отображаться в сети.

Есть несколько вариантов загрузки smbd и nmbd демонов. Один из них, это когда запуск демонов производится автоматически при инсталляции. Если же вам это не нравится, то можно использовать сценарий Start-and-Stop в каталоге /etc/rc.d/init.d. Данный сценарий используется для загрузки вышеописанных демонов в память. Если и это не подходит, тогда используйте Super-Demon Inetd (конфигурационный файл /etc/inetd.conf). При использовании последнего будьте придельно внимательны и из соображений безопасности лучше используйте (при запуске посредством inetd) TCP-Swapper. Этот модуль фильтрует поступающие запросы в соответсвии с записями в файлах /etc/hosts.allow и /etc/hosts.deny, которые разрешают другим компьютерам доступ к системе (allow) или запрещают его (deny). На основе всего этого попробуем сделать корректные (правильные) записи в файл /etc/inetd.conf. Они будут выглядеть следующим образом:

netbios-ssn stream tcp nowait root
usr/sbin/tcpd/usr/sbin/smbd

или же
netbios-ns dgram udp wait
root/usr/sbin/nmbd nmbd

Характер предоставляемых ресурсов и разрешений на их использование определяется файлом /etc/smb.conf. Данный файл имеет очень большое значение при настройке Samba. Ниже я приведу «примитивный пример» файла smb.conf и попытаюсь вкратце описать функции той или иной строки.

Все разделы в файле smb.conf разбиты по спецификации и заключены в прямоугольные скобки [ ]. Отдельные записи созданы в соответствии с формулой Set_name = значение.

Первый раздел именуется [global]

[global]
guest account = guest
security = share
printing = bsd
printcap name = /etc/printcap
load printers = yes

Теперь попытаемся разобраться со всеми этими записями. Запись guest account = guest говорит о том, что пользователи получают доступ без регистрации согласно учетной записи пользователя-гостя (guest). Наверное, все-таки есть смысл оставить эту запись (у меня, например, таковая имеется в /etc/smb.conf). Но все же следует приделять внимание и осторожность при предоставлении прав доступа записи пользователя-гостя.

Дальше следует запись security = share. Она определяет, каким образом задается имя пользователя. Что это такое? В security можно задать одно из трех значений: share, user, server. Если указывается в качестве значения security = share, то при каждом доступе запрашивается имя пользовательского ресурса. Запись security = user задействует имя пользователя компьютера Windows (нужно указать имя пользователя, под которым вы входите в сеть Windows. Пароль — соответственно). И, наконец, если security = server, тогда данная запись использует для проверки пароля возможности NT-Server.

Переходим ко второму разделу файла smb.conf. Этот раздел называется [directory] и служит для совместного доступа к каталогам. Для совместного использования отдельного каталога необходимо указать полный путь к этому каталогу. При этом воспользуемся следующей последовательностью записей:

[directory]
comment = elk’s directory #комментарий
path = совместно используемый каталог
read only = yes

Здесь запись path устанавливает, какой каталог должен использоваться совместно (например, /usr/doc/SMB-HOWTO). Ресурсы, предоставляемые для совместного использования, должны иметь отдельную запись для каждого каталога. Для собственных же каталогов пользователей коллективный доступ реализуется следующим образом:

[homes]
comment = #здесь можно написать комментарий
browserable = yes
read only = no

Пояснения. В качестве имени сетевого ресурса, Samba использует имя пользователя, относящегося к числу «родных» («своих»). Следовательно, запись browserable = yes обеспечивает отображение в сети Windows совместно используемых каталогов. Следующая запись read only = no обеспечивает возможность записи в каталогах (если здесь no поменять на yes, тогда записывать в каталоги не будет возможности).

Проблема № 1. Закодированные пароли

С появлением Windows NT 4 (ох уж этот Windows) в операционных системах Microsoft происходит передача закодированных паролей по сети. Этот процесс происходит так же, как и в среде Windows 98 (начиная с NT Service Pack 3) . К сожалению, Samba не поддерживает ЭТОГО.

Что же делать? Так как безвыходных ситуаций не бывает (хотя, чем Windows не шутит :), то попытаемся что-то сделать.

Рабочее окружение формируется с помощью записи в системном реестре (Windows): создаем запись типа DWORD в ключе (для Windows NT 4) HKEY_LOCAL_MACHINESystemCurrent ControlSetServicesRdrParameters или же (для Windows 95/98) HKEY_LOCAL_MACHINE SystemCurrentControlSetServicesVxDParameters. Даем ей название EnablePlainTextPassword и присваиваем значение 1.

Это один из способов решения данной проблемы. Кроме этого, можно установить себе последнюю версию пакета Samba (например, 2.05а), которая поддерживает закодированные пароли.

Но, и в том и другом случае управление пользователями должно происходить с помощью команды smbpassword, а в файл smb.conf должна добавляться запись encrypt passwords = yes.

Проблема № 2. Использование Windows-машин из Linux

Вряд ли начинающие пользователи Linux OS смогут быстро разобраться с системой доступа к Linux-файлам из под Windows и наоборот.

Но, не все так сложно. Доступ к Linux-ресурсам из под Windows был кратко описан выше, а доступ к Windows-ресурсам из под Linux’а мы сейчас рассмотрим.

Программа smbclient, вызываемая с различными параметрами (справка вызывается командой man smbclient), делает ресурсы Windows доступными из Linux. Тем пользователям, которые работали с Ftp, данная программа не покажется сложной. С помощью smbclient вы можете проверять также конфигурацию собственного Samba-сервера или другие компьютеры вашей сети. Делается это при помощи команды

Можно также непосредственно встроить сетевые ресурсы Windows или Samba с помощью команды smbmount:

smbmount//имя_компьютера/каталог/Mountpoint -U имя_пользователя

И заключение. Можно с увереностью сказать, что настройка своего файлового сервера под Linux — «дело популярное». Если же еще и учесть, что NT- и Samba-сервер в одной сети с трудом терпят друг друга (Windows:) есть Windows:), поскольку Samba в конкурентной борьбе за домены имеет приоритет по отношению к NT-серверу,то стоит задуматься о более эффективном выходе из сложившейся ситуации.

Все предложения и замечания принимаются по этому адресу

Ссылка на основную публикацию
Adblock
detector