Как установить сервер NFS Linux.

Введение.

Сервер NFS является необходимым приложением при построении офиса на базе ОС Linux. С его помощью можно организовать совместное использование файловых ресурсов в организации. Полное название — Network File System — протокол сетевого доступа к файлам системы. Кроме Linux, протокол NFS применяется в MS Windows, гдеустановлен NFS клиентом. Используя NFS можно объединять рабочие станции Linux и Windows для совместного доступа к папкам и файлам компании. Ещё одно применение NFS — построение бездискового доступа к хранилищу, для доставки установленного приложения клиенту — тонкий клиент.

Протокол NFS не имеет шифрования, используйте Kerberos или VPN для защиты важной информации внутри NFS.

Подготовка.

Прежде чем перейти к развёртыванию NFS сервера, как приложения, нам понадобится базовый сервер Linux, минимальной конфигурации.

  • Стенд:
    • ALT Linux, имя: lin-nfs, IP 10.0.2.36;
    • Альт Рабочая станция, имя: lin-kde, IP=10.0.2.33;
    • пользователь — user

Для работы сервера NFS выберем отдельное устройство — повысит безопасность, надёжность и возможность технологического манёвра при сбоях.

Установка сервера NFS.

# apt-get update
# apt-get install nfs-server

Пакет nfs-server содержит: nfs-clients, nfs-server, nfs-utils

Запуск и управление сервером NFS.

Команды для управления сервером NFS приведены ниже.

# systemctl start|stop|restart|status|enable|is-enabled nfs

Проверка работы сервера NFS.

# rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl

Файл exports.

Файл конфигурации, exports, содержит синтаксис команд, для экспортированных общих папок сервера NFS. Содержимое exports, показано ниже, хранится в каталоге /etc.

/srv/public -ro,insecure,no_subtree_check,fsid=1 *
#/srv/share -rw,insecure,fsid=0,sec=krb5 *

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

Опции файла exports.

  • Параметры файла exports из коробки:
    • ro чтение
    • rw чтение и запись в этой папке
    • insecure использовать любые порты
    • no_subtree_check откл. проверку экспортированной папки
    • fsid=1 идентификатор файловой системы 1
    • fsid=0 идентификатор файловой системы 0
    • sec=krb5 механизм проверки авторизации с kerberos

Avahi-daemon

Обнаружение общих ресурсов и устройств обеспечивает служба avahi-daemon, включающая в себя zeroconf.

Протокол zeroconf, «прослушивает» сетевые устройства в локальной сети.

Установка и управление.

# apt-get update
# apt-get instal avahi
# systemctl start|enable|stop|restart|status avahi-daemon

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

Создать трансляцию протокола NFS в сети, можно с помощью файла nfs-service. Необходимо в созданный файл внести информацию, которая появится при поиске NFS папки.

Вид: настроить avahi nfs
Вид:настроить трансляцию avahi nfs.
<service-group>
  <name replace-wildcards="no">public</name>
  <service>
    <type>_nfs._tcp</type>
    <port>2049</port>
    <txt-record>path=/srv/public</txt-record>
    <txt-record>sec=sys</txt-record>
    <txt-record>options=hard,intr,nolock,ro</txt-record>
  </service>
</service-group>
# systemctl restart avahi-daemon

Проверяем «видимость» NFS сервера командой.

$ avahi-browse -tkrp _nfs._tcp

Клиент NFS.

Работу клиента можно демонстрировать как с консоли сервера так и с удалённой рабочей станции Linux.

Консольный клиент.

Проверять работу NFS будем на сервере, где работает демон NFS — т.к установлен NFS клиент. Создадим папку на сервере /home/nfs, и с помощью утилиты mount монтируем её. Этими действиями мы «покажем» серверу NFS, куда надо экспортировать данные. Для наглядности поместим в экспортируемый каталог файл test.

Полностью команда mount для nfs выглядит: mount -t nfs.

# mkdir /home/nfs    
# touch /srv/public/test  
# mount test:/srv/public /home/nfs  
# df -h   
# lin-nfs:/srv/public ... /home/nfs
Проверка работы NFS клиента
Вид: проверка работы клиента NFS.

Всё работает, но у нас ещё имеется закомментированная строка в файле exports. Прежде чем использовать её необходимо настроить на домене, обслуживающий NFS сервер, Kerberos авторизацию. Пока, без Kerberos, ограничимся классической схемой безопасности в UNIX системах, для разделения прав доступа к NFS ресурсам. Поэтому оставим всё, как есть, но в дальнейшем создадим группы для пользователей, разграничив их права на каждую папку NFS.

