Файл сервер на ubuntu server

Файл сервер на ubuntu server

Технический блог специалистов ООО"Интерфейс"

  • Главная
  • Создание файлового сервера на Ubuntu 9.10 (Samba)

Создание файлового сервера на Ubuntu 9.10 (Samba)

  • Автор: Уваров А.С.
  • 30.03.2010

Файловый сервер, наряду с роутером, можно без преувеличения назвать предметом первой необходимости для любой организации. Использование ОС Linux для такого сервера выглядит весьма привлекательно, во всяком случае в небольших организациях, где не требуется тесной интеграции с AD. А сэкономленные на стоимости Windows Server и клиентских лицензий к нему деньги будут весьма кстати в наши кризисные времена.

Мы будем рассматривать настройку файлового сервера на примере нашей условной сети, в которой уже присутствует роутер, настройку которого мы рассматривали ранее, хотя никто не мешает объединить эти функции на одном сервере.

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

Имеет смысл разнести ОС и пользовательские данные по различным винчестерам, это позволит увеличить быстродействие избежав конкуренции за головки HDD между ОС и пользовательскими запросами. Для хранения данных следует использовать жесткие диски повышенной надежности (например серии Western Digital RE3), объединенные в массив RAID1 (зеркало) или RAID10, если требуется повышенное быстродействие. Проведенные нами эксперименты показали, что для современных систем разница в быстродействии между программным RAID и RAID организованным с помощью интегрированного в обычную (не серверную!) материнскую плату контролером полностью отсутствует. В обоих случаях обработка запросов ложится на плечи ЦПУ, быстродействия которых сегодня более чем достаточно для выполнения данной задачи.

В качестве платформы для файлового сервера будем использовать уже знакомый нам Ubuntu Server 9.10. На этапе установки системы следует отказаться от автоматической разметки жестких дисков и выполнить данную операцию вручную. В нашем примере мы будем использовать два жестких диска, первый из них предназначен для системы и его можно разметить автоматически.

Для этого выбираем в списке нужный нам диск и далее следуем указаниям мастера. Никаких изысков с системным диском не требуется, вполне достаточно будет создать на нем swap раздел размером 0,5 — 1 Гб, и корневой раздел на оставшемся пространстве, именно такой результат вы получите выбрав автоматическую разметку.

Второй диск (дисковый массив) размечаем отдельным разделом и создаем для него собственную точку монтирования, например /data. В качестве файловой системы мы рекомендуем выбрать XFS, по результатам проведенного нами тестирования (которое мы опубликуем позднее) XFS показала наилучшие результаты, уверенно опередив конкурентов.

В результате должно получится что-то аналогичное рисунку ниже. Еще раз проверяем правильность разметки, если надо вносим исправления. До этого момента все еще можно изменить. Убедившись, что все сделано правильно подтверждаем наш выбор и записываем изменения на диск.

После чего продолжаем установку, отказавшись от выбора готовых ролей. Несмотря на то, что на этом этапе можно выбрать роль Samba сервера и автоматически установить все необходимые пакеты, мы не советуем этого делать. Самостоятельная установка даст вам больше знаний о назначении того или иного пакета и позволит вам осмысленно подходить к настройке и локализации неисправностей, если они вдруг возникнут. Если же вы знаете что и как делать, то зачем вам это руководство?

Сразу рекомендуем установить Midnight Commander и SSH для удобства администрирования:

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

Читайте также:  Iphone 6s не работает вспышка и фонарик

Теперь перейдем непосредственно к настройке роли файлового сервера. Для ее реализации нам потребуется Samba, этот пакет предоставляет общий доступ к файлам и принтерам клиентам сетей Microsoft.

Для настройки отредактируем файл /etc/samba/smb.conf, начнем с глобальной секции, параметры которой применяются для всех сервисов. Зададим имя рабочей группы:

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

Если сервер имеет несколько сетевых интерфейсов, например совмещен с роутером, то можно (и нужно) ограничить доступ к файловому серверу внутренней сетью. Допустим у нас eth0 — внешняя сеть, eth1 — внутренняя, для работы только с внутренним интерфейсом укажем:

Первоначально этих настроек достаточно, не забываем сохранить изменения. Рассмотрим настройки сервисных секций, допустим нам нужен общий ресурс 1CBases для размещения баз 1C:Предприятие. Создадим новый каталог /data/1CBases, и установим полные права на него для всех:

В самом конце smb.conf добавляем следующую секцию:

