Настройка Медиа Сервера На Роутере D-Link — DLNA и Samba
Приветствую, уважаемые читатели! О возможностях маршрутизаторов, оснащенных USB портом, мы уже рассказывали неоднократно. Вот и пришла очередь показать, как настроить Samba и DLNA серверы на роутерах фирмы D-Link. Поддержка данных технологий встроена в оболочку, поэтому никаких дополнительных прошивок с ними производить не понадобится.
Если вы знаете, что это такое, то ознакомьтесь со статьей, в которой я рассказываю про создание домашнего медиа сервера. Если коротко, то это хранилище мультимедиа файлов — фото, видео, музыки, — в которое можно зайти с любого подключенного к роутеру устройства (ноутбука, телефона, телевизора, ТВ приставки и так далее) и воспроизвести эти документы.
В случае с организацией медиа сервера на роутере D-Link, мы загружаем эти файлы на накопитель, который подсоединяется к USB, и с него ретранслируем их по локальной сети wifi.
Samba сервер D-Link
При создании Samba сервера на роутере D-Link для начала необходимо
- Подключить USB накопитель
- Создать пользователя
Для создания пользователя переходим в раздел «Система — Пользователи USB». Здесь жмем на кнопку «Добавить»
Задаем для него имя, пароль и права для доступа — если нужно, чтобы он не мог записать данные, а только получить или скопировать информацию, то ставим флажок на «Только чтение»
После этого можно пройти в раздел «USB накопитель — Samba». Здесь активируем сервер галочкой «Включить» и при желании даем возможность анонимного подключения к нему.
В поле «Рабочая группа» вводим название своей локальной сети — по умолчанию она всегда называется «WORKGROUP». В качестве краткого описания и NetBIOS задаем имя для нашего сервера — можно оставить то, что уже есть — «D-LINK SERVER» и «D-Link»
Далее жмем «Применить» и потом на красную ссылку «Сохранить»
После этого сервер Samba D-Link отобразится в списке устройств, которые входят в локальную сеть данного роутера.
Маршрутизатор D-Link как DLNA сервер
Теперь давайте превратим роутер D-Link в DLNA-сервер. Отличие от предыдущего способа в том, что этот сервер будет работать только при использовании программ, поддерживающих DLNA. Если говорить про встроенные средства Windows, то это Windows Media Center.
Настройки находятся в том же разделе «USB накопитель», в графе «DLNA». Здесь ставим галочку на «Включено» и задаем имя DLNA сервера, которое будет отображаться на устройствах, на которых мы будем просматривать видосы с флешки. По умолчанию он называется «D-Link DLNA Server».
Далее нажимаем на кнопку «Добавить» в параграфе «Медиа-директории». Добавится поле с кнопкой выбора папки с флешки — нажимаем на нее
И выбираем ту папку с накопителя, которую хотим сделать доступной для просмотра по DLNA и куда мы будем заливать свои файлы, после чего нажимаем «Open»
Теперь на странице настройки DLNA сервера отобразится путь к этой директории. Остается только выбрать тип файлов для ретрансляции:
Соответственно, если мы оставим «Видео», которое установлено по умолчанию, то все остальные типы файлов из данной папки будут игнорироваться и по DLNA не передаваться.
После этого жмем кнопку «Применить»
И сохраняем изменения, нажав на появившуюся красную кнопку в верхнем правом углу
Теперь можно подключиться к нашему DLNA серверу D-Link с любого девайса, например с телефона, установив на него предварительно приложение для воспроизведения файлов по протоколу DLNA.
Либо через проводник Windows — оба сервера будут отображаться в списке сетевых устройств
Что такое сервер Samba и как им пользоваться?
Что же такое Samba?
Samba является файловым TCP/IP сервером и сервером печати для клиентов Microsoft Windows. Она поддерживает любые реализации клиентов SMB/CIFS. Огромным плюсом Samba является то, что она позволяет использовать смешанные сети из Windows и Linux компьютеров вместе, не требуя при этом отдельного сервера Windows. Samba включает в себя поддержку Active Directory, Unicode, новые проверки подлинности и искажения имен файлов в системах, поддержка печати, доверительных отношений, LDAP интеграция и загружаемые модули RPC.
Какие протоколы поддерживаются?
Сейчас Samba использует TCP/IP. Она реализует API NetBIOS поверх TCP/IP, который более известен как «NBT». Частым является вопрос, почему в Samba не работает NetBEUI? Ответ, в настоящее время нет. NetBEUI является устаревшим протоколом от Microsoft, и не является родным протоколом Linux.
Из старой переписки Кристофер Hertel из Samba Team:
«NetBEUI соответствует NetBIOS API для своего протокола (который очень близок к формату NetBIOS). Чтобы сделать работу по NetBEUI на Linux, потребуется создать слой NetBEUI. Это не слишком сложно, но потом придется написать smbclient для работы с интерфейсом NetBEUI. Сейчас в Samba реализовано TCP/ UDP/IP «.
Установка Samba
«Части кода должны работать вместе как часы. Помните что код написанный вами, вам же потом и разбирать. Должны быть веские причины, если вы не можете заставить части кода снова работать слажено. Старайтесь не использовать молоток в своей работе.”
IBM инструкция для разработчиков, 1975
Весомый аргумент в установке Samba на свой компьютер, это ответить на некоторые вопросы, которые вероятно возникают в вашей голове: Какие настройки сети были использованы во время сборки Samba, которые могут повлиять на ее работу? Где она будет искать свои файлы конфигурации? Были ли внесены какие-либо изменения в исходный код вашим поставщиком Linux? Вы получите ответы на эти вопросы.
Сначала мы должны скачать последний архив Samba с исходными кодами:
$ curl -LO http://samba.org/samba/ftp/stable/samba-3.3.3.tar.gz
Проверка
В большинстве случаев нужно проверить архив с исходными файлами на наличие GPG signed key. Однако, в случае с Samba, все немного иначе (Это, по сути, моя вина. Команда Samba предоставляет как gzip так и bzip2 версии своего программного обеспечения, каждая из которых имеет свой уникальный GPG ключ. Давным, давно я предложил, что будет проще, если делать одну GPG подписанную версию архива, а не две GZIP или bzip2 версии. К сожалению, они приняли мои советы на этот счет, и теперь все менее стандартизировано, чем прежде):
$ gunzip samba-3.3.3.tar.gz $ curl -LO http://samba.org/samba/ftp/stable/samba-3.3.3.tar.asc $ gpg –keyserver-options auto-key-retrieve –verify samba-3.3.3.tar.asc
Распаковка
Распакуем исходные коды дистрибутива Samba и перейдем в директорию с распакованным архивом:
$ tar –no-same-owner –no-same-permissions -xvf samba-3.3.3.tar $ cd samba-3.3.3/source
Стоит отметить что директория с исходными файлами Samba содержит следующие полезные файлы и папки:
* WHATSNEW.txt — Изменения произошедшие в последней версии. Все важные документы и файлы находятся в. * docs/ — Документация Samba, включая старую и новую * examples/ — Примеры файлов конфигурации Samba * source/ — Текушие исходные коды
Кроме того вы обалдеете (извините за жаргон Прим. переводчика), когда узнаете что в архиве абсолютно бесплатно для вас находится полная версия книги Using Samba издательства O’Reilly (на английском языке :-p Прим. переводчика). Она находится в docs/htmldocs/using_samba/.
Если вам уже скучно, давайте быстро покончим с этим, выполните простую команду:
$ ./configure
А вот вариант для тех кто хочет понять что, куда и зачем собственно мы устанавливаем:
$ ./configure \ –prefix=/usr/local/samba-3.3.3 \ –with-configdir=/etc/samba \ –with-privatedir=/etc/samba/private \ –disable-cups \ –with-cifsmount $ make # make install
Примечание: при указании опций конфигурации необходимо прислушиваться к голосу здравого смысла. Ну например, указав -enable-cups=yes, вы можете попасть в затруднительное положение, если в системе не установлен CUPS.
Хоть в большинстве дистрибутивов Linux уже все и определено, не лишним будет убедиться что в вашей системе в файле /etc/services определены порты, которые использует Samba. Не удивляйтесь, если вы увидите неожиданные записи «137/tcp» и т. д.; IANA обычно включает в себя как TCP так и UDP записи, независимо от того, требует ли этого протокол.
netbios-ns 137/udp # NETBIOS Name Service netbios-dgm 138/udp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS Session Service microsoft-ds 445/tcp # Microsoft-DS
Для запуска Samba, просто запустите демонов вручную или с помощью стартовых скриптов:
# /usr/local/samba-3.3.3/sbin/smbd -D # /usr/local/samba-3.3.3/sbin/nmbd -D
Для остановки Samba не рекомендуется использовать команду SIGKILL (-9), используйте ее только в крайнем случае. Согласно документации Samba, “это может оставить область общей памяти в неустойчивом состоянии”. Давайте договоримся, что будем использовать:
# killall -15 smbd nmbd
Ну а если необходимо перегрузить Samba (для учета изменений в конфигурационных файлах), пошлите следующий SIGHUP сигнал:
# killall -HUP smbd nmbd
Если вы хотите упростить себе жизнь (что не всегда хорошая идея), вы можете создать старт/стоп сценарий:
#!/bin/sh # chkconfig: 2345 91 35 # description: Initialization script for Samba
# Make sure the configuration file exists [ -f /etc/samba/smb.conf ] || exit 1
samba_start() < echo "Starting SMB services" /usr/local/samba/sbin/smbd -D echo "Starting NMB services" /usr/local/samba/sbin/nmbd -D >
samba_stop() < echo -n "Stopping smbd"
kill -15 $( while [[ -f /usr/local/samba/var/locks/smbd.pid ]]; do echo -n .; sleep 1; done ; echo echo -n «Stopping nmbd» kill -15 $( while [[ -f /usr/local/samba/var/locks/nmbd.pid ]]; do echo -n .; sleep 1; done ; echo >
samba_reload() < echo "Re-reading Samba configuration files" kill -HUP $( >
# See how we were called case «$1» in ‘start’) samba_start ;; ‘stop’) samba_stop ;; ‘restart’) samba_stop sleep 1 samba_start ;; ‘reload’) samba_reload ;; *) echo «Usage: $0
;; esac
Настройка Samba
Настройка Samba довольно запутанный процесс, это сродни чтению книг на чужом языке. Надеемся, что следующий бит будет вами получен и достаточно быстро (Юмор видимо такой. Прим. переводчика), хотя и небезопасно (читай: None). То что мы сделаем идеально подходит для настройки быстрой передачи файлов с вашего компьютера с установленной Samba и обратно на него через интерфейс Windows , если вы не слишком озабочены дополнительными компьютерами в сети (например, домашней сети). По умолчанию, Samba не устанавливает никаких Файлов конфигурации. Итак, первое, что нам нужно сделать, это запустить наш любимый текстовый редактор (vim, pico и т.д.) и создать файл /etc/samba/smb.conf со следующим содержимым. Пока не беспокойтесь о содержимом.
Создание основы
Для упрощения работы с документом объявим некоторые настройки нашего сервера тсзт:
* IP адрес сервера: 192.168.1.1 * URI сервера: fluffygerbil.example.com
Естественно работать ничего не будет, если корректно не сделать базовые настройки. С рабочей станции той же подсети запустите следующие команды (в примере ниже используется приложение терминал в Mac OS X):
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=2.010 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.329 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=2.296 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=2.950 ms ^C — 192.168.1.1 ping statistics — 4 packets transmitted, 4 packets received, 0% packet loss
$ ping fluffygerbil.example.com
PING fluffygerbil.example.com (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=2.010 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.329 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=2.296 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=2.950 ms ^C — fluffygerbil.example.com ping statistics — 4 packets transmitted, 4 packets received, 0% packet loss
Если какая то из этих команд не дает положительного результата, то у вас большие проблемы (в первом примере проблемы с подключением к сети, во втором проблемы с DNS).
Наш пример конфигурации мы будем использовать по всему оставшемуся документу:
[global] guest account = smbguest netbios name = FLUFFYGERBIL security = share socket options = TCP_NODELAY IPTOS_LOWDELAY workgroup = WORKGROUP
[public] guest ok = yes guest only = yes path = /cifs/pub read only = no
[cdrom] fake oplocks = yes guest ok = yes guest only = yes path = /mnt/cdrom read only = yes
Далее, необходимо создать учетную запись гостя в самой системе. Хотя команд может быть несколько (зависят от системы), можно, как правило выполнить что-то подобное:
# groupadd smbguest # useradd -g smbguest -d /dev/null -s /bin/false smbguest
Подключение к Samba
Для подключения к нашему новому и сияющему серверу Samba, мы используем два клиента: компьютер с Windows и рабочую станцию с Linux.
Microsoft Windows
Все первоначальные тесты выполним с помощью командной строки. Это упростит диагностику возможных ошибок. В командной строке введите следующую команду:
C:\> net view \\192.168.1.1 Shared resources at \\192.168.1.1 Share name Type Used as Comment ———————————————————– pub Disk private Disk The command completed successfully.
C:\> net use j: \\192.168.1.1\pub
The command completed successfully.
Теперь откройте значок Мой компьютер в верхней части панели инструментов, затем выберите Сервис, Подключить сетевой диск. В новом всплывающем окне, вы можете заполнить необходимую информацию:
Linux
Если Вы планируете использовать ваш компьютер с Linux как клиента и подключаться к удаленному общему файловому ресурсу вместо Windows, тогда вам необходимо иметь поддержку скомпилированную в ваше ядро. CIFS поддержка доступна только в Linux 2.6, в более ранних версиях включена поддержка более почтенного SMB_FS.
Вам также необходимо установить Samba на этом компьютере с Linux, даже если Samba не будет работать как сервер. Убедитесь в том, что при компиляции Samba выбран параметр -with-smbmount (для доступа к Windows ресурсам старых версий) и с параметром -cifsmount. По существу, это создаст mount.cifs и umount.cifs исполняемые файлы, которые вам понадобятся.
При использовании Linux 2.4 или 2.6 на другом компьютере, вы можете набрать команды указанные ниже, чтобы подключиться к вашему серверу Samba (соответственно):
# mount -t smbfs -o username=smbguest //192.168.1.1/pub /mnt # mount -t cifs -o user=smbguest //192.168.1.1/pub /mnt
Если на компьютере к которому вы подключаетесь нет поддержки SMB в ядре, ни одна из этих команд выполнена не будет:
# mount -t cifs -o user=smbguest //192.168.1.1/pub /mnt mount: fs type cifs not supported by kernel
# mount -t smbfs -o username=smbguest //192.168.1.1/pub /mnt mount: fs type smbfs not supported by kernel
Samba как первичный контроллер домена
Для запуска Samba в качестве Первичного контроллера домена необходимо изменить настройки сервера. Предположим что мы запустили сервер Samba со следующим конфигурационным файлом:
[global] domain logons = yes domain master = Yes netbios name = fluffygerbil os level = 255 preferred master = yes security = user wins support = yes workgroup = fluffygroup
[homes] valid users = %S read only = no browseable = no create mode = 0600 directory mode = 0700
После перезагрузки служб Samba daemons, необходимо создать файл паролей Samba, конечно если вы этого уже не сделали:
# umask 077 # mkdir -p /etc/samba/private # touch /etc/samba/private/smbpasswd
Теперь мы можем добавить в него учетные записи. Предположим, что нам необходимо создать пользователя fred и рабочую станцию FLUFFBOX. На сервере Samba необходимо добавить учетные записи в систему:
# groupadd smbuser # useradd -d /home/fred -g smbuser -s /bin/false -m fred # smbpasswd -a fred # smbpasswd -a root # groupadd workstation # useradd -d /dev/null -g workstation -s /bin/false fluffbox$ # smbpasswd -a -m fluffbox
Вот теперь у нас появилась возможность добавить рабочую станцию в домен. Обратите внимание что при выводе приглашения ввести имя пользователя и пароля при вводе компьютера в домен следует вводить пароль пользователя с правами root в домене Samba а не пароль root пользователя системы:
Предупреждение о формате конца строки
Есть проблема в логин скриптах с переводом строки. Если вы работаете в смешанном окружении Linux/Windows компьютеров, то наверняка встречали файлы в конце каждой строки у которых есть символ ‘^M’. Этот команда Windows для ‘начала новой строки’, используется в комбинации CR/LF, тогда как в Linux используется только LF. Для преобразования текста из формата DOS в Linux, то есть для удаления символа новой строки ‘^M’ из файла используется команда fromdos:
fromdos linuxfile
Для обратного преобразования текстового файла из Linux в DOS, то есть добавления символа новой строки ‘^M’ а так же для того чтобы файл могли прочитать клиенты Windows используется команда todos:
todos dosfile
Если же у вас нет утилит fromdos/todos, можно воспользоваться простым трюком:
cat dosfile | col -b > linuxfile
Хочу заметить, что, если вы сталкиваетесь с этой проблемой, то это означает, что вы работаете с файлом, который редактируется как в Linux так и Windows среде. Рекомендую вам прочитать раздел об Oplocks блокировках для предотвращения потери данных …
Если вы работаете с файлами только в Windows, можно просто использовать текстовый редактор, умеющий конвертировать между DOS/Linux. Для Windows, вы можете попробовать Editeur. Для Macintosh, попробуйте BBEdit или TextMate.
Перемещаемые профили
Перемещаемые профили – это бич администратора сети. Они могут вызвать больше проблем, чем решить, замедляют процесс входа в сеть, эти проблемы трудно диагностировать и вообще говоря не одобряются опытными администраторами сети. Но тем не менее они пользуются большим спросом у пользователей, а также и у управляющего персонала и следовательно придется с ними мириться. Перемещаемым профиль по существу позволяет пользователям иметь свои документы, рабочий стол и профиль пользователя, при перемещении с одного компьютера на другой. Перемещаемые профили хранятся на центральном сервере в домене. При входе в Windows копия профиля пользователя копируется с сервера на локальный компьютер. Когда пользователь завершает сеанс, Windows копирует измененный профиль пользователя обратно на сервер для хранения.
К сожалению, это как решает, так и создает дополнительные проблемы. Профили пользователей увеличиваются в размерах, они могут вырасти до 20, 50, 100, 1000 мегабайт или даже больше. Это увеличение размеров приводит к задержкам при входе, так как требуется дополнительное время для копирования профиля пользователя с сервера на локальный компьютер и обратно при выходе из системы. Кроме того, при входе пользователя в систему на нескольких компьютерах одновременно, последний компьютер «выигрывает», насколько это то, что должно быть по умолчанию.
Вам все это уже очень нравится? Ну тогда начнем.
Измените ваш файл конфигурации к в примере ниже:
[global] domain logons = yes domain master = Yes logon drive = P: logon home = \\%L\%U logon path = \\%L\profile\%U netbios name = fluffygerbil os level = 255 preferred master = yes security = user wins support = yes workgroup = fluffygroup
[profile] path = /cifs/profile read only = no profile acls = yes create mode = 0600 directory mode = 0700 browseable = no
Неплохо еще убедиться что существуют необходимые каталоги с нужными правами доступа к ним:
# mkdir -p /cifs/profile # chmod 1755 /cifs/profile
Просто перезапустите сервер Samba, и получите перемещаемые профили пользователей.
Если что то не работает, у вас одна из двух возможных проблем в настройке групповых политик (gpedit.msc) на клиенте Windows:
1. Включите «Не проверять права пользователя Директорий Перемещаемого Профиля» и перезагрузите компьютер. Из описания Windows для этого параметра: «Для операционных систем Windows 2000 Professional без SP4 и Windows XP без SP1, права доступа по умолчанию на вновь созданный профиль – полный контроль доступа для пользователя и отсутствие доступа к файлам для группы администраторов. Вышеописанный параметр задаст корректные права, если папка профиля уже существует. Для семейства серверов Windows Server 2003, Windows 2000 Professional SP4 и Windows XP SP1, если профиль существует, поведением по умолчанию является проверка директории на корректность прав и запрет на копирование файлов из/в перемещаемый профиль если права доступа заданы некорректно. При включении этого параметра вы можете изменить поведение Windows. При включении параметра Windows перестанет проверять права доступа к папке, если она существует. При отключении параметра или неиспользовании этой настройки И при условии что папка перемещаемого профиля существует И пользователь или группа администраторов не являются владельцами этой папки, Windows НЕ будет копировать файлы из/в перемещаемый профиль. Пользователю будет выведено сообщение об ошибке, также информация о ней будет зафиксирована в журнал ошибок. Будет использован закешированный профиль пользователя, или если таковой не существует создастся временный профиль пользователя. Заметьте, что настройки должны быть сделаны на клиентском компьютере, а не на сервере, так как клиентский компьютер устанавливает права доступа на папку перемещаемого профиля в момент его создания. Заметьте также, что если параметр включен поведение будет таким же как в Windows 2000 Professional без SP4 и Windows XP Professional.”
— или —
2. Включите настройку разрешать только локальные профили пользователей (при этом совершенно забыв о Перемещаемых Профилях Пользователей) и перезагрузите компьютер. Из описания Windows для этого варианта: «Этот параметр определяет, будут ли перемещаемые профили пользователей доступны на данном компьютере. По умолчанию, когда пользователь с перемещаемым профилем пользователя входит в систему на компьютере, его перемещаемый профиль записывается на локальный компьютер. Если он уже входил в систему на этом компьютере и раньше, перемещаемый профиль объединяется с локальным профилем. Аналогичным образом, когда пользователь завершает сеанс работы, локальная копия его профиля, включая любые изменения, которые он сделал, объединяется с серверной копией его профиля. Использованием этого параметра можно запретить пользователям использование перемещаемых профилей на конкретном компьютере. Если вы включите этот параметр, происходит следующее на целевом компьютере: При первом входе в систему, пользователь получает новый локальный профиль, а не перемещаемый профиль. При выходе из системы изменения сохраняются в новом локальном профиле. При всех последующих входах будет использоваться локальный профиль. Если вы отключите этот параметр или не настроите его, то по умолчанию все будет происходить , как описано выше. Если вы включите параметры «Запретить перемещаемому профилю изменения на сервере» и «Разрешить только локальные профили пользователей», перемещаемые профили будут отключены. Примечание: Этот параметр влияет только на перемещаемые профили пользователей «.
Опять же, опытные системные администраторы, как правило воспользуются вторым варианта.
Вот собственно то, что фактически потребуются от вас для создания перемещаемых профилей.
Примечание: Windows клиенты ожидают следующие права доступа к файлам для всех перемещаемых профилей, независимо от того, Windows сервер или Samba сервер (Таким образом, мы должны попытаться установить необходимые разрешения командой CHMOD).
Таблица 1. NTFS разрешения для директории перемещаемого профиля. Учетная запись пользователя Windows Минимальные требуемые разрешения Создатель/Владелец Полный доступ, только поддиректории и файлы Администратор Нет Группа безопасности пользователей, которым необходимо копировать данные на общий ресурс Чтение папки/Чтение данных, Создание папки/Добавление данных – Только для папки Все Нет прав Локальная система Полный доступ, Эта папка, Поддиректории и файлы
Таблица 2. Уровень прав доступа к общему ресурсу (SMB) для папки Перемещаемого Профиля Учетная запись пользователя Windows Права доступа по умолчанию Минимально требуемые права доступа Все Полный доступ Нет доступа Группа безопасности пользователей, которым необходимо копировать данные на общий ресурс N/A Полный доступ