Графический клиент.

На рабочей станции необходимо установить клиент NFS, по умолчанию установлен, проверяем с помощью Synaptic.

Вид: менеджера пакетов Synaptic и nfs-clients.

Synaptic — графический менеджер пакетов.

Монтируем NFS папку командой mount, в локальную папку пользователя /home/user/nfs.

# mount lin-nfs:/srv/public /home/user/nfs
# df -h
...
lin-ftp:/srv/public .../home/mms/nfs

Дерево папок менеджера Dolphin.

Вид: nfs папка в дереве менеджера Dolphin.

На рабочей станции должен быть запущен avahi.

Вид: Synaptic установить avahi.
Вид: Synaptic, установить avahi.

Автомонтирование NFS папки.

Подключить папку NFS, при запуске компьютера, можно несколькими перечисленными ниже способами:

1. Создать скрипт, имя map, поместить его в папку /usr/local/bin, назначить cron задачу выполняемую при включении устройства.

#!/bin/bash
mount lin-nfs:/sev/public /home/user/nfs
# crontab -l
#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day... (0-6 with 0=Sunday).
#|      |       |       |       |       commands

@reboot                                   map

2. Сделать запись в таблице разделов /etc/fstab о монтируемой NFS системе. Здесь может случится, следующее, fstab является системным и поэтому любая неточность может привести к краху. Пример для монтирования NFS папки через fstab показан ниже.

10.0.2.36:/srv/public /home/user/nfs   nfs    auto  0  0

3.Вывести на рабочий стол кнопку монтирования общего NFS ресурса. Может быть полезна если сервер NFS временно не доступен. Требуется скрипт map, смотри №1. Графическими средствами Альт Рабочая станция созидать ссылку на приложение. Для команды mount необходимы права администратора, воспользуемся gksu.

Вид: установить программу gksu.
Вид: установить программу gksu.

gksu — утилита для запуска программ с правами su и sudo в графической среде Linux

Вид: добавить кнопку на рабочий стол.
Вид: создание кнопки.
Вид: настроить имя и графику кнопки.
Вид: имя и оформление кнопки.
Конфигурация кнопки для подключения NFS папки.
Вид: конфигурация NFS кнопки.

4. Использовать, привычный для Windows, оконный менеджер для подключения к NFS, создав в дереве менеджера «Точку входа». Нажимаем F6, пишем путь к общей папке NFS nfs://lin-nfs/srv

Dolphin — файловый менеджер для работы в Linux.

Вид: подключить папку NFS с помощью Dolphin.
Вид: подключение обшей папки NFS используя Dolphin.

5.Или, по мотивам рассказа про avahi. С помощью Dolphin создать поиск общих ресурсов в сети, как показано ниже.

Вид:монтирование папки NFS с zenconf.
Вид:монтирование папки NFS используя avahi.

6.autofs — программа контроля времени использования общего каталога. Задача autofs контролировать время простоя общего ресурса, размонтируя его, ожидая новых обращений. Экономит полосу пропускания обеспечивая высокую производительность по сравнению с fstab. Протокол autofs контролирует работу службы automount при старте системы.

Установки, управление и контроль autofs приводится ниже.

# apt-get update 
# apt-get install autofs
# systemctl start autofs
# systemctl enable autofs
# systemctl status autofs

После установки autofs в каталоге /etc создаются файлы:

  • auto.avahi — обозреватель сетевых служб
  • auto.master — файл конфигурации для монтирования
  • autofs.smb — монтирование smb каталогов
  • auto.tab — таблица добавляемых устройств
  • auto.conf — служебный файл, не трогаем

Когда autofs стартует, он «читает» запись в auto.master, находит точки монтирования и запускает демон automount с параметрами.

Откроем файл auto.master и добавим строку.

# vim /etc/auto.master
   ...
  /mnt/nfs        /etc/auto.nfs -t 60

t- время ожидания бездействия в сек.

Создаём в каталоге /etc файл auto.nfs

# touch /etc/auto.nfs

Записываем в файл auto.nfs информацию и перегружаем autofs.

# vim /etc/auto.nfs
   /mnt/nfs -fstype=nfs 10.0.2.36:/srv/public
# systemctl restart autofs

При старте в /mnt инициируются каталоги указанные в auto.master.

# ls -l /mnt
...                                                                                                                                                                     
drwxr-xr-x 2 ... auto
drwxr-xr-x 2 ... net
drwxr-xr-x 2 ... nfs

Таким образом служба autofs берёт под «контроль» время работы общего ресурса NFS сервера.

