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
comment: короткое описание разделяемого ресурса. Используется для вашего удобства.
path: путь до разделяемого каталога.
Этот пример использует /srv/samba/sharename поскольку, в соответствии со стандартом иерархии файловых систем (FHS), каталог /srv — это место, где должны находится все данные, относящиеся к данному сайту. Технически разделяемый ресурс Samba может быть размещен в любом месте файловой системы, где позволяют файловые ограничения доступа, но следование стандартам рекомендуется.
browsable: позволяет клиентам Windows просматривать содержимое разделяемого каталога с помощью проводника Windows.
guest ok: позволяет клиентам подключаться к разделяемому ресурсу без указания пароля.
read only: определяет доступность ресурса только на чтение или с привилегиями на запись. Привилегии на запись доступны только при указании no, как показано в данном примере. Если значение yes, то доступ к ресурсу будет только на чтение.
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]
По заданию, нам понадобится сделать три папки общего доступа:
- Share — папка с полным общим доступом на чтение и запись всем пользователям сети. Используется как «флешка» между компьютерами сети;
- Read — папка с доступом только на чтение, для пользователей сети. Используется, для распространения файлов в сети, администратором сервера;
- 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/ http://en.openSUSE.org/Samba | Источники Git Вы также можете получить | |
Инструменты | ||
Клиенты SMB / CIFS | ||
|
.
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
.
Ресурсы
.