Samba server: opening windows to a wider world

Содержание

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

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

Установка Samba

Samba легко устанавливается из менеджера  пакетов, но перед установкой нового пакета нужно выполнить обновление. Воспользуйтесь следующими командами (здесь и далее приводятся примеры для Ubuntu 16.04):

$sudo apt-get update (обновление)
$sudo apt-get install samba (запуск и установка сервера Samba)

Служба NetBios для Samba (nmbd) в наших примерах не требуется, поэтому в целях безопасности вы легко можете отключить ее командами:

$sudo systemctl stop nmbd.service
$sudo systemctl disable nmbd.service

Установка глобальных опций Samba

Параметры конфигурации Samba хранятся в файле /etc/samba/smb.conf. В нем есть два раздела, global и shares. В разделе global прописаны параметры самого сервера (имя сервера, его тип, интерфейсы и другие сетевые настройки), а в разделе shares — параметры ресурсов. Вместо редактирования файла создадим новый. Предварительно сохранив оригинал:

$sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
$sudo vi /etc/samba/smb.conf

Внесем в наш новый файл /etc/samba/smb.conf следующий код

[global]
       server string = samba_server
       server role = standalone server
       interfaces = lo ваш_сетевой_интерфейс
       bind interfaces only = yes
       disable netbios = yes
       smb ports = 445
       log file = /var/log/samba/smb.log
       max log size = 10000

Рассмотрим значение этих параметров.

server string: информация, передаваемая во время подключения. Можно использовать любое имя для идентификации сервера. Далее будут рассмотрены названия для ресурсов Samba.
server role: тип создаваемого Samba-сервера. В данном примере используется выделенный сервер (standalone). Другие типы — член домена и контроллер домена.

interfaces: сетевые интерфейсы, к которым привязан сервер. Здесь указан “lo”, loopback-интерфейс. Кроме него нужно указать внешний интерфейс, обычно это eth0.
bind onterface only: гарантирует, что сервер Samba будет привязан только к тем интерфейсам, которые указаны в строке interfaces, и будет игнорировать пакеты с других интерфейсов.
disable netbios: отключает на сервере все функции NetBios, чтобы немного облегчить процесс разрешения имени сервера и разгрузить трафик.
smb ports: номер порта, на котором будет работать сервер. По умолчанию Samba использует порт 445.
log file: имя и месторасположение файла лога Samba.
max log size: максимальный размер файла лога. Рекомендуется указывать его настолько большим, насколько позволяют ресурсы стстемы. Если размер будет превышен, будет создан новый файл, а предыдущий файл будет перемещен в дубликат с расширением .old. При повторном превышении первый файл с расширением .old будет удалён. Данный параметр помогает предотвратить заполнение диска.
Если нужны более подробные логи, можно воспользоваться командой:

log level = 3 passdb:5 auth:5

Уровень лога 3 означает, что сохраняется более детальная информация, чем при стандартном ведении лога. Стандартный уровень — 1, максимальный — 5. Здесь он установлен для параметров passdb и auth, чтобы получать более подробную информацию об аутентификации пользователей. После определения параметров ведения лога сохраните и закройте файл. При необходимости файл smb.conf нужно протестировать на синтаксические ошибки при помощи утилиты Samba testparm

:

$testparm

Будет выведен следующий результат:

После нажатия на клавишу Enter будут выведены глобальные параметры:

Если в результате выводится “Load services files OK”, значит, в файле нет ошибок и сервер можно запускать.

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

Создание пользователей Samba

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

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

Для каждого пользователя нужно создать домашнюю директорию. Вместо использования стандартной директории /home/user лучше создать пероснальную директорию в /samba/ для разделения данных и более удобного резервного копирования. Сначала создадим группу sambashare,  директорию для хранения данных samba и назначим ее владельцем группу sambashare

$ groupadd sambashare
$sudo mkdir /samba/
$sudo chown :sambashare /samba/

Затем нужно создать директорию пользователя (в примере мы рассмотрим создание пользователя ivan, для нескольких пользователей создание будет аналогичным): Добавим системного пользователя:

$sudo adduser --home /samba/ivan --no-create-home --shell /usr/sbin/nologin --ingroup sambashare ivan

В команде используются параметры:

—home: месторасположение домашней  директории пользователя.
—no-create-home: указывает команде adduser не создавать домашнюю директорию, чтобы не заполнять ее ненужными файлами конфигурации.
—shell: определяет, какая оболочка будет использоваться при входе через SSH. В данном примере SSH не используется, поэтому значение /usr/sbin/nologin отключает вход через SSH.
—ingroup sambashare: внесение пользователя в группу sambashare, чтобы обеспечить ему возможность чтения и записи для своего ресурса и общих ресурсов.

Более подробно про создание пользователей и групп можно прочитать в этой статье

После запуска команды потребуется создать пароль.

Теперь нужно установить владельца и права доступа к директории:

$sudo chown ivan:sambashare /samba/ivan/
$sudo chmod 2770 /samba/ivan/

Права доступа 2770 означают, что новые файлы или директории, созданные в /samba/david/, будут наследовать группу владельцев от родительской директории, а не от группы пользователей, которая их создала. Например, если администратор создаст новую директорию в ресурсе пользователя ivan, то ivan будет иметь к ней доступ на чтение и запись.

Далее командой smbpasswd необходимо добавить пользователя на сервере Samba (флаг -a) и активировать его (флаг -e):

$sudo smbpasswd -a ivan

Вам потребуется ввести пароль для доступа к ресурсу samba, он может отличаться от системного пароля.

Активируем пользователя

$sudo smbpasswd -e ivan

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

$sudo mkdir /samba/everyone
$sudo adduser --home /samba/everyone --no-create-home --shell /usr/sbin/nologin --ingroup sambashare admin
$sudo chown admin:sambashare /samba/everyone/
$sudo chmod 2770 /samba/everyone/
$sudo smbpasswd -a admin
$sudo smbpasswd -e admin

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

$sudo groupadd admins
$sudo usermod -G admins admin

Настройка системы завершена, теперь нужно настроить ресурсы.

Настройка общих ресурсов Samba

У каждого ресурса есть свой раздел в файле конфигурации /etc/samba/smb.conf. Разделы ресурсов расположены после глобальных параметров и имеют следующий вид

[имя_ресурса]
        path =
        browseable =
        read only =
        force create mode =
        force directory mode =
        valid users =