Инструментарий для NFS.

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

  • showmount — вывод информации о состоянии сервера NFS.
# showmount -a
All mount points on lin-nfs:
10.0.2.33:/srv/public
127.0.0.1:/srv/public
127.0.0.1:/srv/share
# showmount -d
Directories on lin-nfs:
/srv/public
/srv/share
# showmount -e
Export list for lin-nfs:
/srv/public *
  • nfsstat — вывод статистики работы NFS и RPC
  • основные ключи:
    • -v подробная информация
    • -r RPC статистика
    • -n NFS статистика
    • -l печатает статистику в формате списка
  • exportfs — выводит таблицу экспорта каталогов для клиентов
    • -v подробная информация
    • -r реэкспортировать все каталоги после редактирования
    • -u отменить экспорт каталога пример /srv/public
    • -a отправляет полученные записи экспорта в ядро
  • automount — утилита управления точками монтирования autofs
    • Основные ключи:
      • -v подробная информация о монтировании
      • d режим отладки
      • -f вывод журнала работы на экран вместо syslog
      • -F принудительное размонтирование
      • -h справочная информация

Заключение

В статье был рассмотрен вариант установка NFS сервера из коробки. В качестве базового сервера использовался ALT Linux в минимальной конфигурации. После установки, сервер NFS, готов к эксплуатации в качестве хранилища общих папок и документов с правами доступа на чтение. Если требуется доступ с правами записи к папке /srv/share, и возникли трудности с Kerberos. Тогда можно скорректировать файл exports, как показано ниже. После чего необходимо выполнить реэкспорт каталогов сервера NFS.

Используя rw, проверить права доступа пользователей и групп к общей папке NFS.

/srv/public -rw,insecure,no_subtree_check,fsid=1 *
#/srv/share -rw,insecure,fsid=0,sec=krb5 *
# exportfs -r

В заключение отметим, сервер NFS не предназеачен для передачи больших обьёмов информации. Основная задача — организация обшего доступа к папкам и файлам предприятия в режиме реального времени. Для обмена большими трафиками информации служит FTP сервер.

Полезные ссылки.

Как установить и настроить FTP Linux.

Введение.

Сегодня сервер FTP становится обязательной частью любого офиса. Без его работы не обходится ни одна серьёзная компания. Узел на базе FTP входит в пятёрку основных серверов, составляющих ядро ИТ компании. Основная задача сервера FTP — передача больших файлов между пользователями. Ранние уже говорилось о Web сервере, сервере баз данных, портале, сервере NFS, сейчас поговорим о сервере FTP. Одним из популярных Linux серверов поддерживающих FTP протокол, является vsftpd сервер.

vsftpd — very Secure FTP Daemon -очень безопасный FTP-демон

vsftpd — very Secure FTP Daemon -очень безопасный FTP-демон

Сервер vsftpd распространяется под лицензией GPL — служит для обмена данными в каналах разной пропускной способности, позволяя:

  • изменять конфигурацию виртуальных IP-адресов
  • создавать виртуальных пользователей
  • работать автономно или как служба inetd
  • использовать гибкую конфигурацию
  • регулировать полосу пропускания
  • настраивать IP-адресс источника
  • поддержка IPv6
  • использовать SSL шифрование
  • выполнять управление в консольном или GUI режиме
  • Стенд:
    • ALT Linux сервер, имя lin-ftp; ip-10.0.2.36;

Подготовка vsftpd.

Прежде чем перейти к развёртыванию vsftpd сервера, как приложения, нам понадобится базовый сервер Linux минимальной конфигурации. Предполагаем, что FTP должен работать, как отдельный сервер, обслуживая только FTP соединения — повышается надёжность, безопасность, простота в обслуживании. Найти оборудование для выделенного FTP сервера несложно, если использовать облачную технологию Azure, Hyper-V, KVM…

Не используйте старое, на выброс, оборудование в качестве FTP сервера.

Установка vsftpd консольная.

После установки сервера Linux минимум необходимо:

  • выделить статический IP адрес для сервера
  • настроить DNS имя сервера, стендовое lin-ftp
  • скачать последние пакеты обновления сервера

Переходим к установке сервера FTP используя консоль.

# apt-get update
# apt-get install vsftpd

Редактируем файл конфигурации службы xinetd — управляет FTP процессом.

xinetd — the eXtended InterNET services Daemon — расширенная служба (демон) управления сетевыми соединениями.

