Centos 7 создает папку для экспорта
Обновлено: 21.11.2024
Samba – это проект с открытым исходным кодом, целью которого является предоставление безопасной и стабильной службы совместного использования данных и принтеров в различных операционных системах (Windows, Linux и Mac OS).
Samba работает с использованием протокола Session Message Block ( SMB ), который поддерживается большинством ОС Windows и Mac OS для обслуживания тех клиентов, которые имеют доступ к общим ресурсам, таким как носители данных Linux, принтеры, последовательные порты (аппаратное оборудование). ).
В этом руководстве мы собираемся использовать сервер CentOS 7 Samba и компьютер с Mac OS, чтобы использовать службу для доступа к общей папке.
Сначала мы начнем с установки Samba на наш сервер CentOS 7:
Перед началом настройки нам необходимо сделать резервную копию, создать среду и настроить брандмауэр. Итак, сначала нам нужно создать резервную копию файла конфигурации Samba, чтобы не испортить исходную конфигурацию (это полезно в случае большого количества обновленных конфигураций). Лучше сохранить резервную копию каждого этапа процесса обновления:
Затем нам нужно создать папку, к которой нужно предоставить общий доступ, или подготовить ее к совместному использованию, если она уже существует. Нам нужно установить права пользователя, чтобы предоставить все для этой папки:
Наконец, нам нужно открыть порт службы Samba на брандмауэре сервера:
Теперь мы можем приступить к внесению необходимых изменений в конфигурационный файл Samba:
Нам нужно убедиться, что мы установили соответствующую рабочую группу (обычно она устанавливается как WORKGROUP ):
И мы определяем общую папку.
Сохраняем файл и создаем несколько пользователей Samba:
Затем мы вводим пароль и повторяем попытку ввести его, чтобы создать новый.
Если мы хотим, чтобы некоторые папки были доступны определенному пользователю, нам нужно добавить следующую строку в определение папки и отключить гостевой вход, изменив guest ok = yes на guest ok = no :
Для этапа тестирования нам нужно запустить службы:
Затем переходим на сторону клиента и вводим эту ссылку при подключении к серверу:
Этот тест используется на компьютере Mac. Для компьютера с Windows мы вводим следующую ссылку в поле адреса проводника:
Затем у нас появится экран входа в систему, где нам нужно ввести идентификатор пользователя и пароль Samba, например:
После ввода правильного идентификатора пользователя и пароля должен появиться экран, показывающий возможную папку, к которой у этого пользователя может быть доступ, а именно:
Тогда наша папка будет доступна с правами, определенными в папке конфигурации. Поскольку у нас есть права на запись, мы можем создать папку, а затем проверить, действительно ли это произошло на сервере.
Мы можем запустить наш сервер, чтобы проверить, были ли применены изменения, сделанные клиентом.
Если нам когда-либо понадобится изменить какую-либо конфигурацию общего доступа к папкам, мы должны перезапустить службы, чтобы изменения вступили в силу:
Samba хороша для обмена файлами в нескольких средах, но мы не должны забывать о самом известном решении для обмена файлами в Linux — сетевой файловой системе (NFS). NFS — это клиент-серверный инструмент, используемый для обмена данными между несколькими системами Linux путем подключения множества удаленных общих папок и дисков по сети для прямого доступа к этим файлам на стороне клиента.
Мы собираемся провести тест клиент-сервер NFS на CentOS 7, чтобы показать, как это работает.
Во-первых, нам нужно установить службу на сервере:
Затем запускаем сервис, отвечающий за обеспечение работоспособности сервиса:
Подготавливаем папку для общего доступа:
Затем, чтобы экспортировать эту папку и сделать ее доступной для подключения на клиенте, мы редактируем файл /etc/export:
И мы добавляем следующую строку:
Эта строка означает, что мы экспортируем эту папку на все IP-адреса в сети. Опция rw дает права на запись в папку, sync обеспечивает постоянную синхронизацию папки, no_root_squash дает привилегии суперпользователя для папки на стороне клиента и, наконец, no_all_squash включает права пользователя.
После каждого изменения файла экспорта нам необходимо перезапускать сервер NFS:
Наконец, нам нужно открыть порты служб NFS на брандмауэре сервера. Перезагрузите брандмауэр, чтобы применить изменения:
На этом шаге мы можем сказать, что мы закончили настройку сервера. Теперь переходим к клиенту.Так же, как и сервер, нам нужно установить утилиты NFS:
Затем запустите соответствующие службы:
Прежде чем монтировать общую сетевую папку, нам нужно убедиться, что есть место для монтирования:
Чтобы проверить монтирование папки, мы можем использовать команду mount или заставить систему монтировать ее автоматически, отредактировав файл /etc/fstab:
Кроме того, мы вставляем следующую строку:
Для более быстрого подключения мы всегда можем использовать четвертую версию NFS, набрав следующее:
NFS4 может предложить больше, чем NFS3. Мы рекомендуем его для среды с серверами Linux, поддерживающими NFS4.
Наконец, если нам нужно проверить, что мы смонтировали на конкретном клиенте NFS, мы используем mount:
NFS, сетевая файловая система, – это распространенный метод обмена файлами по сети с хоста Unix. В этом блоге мы рассмотрим, как создавать экспорты NFS (то есть общие ресурсы) на хосте CentOS 8, а также как монтировать эти экспорты из клиента Linux.
Экспорт NFS поддерживается в большинстве дистрибутивов Linux, хотя конкретные требуемые пакеты могут различаться в зависимости от вашего дистрибутива (например, CentOS/RHEL, Ubuntu и т. д.). Однако общий рабочий процесс и методология останутся прежними.
Для начала вам потребуется хост Linux для использования в качестве сервера NFS (где у вас есть права sudo или root), а также клиент Linux для тестирования монтирования экспорта после настройки на стороне сервера.
Необходимые службы NFS и порты брандмауэра
Перед созданием экспорта NFS необходимо установить некоторые необходимые компоненты и убедиться, что в брандмауэре вашего сервера NFS (а также во всех брандмауэрах в сети) открыты соответствующие порты. В этом примере мы предполагаем, что «firewalld» — это брандмауэр, установленный на сервере.
Выполните следующие команды, чтобы открыть порты для nfs, mountd и rpc-bind, а затем перезагрузите службу firewalld:
Далее нам нужно установить на сервер некоторые утилиты NFS, а также portmap и включить/запустить их:
После успешного выполнения этих команд все готово для настройки брандмауэра и необходимых пакетов/служб на сервере NFS.
Создание экспорта NFS (на стороне сервера)
Теперь мы можем начать создавать экспорт NFS. Сначала создайте папку, которую вы хотите экспортировать клиентам (или вы можете использовать существующую папку):
Далее мы настроим файл /etc/exports, чтобы разрешить экспорт ранее созданной папки на клиенты NFS. Запустите sudo nano /etc/exports, чтобы открыть файл экспорта в текстовом редакторе Nano, а затем добавьте следующую строку для экспорта папки:
Первая часть строки — это путь к папке, которую мы хотим экспортировать. После этого указываем одного клиента или подсеть клиентов (например, 192.168.1.0/24) по IP-адресу, который будет иметь доступ к экспорту. Наконец, мы добавляем к экспорту флаги, такие как:
rw: разрешить клиентам чтение и запись в экспортированную папку.
синхронизация: сервер будет отвечать на запросы клиента на запись только после того, как транзакция будет записана на диск. Это защищает от потери данных в случае отказа сервера NFS или сети во время транзакции. Альтернатива этому параметру, асинхронность, не защищает от потери данных в этих сценариях (хотя асинхронность обеспечивает прирост производительности по сравнению с синхронизацией).
no_subtree_check: проверка поддерева заставляет сервер NFS проверять, доступен ли файл в экспортированном дереве во время каждого клиентского запроса. Хотя это полезно, когда экспортируется только часть тома, в большинстве сценариев NFS лучше отключить проверку поддерева с помощью этого флага для повышения производительности. Теперь, когда мы настроили файл экспорта, мы можем обновить текущий экспорт NFS с помощью следующей команды на сервере:
Чтобы убедиться, что наша папка теперь экспортирована, выполните следующую команду, чтобы проверить текущий список экспорта NFS на сервере:
После того, как экспорт NFS виден в выходных данных команды showmount, мы готовы смонтировать экспорт на клиенте.
Монтирование экспорта NFS (на стороне клиента)
Прежде чем смонтировать экспорт, нам нужно установить необходимый клиентский пакет:
Затем убедитесь, что клиент может обмениваться данными с сервером NFS по сети и просматривать его экспорт NFS:
Обратите внимание, что в каждой клиентской команде монтирования NFS вместо IP-адреса можно использовать разрешаемое DNS имя хоста.
Теперь создайте пустую папку для использования в качестве точки подключения для экспорта NFS и подключите к ней экспорт:
В зависимости от того, какие версии NFS поддерживаются вашим сервером и клиентом, вам может потребоваться указать версию NFS в команде монтирования клиента. Например, следующая команда монтирования указывает NFSv3:
Если вы не получаете никаких сообщений об ошибках, теперь вы должны иметь возможность читать и записывать смонтированный экспорт NFS с клиента.
Вы также можете подтвердить, что экспорт смонтирован, используя вывод клиентской команды df -h.
В качестве альтернативы команда mount предоставляет более подробную информацию о типе монтирования, чем df -h:
Если команда mount возвращает ошибки, вы можете добавить флаг -v, который может выводить информацию, которая может помочь в устранении неполадок.
В целом, настройка и подключение экспортов NFS — это простой процесс. NFSv4 может быть немного более продвинутым из-за включения списков управления доступом (ACL), однако традиционный рабочий процесс NFS, который мы обсуждали здесь, требует всего несколько минут для запуска и запуска.
Технологии Stealthbits, NFS и Linux
Хосты Linux часто используются для некоторых наиболее важных функций в инфраструктуре организации. При этом критически важными рабочими процессами являются отслеживание экспорта NFS, понимание того, как они используются, наблюдение за тем, кто к ним обращается, и проверка того, как они защищены.
StealthAUDIT, полнофункциональное решение для управления доступом к данным, включает предварительно настроенные и настраиваемые задания для аудита, анализа и составления отчетов на хостах Unix/Linux, включая специальные рабочие процессы для мониторинга и защиты экспорта NFS.
От избыточного доступа пользователей и слабых паролей до открытого экспорта/общего доступа с высоким уровнем риска — злоумышленникам достаточно одного скомпрометированного хоста или пользователя, чтобы получить права администратора в вашем домене.
ОПРЕДЕЛИТЕ УГРОЗЫ. БЕЗОПАСНЫЕ ДАННЫЕ. СНИЖЕНИЕ РИСКА. Узнайте, как Stealthbits может упростить мониторинг, обнаружение и устранение неполадок в вашей организации.
Дэн Пьяцца (Dan Piazza) — технический менеджер по продуктам в компании Stealthbits, в настоящее время являющейся частью Netwrix. Он отвечает за PAM, аудит файловых систем и решения для аудита конфиденциальных данных. Он работает на технических должностях с 2013 года, увлекаясь кибербезопасностью, защитой данных, автоматизацией и программированием. До своей нынешней должности он работал менеджером по продукту и системным инженером в компании по разработке программного обеспечения для хранения данных, управляя и внедряя как программные, так и аппаратные решения B2B.
NFS расшифровывается как Network File System, помогает вам обмениваться файлами и папками между системами Linux/Unix, разработанной SUN Microsystems в 1990 году. NFS позволяет вам локально монтировать удаленный общий ресурс.
Это руководство поможет вам настроить сервер NFS на CentOS 7 / RHEL 7.
Преимущества NFS
- Общий доступ к файлам/папкам между системами *nix
- Позволяет монтировать удаленные файловые системы локально
- Может использоваться как централизованная система хранения.
- Его можно использовать в качестве домена хранения (хранилища данных) для VMware и другой платформы виртуализации.
- Позволяет приложениям совместно использовать файлы конфигурации и данных с несколькими узлами.
- Разрешает обновлять файлы в общей папке.
Важные услуги
Ниже перечислены важные службы NFS, включенные в пакеты nfs-utils.
rpcbind: сервер rpcbind преобразует номера программ RPC в универсальные адреса.
nfs-server : позволяет клиентам получать доступ к общим ресурсам NFS.
nfs-lock / rpc-statd: блокировка файлов NFS. Реализовать восстановление блокировки файлов при сбое и перезагрузке сервера NFS.
nfs-idmap: переводит идентификаторы пользователей и групп в имена, а также преобразует имена пользователей и групп
в идентификаторы
Важные файлы конфигурации
В основном вы будете работать над файлами конфигурации, указанными ниже, для настройки сервера и клиентов NFS.
/etc/exports : это основной файл конфигурации, который определяет, какие файловые системы экспортируются на удаленные хосты, и указывает параметры.
/etc/fstab : этот файл используется для управления файловыми системами, включая каталоги NFS, которые монтируются при загрузке системы.
/etc/sysconfig/nfs : этот файл используется для управления портами, на которых работают необходимые службы RPC.
/etc/hosts.allow и /etc/hosts.deny : эти файлы называются оболочками TCP и контролируют доступ к серверу NFS. Он используется NFS, чтобы решить, принимать или нет подключение, входящее с другого IP-адреса.
Окружающая среда
Для этой демонстрации я буду использовать минимальную версию CentOS 7. Это руководство также должно работать в системах Oracle Linux и Fedora.
NFS-сервер
Имя хоста: server.itzgeek.local (CentOS 7)
IP-адрес: 192.168.1.10/24
Клиент NFS
Имя хоста: client.itzgeek.local (CentOS 7)
IP-адрес: 192.168.1.20/24
Настройка NFS-сервера
Установить NFS-сервер
Установите приведенный ниже пакет для сервера NFS с помощью команды yum.
После установки пакетов включите и запустите службы NFS.
Создать общий ресурс NFS
Теперь давайте создадим каталог для совместного использования с клиентом NFS. Здесь я создам новый каталог с именем nfsfileshare в разделе /.
Вы также можете предоставить общий доступ к существующему каталогу с помощью NFS.
Разрешить клиенту NFS чтение и запись в созданный каталог.
Мы должны изменить файл /etc/exports, чтобы сделать запись каталога /nfsfileshare, которым вы хотите поделиться.
Создайте общий ресурс NFS, как показано ниже.
192.168.1.20 : IP-адрес клиентского компьютера. Мы также можем использовать имя хоста вместо IP-адреса. Также можно определить диапазон клиентов с подсетью, например 192.168.1.0/24.
rw: разрешение на запись в общую папку
синхронизация: все изменения в соответствующей файловой системе немедленно сбрасываются на диск; соответствующие операции записи ожидаются.
no_root_squash : по умолчанию любой запрос файла, сделанный пользователем root на клиентском компьютере, обрабатывается как пользователь none на сервере. (Точный UID, на который сопоставляется запрос, зависит от UID пользователя «никто» на сервере, а не на клиенте.) Если выбрано no_root_squash, то root на клиентской машине будет иметь такой же уровень доступа к файлам на система как root на сервере.
Вы можете ознакомиться со всеми параметрами в man-странице man exports или здесь.
Экспортируйте общие каталоги с помощью следующей команды.
Дополнительно:
exportfs -v : отображает список общих файлов и параметры экспорта на сервере.
exportfs -a : экспортирует все каталоги, перечисленные в /etc/exports.
exportfs -u : отменить экспорт одного или нескольких каталогов.
exportfs -r : повторно экспортировать все каталоги после изменения /etc/exports.
После настройки сервера NFS нам нужно смонтировать этот общий каталог в клиенте NFS.
Настроить брандмауэр
Нам нужно настроить брандмауэр на сервере NFS, чтобы разрешить клиенту NFS доступ к общему ресурсу NFS. Для этого выполните следующие команды на сервере NFS.
Настроить клиент NFS
Установить клиент NFS
Нам нужно установить пакеты NFS на клиенте NFS, чтобы смонтировать удаленный общий ресурс NFS. Установите пакеты NFS, используя приведенную ниже команду.
Проверить общий ресурс NFS
Перед подключением общего ресурса NFS я прошу вас проверить общие ресурсы NFS, доступные на сервере NFS, выполнив следующую команду на клиенте NFS.
Вывод:
Согласно выходным данным, /nfsfileshare доступен на сервере NFS (192.168.1.10) для клиента NFS (192.168.1.20).
Дополнительно:
showmount -e : показывает доступные общие ресурсы на вашем локальном компьютере (сервере NFS).
showmount -e : список доступных общих ресурсов на удаленном сервере
Подключить общий ресурс NFS
Теперь создайте каталог на клиенте NFS для подключения общего ресурса NFS /nfsfileshare, который мы создали на сервере NFS.
Используйте команду ниже, чтобы смонтировать общий ресурс NFS /nfsfileshare с сервера NFS 192.168.1.10 в /mnt/nfsfileshare на клиенте NFS.
Проверьте смонтированный общий ресурс на клиенте NFS с помощью команды mount.
Вывод:
Кроме того, вы можете использовать команду df -hT для проверки подключенного общего ресурса NFS.
Вывод:
Создайте файл в смонтированном каталоге, чтобы проверить доступ для чтения и записи к общему ресурсу NFS.
Если приведенная выше команда не возвращает ошибок, у вас работает настройка NFS.
Автоматическое подключение общих ресурсов NFS
Чтобы автоматически монтировать общие ресурсы при каждой перезагрузке, вам потребуется изменить файл /etc/fstab вашего клиента NFS.
Добавьте запись, как показано ниже.
Сохраните и закройте файл.
Перезагрузите клиентский компьютер и проверьте, монтируется ли общий ресурс автоматически или нет.
Проверьте смонтированный общий ресурс на клиенте NFS с помощью команды mount.
Вывод:
Если вы хотите размонтировать этот общий каталог из вашего NFS-клиента после завершения общего доступа к файлам, вы можете размонтировать этот конкретный каталог с помощью команды umount.
Заключение
Вы успешно настроили сервер NFS и клиент NFS в CentOS 7 / RHEL 7. Если вы не хотите использовать статическое монтирование, вы можете настроить AutoFS в CentOS 7 для монтирования общего ресурса NFS только тогда, когда пользователь получает к нему доступ.
nfsd — серверный процесс, отвечающий на запросы клиентов на TCP-порту 2049 для доступа к файлам. Он используется для блокировки и восстановления файлов.
rpcbind — представляет и сервер, и клиент. Преобразует номера программ RPC в универсальные адреса для облегчения связи с другими службами на основе RPC.
rpc.rquotad — присутствует как на сервере, так и на клиенте. Отвечает за отображение информации о пользовательских квотах для удаленно подключенного общего ресурса на сервере, а также используется для настройки пользовательских квот на подключенном общем ресурсе на клиенте.
rpc.idmapd — запускается на сервере и клиенте для управления сопоставлением UID и GID с их именами пользователей и групп на основе конфигурации, определенной в файле /etc/idmapd.conf.
Файлы конфигурации NFS /etc/exports — содержат определения общих ресурсов для экспорта.
/var/lib/nfs/etab — записывает записи для экспортированных общих ресурсов независимо от того, смонтированы они удаленно или нет. /etc/nfsmount.conf — клиентский файл, определяющий параметры, используемые при монтировании общих ресурсов.
/etc/fstab содержит общие ресурсы, которые монтируются при перезагрузке системы или вручную с помощью команды mount.
/etc/mtab — показывает смонтированные общие ресурсы и локальные файловые системы.
/etc/sysconfig/nfs — файл конфигурации запуска NFS на стороне клиента и сервера. Модификации файлов nfsmount.conf и /etc/sysconfig/nfs не требуют модификаций.
Установка и настройка NFS
В этом примере мы создадим папку sharenfs и экспортируем ее по протоколу NFSv4 (по умолчанию для RHEL7/CENTOS7) в Windows XP (именованный клиент) в режиме чтения/записи с отключенным корневым сквошом. Я построил сеть для этого примера в этой статье. Я установил утилиты nfs на машину squid. Она будет служить сервером NFS.
Создать папку /sharenfs
Установите постоянные логические значения SELinux (P), чтобы разрешить экспорт NFS как в режиме только для чтения (nfs_export_all_ro=1), так и в режиме чтения-записи (nfs_export_all_rw=1), и проверьте это:
Это подходящий момент, когда мы можем увидеть все логические значения SELinux, связанные с nfs:
nfs_export_all_ro Разрешает/запрещает экспорт общих ресурсов в режиме только для чтения.
nfs_export_all_rw Разрешает/запрещает экспорт общих ресурсов в режиме чтения/записи.
nfsd_anon_write Разрешает/запрещает демону nfsd анонимную запись в общедоступные каталоги на клиентах.
use_nfs_home_dirs Разрешает/запрещает клиентам NFS монтировать домашние каталоги пользователей. Сервер NFS использует TCP-порт 2049 для связи с клиентами
Приведенной выше строки достаточно при подключении из Linux-клиента, но это не сработало, когда я подключался из Windows
сервер 2012, в соединении было отказано, оно работало только после остановки брандмауэра, пока я не открыл порты для службы mountd:
Запустите службы rpcbind и NFS:
systemctl запускает rpcbind nfs
Отредактируйте файл /etc/exports и добавьте запись для нашей созданной папки с параметрами чтения/записи и no_root_squash:
Первая строка экспортирует папку /sharenfs в Windows Server 2012, а вторая — в клиент Linux
all_squash (no_all_squash) все клиенты (включая root) рассматриваются (не) как анонимные в клиентских системах
root_squash Запросы сопоставления от uid/gid 0 к анонимному uid/gid.
(no_root_squash) Отключить раздавливание корней.
async/sync Отвечает на запросы клиентов перед записью изменений на диск
rw/ro Разрешает/запрещает изменение файлов на клиенте.
secure/insecure Разрешает/запрещает доступ только для клиентов с портами ниже 1024. Теперь мы должны сделать локальные каталоги доступными для подключения клиентов сетевой файловой системы (NFS). Этот список хранится в файле с именем /var/lib/ nfs/etab, который mountd считывает, когда удаленный хост запрашивает доступ для монтирования файлового дерева:
-a Экспортировать или отменить экспорт всех каталогов
-v Подробный режим
-r Если смонтирован /proc/fs/nfsd или /proc/fs/nfs, удалить все
из экспортной таблицы ядра.
Проверьте файл /var/lib/nfs/etab:
Первая запись экспортирует /sharenfs в Windows Server, а вторая — в ящик Centos
Если нам нужно отменить экспорт общих ресурсов, мы можем сделать это с помощью команды exportfs с указанием параметра –u. exportfs –u servernmae:/имя_папки
Смонтировать общий ресурс на стороне клиента-linux
На клиенте Linux установите также пакет nfs-utils, запустите службы rpcbind и nfs
Затем подключите общий ресурс NFS
Смонтировать общий ресурс с адреса 192.168.122.90 для чтения и записи в папку /tmp
Экспортировать общие ресурсы в клиент Windows (Server 2012)
Читайте также: