Samba linux ��� ����

Samba linux ��� ����

A Samba file server enables file sharing across different operating systems over a network. It lets you access your desktop files from a laptop and share files with Windows and macOS users.

This guide covers the installation and configuration of Samba on Ubuntu.

What you’ll learn

  • How to set up a Samba file server
  • How to share files across a local network

What you’ll need

  • Ubuntu 16.04 LTS
  • A Local Area Network (LAN) to share files over

If you have everything ready, let’s dive straight into the installation process on the next step!

Originally authored by Aden Padilla.

2. Installing Samba

To install Samba, we run:

We can check if the installation was successful by running:

The following should be its output:

3. Setting up Samba

Now that Samba is installed, we need to create a directory for it to share:

The command above creates a new folder sambashare in our home directory which we will share later.

The configuration file for Samba is located at /etc/samba/smb.conf . To add the new directory as a share, we edit the file by running:

At the bottom of the file, add the following lines:

Then press Ctrl-O to save and Ctrl-X to exit from the nano text editor.

What we’ve just added

    • comment: A brief description of the share.
  • path: The directory of our share.

    read only: Permission to modify the contents of the share folder is only granted when the value of this directive is no .

    browsable: When set to yes , file managers such as Ubuntu’s default file manager will list this share under “Network” (it could also appear as browseable).

    Now that we have our new share configured, save it and restart Samba for it to take effect:

    Update the firewall rules to allow Samba traffic:

    4. Setting up User Accounts and Connecting to Share

    Since Samba doesn’t use the system account password, we need to set up a Samba password for our user account:

    Note
    Username used must belong to a system account, else it won’t save.

    Connecting to Share

    On Ubuntu: Open up the default file manager and click Connect to Server then enter:

    On macOS: In the Finder menu, click Go > Connect to Server then enter:

    On Windows, open up File Manager and edit the file path to:

    Note: ip-address is the Samba server IP address and sambashare is the name of the share.

    You’ll be prompted for your credentials. Enter them to connect!

    Источник

    Файловый сервер SAMBA на базе Linux CentOS 7

    Привет Хабр!
    После активности шифровальщика Petya 27.06.2017, я отключил SMB1 он же CIFS, и получил производственное оборудование и сетевые МФУ которые не умеют работать на «новых» версиях SMB протокола.

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

    Под катом находится пошаговая инструкция по установке и настройке файлового сервера SAMBA на базе CentOS 7:

    — Анонимный доступ
    — Аутентификация и авторизация
    — Интеграция с Active Directory

    Установка CentOS 7

    Сервера работают под управлением VMware ESXi, и по этому я установил CentOS 7 1611 на VM, выделив 1 CPU, 1GB RAM и 3GB HDD.

    LVM я не использую, SWAP раздел не создаю, на загрузочный раздел выделяю 500MB, а все остальное отдаю под корень файловой системы. В качестве файловой системы использую ext4.

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

    Если вы новичок в линукс, делайте копии оригинальных файлов с конфигами, используйте команду cp.

    Получение ip адреса по DHCP

    Если по какой-то причине в сети нету DHCP сервера, вам стоит его поднять. Работать с большим количеством VM без DHCP не удобно.

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

    Показать ip адрес

    CentOS 7 использует пакетный менеджер YUM. Шпаргалка по yum находится тут.

    Если выход в интернет организован через прокси сервер, добавьте адрес прокси в файл конфигурации /etc/yum.conf, используйте редактор vi или следующую команду

    В случае использования логина и пароля для доступа к прокси серверу, добавьте следующие параметры:

    Установка на VM агентов для взаимодействия с хост сервером

    Для VMware ESXi необходимо установить open-vm-tools

    Для Hyper-V, hyperv-daemons

    Установка обновлений

    Очень важно установить все доступные обновления

    Midnight Commander

    Редактировать файлы без нормального редактора очень не удобно, и я предлагаю использовать mc и mcedit

    Настройка сети

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

    В командной строке список сетевых адаптеров можно получить командой

    Статический ip и gateway задается следующей командой, где «ens192» это имя сетевого адаптера

    Настройка FQDN

    Пусть полное имя хоста будет ls01.fqdn.com, выполняем команду

    Перезагружаем службу имен

    Проверить результат можно следующими командами

    Если протокол ipv6 не используется, логично его отключить, для этого нужно добавить два параметра в файл /etc/sysctl.conf, выполните следующие команды или используйте редактор mcedit

    Перезагрузите службу сети

    SELINUX

    На данном этапе службу SELINUX необходимо отключить, проверить статус службы SELINUX можно командой

    Измените значение SELINUX в файле /etc/selinux/config на SELINUX=disabled затем перезагрузите сервер.

    Вернусь к SELINUX в конце статьи.

    SAMBA

    Добавление службы в автоматический запуск

    Запуск службы и проверка состояния

    firewallD

    По умолчанию CentOS 7 использует брандмауэр firewallD, состояние службы можно узнать командой

    Для получения списка правил и сервисов используйте

    Обратите внимание на список сервисов, если вы отключили протокол ipv6, логично также поступить и с dhcpv6-client

    Создаем правило для SAMBA и перезагружаем

    Общий ресурс с анонимным доступом

    Создаем папку для ресурса /samba/guest

    Меняем владельца и назначаем права

    Редактируем файл конфигурации SAMBA /etc/samba/smb.conf

    Меняем содержание оригинального файла на следующее

    [global]
    workgroup = WORKGROUP
    security = user
    map to guest = bad user
    min protocol = NT1

    [guest]
    path = /samba/guest
    guest ok = Yes
    writable = Yes

    На всякий случай я указал минимальную версию протокола SMB=NT1. Если вы укажите SMB2 или SMB3, клиенты с Windows XP и ниже не смогут получить доступ к ресурсам.

    Проверка параметров и перезагрузка службы

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

    Бантики

    [global]
    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes

    Конфигурация SAMBA находиться в каталоге /etc/samba, а логи в каталоге /var/log/samba
    Мне удобней все инструменты держать по рукой, по этому я монтирую необходимые мне каталоги в /samba

    Создаем каталоги, в которые будет все монтироваться

    Редактируем конфиг файл /etc/fstab, я предполагаю что вы знаете за что отвечает fstab.

    Добавляем следующие строки

    /etc/samba /samba/smbconf none bind 0 0
    /var/log/samba /samba/smblogs none bind 0 0

    Монтируем без перезагрузки

    Подключение диска

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

    Для получения списка устройств можно использовать команду lsblk

    Создание таблицы разделов на диске /dev/sdb

    Подробную информация про gpt можно прочитать тут

    Создание раздела на весь диск sdb, в лучших традициях жанра я решил сделать отступ 1MiB в начале диска.

    Создаем файловую систему ext4

    Добавляем еще одну строку

    /dev/sdb1 /samba/guest ext4 defaults 0 0

    Подключение образа диска

    Если вам не нужны большие объемы, и достаточно ресурса размером ххх мб, можно подключить образ диска из файла.

    Создаем каталог для хранения образов

    Создаем файл образа размером 100 мб

    Про команду dd много интересного можно прочитать тут

    В варианте с образом я решил не создавать таблицу разделов, просто создаем файловую систему ext4.

    Конфиг для монтирования образа

    /samba/smbimg/100M.img /samba/guest ext4 defaults 0 0

    Подключение RAM диска

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

    Конфиг для RAM диска

    none /samba/guest tmpfs defaults,size=100M 0 0

    Удаление старых файлов

    В случае «файлопомойки» ресурсы нужно как-то освобождать, для этого можно использовать планировщик задач crontab

    #удалять файлы и каталоги каждый час
    * 0-23 * * * rm –R /samba/guest/*

    #Удалить только файлы старше 1 дня, запуск команды каждые 10 минут
    0-59/10 * * * * find /samba/guest/* -type f -mtime +1 -exec rm –f <> \;

    #удалить файлы старше 50 минут, запуск команды каждые 10 минут
    0-59/10 * * * * find /samba/guest/* -type f -mmin +50 -exec rm -f <> \;

    Логи службы crontab находятся в файле /var/log/cron

    Ограничение доступа к SAMBA по ip адресам

    Если вам нужно ограничить доступ ко всем ресурсам SAMBA, добавьте ваши списки доступа в разделе global, а если необходимо ограничить только на определенный ресурс, в разделе этого ресурса.

    [global]
    hosts allow = 192.168.1.100, 192.168.1.101
    hosts deny = ALL

    [guest]
    hosts allow = 192.168.0.0/255.255.0.0
    hosts deny = 10. except 10.1.1.1

    Аутентификация и авторизация пользователей

    Ограничение доступа по ip адресам не всегда удобно или возможно, тогда можно использовать логины и пароли.

    Сначала необходимо создать локального пользователя в системе

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

    Затем необходимо добавить системного пользователя в пользователи самбы и задать ему пароль

    По умолчанию для хранения паролей используется файл формата tdb, которые расположен в каталоге /var/lib/samba/private/

    Изменить каталог расположения файла можно глобальным параметром passdb backend

    [global]
    passdb backend=tdbsam:/etc/samba/smbpassdb.tdb

    tdb файлы были созданы для замены «устаревших» текстовых, если вы хотите использовать текстовые файлы, для этого используйте параметр passdb backend=smbpasswd в разделе global
    passdb backend=smbpasswd:/etc/samba/smbpasswd

    Затем укажите списки пользователей и групп для доступа к ресурсам

    [guest]
    path = /samba/guest
    writable = no
    read list = user1, @group2
    write list = user2, user3

    Интеграция с Active Directory

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

    Для AD очень важна синхронизация времени, по этому стоит начать с этого.

    Установка соответствующей службы

    Добавляем в конфиг файл /etc/ntp.conf сервера выполняющих роль домен контроллеров

    server 192.168.1.10
    server 192.168.1.20
    server someserver.contoso.com

    Добавляем службу ntp в автоматический запуск

    Проверяем синхронизацию времени

    winbind

    Для получения информации о пользователях из AD необходимо установить пакет samba-winbind

    Добавляем службу в автоматический запуск

    Добавление хоста в AD

    Напомню что в начале даной инструкции задали имя хоста ls01.fqdn.com. Будем считать что полное имя домена fqdn.com, а короткое пусть будет fqdn_com

    Для внесения всех необходимых параметров в конфигурационные файлы можно воспользоваться утилитой authconfig-tui, установите флажок Use Winbind, затем перейдите на следующее окно

    Выберите модель безопасности ADS и укажите имена вашего домена. В поле домен контролер укажите “*”, это необходимо для автоматического поиска доступного домен контроллера. Затем нажмите ОК и закройте утилиту.

    Для добавления хоста в AD используйте команду net ads join –U %username%, пользователь должен обладать правами на создание учетной записи ПК в домене

    Если машина не добавляется в домен, добавьте FQDN имя хоста в файл /etc/hosts.
    Я несколько раз все проверял, и в файл hosts я вносил изменения когда на этапе настройки сети задавал не полное имя хоста.

    Для того чтобы вывести хост из домена используйте команду net ads leave –U %username%

    Что делает утилита authconfig-tui?

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

    passwd: files sss winbind
    shadow: files sss winbind
    group: files sss winbind

    [global]
    workgroup = FQDN_COM
    password server = *
    realm = FQDN.COM
    security = ads
    idmap config *: range = 16777216-33554431
    template shell = /sbin/nologin
    kerberos method = secrets only
    winbind use default domain = false
    winbind pffline logon = false

    Вы могли заметить что данная утилита вносит заметно меньше параметров чем написано в инструкции от Microsoft или других инструкциях, но если так работать – то почему бы и нет?

    Из инструкции Microsoft я добавляю следующие параметры в конфиг

    [global]
    domain master = no
    local master = no
    preferred master = no
    os level = 0
    domain logons = no

    [domain users read only]
    path = /samba/guest
    read list = «@fqdn_com\domain users»
    force create mode = 777
    directory mask = 777

    [domain users writable]
    path = /samba/guest
    read list = «@fqdn_com\domain users»
    write list = «@fqdn_com\domain users»
    force create mode = 777
    directory mask = 777

    Перезапускаем службу samba

    На скриншоте видно пользователя домена который находится в одной из общих папок

    Список полезных ссылок:

    P.S.
    Вернемся к SELINUX, чтобы SAMBA сервер мог предоставить доступ к любым каталогам необходимо выполнить следующие команды

    К сожалению я так и не смог настроить работу winbind при включенном SELINUX, если подскажете как, я буду благодарен.

    Источник

    Читайте также:  What is windows registry clean up
Оцените статью