На заре Интернета передача файлов между разными хостами в основном осуществлялась с помощью FTP. Однако с FTP есть небольшая проблема: вы не можете напрямую изменять содержимое файла на хосте! Другими словами, если вы хотите изменить файл на хосте Linux, вы должны загрузить файл, прежде чем сможете его изменить. В повседневной офисной среде помимо Windows используются операционные системы Linux или UNIX. Совместное использование файлов между Windows и Linux или UNIX не может быть выполнено напрямую. Чтобы проанализировать совместное использование файлов, принтеров и других ресурсов между различными системами, сегодня мы представим службу samba. Это может решить проблемы совместного использования между различными системными платформами.
Samba — это бесплатное программное обеспечение, реализующее протокол SMB в системах Linux и UNIX. Оно состоит из серверных и клиентских программ, а также является программным обеспечением C/S.
SMB(Server Messages Block,Message Service Block) — протокол связи для файлов и принтеров в локальной сети.,Он предоставляет общие службы для файлов, принтеров и других ресурсов между различными компьютерами в локальной сети. Протокол SMB — это протокол клиент/сервер.,клиент Проходить С помощью этого протокола вы можете получить доступ кобщийдокументсистема、Принтеры и прочее
Общий доступ к файлам и принтерам: Основная функция samba заключается в том, что процесс samba реализует совместное использование ресурсов и публикует файлы, принтеры и даже устройства (такие как компакт-диски) в сети для доступа пользователей.
Аутентификация и проверка разрешений: Подтверждайте личность пользователя и устанавливайте разрешения, а также защищайте общие файлы и принтеры с помощью шифрования.
Разрешение имени: Внедрите разрешение имен через службу nmbd для преобразования имен NetBIOS в IP-адреса.
Просмотрите услуги: В локальной области samba может стать локальным главным браузером и может быть сохранена.
Список ресурсов: при доступе пользователя будет предоставлен список просмотра.
Samba построена на протоколе NetBIOS, а NetBIOS впервые был разработан компанией IBM. Его цель состоит в том, чтобы позволить компьютерам в локальной сети подключаться к сети. Поскольку он не предназначен для больших сетей, NetBIOS не может маршрутизироваться по маршрутам. Операционная система Windows также поддерживает этот протокол, поэтому к общим службам, развернутым с помощью SAMBA на хостах Linux, можно получить доступ с хостов Windows. Так может ли SAMBA не иметь возможности предоставлять услуги по различным маршрутам? Нет, мы можем реализовать службы SAMBA с перекрестной маршрутизацией с помощью технологии NetBIOS поверх TCP/IP, но в настоящее время SAMBA все еще больше используется в локальных сетях.
nmbd:использоватьUDPиз137、138 для предоставления услуг разрешения имен (NetBIOS)
smbd:управлятьобщийипередача данных,Используемые терминалы: TCP 139 и 445.
1. Переговоры по соглашению
Когда клиент обращается к серверу, он отправляет запрос negprot, чтобы сообщить серверу о поддерживаемых им типах SMB. Сервер Samba выбирает оптимальный тип SMB в зависимости от ситуации клиента и отвечает.
2. Установить соединение
Когда тип SMB будет подтвержден, клиент отправит пакет команды настройки сеанса, отправит учетную запись и пароль и запросит установление соединения с сервером Samba. Если клиент пройдет аутентификацию, сервер ответит и назначит уникальный UID. пользователю. Используется, когда клиент взаимодействует с сервером.
3. Доступ к общим ресурсам
Когда клиенту необходимо получить доступ к общему ресурсу, он отправит пакет подключения к дереву, чтобы сообщить серверу имя общего ресурса, к которому необходимо получить доступ. Если настройки позволяют это, сервер Samba назначит TID (идентификатор потока). ) для каждого подключения клиента к общему ресурсу клиент может получить доступ к соответствующим общим ресурсам.
4. Отключиться
После использования общего ресурса клиент отправляет на сервер сообщение об отключении дерева, чтобы закрыть доступ к общему ресурсу и отключиться от сервера.
Основной пакет Samba, необходимый серверу
клиентский инструментарий Samba-Client
Общие инструменты и файлы библиотеки samba-common должны быть установлены как на клиенте, так и на сервере.
а. Установите пакет программного обеспечения.
[root@node1 ~]# dnf install samba samba-client -y
б. Настройте запуск службы при запуске.
[root@node1 ~]# systemctl enable nmb.service smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
в. Запустите службу.
[root@node1 ~]# systemctl start nmb smb
Путь к основному файлу конфигурации: /etc/samba/smb.conf
Файл шаблона: /etc/samba/smb.conf.example
[root@baism ~]# cat smb.conf.example
# This is the main Samba configuration file. For detailed information about the
# options listed here, refer to the smb.conf(5) manual page. Samba has a huge
# number of configurable options, most of which are not shown in this example.
#
# The Samba Wiki contains a lot of step-by-step guides installing, configuring,
# and using Samba:
# https://wiki.samba.org/index.php/User_Documentation
#
# In this file, lines starting with a semicolon (;) or a hash (#) are
# comments and are ignored. This file uses hashes to denote commentary and
# semicolons for parts of the file you may wish to configure.
#
# NOTE: Run the "testparm" command after modifying this file to check for basic
# syntax errors.
#
#---------------
#
SAMBA Настройки, связанные с selinux. Если вы включаете selinux, обратите внимание на следующие инструкции.
#
#
#Security-Enhanced Linux (SELinux) Notes:
#
# Turn the samba_domain_controller Boolean on to allow a Samba PDC to use the
# useradd and groupadd family of binaries. Run the following command as the
# root user to turn this Boolean on:
Если вы используете Samba в доменной среде, установите следующее логическое значение
# setsebool -P samba_domain_controller on
#
# Turn the samba_enable_home_dirs Boolean on if you want to share home
# directories via Samba. Run the following command as the root user to turn this
# Boolean on:
#
Если вы хотите, чтобы Проходить проходил домашнюю страницу пользователя sambaобщий, установите следующее логическое значение
# setsebool -P samba_enable_home_dirs on
#
# If you create a new directory, such as a new top-level directory, label it
# with samba_share_t so that SELinux allows Samba to read and write to it. Do
# not label system directories, such as /etc/ and /home/, with samba_share_t, as
# such directories should already have an SELinux label.
#
Если вы хотите добавить Оглавление Проходить через общий samba, убедитесь, что его тег Оглавление — samba_share_t
# Run the "ls -ldZ /path/to/directory" command to view the current SELinux
# label for a given directory.
#
# Set SELinux labels only on files and directories you have created. Use the
# chcon command to temporarily change a label:
Метод установки этикетки
# chcon -t samba_share_t /path/to/directory
#
# Changes made via chcon are lost when the file system is relabeled or commands
# such as restorecon are run.
#
# Use the samba_export_all_ro or samba_export_all_rw Boolean to share system
# directories. To share such directories and only allow read-only permissions:
bool для разрешений на общее Оглавление, только чтение или чтение-запись.
# setsebool -P samba_export_all_ro on
# To share such directories and allow read and write permissions:
# setsebool -P samba_export_all_rw on
#
# To run scripts (preexec/root prexec/print command/...), copy them to the
# /var/lib/samba/scripts/ directory so that SELinux will allow smbd to run them.
# Note that if you move the scripts to /var/lib/samba/scripts/, they retain
# their existing SELinux labels, which may be labels that SELinux does not allow
# smbd to run. Copying the scripts will result in the correct SELinux labels.
# Run the "restorecon -R -v /var/lib/samba/scripts" command as the root user to
# apply the correct SELinux labels to these files.
#
#--------------
#
#======================= Global Settings =====================================
Глобальные настройки, действующие для всего сервиса.
[global]
Настройки сети
# ----------------------- Network-Related Options -------------------------
#
# workgroup = the Windows NT domain name or workgroup name, for example, MYGROUP.
#
# server string = the equivalent of the Windows NT Description field.
#
# netbios name = used to specify a server name that is not tied to the hostname,
# maximum is 15 characters.
#
# interfaces = used to configure Samba to listen on multiple network interfaces.
# If you have multiple interfaces, you can use the "interfaces =" option to
# configure which of those interfaces Samba listens on. Never omit the localhost
# interface (lo).
#
# hosts allow = the hosts allowed to connect. This option can also be used on a
# per-share basis.
#
# hosts deny = the hosts not allowed to connect. This option can also be used on
# a per-share basis.
#
Определите рабочую группу компьютера. Если вы хотите и Windowsобщий, вы можете установить рабочую группу, чтобы вы могли найти компьютер Linux в сетевом окружении Windows.
workgroup = MYGROUP
Описание сервера самбы
server string = Samba Server Version %v
Установить имя компьютера NetBIOS
; netbios name = MYSERVER
Samba использует локальную сетевую карту
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
Разрешите этому сетевому сегменту доступ к общему серверу Samba, вы также можете использовать «hosts» Deny», чтобы установить запрещенный сегмент сети, «hosts «Разрешить» имеет высокий приоритет и может быть выражено в виде определенного IP-адреса или имени домена, либо *,?, локального, всех, либо вы можете использовать EXCEPT для исключения
Такие как: хосты allow = 192.168.0. EXCEPT 192.168.0.100
; hosts allow = 127. 192.168.12. 192.168.13.
#
Параметры журнала
# --------------------------- Logging Options -----------------------------
#
# log file = specify where log files are written to and how they are split.
#
# max log size = specify the maximum size log files are allowed to reach. Log
# files are rotated when they reach the size specified with "max log size".
#
Путь к файлу журнала Samba, %m представляет собой NetBios-имя клиента, а другие переменные можно использовать man. smb.conf Проходить, перейти к проверке по мануалу man
# log files split per-machine:
log file = /var/log/samba/log.%m
Размер файла журнала: 0 означает отсутствие ограничений. Обратите внимание, что этот параметр не рекомендуется.
# maximum size of 50KB per log file, then rotate:
max log size = 50
Автономные варианты обслуживания
# ----------------------- Standalone Server Options ------------------------
#
# security = the mode Samba runs in. This can be set to user, share
# (deprecated), or server (deprecated).
#
# passdb backend = the backend used to store user information in. New
# installations should use either tdbsam or ldapsam. No additional configuration
# is required for tdbsam. The "smbpasswd" utility is available for backwards
# compatibility.
#
уровень безопасности самбы
share: Никакая учетная запись или пароль не требуются, общедоступная общая информация
user: Вам необходимо предоставить свою учетную запись Samba и пароль для доступа к общей, частной общей сети.
сервер: зависит от других Windows NT/2000 или Самба Serverдля аутентификации пользователяизсчетипароль,Это проверка прокси. В этом безопасном режиме,Системные администраторы могут объединить всех пользователей и пароли Windows в одну систему NT.,>использоватьWindows NT выполняет аутентификацию Samba, Удаленный сервер может автоматически аутентифицировать всех пользователей и пароли. Если аутентификация не удалась, Samba будет использовать уровень пользователя.
домен: Если сервер Samba присоединяется к среде домена, работа по проверке выполняется контроллером домена.
объявления: имеет все функции уровня домена и функции контроллера домена.
auto: на уровень безопасности будет влиять «серверный Значение поля «роль» влияет на «серверный Значением поля «роль» по умолчанию является auto (после проверки можно использовать пользователя Проходить). Остальные параметры определяют, является ли роль сервера Samba, добавленного в среду домена окна, членом или контроллером домена.
В обычных обстоятельствах мы чаще используем Shareиuser, если у компании нет полноценной доменной среды.
security = user
Существует три способа управления пользователями и паролями: smbpasswd, tdbsam и ldapsam.
smbpasswd: используйте команду smbpasswd, поставляемую с samba, чтобы установить пароль для пользователя (реального пользователя или виртуального пользователя). По умолчанию пароль хранится в файле /var/lib/samba/private/smbpasswd.
smb passwd file = /etc/samba/smbpasswd» указывает расположение файла паролей.
smbpasswd -a username Добавить пользователя/изменить пароль пользователя
smbpasswd -d username Отключить пользователя
smbpasswd -e username включить пользователя
smbpasswd -x username Удалить пользователя
tdbsam: создайте файл passdb.tdb в /var/lib/samba/private для хранения паролей. Вы также можете использовать «smb». passwd «Файл» указывает место хранения. Помимо использования команды smbpasswd для управления пользователями, вы также можете использовать команду pdbedit для его указания, и это может быть только системный пользователь (реальный пользователь). Чтобы создать пользователя, вы можете используйте команду mksmbpasswd, чтобы создать файл smbpasswd, а затем используйте pdbedit. Импортируйте пользователей из файла в базу данных.
cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd
pdbedit -i smbpasswd:/etc/samba/smbpasswd
Дополнительное использование
pdbedit -a имя пользователя: Создайте новую учетную запись Samba.
pdbedit -x имя пользователя: удалить учетную запись Samba.
pdbedit -L: вывести список пользователей Samba и прочитать файл базы данных passdb.tdb.
pdbedit -Lv: вывести подробную информацию о списке пользователей Samba.
pdbedit -c “[D]” –u имя пользователя: отключить учетную запись пользователя Samba.
pdbedit -c “[]” –u имя пользователя: восстановить учетную запись пользователя Samba.
ldapsam: метод аутентификации на основе LDAP. Сначала необходимо иметь службу LDAP и добавить ее в LDAP.
passdb backend = tdbsam
Варианты членства в домене
# ----------------------- Domain Members Options ------------------------
#
# security = must be set to domain or ads.
#
# passdb backend = the backend used to store user information in. New
# installations should use either tdbsam or ldapsam. No additional configuration
# is required for tdbsam. The "smbpasswd" utility is available for backwards
# compatibility.
#
# realm = only use the realm option when the "security = ads" option is set.
# The realm option specifies the Active Directory realm the host is a part of.
#
# password server = only use this option when the "security = server"
# option is set, or if you cannot use DNS to locate a Domain Controller. The
# argument list can include My_PDC_Name, [My_BDC_Name], and [My_Next_BDC_Name]:
#
# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
#
# Use "password server = *" to automatically locate Domain Controllers.
#Установить доменобщий
; security = domain
; passdb backend = tdbsam
#определить доменное имя
; realm = MY_REALM
#Сервер проверки домена
; password server = <NT-Server-Name>
#Параметры управления доменом
# ----------------------- Domain Controller Options ------------------------
#
# security = must be set to user for domain controllers.
#
# passdb backend = the backend used to store user information in. New
# installations should use either tdbsam or ldapsam. No additional configuration
# is required for tdbsam. The "smbpasswd" utility is available for backwards
# compatibility.
#
# domain master = specifies Samba to be the Domain Master Browser, allowing
# Samba to collate browse lists between subnets. Do not use the "domain master"
# option if you already have a Windows NT domain controller performing this task.
#
# domain logons = allows Samba to provide a network logon service for Windows
# workstations.
#
# logon script = specifies a script to run at login time on the client. These
# scripts must be provided in a share named NETLOGON.
#
# logon path = specifies (with a UNC path) where user profiles are stored.
#
#
; security = user
; passdb backend = tdbsam
Сделать Samba главным браузером домена
; domain master = yes
Разрешить Samba предоставлять услуги входа в сеть для Windows
; domain logons = yes
# the following login script name is determined by the machine name
# (%m):
Определите сценарий, который будет выполняться клиентом при входе в систему.
; logon script = %m.bat
# the following login script name is determined by the UNIX user used:
; logon script = %u.bat
Определяет место, где хранятся файлы, записывающие персонализированную информацию пользователя. Пустое значение указывает, что персонализация отключена.
; logon path = \\%L\Profiles\%u
# use an empty path to disable profile support:
; logon path =
# various scripts can be used on a domain controller or a stand-alone
# machine to add or delete corresponding UNIX accounts:
Определите конкретные операции, которые необходимо выполнить при добавлении и удалении пользователей и хостов при работе в качестве контроллера домена.
; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
; delete user script = /usr/sbin/userdel "%u"
; delete user from group script = /usr/sbin/userdel "%u" "%g"
; delete group script = /usr/sbin/groupdel "%g"
Эти параметры настройки в основном используются для настройки поведения сервера Samba при просмотре в сети SMB. Не разрешено по умолчанию Сервер Samba участвует в процессе рекомендации браузера. Чтобы сервер Samba стал браузером, вам необходимо установить локальный. master = да. Тогда сервис Samba может быть основан на ОС Рекомендуется вес, установленный по уровню, и ОС по умолчанию. Если уровень равен 0, этот вес не получит рекомендации. Но вы можете раскомментировать и изменить ОС уровень установлен на 33, он будет работать на всех компьютерах с Windows, включая Windows. NT) выиграла предвыборную борьбу, потому что NT Вес сервера 32. Ставьте вес больше 33, просто на другой самбе Имеет смысл только выбирать между серверами.
#
preferred master Вы можете сделать себя кандидатом на сервер приоритетного просмотра.
#
# ----------------------- Browser Control Options ----------------------------
#
# local master = when set to no, Samba does not become the master browser on
# your network. When set to yes, normal election rules apply.
#
# os level = determines the precedence the server has in master browser
# elections. The default value should be reasonable.
#
# preferred master = when set to yes, Samba forces a local browser election at
# start up (and gives itself a slightly higher chance of winning the election).
#
; local master = no
; os level = 33
; preferred master = yes
#
#
служба wins, если в сети настроен сервер wins, вы можете установить здесь элементы, связанные с wins
#----------------------------- Name Resolution -------------------------------
#
# This section details the support for the Windows Internet Name Service (WINS).
#
# Note: Samba can be either a WINS server or a WINS client, but not both.
#
# wins support = when set to yes, the NMBD component of Samba enables its WINS
# server.
#
# wins server = tells the NMBD component of Samba to be a WINS client.
#
# wins proxy = when set to yes, Samba answers name resolution queries on behalf
# of a non WINS capable client. For this to work, there must be at least one
# WINS server on the network. The default is no.
#
# dns proxy = when set to yes, Samba attempts to resolve NetBIOS names via DNS
# nslookups.
Установите процесс nmb для поддержки службы побед.
; wins support = yes
Установить IP-адрес сервера Win
; wins server = w.x.y.z
Установить IP-адрес прокси-сервера Win
; wins proxy = yes
Установите, будет ли сервер Samba разрешать NetBIOS-имя хоста через DNS, если он не может связаться с WINS-сервером.
; dns proxy = yes
В этом разделе приведены настройки принтера сервера Samba.
# --------------------------- Printing Options -----------------------------
#
# The options in this section allow you to configure a non-default printing
# system.
#
# load printers = when set you yes, the list of printers is automatically
# loaded, rather than setting them up individually.
#
# cups options = allows you to pass options to the CUPS library. Setting this
# option to raw, for example, allows you to use drivers on your Windows clients.
#
# printcap name = used to specify an alternative printcap file.
#
Включить ли общий принтер
load printers = yes
cups options = raw
Файл конфигурации принтера
; printcap name = /etc/printcap
# obtain a list of printers automatically on UNIX System V systems:
; printcap name = lpstat
Тип системы принтера. В настоящее время поддерживаются следующие системы печати: bsd, sysv, plp, lprng, aix, hpux, qnx,cups
; printing = cups
В этом разделе описана конфигурация, связанная с тем, как сервер Samba сохраняет атрибуты файлов Windows для файлов, перемещенных из клиента Windows для копирования или перемещенных на сервер Samba.
# --------------------------- File System Options ---------------------------
#
# The options in this section can be un-commented if the file system supports
# extended attributes, and those attributes are enabled (usually via the
# "user_xattr" mount option). These options allow the administrator to specify
# that DOS attributes are stored in extended attributes and also make sure that
# Samba does not change the permission bits.
#
# Note: These options can be used on a per-share basis. Setting them globally
# (in the [global] section) makes them the default for all shares.
Сохранять ли атрибут архива файла в Windows, когда клиент Windows перемещает файл на сервер Samba. По умолчанию нет.
; map archive = no
Сохранять ли скрытый атрибут файла в Windows, когда клиент Windows перемещает файл на сервер Samba или с него. По умолчанию нет.
; map hidden = no
Когда клиент Windows перемещает файл на сервер Samba, следует ли сохранять атрибут файла только для чтения в Windows. По умолчанию нет.
; map read only = no
Когда клиент Windows перемещает файл на сервер Samba, следует ли сохранять атрибуты системного файла в Windows. По умолчанию нет.
; map system = no
Когда клиент Windows перемещает файл на сервер Samba, следует ли сохранять связанные атрибуты файла в Windows (только для чтения, системные, скрытые, архивные атрибуты). По умолчанию — да.
; store dos attributes = yes
общийнастраивать
#============================ Share Definitions ==============================
#Домашняя страница пользователя Оглавлениеобщий
#общийимя
[homes]
описывать
comment = Home Directories
Это скрыто?
browseable = no
Разрешено ли писать
writable = yes
пользователю smb, @group разрешен доступ к этому общему ресурсу
; valid users = %S
; valid users = MYDOMAIN\%S
Принтер общий
[printers]
описывать
comment = All Printers
путь
path = /var/spool/samba
Можно ли его просмотреть, параметр «нет» аналогичен сокрытию общего.
browseable = no
Поддерживать ли гостевой доступ, аналогично общедоступным инструкциям
guest ok = no
Это доступно для записи?
writable = no
Разрешена ли печать
printable = yes
# Un-comment the following and create the netlogon directory for Domain Logons:
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
# Un-comment the following to provide a specific roaming profile share.
# The default is to use the user's home directory:
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes
# A publicly accessible directory that is read only, except for users in the
# "staff" group (which have write permissions):
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = no
; printable = no
Определите, каким пользователям smb разрешено писать, +и@ указывает на группу
; write list = +staff
Карта топологии
Среда: два хоста с установленным CentOS8, отключите selinux и отключите брандмауэр.
Требования к делу:
1) создайте новую папку /common
2) Настройте службу SMB на сервере.
3). Ваш SMB-сервер должен быть членом рабочей группы.
4). Откройте общий доступ к каталогу /common. Имя общего ресурса должно быть общим.
5). Доступ к общему ресурсу имеют только клиенты в сегменте сети 192.168.11.0.
6), общий должен быть доступным для просмотра
7) Пользователь hello должен иметь возможность читать содержимое общего ресурса. При необходимости пароль для проверки — hello.
8) Пользователь test должен иметь права на запись. При необходимости пароль для проверки — test.
а. Создайте общий каталог.
[root@node1 ~]# mkdir /common
б. Установите разрешения для общего каталога, поскольку разрешения по умолчанию — 755. За исключением администратора, другие могут только читать, но не писать. В этом эксперименте тест требуется для записи, поэтому другие добавляют разрешения на запись. Помимо настроек службы Samba, разрешения общего каталога в Samba также зависят от настроек разрешений системы. Способ обработки противоречивых разрешений в системе заключается в использовании пересечения. Поэтому вы должны обратить внимание на проблемы с разрешениями при организации общего доступа.
[root@node1 ~]# chmod 757 /common
[root@node1 ~]# cd /etc/samba/
[root@node1 ~]# vim /etc/samba/smb.conf
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
#Установим рабочую группу в рабочую группу
workgroup = workgroup
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = no
read only = no
inherit acls = yes
[printers]
comment = All Printers
path = /var/tmp
printable = yes
create mask = 0600
browseable = no
#общий настройки, обратитесь к файлу конфигурации за подробным объяснением, чтобы понять следующие параметры.
[common]
comment = samba file share test
path = /common #Абсолютнопуть
browseable = yes
hosts allow = 192.168.11.0/255.255.255.0
valid users = hello,test
writable = no
write list = test
public = no
в. Перезапустите службу, чтобы изменения вступили в силу.
[root@node1 ~] systemctl restart smb nmb
d. Создайте пользователя Samba. Используйте команду useradd для создания пользователей приветствия и тестирования, а также установки паролей.
[root@node1 ~]# smbpasswd -a hello
New SMB password:
Retype new SMB password:
[root@node1 ~]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Расширение общих команд
valid users Укажите конкретных пользователей и группы, которые могут получить доступ к этому ресурсу.
invalid users Укажите пользователей и группы, которые не могут использовать этот ресурс.
read list Укажите группу пользователей, которая может только читать ресурс.
write list Укажите пользователей и группы, которые могут читать и записывать ресурс.
admin list Укажите пользователей и группы, которые могут управлять ресурсом (включая предоставление разрешений на чтение и запись и т. д.).
public Указывает, доступен ли ресурс гостевым учетным записям. Этот переключатель иногда называют гостевым. ок, гость появляется в некоторых файлах конфигурации ok = да на самом деле и публично = да, то же самое.
hide dot files Указывает, следует ли скрывать файлы, начинающиеся с «.», например unix.
create mask Указывает атрибуты вновь созданного файла, обычно 0755.
directory mode Указывает атрибуты вновь созданного Оглавления, обычно 0755.
sync always Указывает, следует ли выполнять операции синхронизации после записи в общий ресурс.
preserve case Указывает на сохранение дела. да/нет
case sensitive Укажите, учитывается ли регистр. Обычно выбирайте «Нет», иначе могут возникнуть ошибки.
default case Указывает, является ли имя файла по умолчанию прописными или строчными буквами. верхний/нижний
force user Заставить владельца созданного файла быть тем, кем он является. Если у меня есть Оглавление, в которое может писать гость, то гость может его удалить, если я использую force user=Учитель Ван Владельцем файла, который создается принудительно, является Учитель Ван , ограничивая создание маска=0755, поэтому гостевых пользователей нельзя удалить
wide links Указывает, разрешать ли общие внешние символические ссылки. Например, в общем ресурсе есть ссылка, указывающая на файл в необщий ресурсе, или если установлено значение «Оглавление». links = no сделает соединение недоступным.
max connections = n Установите количество одновременных подключений равным n.
delete readonly Указывает, можно ли удалить файлы, которые были определены как доступные только для чтения в общем ресурсе.
После создания общего ресурса, если пользователь хочет получить доступ к общему ресурсу Samba, пользователи Windows могут получить доступ к общему ресурсу Samba через сетевое окружение или выведя [\IP\имя общего ресурса] во время работы. Они также могут смонтировать общий ресурс локально с помощью сопоставления сети. Пользователи Linux или UNIX могут использовать клиентский smbclient, предоставляемый Samba, или подключить общий ресурс локально через протокол CIFS.
команда клиента smbclient
smbclient - Клиент, который обращается к ресурсам сервера SMB/CIFS аналогично операции FTP.
Общие параметры команды
-L Эта опция позволяет просмотреть ресурсы службы, доступные на сервере.
-U|--user=username[%password] Этот параметр определяет имя пользователя или имя пользователя и пароль, используемые при подключении программы. Если %password не указан, пользователю будет предложено ввести его.
-W|--workgroup=domain Установите домен SMB для имени пользователя. Эта опция переопределяет домен по умолчанию в файле конфигурации smb.conf.
-N Если указана эта опция, обычный запрос пароля для «Проходить» будет пропущен. Это полезно при доступе к служебным ресурсам, не требующим пароля.
Требования миссии Доступ к общему ресурсу Samba под Linux
Информация о клиенте
[root@slave ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.11.116 netmask 255.255.255.0 broadcast 192.168.11.255
inet6 fe80::20c:29ff:fe8e:ea58 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8e:ea:58 txqueuelen 1000 (Ethernet)
RX packets 5166 bytes 3736352 (3.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2311 bytes 297960 (290.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
б. Используйте smbclient для доступа к общему ресурсу и проверьте настройку четвертого обучающего случая.
тестовый пользователь hello
[root@manage01 ~]# smbclient //192.168.11.16/common -U hello
Enter SAMBA\hello's password:
или
[root@manage01 ~]# smbclient //192.168.11.16/common -U hello%hello
Try "help" to get a list of possible commands.
smb: \> ls
smb: \> lcd /etc/
smb: \> put passwd Запись не удалась
NT_STATUS_ACCESS_DENIED opening remote file \passwd
Тестовый пользовательский тест
[root@manage01 ~]# smbclient //192.168.11.16/common -U test%test
Try "help" to get a list of possible commands.
smb: \> lcd /etc/
smb: \> put passwd
putting file passwd as \passwd (728.2 kb/s) (average 728.2 kb/s) Можно загрузить
smb: \> exit
Команда samba аналогична команде текстового интерфейса ftp. См. предыдущий пример использования vsftp.
c. Общий ресурс монтирования Linux
[root@manage01 ~]# mkdir /opt/samba_share
[root@manage01 ~]# mount -o username=hello,password=hello -t cifs //192.168.11.16/common /opt/samba_share
[root@manage01 ~]# cd /opt/samba_share/
[root@manage01 ~]# mount
......
//192.168.11.16/common on /opt/samba_share type cifs (rw,relatime,vers=default,cache=strict,username=hello,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.11.16,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
[root@manage01 ~]# ls /mnt/samba_share/
initial-setup-ks.cfg passwd
d. Общий доступ к Windows.
Откройте меню «Пуск» и введите следующее
После нажатия Enter появится следующая картинка. Введите свой аккаунт и пароль.
Нажмите кнопку ОК
Сопоставление аккаунтов
Информация об учетной записи пользователя Samba хранится в файле smbpasswd, а учетная запись, имеющая доступ к серверу Samba, также должна соответствовать системной учетной записи с тем же именем. Исходя из этого, некоторые хакеры, зная учетную запись Samba сервера Samba, знают и системную учетную запись Linux. Если они взломают пароль учетной записи Samba и воспользуются им, они смогут атаковать сервер Samba. Поэтому нам нужно использовать функцию сопоставления учетных записей пользователей, чтобы решить эту проблему.
Отредактируйте /etc/samba/smbusers.
Файл smbusers сохраняет отношения сопоставления учетных записей и имеет фиксированный формат:
учетная запись samba = виртуальная учетная запись (сопоставленная учетная запись)
Перезапустить службу
контроль доступа
Для обеспечения безопасности сервера Samba мы говорили, что вы можете использовать действительные Поле пользователей для реализации контроля пользователей доступа,Но если компания огромная,Если есть большое количество пользователей,Этот метод более сложен в использовании. Например, общий сервер Samba выдаст Оглавление для доступа к нему.,Но запретить что-тоIPподсетьилидомениз Клиент обращается к этому ресурсу,Такая ситуацияиспользоватьvalid Поле пользователей не может быть реализовано на стороне клиента. доступа。использоватьhosts разрешить хосты Запретите два поля для реализации этой функции. Ключом к эффективному использованию этих двух полей является знание и понимание их использования и сферы применения.
1) Использование полей разрешения хостов и полей запрета хостов.
hosts allow Поле определяет, каким клиентам разрешен доступ.
hosts deny Поле определяет запрещенных клиентов
2) Ограничить использование IP-адреса
Например, на внутреннем сервере Samba компании имеется общий каталог продаж. Этот каталог является общим каталогом, в котором хранится отдел продаж. Компания предусматривает, что IP-адрес сегмента сети 192.168.0.0/24 запрещает доступ к этим продажам. общий каталог, но IP-адрес 192.168.0.24 запрещен. Доступ к нему возможен.
hosts deny = 192.168.0. 172.16.
hosts allow = 192.168.0.24
hosts deny = 192.168.0. Указывает, что доступ ко всем IP-адресам из сегмента сети 192.168.0.0/24 запрещен.
hosts allow = 192.168.0.24 Указывает, что IP-адресу 192.168.0.24 разрешен доступ.
Когда хозяин denyиhosts Если поля разрешения появляются одновременно и содержимое их определений конфликтует друг с другом, хосты allowприоритет。Сейчаснастраиватьиз Это значит запрещеноCадрес класса192.168.0.0/24Доступ к хосту сегмента сети,Но доступ к хосту 192.168.0.24 разрешен. Если есть несколько следующих материалов,Нужно разделять пробелами,Это также может быть доменное имя,Например: .hello.com
Если оговорить, что никто не может получить доступ к каталогу безопасности, то доступ разрешен только IP-адресам в сегменте сети 192.168.0.0, но доступ к хостам 192.168.0.10 и 192.168.0.78 запрещен. Мы можем использовать запрет хостов, чтобы запретить доступ всем пользователям, а затем установить хосты, разрешающие разрешить хосты в сегменте сети 192.168.0.0. Однако, когда хосты запрещают и хосты разрешают, появляются одновременно и конфликтуют, хосты разрешают. итак, тогда сегмент сети 192.168.0.0 разрешен. Доступ по IP-адресу возможен, но запрет доступа на хостах 192.168.0.100 и 192.168.0.78 не вступит в силу.
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78
Указывает, что доступ к IP-адресу сегмента сети 192.168.0.0 разрешен, кроме 192.168.0.100и192.168.0.78.
Linux Общие методы устранения неполадок служб 1. Сообщение об ошибке
Как правило, вы можете определить, в чем заключается проблема, внимательно просмотрев отображаемое сообщение об ошибке.
2. Конфигурационный файл
Во-вторых, мы можем проверить файл конфигурации. Иногда неправильная работа может привести к ошибкам конфигурации, и служба не сможет нормально работать. Мы можем подтвердить проблему, проверив файл конфигурации. Многие пакеты сервисного программного обеспечения теперь поставляются со своими собственными инструментами проверки файлов конфигурации, и мы можем использовать эти инструменты для проверки файлов конфигурации.
3. Файлы журналов Если возникла проблема со службой, мы также можем использовать команду Tail -f для динамического мониторинга файла журнала.
Устранение неполадок Самбы
1. Используйте команду testparm для проверки. В пакете программного обеспечения имеется собственный инструмент проверки файла конфигурации. Мы можем использовать команду testparm для определения синтаксиса файла smb.conf. Если сообщается об ошибке, это означает, что произошла ошибка. в настройке файла smb.conf, чтобы мы могли следовать подсказкам. Измените основной файл конфигурации и независимые файлы конфигурации.
[root@node1 ~]# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[common]"
Loaded services file OK.
Server role: ROLE_STANDALONE
2. Используйте команду ping для проверки
Перезапустите службу smb после устранения неполадок в основном файле конфигурации сервера Samba. Если клиент по-прежнему не может подключиться к серверу Samba, мы можем использовать команду ping на клиенте для проверки. Это то же самое, что и устранение неполадок в нашей системе Microsoft. Мы можем проанализировать это в соответствии с различными возникающими ситуациями.
(1) Если вы не получаете никаких запросов, это означает, что возникла проблема с установкой клиентского протокола TCP/IP. Вам необходимо переустановить клиентский протокол TCP/IP, а затем повторить тестирование.
(2) Если появится запрос «хост не найден», проверьте, правильно ли настроен клиентский DNS или файл /etc/hosts, чтобы убедиться, что клиент может использовать это имя для доступа к серверу Samba.
(3) Отсутствие проверки связи также может быть проблемой в настройках брандмауэра. Вам необходимо сбросить правила брандмауэра и открыть порт для связи Samba с внешним миром. (4) Конечно, существует и низкоуровневая ситуация, то есть пинг не может быть пройден из-за неправильного ввода имени хоста.
3. Используйте команду smbclient для проверки
Если клиент и сервер Samba могут пинговать, это означает, что с соединением между клиентом и сервером проблем нет. Если вы по-прежнему не можете получить доступ к общим ресурсам Samba, вы можете выполнить команду smbclient для дальнейшей проверки конфигурации сервера. Если тестовый сервер Samba работает нормально и введена правильная учетная запись и пароль, выполните команду smbclient, чтобы получить список общих ресурсов.
smbclient -L 192.168.0.188 -U joy%123
Если мы видим сообщение об ошибке «Ошибка подключения к дереву», это означает, что в файле smb.conf можно установить поле запрета хоста, чтобы запретить IP-адрес или имя домена клиента. Мы можем изменить файл конфигурации smb.conf, чтобы разрешить доступ. клиент для доступа к нему.
Если в ответном сообщении указано «соединение отклонено» и указано, что соединение отклонено, это означает, что процесс smbd сервера samba не может быть открыт. Мы должны убедиться, что процессы smbd и nmbd открыты, и использовать команду netstat для этого. проверьте, находится ли порт 139, используемый netbios, в состоянии прослушивания.
Если подсказка «Ошибка установки сеанса» не позволяет установить соединение, это означает, что сервер отклонил запрос на соединение. Это связано с тем, что введенные имя пользователя и пароль неверны.
Иногда вы также получаете сообщение об ошибке, например «Ваше серверное программное обеспечение недружелюбно», сообщающее о проблеме с серверным программным обеспечением. Эта ошибка обычно возникает из-за использования неправильных параметров при настройке smbd или подобных серьезных ошибок, возникающих при включении. smbd. Мы можем использовать testparm для проверки соответствующих файлов конфигурации, а также соответствующих файлов журналов.