# vim /etc/xinetd.d/vsftpd
# default: off 
# description: The vsftpd FTP server. 
service ftp 
{ 
         disable     = no 
         socket_type = stream 
         protocol    = tcp 
         wait        = no 
         user        = root 
         nice        = 10 
         rlimit_as   = 200M 
         server      = /usr/sbin/vsftpd 
#        server_args =
         only_from   = 0/0 
}

Перезапуск службы xinetd — работает автоматически, но всё же поможем ей в ручную.

# systemctl restart xinetd

В дереве каталогов /etc создаётся папка vsftpd, с файлами:

  • конфигурации
  • предупреждений
  • каталогом профилей для пользователей FTP
Вид: папка сервера vsftpd
Вид: каталог vsftpd

Файл предупреждений содержит строку сообщения — появляется при перегрузке сервера FTP.

Вид: баннер предупреждения сервера vsftpd
Вид: баннер предупреждения.

Остаётся проверить работу сервера FTP. Отметим толко, что установка из «коробки«, допускает подключение пользователя anonymous для чтения каталога FTP. Это означает — любой пользователь, зная имя или IP адрес сервера FTP может просматривать его каталог.

Для проверки работы, с помощью mcedit редактора, создадим тестовый файл test-ftp и скопируем его в каталог /srv/public — просматривает служба сервера FTP.

mc — GNU Midnight Commander — файловый менеджер

С помощью mc создадим сессию FTP и убедимся, что всё работает.

Вид: режим FTP соединения c сервером из mc консоли.
Вид: режим FTP соединения.
Вид:запись адреса vsftpd сервера.
Вид:адрес FTP сервера.
Вид: подключение к ftp серверу.
Вид: подключение к FTP серверу.

Эти же действия можно сделать используя консольный FTP клиент, предварительно установив его.

# apt-get update
apt-get install ftp

Подключаемся к серверу FTP с помощью клиента FTP.

# ftp lin-ftp
Connected to lin-ftp (10.0.2.15).
220 (vsFTPd 3.0.3)
Name (localhost:user): anonymous
331 Please specify the password.
Password: anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (10.0.2.15,202,225).
150 Here comes the directory listing.
-rw-r--r--    1 ftp      ftp             0 Dec 31 00:00 test-ftp
226 Directory send OK.
ftp> exit

Проверьте соединение с lin-ftp из рабочей станции, используя любой клиент FTP или браузер набрав адрес ftp://ctu-lin.

Установка vsftpd графическая.

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

Регистрируемся в ЦУС сервера FTP, как показано ниже и переходим в секцию настроек FTP.

ЦУС — вэб интерфейс центра управления системой.

Вид: регистрация в ЦУС ALT Linux.
Вид: адрес ЦУС FTP сервера.
Вид: продолжение регистрация в ЦУС  ALT Linux
Вид: регистрация в ЦУС FTP сервера.

Устанавливаем уровень, режим эксперта, в настройках ЦУС.

Вид: режим эксперта настроек ЦУС для отображения сервера vsftpd.
Вид: режим эксперта настроек ЦУС сервера FTP.

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

Вид; окно настроек vsftpd сервера ALT Linux.
Вид; окно настроек FTP сервера.

Если флажок установлен «Разрешить закачку файлов» в каталоге /srv/public создаётся папка incoming

Заключение.

Закончив установку базового сервера минимальной конфигурации и сервера FTP переходим к тонким настройкам. Прежде всего необходимо определить политику доступа к FTP и нагрузку. Пользовательский доступ зависит от регламента использования FTP в организации. Нагрузка определяется скоростью ЦПУ, размером ОЗУ и дискового пространства сервера FTP. Здесь можно предложить следующий вариант. Системный раздел располагается на отдельном диске ~ 10Гб. Пространство под FTP каталог рассчитывается из максимального размера «прокачиваемой» информации.

Дополнительный диск монтируется к каталогу хранилища сервера FTP с использованием сценария mapftp. Можно использовать файл /etc/fstab для подключения диска, но лишний раз лучше не трогать системные файлы.

#!/bin/bash
# файл mapftp
# монтировать диск ftp к серверу lin-ftp
mount lin-ftp /srv/public 

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

Файл mapftp должен находится в каталоге /usr/local/bin.

Для автозагрузки сценария mapftp воспользуемся командой crontab.

# crontab -e
#| minute (0-59),
#|	hour (0-23),
#|	|	day of the month (1-31),
#|	|	|	month of the year (1-12),
#|	|	|	|	day of the week (0-6 with 0=Sunday).
#|	|	|	|	|	commands
@reboot                                 mapftp

Полезные ссылки.

Официальный сайт
Русифицированный сайт
Файл конфигурации vsftpd.conf
Файл конфигурации vsftpd.conf5