share_name — имя ресурса, используемое при доступе.
path — полный путь к ресурсу в файловой системе.
browsable — опоеделяет видимость ресурса для других пользователей, но не дает им прав доступа.
read only — определяет возможность доступа на запись для пользователей, указанных в параметре valid users.
force create mode — задает указанные права доступа к любому файлу, создаваемому в ресурсе.
force directory mode — задает указанные права доступа к любой директории, создаваемой в ресурсе
valid users — список пользователей, имеющих доступ к ресурсу. Здесь можно указывать имена или группы, перед группами нужно указывать символ @, например, @admins.

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

[ivan]
        path = /samba/ivan
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = ivan @admins

Для ресурса everyone блок будет выглядеть следующим образом:

[everyone]
        path = /samba/everyone
        browseable = yes
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = @sambashare @admins

Все пользователи будут иметь доступ на чтение и запись, так как были добавлены в группу sambashare при создании. Теперь нужно протестировать параметры

$testparm

Если все настроено корректно, результат будет следующим:

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

$sudo systemctl start smbd.service
$sudo systemctl enable smbd.service

Сервер работает и готов принимать пользователей.

Настройка клиентов Samba

Для доступа к ресурсам из командной строки в Linux используется утилита smbclient. В большинстве дистрибутивов она не установлена по умолчанию, если нет то нужно воспользоваться менеджером пакетов:

$sudo apt-get install smbclient

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

$smbclient //имя_или_адрес_сервера/ресурс -U пользователь

Например, для доступа к ресурсу ivan на сервере samba.example.com нужно ввести:

$smbclient //samba.example.com/ivan -U ivan

Далее потребуется ввести пароль, после чего появится интерфейс командной строки, похожий на интерфейс FTP:

Например, можно создать директорию:

smb: \> mkdir test
smb: \> ls

Доступ из командной строки используется в основном для тестирования, на практике доступ чаще всего осуществляется из графических оболочек, например, KDE. Возможен также доступ из других платформ (Windows, MacOS).

Например для доступа с windows наберите в строке поиска \\samba.example.com\ivan. И введите логин пароль

 

После чего вы сможете получить доступ к сетевым ресурсам.

Заключение

При помощи Samba мы создали мультиплатформенные сетевые ресурсы и протестировали доступ к ним. Ресурсы Samba очень распространены и могут использоваться различными приложениями. Например, VLC Player может проигрывать музыку и видео из ваших ресурсов Samba, а утилита резервного копирования BackupPC — записывать туда резервные копии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Быстрая и простая настройка samba

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

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке. Есть бесплатные курсы.

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

Я не буду специально оперировать версиями операционных систем. У самбы конфиги одинаковые почти везде, где мне приходилось с ними работать, тем более в самых простых конфигурациях.

Итак, устанавливаем самбу любым подходящим способом для вашей операционной системы. Конфигурации справедливы для 3-й версии самбы. Дальше решаем, что нам нужно:

  • доступ по пользователю и паролю,
  • доступ по ip адресу,
  • доступ всем подряд без ограничений.

В зависимости от этого настройки будут немного разные.

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

[global]
security = user
passdb backend = tdbsam
workgroup = MYGROUP
server string = Samba

[share]
path = /mnt/shara
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
browseable = yes

Перезапускаем самбу. Дальше добавляем пользователя в систему примерно так:

# useradd share-user -M -G users -s /sbin/nologin

Импортируем этого пользователя в самбу и задаем пароль:

# smbpasswd -a share-user

И пробуем зайти на шару по адресу:

\\ip-сервера\share

Чтоб организовать доступ в зависимости от ip адреса, делаем такие настройки в smb.conf:

[global]
security = share
workgroup = MYGROUP
server string = Samba
map to guest = bad user

[share]
path = /mnt/files
browsable = yes
writable = yes
guest ok = yes
read only = no
hosts allow = 192.168.0.171

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

hosts allow = 192.168.0.

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

hosts allow = 192.168.0. except 192.168.0.15

Доступ будет разрешен всей подсети 192.168.0.0/24, кроме адреса 192.168.0.15.

Делаем перезапуск самбы и проверяем.

Если у вас установлена samba 4, то эта конфигурация не заработает и вы получите ошибку:

 WARNING: Ignoring invalid value 'share' for parameter 'security'

Чтобы доступ по ip нормально заработал, вам необходимо внести следующие изменения в приведенный выше конфиг:

security = user
map to guest = Bad Password

Остальные параметры оставляете те же. После этого доступ по ip будет работать и на 4-й версии самбы.

Если доступ будет предоставлен всем без ограничений, то простейшая конфигурация самбы будет такой:

[global]
security = user
workgroup = MYGROUP
server string = Samba
guest account = nobody
map to guest = Bad User

[share]
path = /mnt/files
browseable = Yes
guest ok = Yes
writeable = Yes
public = yes

Не забываем сделать права для всех на папку:

# chmod 0777 /mnt/files

Перезапускаем самбу и пробуем зайти. Должно пустить без лишних вопросов.

Вот так буквально за 5 минут можно организовать простейший файловый сервер с помощью samba. А часто сложнее и не надо. Для какой-нибудь файловой помойки подойдет самый последний вариант.

Для более сложных конфигураций у меня есть отдельные статьи:

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Настройка samba в Ubuntu 18.04

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

В этой небольшой инструкции будет рассмотрена простейшая настройка Samba Ubuntu 18.04, а также как настроить общий доступ к папке Ubuntu с несколькими уровнями привилегий.

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

Получить доступ к расшаренным папкам в Ubuntu смогут как Linux так и Widnows машины, с помощью любой программы для работающей по протоколу SMB.

Содержание статьи:

Подготовка Windows

Для того чтобы все работало правильно, все машины должны состоять в одной рабочей группе, указанной на сервере Samba. По умолчанию для Windows, Linux и MacOS рабочая группа называется Workgroup. Чтобы узнать какая рабочая группа используется в вашей Windows откройте командную строку (Win+R, затем cmd) и выполните вот такую команду:

net config workstation

Нужный нам параметр мы видим в строке Домен рабочей станции. Это и есть рабочая группа.

Теперь, если у компьютера с Samba сервером в вашей сети будет постоянный IP адрес желательно ввести его в файле hosts. Для этого запустите командную строку от имени администратора:

И выполните команду:

notepad C:\Windows\System32\drivers\etc\hosts

В открывшимся файле добавьте строчку с IP адресом компьютера, на который будет установлен Samba:

