Журнал LinuxFormat - перейти на главную

LXF117:network

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: : '''Сети''' Свяжем ваши Linux-ПК, и пускай они вас обслуживают ==''NFS & Samba'': Делим диски== {{Цикл/Сеть}} : '''Част...)
 
Строка 101: Строка 101:
 
''SMB'' (Server Message Block) – протокол, используемый Windows для совместного доступа к файлам и принтерам через Интернет. ''CIFS'' (Common Internet File System) представляет собой обновление для ''SMB'', добавившее ряд функций и поддержку больших файлов. ''Samba'' – свободная реализация протоколов ''SMB/CIFS'', применяемая на различных Unix-подобных системах.  
 
''SMB'' (Server Message Block) – протокол, используемый Windows для совместного доступа к файлам и принтерам через Интернет. ''CIFS'' (Common Internet File System) представляет собой обновление для ''SMB'', добавившее ряд функций и поддержку больших файлов. ''Samba'' – свободная реализация протоколов ''SMB/CIFS'', применяемая на различных Unix-подобных системах.  
  
''Samba'' может предоставлять общий доступ к файлам и принтерам таким образом, что они будут «видны» в системах Windows. Она также предоставляет средства для доступа к файлам ''SMB/CIFS'' с других компьютеров, будь на них запущена ''Samba'' или Windows. Если все, что надо сделать – это подмонтировать каталог Windows-компьютера, понадобится только пакет клиента: ядро Linux содержит драйверы файловой системы, и нужно лишь
+
''Samba'' может предоставлять общий доступ к файлам и принтерам таким образом, что они будут «видны» в системах Windows. Она также предоставляет средства для доступа к файлам ''SMB/CIFS'' с других компьютеров, будь на них запущена ''Samba'' или Windows. Если все, что надо сделать – это подмонтировать каталог Windows-компьютера, понадобится только пакет клиента: ядро Linux содержит драйверы файловой системы, и нужно лишь установить команды помощника, используемые для монтирования файловой системы, и т.д. Кстати, они обычно присутствуют по умолчанию. Большинство настольных компьютеров также имеют средства сканирования файлов ''SMB/CIFS'' по локальной сети. Например, введите '''smb:/''' в в адресной строке ''Konqueror'' или выберите '''Places > Network''' [Переходы > Сеть] из меню Gnome.
 +
 
 +
Если вы хотите открыть доступ по протоколу ''SMB'' другим компьютерам, воспользуйтесь Samba для экспорта ресурсов; вам, скорее всего, понадобиться установить этот сервер. В большинстве дистрибутивов ''Samba'' имеется в стандартных репозиториях, но обычно не добавляется по умолчанию. После установки необходима настройка. Основной файл конфигурации '''/etc/samba/smb.conf''' насыщен комментариями, но довольно сложен. К счастью, ''Samba'' включает web-альтернативу под названием ''Swat'' (Samba Web Administration Tool); в одних дистрибутивах она включена в пакет ''Samba'', а в других содержится отдельно.
 +
 
 +
''Swat'' вызывается открытием в браузере адреса http://ваш_хост:901. Это может привести к ошибке соединения, потому что в установке по умолчанию доступ к ''Swat'' отключен (зачем вам программы, позволяющие удаленным пользователям менять настройки без вашего разрешения?). В большинстве систем выручит ''xinetd''; чтобы активировать ''Swat'', отредактируйте '''/etc/xinetd.d/swat''', который сперва выглядит примерно так:
 +
 
 +
service swat
 +
{
 +
port = 901
 +
socket_type = stream
 +
wait = no
 +
only_from = localhost
 +
user = root
 +
server = /usr/sbin/swat
 +
log_on_failure += USERID
 +
disable = yes
 +
}
 +
 
 +
Измените параметр '''disable''' на '''no''', и, если вы хотите открыть доступ с другого компьютера в вашей локальной сети, установите в '''only_from''' его IP-адрес, или разрешите диапазон с '''only_from = 192.168.1.0'''. Затем либо перезапустите ''xinetd'' с помощью менеджера сервисов вашего дистрибутива, либо заставьте его заново считать файлы конфигурации командой
 +
 
 +
killall -HUP xinetd
 +
 
 +
Некоторые дистрибутивы используют другой ''inetd'': например, в Ubuntu ''Swat'' по умолчанию включен, но надо перезагрузить '''/etc/init.d/openbsd-inetd'''. Затем можно подключиться к http://ваш_хост:901 или http://localhost:901, и вам будет предложено войти в систему. Укажите имя и пароль для пользователя, имеющего права на запись в '''/etc/samba.smb.conf''' – обычно это root. Если у вас Ubuntu, или вы хотите разрешить делать это другим пользователям, измените владельца '''/etc/samba''' и файлов в нём. Другой вариант – задать пароль учетной записи суперпользователя, выполнив
 +
 
 +
sudo passwd
 +
 
 +
===Использование ''Swat''===
 +
 
 +
Находясь в ''Swat'', перейдите в раздел '''Globals''' и установите название рабочей группы в соответствии с вашими Windows-машинами. Затем выберите модель безопасности – обычно это либо '''user''' [пользователь], либо '''share''' [ресурс]. Если пользователи на всех компьютерах одни и те же, лучший выбор – '''user''', так как тогда они смогут везде использовать свои стандартные реквизиты. Контроль доступа на уровне ресурса пригодится, если у вас нет одинаковых пользователей или вы хотите предоставить беспарольный доступ к, например, каталогам, экспортируемым только для чтения, или принтерам. Кстати, беспарольные (гостевые) учетные записи возможны и в модели безопасности '''user'''. Остальные настройки можно оставить по умолчанию.
 +
 
 +
Теперь займемся разделом '''Shares''', где перечисляются каталоги, предоставляемые в общий доступ, и указывается, каким образом они используются. Создайте ваш первый ресурс, задав ему имя и нажав на кнопку '''Create Share'''. Откроется страница '''Share Parameters'''; укажите здесь путь к каталогу, а также ряд других параметров по предоставлению доступа. '''Read list''' и '''write list''' – это списки пользователей, которым предоставляются права только на чтение либо на чтение/запись, независимо от настроек по умолчанию, а '''hosts allow''' и '''hosts deny '''отображают списки компьютеров, которые могут или не могут подключаться к вам. Если эти поля оставлены пустыми, доступ разрешен всем машинам. Если вы хотите включить в любое из списочных полей более одного наименования, разделите их запятыми.
 +
 
 +
Параметр '''read only''' [Только для чтения] не требует пояснений, в отличие от '''Guest OK''' [Гость OK]. Этот последний разрешает соединения без указания имени пользователя или пароля. Такие посетители имеют права гостевой учетной записи, установленные в разделе глобальных настроек – по умолчанию это обычно '''nobody'''.
 +
 
 +
Наконец, установите '''available''' [Доступно] в '''Да''' и нажмите на кнопку '''Commit Changes'''. Перейдите в ваш обозреватель сети, как описано выше: вы должны увидеть эту машину среди перечисленных в вашей рабочей группе.
 +
 
 +
 
 +
Если в Swat установлено Гость
 +
OK, вы сможете открыть общедоступный ресурс, щелкнув по не-
 +
му. Однако если вы отключили гостевой вход (как это сделано по
 +
умолчанию), вам предложат ввести имя пользователя и пароль,
 +
и вы можете с удивлением обнаружить, что ваша учетная запись
 +
Linux тут не годится. Samba использует собственные реквизиты,
 +
поэтому вам нужно добавить имя пользователя и пароль, набрав
 +
под суперпользователем smbpasswd -a имя_пользователя.
 +
    Это аналогично системной команде passwrd: пароль запра-
 +
шивается дважды, затем добавляется пользователь с этим паро-
 +
лем. Чтобы изменить пароль для существующего пользователя
 +
Samba, уберите -а. (Имя пользователя должно быть существую-
 +
щим именем пользователя Linux).
 +
    Что делать, если у ваших пользователей разные имена
 +
на Windows- и Linux-машинах? Допустим, Джон Смит имеет про-
 +
филь John Smith на Windows, а в Linux его имя пользователя
 +
jsmith. На глобальной странице Swat вы увидите опцию username
 +
map [карта имен пользователей]; здесь можно указать файл, со-
 +
      карта                      ];
 +
                                    ;
 +
держащий соответствия между одним или более именем Samba

Версия 16:17, 17 февраля 2010

Сети Свяжем ваши Linux-ПК, и пускай они вас обслуживают

Содержание

NFS & Samba: Делим диски

Часть 4: Нужный файл всегда почему-то на другом компьютере? Мало места на нетбуке? Нейл Ботвик научит вас совместному использованию файлов.

За последние три месяца мы рассказали о web-, медиа- и почтовых серверах, которые объединяет одна черта: они предназначены для обслуживания специфиче­cкого контента (писем, web-страниц и т.п.). Поэтому сегодня мы рассмотрим кое-что другое – способ сделать любой файл доступным на других компьютерах в вашей сети. Здесь речь пойдет о сетевых файловых системах, или об «общем доступе» (термин, более привычный пользователям Windows). Существует несколько причин для доступа к вашим директориям по сети, в том числе:

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

NFS

Сетевая файловая система (NFS) – стандарт Unix и самый простой выбор для сети, основанной не на Windows. Хотя NFS-клиент существует и для ОС от Microsoft, в смешанной сети, наверное, проще использовать Samba. NFS сейчас поставляется в двух вариантах – NFSv3 и NFSv4, они существенно различаются по функ­ционалу и конфигурации, и мы поочередно рассмотрим каждый из них.

NFSv3, вероятно, настроить проще, хотя это может быть следст­вием привычки тех из нас, кто на ней вырос, что, несомненно, объясняет ее долгожительство. Файловая система реализована в ядре Linux, и есть пакет пользовательских инструментов под названием NFS-Utils, включенный по умолчанию во многие дистрибутивы, так что вам, скорее всего, ничего не потребуется устанавливать дополнительно. Экспорт файловой системы с сервера осуществляется с помощью программы exportfs (запускаемой при загрузке), а файл ее конфигурации находится в /etc/exports. Для его редактирования и запуска exportfs вам понадобятся права суперпользователя, поэтому тут возможны два варианта: либо перейти на root, либо предварять каждую команду sudo. Пользователи Ubuntu, которым лень набирать sudo, могут зайти как суперпользователь с помощью

sudo bash

Закончив, нажмите Ctrl+D для выхода из root-оболочки. Запуск exportfs без аргументов выведет список текущих экспортируемых директорий, в котором пока ничего не отображено, поэтому откройте /etc/exports в вашем любимом редакторе и добавьте строку

/home/myuser/music 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)

Каждый экспорт определяется одной строкой, содержащей три раздела. Во-первых, это каталог для экспорта, во-вторых, IP-адреса, которым разрешается его монтировать; это, как правило, локальная сеть, но можно ввести большие ограничения для определенных экспортов. IP задаются в форме адреса / сетевой маски, как показано выше, или как адрес CIDR, например, 192.168.1.0/24. Оба эти адреса из диапазона 192.168.1.0 до 192.168.1.255. Вместо IP-адресов можно использовать имена хостов, но это имеет смысл только при экспорте каталога для использования на одном или двух компьютерах.

За диапазоном адресов в скобках следует ряд опций, описанных во врезке «Опции NFS» на соседней странице. Пробела между списком адресов и опциями быть не должно. Можно перечислить более одного диапазона адресов, каждый со своим набором опций. Так,

/home/myuser/music agrajag(rw) 192.168.1.0/255.255.255.0(ro)

дает одному компьютеру права на чтение/запись, а остальная часть сети может монтировать каталог только для чтения. После редактирования файла снова запустите exportfs. Если вы ожидали увидеть свой экспорт – извините: сначала вам придется запустить exportfs -r

Эта команда синхронизирует список экспортируемых каталогов с /etc/exports, добавляя новые позиции и убирая те, что вы удалили (или превратили в комментарий через #).

Экспорт каталога, понятно, только половина задачи: ведь надо еще как-то подключить его на других компьютерах сети. Это делается аналогично монтированию локальной файловой системы: вручную с помощью команды mount или автоматиче­cки из /etc/fstab.

mount -t nfs hostname:/home/myuser/music /mnt/music

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

hostname:/home/myuser/music /mnt/music nfs ro,soft 0 0

NFS 4

NFSv4 во многом работает по-другому. Она всегда использует один и тот же порт TCP, что упрощает контроль доступа через брандмауэр. Отличаются также и ее настройки в /etc/exports. В NFSv4 вы экс­портируете некую главную директорию, а ваши разделяемые ресурсы берутся из вложенных в нее каталогов. Главная директория не должна быть /, поскольку это небезопасный способ. Правильнее будет использовать /exports: так вы экспортируете /exports с ограниченным доступом, а затем /exports/user/ или /exports/music с более либеральными настройками. Это ограничивает вашу NFS-деятельность каталогом /exports и защищает остальную систему от сетевых пользователей. А что делать, если каталоги, которые вы хотите использовать, находятся не в /exports? В этом случае воспользуйтесь в mount атрибутом связывания (bind):

mkdir /exports/user
mount --bind /home/myuser /exports/user

чтобы содержимое /home/myuser стало доступно в /export/user. Это можно автоматизировать в /etc/fstab при помощи

/home/myuser /exports/user auto bind 0 0

Повторите это для любого другого экспорта, а затем задайте /etc/exportfs следующим образом:

/exports 192.168.1.0/24(rw,fsid=root,insecure,no_subtree_check,async)
/exports/user 192.168.1.0/24(ro,nohide,insecure,no_subtree_check,async)
/exports/stuff 192.168.1.0/24(rw,nohide,no_root_squash,insecure,no_subtree_check,async)

Первая строка устанавливает корневой каталог – обратите внимание на опцию fsid =root. Другие строки экспортируют индивидуальные каталоги с различными опциями. Небезопасный (insecure) способ всего лишь означает, что запросы могут исходить от любого сетевого порта. Его противоположность, secure (выбор по умолчанию) требует, чтобы все запросы приходили с порта под номером меньше 1024; на большинстве систем такие можно открыть, лишь будучи суперпользователем. Если вы монтируете ресурсы NFSv4 исключительно от имени root или через /etc/fstab, параметр insecure можно удалить.

Экспортируемые каталоги задаются относительно их общего корня; так, для /exports/stuff следует использовать mount -t nfs4 hostname:/stuff /mount/point -o options

Опции NFS

Man-страницы exportfs и NFS охватывают все опции, используемые при экспорте и монтировании. Ниже приведены ключевые настройки.

Опции экспорта

  • rw Позволяет файловой системе монтироваться для чтения/записи.
  • ro Запрещает клиентам производить изменения в файловой системе (по умолчанию).
  • sync Все запросы на запись должны сразу же выполняться (более медленный способ, но и более надежный).
  • async Запросы на запись ставятся в очередь для последующей обработки (быстрее, но больше вероятность потери данных в случае сбоя).
  • crossmnt Разрешает доступ к другим файловым системам, смонтированным внутри экс­портируемого каталога. См. также nohide.
  • no_subtree_check Запрещает некоторые проверки, поскольку они создают проблемы; слегка влияет на безопасность, но обычно это хороший выбор.
  • no_root_squash Дает суперпользователю на компьютере клиента привилегии суперпользователя на экспортированной файловой системе.
  • root_squash Удаленные суперпользователи имеют другой UID; по умолчанию, как правило, nobody.
  • anonuid Указывает UID, присвоенный в root_squash.

Опции монтирования

Они указываются в четвертом поле строки fstab.

  • hard Если время NFS-запроса истекает, клиент бесконечно повторяет попытки, пока не добьется успеха (по умолчанию).
  • soft После количе­cтва попыток, указан­ного опцией retrans, клиент сообщает об ошибке.
  • rsize Максимальный размер, в байтах, любого запроса на чтение. Кратен 1024, от 1024 до 1048576. Если сервер или клиент не могут оперировать с указанным размером, устанавливается максимальный размер, поддерживаемый обоими. Обычно это 131072.
  • wsize То же, что и rsize, но для запросов на запись.
  • fg Если попытка монтирования не удалась, операция завершается с ошибкой (по умолчанию).
  • bg Если попытка монтирования не удалась, операция считается успешной, а попытки продолжаются в фоновом режиме. При этом удаленные директории рассматриваются как «смонтированные», даже если сеть еще не подключена, и реально монтируются, как только установится связь.

Танцуем с Samba

SMB (Server Message Block) – протокол, используемый Windows для совместного доступа к файлам и принтерам через Интернет. CIFS (Common Internet File System) представляет собой обновление для SMB, добавившее ряд функций и поддержку больших файлов. Samba – свободная реализация протоколов SMB/CIFS, применяемая на различных Unix-подобных системах.

Samba может предоставлять общий доступ к файлам и принтерам таким образом, что они будут «видны» в системах Windows. Она также предоставляет средства для доступа к файлам SMB/CIFS с других компьютеров, будь на них запущена Samba или Windows. Если все, что надо сделать – это подмонтировать каталог Windows-компьютера, понадобится только пакет клиента: ядро Linux содержит драйверы файловой системы, и нужно лишь установить команды помощника, используемые для монтирования файловой системы, и т.д. Кстати, они обычно присутствуют по умолчанию. Большинство настольных компьютеров также имеют средства сканирования файлов SMB/CIFS по локальной сети. Например, введите smb:/ в в адресной строке Konqueror или выберите Places > Network [Переходы > Сеть] из меню Gnome.

Если вы хотите открыть доступ по протоколу SMB другим компьютерам, воспользуйтесь Samba для экспорта ресурсов; вам, скорее всего, понадобиться установить этот сервер. В большинстве дистрибутивов Samba имеется в стандартных репозиториях, но обычно не добавляется по умолчанию. После установки необходима настройка. Основной файл конфигурации /etc/samba/smb.conf насыщен комментариями, но довольно сложен. К счастью, Samba включает web-альтернативу под названием Swat (Samba Web Administration Tool); в одних дистрибутивах она включена в пакет Samba, а в других содержится отдельно.

Swat вызывается открытием в браузере адреса http://ваш_хост:901. Это может привести к ошибке соединения, потому что в установке по умолчанию доступ к Swat отключен (зачем вам программы, позволяющие удаленным пользователям менять настройки без вашего разрешения?). В большинстве систем выручит xinetd; чтобы активировать Swat, отредактируйте /etc/xinetd.d/swat, который сперва выглядит примерно так:

service swat
{
port = 901
socket_type = stream
wait = no
only_from = localhost
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes
}

Измените параметр disable на no, и, если вы хотите открыть доступ с другого компьютера в вашей локальной сети, установите в only_from его IP-адрес, или разрешите диапазон с only_from = 192.168.1.0. Затем либо перезапустите xinetd с помощью менеджера сервисов вашего дистрибутива, либо заставьте его заново считать файлы конфигурации командой

killall -HUP xinetd

Некоторые дистрибутивы используют другой inetd: например, в Ubuntu Swat по умолчанию включен, но надо перезагрузить /etc/init.d/openbsd-inetd. Затем можно подключиться к http://ваш_хост:901 или http://localhost:901, и вам будет предложено войти в систему. Укажите имя и пароль для пользователя, имеющего права на запись в /etc/samba.smb.conf – обычно это root. Если у вас Ubuntu, или вы хотите разрешить делать это другим пользователям, измените владельца /etc/samba и файлов в нём. Другой вариант – задать пароль учетной записи суперпользователя, выполнив

sudo passwd

Использование Swat

Находясь в Swat, перейдите в раздел Globals и установите название рабочей группы в соответствии с вашими Windows-машинами. Затем выберите модель безопасности – обычно это либо user [пользователь], либо share [ресурс]. Если пользователи на всех компьютерах одни и те же, лучший выбор – user, так как тогда они смогут везде использовать свои стандартные реквизиты. Контроль доступа на уровне ресурса пригодится, если у вас нет одинаковых пользователей или вы хотите предоставить беспарольный доступ к, например, каталогам, экспортируемым только для чтения, или принтерам. Кстати, беспарольные (гостевые) учетные записи возможны и в модели безопасности user. Остальные настройки можно оставить по умолчанию.

Теперь займемся разделом Shares, где перечисляются каталоги, предоставляемые в общий доступ, и указывается, каким образом они используются. Создайте ваш первый ресурс, задав ему имя и нажав на кнопку Create Share. Откроется страница Share Parameters; укажите здесь путь к каталогу, а также ряд других параметров по предоставлению доступа. Read list и write list – это списки пользователей, которым предоставляются права только на чтение либо на чтение/запись, независимо от настроек по умолчанию, а hosts allow и hosts deny отображают списки компьютеров, которые могут или не могут подключаться к вам. Если эти поля оставлены пустыми, доступ разрешен всем машинам. Если вы хотите включить в любое из списочных полей более одного наименования, разделите их запятыми.

Параметр read only [Только для чтения] не требует пояснений, в отличие от Guest OK [Гость OK]. Этот последний разрешает соединения без указания имени пользователя или пароля. Такие посетители имеют права гостевой учетной записи, установленные в разделе глобальных настроек – по умолчанию это обычно nobody.

Наконец, установите available [Доступно] в Да и нажмите на кнопку Commit Changes. Перейдите в ваш обозреватель сети, как описано выше: вы должны увидеть эту машину среди перечисленных в вашей рабочей группе.


Если в Swat установлено Гость OK, вы сможете открыть общедоступный ресурс, щелкнув по не- му. Однако если вы отключили гостевой вход (как это сделано по умолчанию), вам предложат ввести имя пользователя и пароль, и вы можете с удивлением обнаружить, что ваша учетная запись Linux тут не годится. Samba использует собственные реквизиты, поэтому вам нужно добавить имя пользователя и пароль, набрав под суперпользователем smbpasswd -a имя_пользователя.

    Это аналогично системной команде passwrd: пароль запра-

шивается дважды, затем добавляется пользователь с этим паро- лем. Чтобы изменить пароль для существующего пользователя Samba, уберите -а. (Имя пользователя должно быть существую- щим именем пользователя Linux).

    Что делать, если у ваших пользователей разные имена

на Windows- и Linux-машинах? Допустим, Джон Смит имеет про- филь John Smith на Windows, а в Linux его имя пользователя jsmith. На глобальной странице Swat вы увидите опцию username map [карта имен пользователей]; здесь можно указать файл, со-

      карта                       ];
                                   ;

держащий соответствия между одним или более именем Samba

Персональные инструменты
купить
подписаться
Яндекс.Метрика