С параметрами секции все предельно понятно, название секции (в квадратных скобках) определяет имя общего ресурса. Первый параметр указывает путь к нему, второй и третий разрешают гостевой доступ и запись соответственно. Сохраняем файл конфигурации и перезапускаем Samba:

После чего наш сервер должен быть виден в сетевом окружении Windows и на нем будет доступна общая папка 1СBases.

Для удаленного администрирования Samba рекомендуем установить предоставляющий web-интерфейс пакет Swat:

Для того, чтобы воспользоваться всеми возможностями пакета необходимо будет авторизоваться под root’ом. Но по умолчанию в Ubuntu root не имеет пароля, поэтому зададим его (и не забудьте, что теперь для выполнения административных задач вам нужно вводить именно его) и перезагрузимся:

Теперь в любом браузере достаточно набрать http://имя_сервера:901 и, после авторизации, получить полный доступ к настройкам Samba.

Авторами Swat являются разработчики Samba, поэтому можно расценивать это решение как "родное". Действительно Swat предоставляет полный доступ ко всем настройкам Samba и позволяет выполнять практически любые задачи без ручной правки smb.conf.

Содержание

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

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

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

Для того, чтобы создать файловый сервер, интегрированный в домен Active Directory, вам в первую очередь потребуется ввести вашу машину с Ubuntu в домен. Этому посвящена отдельная статья:

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

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

Поэтому по умолчанию на расшаренных ресурсах будут весьма скудные возможности контроля доступа — назначение разных прав для пользователя, группы и всех остальных. Однако это легко исправить, добавив в вашу ФС поддержку POSIX ACL . В этом случае можно будет назначать различные права различным пользователям и группам практически как в Windows.

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

Читайте также:  The witcher сериал netflix

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

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

А установить командой

Для работы с расширенными атрибутами ФС потребуется очень похожий на 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:

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

Кроме всего прочего 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) перезапуск выглядит так:

Читайте также:  Сравнение мобильных процессоров 2018

Посмотреть «шары» можно через файловый броузер nautilus, konkueror или так:

One of the most common ways to network Ubuntu and Windows computers is to configure Samba as a File Server. This section covers setting up a Samba server to share files with Windows clients.

The server will be configured to share files with any client on the network without prompting for a password. If your environment requires stricter Access Controls see Securing File and Print Server.

Installation

The first step is to install the samba package. From a terminal prompt enter:

That’s all there is to it; you are now ready to configure Samba to share files.

Configuration

The main Samba configuration file is located in /etc/samba/smb.conf . The default configuration file has a significant number of comments in order to document various configuration directives.

Not all the available options are included in the default configuration file. See the smb.conf man page or the Samba HOWTO Collection for more details.

First, edit the following key/value pairs in the [global] section of /etc/samba/smb.conf :

The security parameter is farther down in the [global] section, and is commented by default. Also, change EXAMPLE to better match your environment.

Create a new section at the bottom of the file, or uncomment one of the examples, for the directory to be shared:

comment: a short description of the share. Adjust to fit your needs.

path: the path to the directory to share.

This example uses /srv/samba/sharename because, according to the Filesystem Hierarchy Standard (FHS) , /srv is where site-specific data should be served. Technically Samba shares can be placed anywhere on the filesystem as long as the permissions are correct, but adhering to standards is recommended.

browsable: enables Windows clients to browse the shared directory using Windows Explorer .

guest ok: allows clients to connect to the share without supplying a password.

read only: determines if the share is read only or if write privileges are granted. Write privileges are allowed only when the value is no , as is seen in this example. If the value is yes , then access to the share is read only.

create mask: determines the permissions new files will have when created.

Now that Samba is configured, the directory needs to be created and the permissions changed. From a terminal enter:

The -p switch tells mkdir to create the entire directory tree if it doesn’t exist.

Finally, restart the samba services to enable the new configuration:

Once again, the above configuration gives all access to any client on the local network. For a more secure configuration see Securing File and Print Server.

From a Windows client you should now be able to browse to the Ubuntu file server and see the shared directory. If your client doesn’t show your share automatically, try to access your server by its IP address, e.g. \192.168.1.1, in a Windows Explorer window. To check that everything is working try creating a directory from Windows.

To create additional shares simply create new [dir] sections in /etc/samba/smb.conf , and restart Samba . Just make sure that the directory you want to share actually exists and the permissions are correct.

The file share named "[share]" and the path /srv/samba/share are just examples. Adjust the share and path names to fit your environment. It is a good >[qa] with a path of /srv/samba/qa .

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