192.168.0.1 srvr1.domain.com srvr1

Теперь можно переходить к вопросу как расшарить папку Ubuntu.

Настройка Samba в Ubuntu 16.04

Начнем, как обычно, с установки. Установка Samba Ubuntu вместе со всеми необходимыми компонентами выполняется командой:

sudo apt-get install -y samba samba-common python-glade2 system-config-samba

Когда все будет установлено, можно переходить к настройке. Сначала создайте резервную копию оригинального файла конфигурации Samba:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

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

 sudo vi /etc/samba/smb.conf

Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки:

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes

Рассмотрим подробнее что значат эти строки.

  • workgroup — рабочая группа, как уже говорилось должна одинакова на всех машинах
  • netbios name — имя компьютера, которое будет отображаться в Windows;
  • log file — адрес файла, куда будут складываться сообщения об ошибках и другая информация;
  • security — по умолчанию выполнять аутентификацию на уровне пользователя;
  • name resolve order — очередность разрешения IP адресов по NetBIOS имени. bcast — означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный;
  • passdb backend — способ хранения паролей пользователей;
  • unix password sync — синхронизация паролей пользователей samba с локальными паролями Unix;
  • map to guest — указывает, когда пользователю будет предоставляться гостевой доступ. Доступно три значения — never — никогда, bad user — когда такого пользователя не существует, bad password — когда пароль введен неверно,

Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку Ubuntu для Windows.

Общий доступ к папке Ubuntu

Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.

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

sudo mkdir -p /samba/allaccess

После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

cd /samba
sudo chmod -R 0755 allaccess
sudo chown -R nobody:nogroup allaccess/

Следующим шагом будет описать папку allaccess в файле настройки samba:

[allaccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
#==============
[AllAccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Рассмотрим подробнее опции, которые были здесь использованы:

  • path — путь к папке, которую нужно расшарить;
  • browsable — будет ли папка отображаться в списке доступных шар;
  • writable — будет ли папка доступна для записи;
  • read only — папка доступна только для чтения;
  • guest ok, public — будет ли разрешен гостевой доступ;
  • only guest — если установлено yes, то папка будет доступна только гостям;
  • hosts allow — ip адреса, с которых можно получить доступ к этому серверу;
  • valid users — по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;
  • create mask — маска прав для создаваемых файлов.

Чтобы применить изменения, перезапустите сервер Samba:

sudo systemctl restart samba

Настройка Samba Ubuntu 16.04 для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните:

\\srvr1\allaccess

Вы увидите нашу папку. Если не увидите, проверьте еще раз конфигурацию. Доступ к папке можно получить без авторизации samba. Настойка Samba шары с доступом без авторизации завершена.

Также вы можете подключится к этому серверу из Linux с помощью Nautilus для этого достаточно набрать адрес smb://ip-сервера, в разделе другие места:

Защищенный общий доступ к папке Ubuntu

Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.

Сначала создаем папку:

sudo mkdir -p /samba/allaccess/secured

Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup.

Создаем группу:

sudo addgroup securedgroup

Настраиваем права:

cd /samba/allaccess
$ sudo chown -R richard:securedgroup secured
$ sudo chmod -R 0770 secured/

Последний шаг, добавляем настройки в конфигурационный файл samba:

sudo vi /etc/samba/smb.conf

[secured]
path = /samba/allaccess/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

Перезапустите сервер Samba. Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.

Чтобы проверить как это работает добавим пользователя richard в нашу группу:

sudo usermod -a -G securedgroup richard

Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba. Поэтому создадим для него пароль Samba:

sudo smbpasswd -a richard

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

Если вы хотите чтобы общий доступ к папке Ubuntu мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup на имя пользователя. Также можно указать несколько пользователей через запятую или несколько групп.

Выводы

Вот и все. Теперь вы знаете как правильно выполняется установка Samba на Ubuntu 18.04, а также ее настройка. Кроме ручного редактирования конфигурационных файлов, для того чтобы расшарить папку в Ubuntu можно воспользоваться графической утилитой system-samba-config. Но после того как мы разобрали все низкоуровневые настройки, с этой утилитой вы справитесь без труда.

Оцените статью:

Загрузка…

Файловый сервер 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.

cp /etc/somefile.conf /etc/somefile.conf.bak

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

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

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

dhclient

Показать ip адрес
ifconfig
или
nmcli device show
YUM

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

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

echo proxy=http://your.proxy:8888 >> /etc/yum.conf

В случае использования логина и пароля для доступа к прокси серверу, добавьте следующие параметры:
proxy_username=yum-user
proxy_password=qwerty

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

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

Для Hyper-V, hyperv-daemons
yum install hyperv-daemons

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

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

Midnight Commander

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

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

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

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

nmcli device status

Статический ip и gateway задается следующей командой, где «ens192» это имя сетевого адаптера
nmcli connection modify “ens192” ipv4.addresses “192.168.1.100/24 192.168.1.1”

Настройка FQDN

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

Перезагружаем службу имен
systemctl restart systemd-hostnamed

Проверить результат можно следующими командами
hostnamectl status
hostname
hostname -s
hostname -f

ipv6

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

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

SELINUX

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

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

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

Установка
yum install samba

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

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

firewallD

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

Для получения списка правил и сервисов используйте
firewall-cmd --list-all
firewall-cmd --list-services

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

firewall-cmd -–permanent -–remove-service=dhcpv6-client

Создаем правило для SAMBA и перезагружаем
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

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

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

Меняем владельца и назначаем права
chown nobody:nobody /samba/guest
chmod 777 /samba/guest

Редактируем файл конфигурации SAMBA /etc/samba/smb.conf
mcedit  /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 и ниже не смогут получить доступ к ресурсам.

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

testparm
service smb restart
smbstatus

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

Бантики

По умолчанию лог файлы находятся в папке /var/log/samba. При необходимости получить подробные логи, в раздел [global] необходимо добавить параметр log level = 2 или 3. По умолчанию используется значение 1, значение 0 отключает ведение логов.
[global]
log level = 2
Как вы можете знаете, предоставление доступа к файлам это только часть функционала SAMBA. Если на сервере будут только файловые ресурсы, службу печати логично отключить. В разделе [global] добавьте следующие параметры
[global]
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

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

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

mkdir /samba/smbconf
mkdir /samba/smblogs

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

Добавляем следующие строки
/etc/samba /samba/smbconf none bind 0 0
/var/log/samba /samba/smblogs none bind 0 0

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

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

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

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

lsblk

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

или
parted /dev/sdb mklabel gpt

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

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

parted /dev/sdb mkpart primary ext4 1MiB 100%

Создаем файловую систему ext4
mkfs.ext4 /dev/sdb1

Редактируем fstab
mcedit /etc/fstab

Добавляем еще одну строку
/dev/sdb1 /samba/guest ext4 defaults 0 0

Монтирование
mount –a

Проверяем результат
df -h

Назначение прав
chmod 777 /samba/guest

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

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

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

mkdir /samba/smbimg	

Создаем файл образа размером 100 мб
dd if=/dev/zero of=/samba/smbimg/100M.img bs=100 count=1M

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

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

mkfs.ext4 /samba/smbimg/100M.img

Редактируем fstab
mcedit /etc/fstab

Конфиг для монтирования образа
/samba/smbimg/100M.img /samba/guest ext4 defaults 0 0

Монтирование
mount -a

Проверяем результат
df -h

Назначение прав
chmod 777 /samba/guest

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

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

Редактируем fstab

mcedit /etc/fstab

Конфиг для RAM диска
none /samba/guest tmpfs defaults,size=100M 0 0

Монтирование
mount -a

Проверяем результат
df -h

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

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

Просмотр заданий

crontab –l

Редактирование заданий
crontab –e	

Пример конфига:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=“”
HOME=/

#удалять файлы и каталоги каждый час
* 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 {} \;


Выход из vi
<ESC>
:wq

Логи службы 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 адресам не всегда удобно или возможно, тогда можно использовать логины и пароли.

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

adduser user1

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

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

smbpasswd -a user1

По умолчанию для хранения паролей используется файл формата 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 очень важна синхронизация времени, по этому стоит начать с этого.

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

yum install ntp

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

Пример:
server 192.168.1.10
server 192.168.1.20
server someserver.contoso.com

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

Запускаем службу
service ntpd start

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

winbind

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

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

Запускаем службу
service winbind start

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

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

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

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

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

net ads join –U youruser

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

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

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

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

/etc/krb5.conf

[libdefaults]
Default_realm = FQDN.COM

[realms]
FQDN.COM = {
kdc = *
}


/etc/nsswitch.conf
passwd: files sss winbind
shadow: files sss winbind
group: files sss winbind

/etc/samba/smb.conf
[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
service smb restart

Проверяем
smbstatus

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

THE END

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

Боремся с вирусами и инфраструктурой, или отключение SMB v1
Критическая уязвимость SambaCry: как защититься
How to Fix SambaCry Vulnerability (CVE-2017-7494) in Linux Systems

Yum, шпаргалка
Команда dd и все, что с ней связано

Using Samba, 2nd Edition
Включение Samba-сервера на базе Ubuntu в домен AD
Setting Up Samba and Configure FirewallD and SELinux to Allow File Sharing on Linux/Windows Clients

SELinux — описание и особенности работы с системой. Часть 1
SELinux — описание и особенности работы с системой. Часть 2

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

setsebool -P samba_export_all_ro=1
setsebool -P samba_export_all_rw=1

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

Файловый сервер Samba | Русскоязычная документация по Ubuntu

Один из наиболее стандартных способов взаимодействия по сети между компьютерами Ubuntu и Windows — это настройка Samba в качестве файлового сервера. Эта глава рассказывает как настроить Samba сервер для разделения файлов с клиентами Windows.

Сервер будет настроен на доступ к файлам для любого клиента в сети без запроса пароля. Если ваше окружение требует более строгого контроля доступа, смотрите раздел Защита серверов Samba.

Для начала установим пакет samba. Введите в терминале :

sudo apt-get install samba

Это все, что требуется. Теперь вы готовы настраивать Samba для разделения файлов.

Основной файл настройки Samba — /etc/samba/smb.conf. Изначальный файл конфигурации имеет значительное количество комментариев для документирования различных директив настройки.

Не все возможные опции включены в файле настроек по умолчанию. Смотрите руководство man smb.conf или Сборник ЧаВо по Samba для уточнения деталей.

1. Сначала измените следующие пары ключ/значение в секции [global] файла /etc/samba/smb.conf:

workgroup = EXAMPLE
...
security = user

Параметр security находится значительно ниже в секции [global] и по умолчанию закомментирован. Также замените EXAMPLE на что-то более соответствующее вашему окружению.

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

[share]
    comment = Ubuntu File Server Share
    path = /srv/samba/share
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755
  1. comment: короткое описание разделяемого ресурса. Используется для вашего удобства.

  2. path: путь до разделяемого каталога.

    Этот пример использует /srv/samba/sharename поскольку, в соответствии со стандартом иерархии файловых систем (FHS), каталог /srv — это место, где должны находится все данные, относящиеся к данному сайту. Технически разделяемый ресурс Samba может быть размещен в любом месте файловой системы, где позволяют файловые ограничения доступа, но следование стандартам рекомендуется.

  3. browsable: позволяет клиентам Windows просматривать содержимое разделяемого каталога с помощью проводника Windows.

  4. guest ok: позволяет клиентам подключаться к разделяемому ресурсу без указания пароля.

  5. read only: определяет доступность ресурса только на чтение или с привилегиями на запись. Привилегии на запись доступны только при указании no, как показано в данном примере. Если значение yes, то доступ к ресурсу будет только на чтение.

  6. create mask: определяет какие права доступа будут установлены для создаваемых новых файлов.

3. Теперь, поскольку Samba настроена, требуется создать каталог и установить на него права доступа. Введите в терминале:

sudo mkdir -p /srv/samba/share
sudo chown nobody.nogroup /srv/samba/share/

параметр -p говорит mkdir создать полное дерево каталога, если оно не существует.

4. Наконец, перезапустите сервисы samba для применения новых настроек:

sudo restart smbd
sudo restart nmbd
Еще раз: данная конфигурация предоставляет полный доступ любому клиенту в локальной сети. Для более безопасной настройки смотрите раздел Защита серверов Samba.

Теперь вы можете находить Ubuntu файл сервер с помощью клиента Windows и просматривать его разделяемые каталоги. Если ваш клиент не показывает ваши разделяемые ресурсы автоматически, попробуйте обратиться к вашему серверу по его IP адресу, например, \\192.168.1.1, из окна проводника Windows. Для проверки, что все работает, попробуйте создать каталог внутри вашего разделяемого ресурса из Windows.

Для создания дополнительных разделяемых ресурсов создайте новую секцию [dir] в /etc/samba/smb.conf и перезапустите Samba. Просто убедитесь, что разделяемый каталог создан и у него корректные права доступа.

Разделяемый ресурс «[share]» и путь /srv/samba/share — это просто примеры. Установите название ресурса и имя каталога в соответствии с вашим окружением. Хорошей идеей является использование в качестве названия ресурса имени его каталога в файловой системе. Другими словами ресурс можно указать как [qa] для каталога /srv/samba/qa.

Настройка файлового сервера Samba в корпоративной сети / Хабр


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

Так же Samba нам понадобится для настройки резервного копирования MS SQL и Exchange на этот сервер, но об этом в следующих статьях. А пока, настроим сам сервер(в качестве которого мы используем уже настроенный сервер резервного копирования из статьи в шапке, все тот же CentOS6):
  • Устанавливаем необходимые пакеты
    yum install samba samba-client ntp acl krb5-workstation -y
    

  • Запускаем ntp клиент (время лучше всего получать с контроллера домена, чтобы оно сильно не расходилось с нашим сервером)
    chkconfig ntpd on
    service ntpd start
    

  • Подправим файл /etc/hosts, чтобы он имел примерно такой вид:
    # cat /etc/hosts
    127.0.0.1 localhost.localdomain localhost
    10.0.0.2 server-name.domain.local server-name
    

    где 10.0.0.2 IP-адрес нашего бекап-сервера
  • Настроим kerberos для добавления сервера в домен
    cat /etc/krb5.conf
    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
    default_realm = DOMAIN.LOCAL
    ticket_lifetime = 24h
    forwardable = yes
    
    [realms]
    DOMAIN.LOCAL = {
       default_domain = domain.local
       kdc = dc1.domain.local        #контроллер домена
       admin_server = dc1.domain.local
    }
    
    [domain_realm]
    domain.local = DOMAIN.LOCAL
    .domain.local = DOMAIN.LOCAL
    


  • Конфигурируем Samba. Приводим файл /etc/samba/smb.conf к такому виду:
    cat /etc/samba/smb.conf
    [global]
    
    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes
    
    
    workgroup = DOMAIN
    password server = dc1.domain.local
    netbios name = server-name
    server string = Samba Server Version %v
    security = ads
    realm = DOMAIN.LOCAL
    domain master = no
    local master = no
    preferred master = no
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
    use sendfile = true
    
    idmap config *:backend = tdb
    idmap config *:range = 11000-20000
    idmap config DOMAIN:backend = rid
    idmap config DOMAIN:range = 100000-199000
    
    template shell = /sbin/nologin
    
    winbind enum users = yes
    winbind enum groups = yes
    winbind use default domain = no
    winbind nested groups = yes
    winbind refresh tickets = yes
    
    client use spnego = yes
    client ntlmv2 auth = yes
    encrypt passwords = yes
    restrict anonymous = 2
    
    log file = /var/log/samba/log.%m
    max log size = 50
    #log level = 3
    
    vfs objects = acl_xattr
    map acl inherit = Yes
    store dos attributes = Yes
    
    
    [disk1$]
    comment = disk1
    path = /media/disk1
    public = yes
    writable = yes
    
    


  • Настраиваем nsswitch, для того чтобы он мог использовать данные AD с помощью winbind-сервиса
    # cat /etc/nsswitch.conf
    ...
    passwd: files winbind
    shadow: files winbind
    group: files winbind
    ...
    

  • Запускаем сервисы
    chkconfig smb on
    chkconfig winbind on
    chkconfig nmb on
    service smb start
    service nmb start
    service winbind start
    

  • Теперь мы можем вводить наш сервер в домен
    # net ads join -U administrator
    administrator's password:
    Using short domain name -- DOMAIN
    Joined 'SERVER-NAME' to realm 'DOMAIN.LOCAL'
    

    Если все прошло удачно, то перезапускаем сервис winbind и проверяем подключение к домену
    #service winbind restart
    
    # wbinfo -t
    checking the trust secret for domain DOMAIN via RPC calls succeeded
    

  • Чтобы мы могли работать с правами из Windows нам необходимо перемонтировать нашу файловую систему с поддержкой ACL
    для этого идем в /etc/fstab и добавляем опцию acl для нашего диска
    # cat /etc/fstab
    ...
     /dev/VolGroup00/LogVol00 /media/disk1 ext4 defaults,acl 1 2
    ...
    

    перемонтируем раздел и раздаем диску права на корень, после чего мы сможем управлять правами папок прямо из Windows
    # mount -o remount /media/disk1
    # setfacl -m g:"DOMAIN\domain admins":rwx /media/disk1
    # setfacl -d -m g:"DOMAIN\domain admins":rwx /media/disk1
    

  • ну и конечно же не забываем про iptables
    cat /etc/sysconfig/iptables
    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    # правило для urbackup
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 55414 -j ACCEPT
    #правила для samba
    -A INPUT -s 10.0.0.0/8 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
    -A INPUT -s 10.0.0.0/8 -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT
    -A INPUT -s 10.0.0.0/8 -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
    -A INPUT -s 10.0.0.0/8 -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
    -A INPUT -s 10.0.0.0/8 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    

    # service iptables restart
    

Готово. Теперь мы можем работать с нашими резервными копиями из любимого файл-менеджера в Windows.

Настройка общих папок Samba на Ubuntu Server » MHelp.kz

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

Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS.
ВикипедиЯ.

[nx_heading style=»underlined» heading_tag=»h4″ size=»28″]Содержание:[/nx_heading]

[nx_list icon=»icon: arrow-circle-right» icon_color=»#ED303C»]

[/nx_list]

Дата обновления статьи: 04.10.2016

[nx_spacer size=»80″]

[nx_heading style=»centerlined» heading_tag=»h4″ size=»24″ align=»center»]Создание папок для общего доступа и настройка прав доступа[/nx_heading]

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

  1. Share — папка с полным общим доступом на чтение и запись всем пользователям сети. Используется как «флешка» между компьютерами сети;
  2. Read — папка с доступом только на чтение, для пользователей сети.  Используется, для распространения файлов в сети, администратором сервера;
  3. Pasw — папка с доступом по логину и паролю. Для учителей и администратора сервера. Логин входа в сетевую папку — teacher.

Папки создадим в домашней директории home, в отдельной папке sharefolders.

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

Создание папки Share и установка полных прав доступа файловой системы, команды:

sudo mkdir -p /home/sharefolders/share
chmod 777 -R /home/sharefolders/share

Создание папки Read и установка полных прав доступа файловой системы, команды:

sudo mkdir -p /home/sharefolders/read
chmod 777 -R /home/sharefolders/share

Создание папки Pasw и установка полных прав доступа файловой системы, команды:

sudo mkdir -p /home/sharefolders/pasw
chmod 777 -R /home/sharefolders/pasw
Ubuntu Server: Окно файлового менеджера Midnight Commander

[nx_spacer size=»80″]

[nx_heading style=»centerlined» heading_tag=»h4″ size=»24″ align=»center»]Установка и настройка Samba, сетевых папок на чтение и запись “всем”[/nx_heading]

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

sudo apt-get install samba

Заводим себе хорошую традицию, перед изменением конфигурационных файлов, создавать резервную копию изначального файла конфигурации. Это так же поможет избавиться от не нужных на данный момент «избыточных» параметров  конфигурации и комментариев указанных в файле. В последующем, при наборе опыта работы в Ubuntu, вы можете править оригинальный файл конфигурации со всеми возможными параметрами.

Перемещаем с одновременным переименованием файл smb.conf  в smb.conf.bac, командой:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bac

Создаем пустой файл конфигурации, командой:

sudo touch /etc/samba/smb.conf

Открываем файл, командой:

sudo nano /etc/samba/smb.conf

И вносим в него следующий текст:

[global]
   workgroup = school.loc
   netbios name = gate
   server string = %h server (Samba, Ubuntu)
   dns proxy = yes
   log file = /var/log/samba/log.%m
   max log size = 1000
   map to guest = bad user
   usershare allow guests = yes

[Share]
   comment = Full Share
   path = /home/sharefolders/share
   guest ok = yes
   browsable =yes
   writable = yes
   read only = no
   force user = user
   force group = users

[Read]
   comment = Only Read
   path = /home/sharefolders/read
   guest ok = yes
   browsable =yes
   writable = no
   read only = yes
   force user = user
   force group = users
Ubuntu Server: Настройка Samba, изменение файла конфигурации

Подробней о ключах smb.conf (на русском) вы можете узнать с этого сайта.

Правим файл limits.conf, для изменения лимита одновременных подключений (это уберет ошибку rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384), командой:

sudo nano /etc/security/limits.conf

Добавляем в конец файла строки:

* - nofile 16384
root - nofile 16384
Ubuntu Server: Исправление ошибки rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Проверяем файл конфигурации samba, командой:

sudo testparm /etc/samba/smb.conf

Если все записано верно, перезапускаем сервер samba, командой:

sudo /etc/init.d/samba restart

Проверяем доступ к сетевым папкам Share и Read с компьютеров локальной сети. Если все сделано верно, обе папки открываются без ввода пароля, папка  Share имеет полный доступ, а папка Read, при попытке записать/удалить файл выдает сообщение о недостатке прав.

Самая простая настройка Samba выполнена, переходим к настройке папки с доступом по паролю.

[nx_spacer size=»80″]

[nx_heading style=»centerlined» heading_tag=»h4″ size=»24″ align=»center»]Настройка сетевой папки с парольным доступом[/nx_heading]

Заведем пользователя teacher в группе пользователей samba, учетная запись которого будет иметь право на полный доступ к сетевой папке Pasw.

Создадим группу пользователей samba — smbuser, командой:

sudo groupadd smbuser

Создадим пользователя teacher в этой группе, командой:

sudo useradd -g smbuser teacher

Создадим пароль пользователю:

sudo passwd teacher

Задаем пароль на пользователю для samba:

sudo smbpasswd -a teacher

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

[Pasw]
   comment = Only password
   path = /home/sharefolders/pasw
   valid users = teacher
   read only = no

Проверяем файл конфигурации, командой:

sudo testparm /etc/samba/smb.conf
Ubuntu Server: Проверка файла конфигурации samba

Если все записано верно, перезапускаем сервер samba, командой:

sudo /etc/init.d/samba restart

После этих манипуляций на сервере gate у нас появляется третья папка Pasw, для доступа к которой запрашивается имя пользователя и пароль, при этом две папки Share и Read все так же доступны любому пользователю.

Задача настройки сетевых папок — выполнена.

[nx_spacer size=»80″]

[nx_heading style=»centerlined» heading_tag=»h4″ size=»24″ align=»center»]Отключение доступа по SSH пользователя группы samba[/nx_heading]

В предыдущем шаге, мы создали нового пользователя на сервере, который по-умолчанию имеет доступ к серверу посредством SSH, что нам абсолютно не нужно. Запретим доступ пользователю teacher посредством ssh. Откроем файл конфигурации ssh:

sudo nano /etc/ssh/sshd_config

Добавим в конец файла строку:

DenyUsers teacher
Ubuntu Server: Запрет входа через SSH определенному пользователю

И перезапустим ssh сервер, командой:

sudo service ssh restart

На этом «упрощенная» настройка службы Samba и папок общего доступа завершена. Разобраны три примера доступа к сетевым ресурсам, кстати общие ресурсы (папки и принтеры) это не все возможности samba, но о других возможностях Вам расскажет уже поисковик Google.

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

На этом данная настройка Samba завершена и доступ к сетевым папкам организован.

 

[nx_heading style=»coloredline» heading_tag=»h5″ size=»24″ align=»left»]От автора:[/nx_heading]

Если проблема решена, один из способов сказать «Спасибо» автору — здесь.

Если же проблему разрешить не удалось и появились дополнительные вопросы, задать их можно на нашем форуме, в специальном разделе.

[nx_box title=»Поделиться этой статьей» style=»glass» box_color=»#ED303C»]Если данная статья вам помогла и вы хотели бы в ответ помочь проекту Mhelp.kz, поделитесь этой статьей с другими:

[/nx_box]

Samba — файловый сервер | Документация на сервер

Один из наиболее распространенных способов объединения компьютеров Ubuntu и Windows в сеть — это настроить Samba в качестве файлового сервера. В этом разделе описывается настройка сервера Samba для обмена файлами с клиентами Windows.

Сервер будет настроен для обмена файлами с любым клиентом в сети без запроса пароля. Если в вашей среде требуется более строгий контроль доступа, см. Раздел Защита файлового сервера и сервера печати.

Установка

Первым шагом является установка пакета samba.В командной строке терминала введите:

  sudo apt установить samba
  

Вот и все; теперь вы готовы настроить Samba для обмена файлами.

Конфигурация

Основной файл конфигурации Samba находится в /etc/samba/smb.conf . Файл конфигурации по умолчанию имеет значительное количество комментариев для документирования различных директив конфигурации.

Примечание

Не все доступные параметры включены в файл конфигурации по умолчанию.См. Справочную страницу smb.conf или Samba HOWTO Collection для более подробной информации.

Сначала отредактируйте следующие пары ключ / значение в разделе [global] файла /etc/samba/smb.conf :

  рабочая группа = ПРИМЕР
   ...
   безопасность = пользователь
  

Параметр безопасности находится ниже в разделе [global] и по умолчанию закомментирован. Также измените ПРИМЕР , чтобы он лучше соответствовал вашей среде.

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

  [поделиться]
    comment = Общий ресурс файлового сервера Ubuntu
    путь = / SRV / самба / доля
    browsable = да
    гость ок = да
    только чтение = нет
    создать маску = 0755
  
  • комментарий: краткое описание акции.Отрегулируйте под свои нужды.

  • путь: путь к каталогу для совместного использования.

    В этом примере используется / srv / samba / sharename , потому что, согласно стандарту иерархии файловой системы (FHS) , / srv — это место, где должны обслуживаться данные, специфичные для сайта. Технически общие ресурсы Samba могут быть размещены в любом месте файловой системы при правильных разрешениях, но рекомендуется придерживаться стандартов.

  • с возможностью просмотра: позволяет клиентам Windows просматривать общий каталог с помощью проводника Windows.

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

  • только для чтения: определяет, доступен ли общий ресурс только для чтения или предоставлены права записи. Как видно из этого примера, права на запись разрешены, только если значение равно , а не . Если значение да , то доступ к общему ресурсу только для чтения.

  • маска создания: определяет права, которые будут иметь новые файлы при создании.

Теперь, когда Samba настроена, необходимо создать каталог и изменить разрешения. С терминала введите:

  судо mkdir -p / SRV / самба / доля
sudo chown никто: nogroup / srv / samba / share /
  

Примечание

Ключ -p указывает mkdir создать все дерево каталогов, если оно не существует.

Наконец, перезапустите службы samba, чтобы активировать новую конфигурацию:

  sudo systemctl перезапустить smbd.сервис nmbd.service
  

Предупреждение

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

Теперь из клиента Windows вы сможете перейти на файловый сервер Ubuntu и увидеть общий каталог. Если ваш клиент не показывает ваш общий ресурс автоматически, попробуйте получить доступ к вашему серверу по его IP-адресу, например \\ 192.168.1.1 в окне проводника Windows.Чтобы убедиться, что все работает, попробуйте создать каталог в Windows.

Для создания дополнительных общих ресурсов просто создайте новые разделы [dir] в /etc/samba/smb.conf и перезапустите Samba . Просто убедитесь, что каталог, к которому вы хотите предоставить общий доступ, действительно существует и разрешения правильные.

Примечание

Общая папка с именем «[share]» и путь / srv / samba / share являются лишь примерами. Измените имена общих ресурсов и путей в соответствии с вашей средой.Рекомендуется называть общий ресурс в честь каталога в файловой системе. Другой пример — это общее имя [qa] с путем / srv / samba / qa .

Ресурсы

.

Скачать Samba

Скачать

Исходный код Samba распространяется по https. Просмотр загрузки область через HTTPS. Файл, который вам, вероятно, нужен называется samba-latest.tar.gz. Старые выпуски доступны в архивах Samba.

Открытый ключ GPG дистрибутива Samba может использоваться для проверки того, что текущие выпуски не были изменены. С помощью GnuPG, просто скачайте исходный код Samba, подпись tarball, и открытый ключ распространения Samba.Затем запустите

$ gpg --import samba-pubkey.asc
$ gunzip samba-  версия  .tar.gz
$ gpg --verify samba- , выпуск  .tar.asc
gpg: Подпись сделана 20 ноября 2007 г., 19:12:04 CST с использованием \
  ID ключа DSA 6568B7EA
gpg: Хорошая подпись от "Ключ проверки распространения Samba \
  ‹[email protected]

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


Двоичные файлы

Все основные дистрибутивы Linux и Free Unix имеют Samba как родную пакет. См. Пакет вашего дистрибьютора или систему портов для родная установка самбы в вашей системе.

https://samba.plus/ предлагает пакеты Samba для SLES, RHEL, Debian и AIX.

http://en.openSUSE.org/Samba предлагает пакеты Samba для всех продуктов SuSE Linux (включая SLES).

Источники Git

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

Инструменты

Клиенты SMB / CIFS

  • Microsoft различные клиенты: в том числе WFWG3.11, LanMan для DOS, LanMan для OS / 2 (v1.2, 1.3 или 2.x, Warp 3.0, а не Warp connect, ), MSClient 3.0 для DOS. Проверьте README.NOW файл для деталей.

    Обратите внимание: Windows 2000, Windows XP, Windows NT, Клиенты Windows 95, OS / 2 Warp Connect и OS / 2 Warp 4 не нужно какое-либо дополнительное программное обеспечение для работы с Samba сервер. Эти ОС стандартно поставляются с TCP / IP, и это все, что вам нужно. необходимость.

  • Mac OS X также поставляется с собственный клиент CIFS.Начиная с OS X 10.9 Apple перешла от AFP к SMB, поскольку стандартный протокол обмена файлами.
.

Samba — Защита | Документация на сервер

Режимы безопасности Samba

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

  • security = user: требует, чтобы клиенты указали имя пользователя и пароль для подключения к общим ресурсам.Учетные записи пользователей Samba отделены от учетных записей системы, но пакет libpam-winbind синхронизирует пользователей и пароли системы с базой данных пользователей Samba.

  • security = domain: этот режим позволяет серверу Samba отображаться для клиентов Windows в качестве основного контроллера домена (PDC), резервного контроллера домена (BDC) или сервера-члена домена (DMS). Для получения дополнительной информации см. Как контроллер домена.

  • security = ADS: позволяет серверу Samba присоединиться к домену Active Directory в качестве собственного члена.Подробнее см. Интеграция с Active Directory.

  • security = server: этот режим оставлен до того, как Samba могла стать рядовым сервером, и из-за некоторых проблем безопасности его не следует использовать. Дополнительные сведения см. В разделе «Безопасность сервера» руководства по Samba.

  • security = share: позволяет клиентам подключаться к общим ресурсам без указания имени пользователя и пароля.

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

Безопасность = Пользователь

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

Сначала установите пакет libpam-winbind, который синхронизирует пользователей системы с базой данных пользователей Samba:

  sudo apt установить libpam-winbind
  

Примечание

Если вы выбрали задачу Samba Server во время установки, libpam-winbind уже установлена.

Отредактируйте /etc/samba/smb.conf , а в разделе [share] измените:

  гость нормально = нет
  

Наконец, перезапустите Samba, чтобы новые настройки вступили в силу:

  sudo systemctl перезапустить smbd.service nmbd.service
  

Теперь при подключении к общим каталогам или принтерам вам будет предложено ввести имя пользователя и пароль.

Примечание

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

Безопасность акций

Существует несколько вариантов повышения безопасности для каждого отдельного общего каталога. Используя пример [share] , в этом разделе будут рассмотрены некоторые общие параметры.

Группы

Группы

определяют совокупность компьютеров или пользователей, которые имеют общий уровень доступа к определенным сетевым ресурсам, и предлагают уровень детализации в управлении доступом к таким ресурсам. Например, если группа qa определена и содержит пользователей freda , danika и rob , а вторая группа support определена и состоит из пользователей danika , jeremy и vincent , то определенные сетевые ресурсы, настроенные для разрешения доступа для группы qa , впоследствии будут разрешать доступ для freda, danika и rob, но не для jeremy или vincent.Поскольку пользователь danika принадлежит обеим группам qa и с поддержкой , он сможет получить доступ к ресурсам, настроенным для доступа обеих групп, в то время как все остальные пользователи будут иметь доступ только к ресурсам, явно разрешая группе, в которую они входят. оф.

По умолчанию Samba ищет локальные системные группы, определенные в / etc / group , чтобы определить, какие пользователи к каким группам принадлежат. Для получения дополнительной информации о добавлении и удалении пользователей из групп см. ???.

При определении групп в файле конфигурации Samba, /etc/samba/smb.conf , распознанный синтаксис должен предварять имя группы символом «@». Например, если вы хотите определить группу с именем sysadmin в определенном разделе файла /etc/samba/smb.conf , вы должны сделать это, введя имя группы как @sysadmin .

Права доступа к файлу

Права доступа к файлам определяют явные права компьютера или пользователя на определенный каталог, файл или набор файлов.Такие разрешения можно определить, отредактировав файл /etc/samba/smb.conf и указав явные разрешения для определенного файлового ресурса.

Например, если вы определили общий ресурс Samba под названием share и хотите предоставить разрешений только для чтения группе пользователей, известной как qa , но хотите разрешить запись в общий ресурс для группы с именем sysadmin и пользователя с именем vincent , тогда вы можете отредактировать файл / etc / samba / smb.conf и добавьте следующие записи в запись [share] :

  список чтения = @qa
    список записи = @sysadmin, Винсент
  

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

Например, если вы хотите предоставить пользователю melissa административные права доступа к общему ресурсу , вы должны отредактировать файл / etc / samba / smb.conf и добавьте следующую строку под записью [share] :

  администраторы = мелисса
  

После редактирования /etc/samba/smb.conf перезапустите Samba, чтобы изменения вступили в силу:

  sudo systemctl перезапустить smbd.service nmbd.service
  

Примечание

Чтобы список чтения и список записи работал, режим безопасности Samba должен , а не , должен быть установлен на security = share

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

Традиционные права доступа к файлам Linux плохо соответствуют спискам управления доступом Windows NT (ACL). К счастью, списки ACL POSIX доступны на серверах Ubuntu, обеспечивая более детальный контроль. Например, чтобы включить ACL в / srv файловой системы EXT3, отредактируйте / etc / fstab , добавив параметр acl :

  UUID = 66bcdd2e-8861-4fb0-b7e4-e61c569fe17d / srv ext3 noatime, relatime, acl 0 1
  

Затем перемонтируйте раздел:

  крепление sudo -v -o remount / srv
  

Примечание

В приведенном выше примере предполагается, что / srv находится в отдельном разделе.Если / srv или где бы вы ни настроили свой общий путь, является частью раздела /, может потребоваться перезагрузка.

Для соответствия конфигурации Samba выше sysadmin группе будут предоставлены разрешения на чтение, запись и выполнение для / srv / samba / share , группе qa будут предоставлены разрешения на чтение и выполнение, а файлы будут принадлежит пользователю melissa . Введите в терминал:

  Судо Чаун -R Мелисса / SRV / Самба / Поделиться /
sudo chgrp -R системный администратор / SRV / самба / доля /
sudo setfacl -R -m g: qa: rx / SRV / самба / доля /
  

Примечание

Приведенная выше команда setfacl дает права на выполнение для всех файлов в каталоге / srv / samba / share , которые вы можете захотеть, а можете и не захотеть.

Теперь из клиента Windows вы должны заметить, что реализованы новые права доступа к файлам. См. Справочные страницы acl и setfacl для получения дополнительной информации о списках ACL POSIX.

Профиль Samba AppArmor

Ubuntu поставляется с модулем безопасности AppArmor, который обеспечивает обязательный контроль доступа. Профиль AppArmor по умолчанию для Samba необходимо будет адаптировать к вашей конфигурации. Подробнее об использовании AppArmor см. ???.

Существуют профили AppArmor по умолчанию для / usr / sbin / smbd и / usr / sbin / nmbd , двоичных файлов демона Samba, как часть пакетов apparmor-profiles.Чтобы установить пакет, в командной строке введите:

  sudo apt установить apparmor-profiles apparmor-utils
  

Примечание

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

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

Отредактируйте /etc/apparmor.d/usr.sbin.smbd , добавив информацию для [share] из примера файлового сервера:

  / срв / самба / акция / р,
  / SRV / самба / доля / ** rwkix,
  

Теперь поместите профиль в enforce и перезагрузите его:

  sudo aa-enforce / usr / sbin / smbd
кот /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r
  

Теперь у вас должна быть возможность читать, записывать и выполнять файлы в общем каталоге как обычно, а двоичный файл smbd будет иметь доступ только к настроенным файлам и каталогам.Не забудьте добавить записи для каждого каталога, который вы настроили для Samba. Кроме того, любые ошибки будут регистрироваться в / var / log / syslog .

Ресурсы

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa