логотип 3DNews
Сюжет Facebook на 3DNews.ruСюжет Умные вещи на 3DNews.ru
Сегодня 30 июля 2014
3DNewsМастерскаяСоздаем SOHO-сервер на базе Zentyal. Час...
Мастерская

Создаем SOHO-сервер на базе Zentyal. Часть 3

Создаем SOHO-сервер на базе Zentyal. Часть 1.

Создаем SOHO-сервер на базе Zentyal. Часть 2.

Последняя часть материала будет посвящена совершенно необязательным, но приятным штукам. Как и говорилось ранее, они больше подойдут для домашнего использования, нежели для офиса. Тем не менее, и там они могут пригодиться.

#Файлокачалки

Начнём с установки торрент-клиента Transmission, с которым в материалах «Мастерской» мы уже сталкивались не раз и не два. Добавляем PPA-репозиторий (в нём более свежая версия клиента) и устанавливаем Transmission:

sudo apt-add-repository ppa:transmissionbt/ppa
sudo apt-get update
sudo apt-get install transmission-daemon

Останавливаем демон:

sudo service transmission-daemon stop

Немного корректируем файл конфигурации:

sudo nano /etc/transmission-daemon/settings.json

В нём меняем указанные строчки. Peer-port — это порт для соединения с другими torrent-пользователями, username и password — логин и пароль для доступа к веб-интерфейсу, rpc-port — номер порта для веб-интерфейса или стороннего клиента, а download-dir — папка на втором HDD (см. вторую часть), куда будут складываться скачанные файлы, причём папка уже должна быть создана и расшарена.

“download-dir”: “/media/метка_тома/torrents”
“peer-port”: 52400
“rpc-authentication-required”: true
“rpc-password”: “password”
“rpc-port”: 9091
“rpc-username”: “username”
“rpc-whitelist-enabled”: false

После редактирования сохраняем файл (F2, Y, Enter, Ctrl+X) и запускаем демон.

sudo service transmission-daemon start

Осталось только создать службу, куда надо добавить использованные нами порты, и разрешить доступ к ней в файрволле (TCP 9091, UPD/TCP 52400). Остальные настройки Transmission можно изменить через веб-интерфейс, который доступен по адресу http://имя_домена_или_ddns_имя:peer-port (в нашем примере это будет http://soho-machine:9091). Можно воспользоваться также одним из сторонних клиентов. Чтобы сразу же применить изменённые настройки, перезапустите демон:

sudo service transmission-daemon restart

Альтернативным вариантом может стать клиент FatRat, который поддерживает не только скачивание файлов из bittorrent-сетей, но и по HTTP/FTP, а также с сервиса rapidshare. Его основное преимущество перед другими аналогичными программами (slimrat, tucan manager) — это наличие веб-интерфейса. Итак, добавляем ещё один репозиторий и устанавливаем fatrat:

sudo apt-add-repository ppa:ferramroberto/fatrat
sudo apt-get update
sudo apt-get install fatrat

Запускаем программу из главного меню и подгоняем настройки под себя. В частности, включаем веб-интерфейс, где указываем порт и пароль для входа. Не забываем добавить нужные нам порты в исключения файрволла (TCP 2233 для веб-интерфейса). После сохранения настроек закрываем клиент.

Теперь нам надо сделать так, чтобы он автоматически запускался при старте сервера. Создадим нового пользователя fatrat, от чьего имени мы будем запускать клиент с помощью скрипта в init.d, и скопируем настройки клиента в его домашнюю папку.

sudo useradd fatrat
sudo mkdir -p /home/fatrat/.config/Dolezel
sudo mkdir -p /home/fatrat /.local/share/fatrat
sudo cp ~/.config/Dolezel/fatrat.conf /home/fatrat/.config/Dolezel/fatrat.conf
sudo cp ~/.local/share/fatrat/queues.xml /home/fatrat /.local/share/fatrat/queues.xml
sudo chown -R fatrat:fatrat /home/fatrat/.config/
sudo chown -R fatrat:fatrat /home/fatrat /.local/

Создаём скрипт для автозапуска:

sudo nano /etc/init.d/fatrat

Помещаем в него следующие строки [некорректно, но для нас достаточно]:

#!/bin/bash

su fatrat -c "fatrat -n"

Сохраняем его и добавляем последние штрихи:

sudo chmod +x /etc/init.d/fatrat
sudo update-rc.d fatrat defaults
sudo service fatrat start

Теперь fatrat доступен по адресу http://имя_домена_или_ddns_имя:2233 (в нашем примере это будет http://soho-machine:2233). Для очереди закачки по умолчанию надо поменять папку, в которую будут загружаться файлы.

#Доступ к медиафайлам по сети

По уже накатанной схеме установим DLNA-сервер, чтобы можно было смотреть видео, например, с телевизора, подключённого к локальной сети. Добавляем репозиторий и ставим minidlna:

sudo apt-add-repository ppa:stedy6/stedy-minidna
sudo apt-get update
sudo apt-get install minidlna

Затем отредактируем файл конфигурации:

sudo nano /etc/minidlna.conf

В нём меняем несколько строчек. Для network_interface указываем тот сетевой интерфейс, который смотрит в нашу локальную сеть. Параметр media_dir указывает путь до папки, где хранятся медиафайлы. Можно добавить сколько угодно папок, попутно установив фильтры по типу файлов — только аудио (A), видео (V) или картинки (P). В notify_interval в секундах указывается время автообновления списка файлов.

network_interface=eth1
media_dir=/media/имя_тома/torrents/
media_dir=A, /media/имя_тома/torrents/Music
media_dir=V, /media/имя_тома/torrents/Films
media_dir=P, /media/имя_тома/torrents/Photos
notify_interval=900

В конце перезапускаем сервер и ждём, пока просканируются все файлы и папки, а в файрволле открываем порт TCP 8200 (если вы, конечно, не меняли параметр port в настройках).

sudo service minidlna restart

Следующим этапом станет установка iTunes-сервера, с помощью которого можно будет слушать музыку. Наличие iTunes необязательно — есть универсальный клиент на Java, а мы ещё добавим возможность прослушивания через веб-интерфейс. Итак, ставим наш сервер:

sudo apt-get install mt-daapd

И сразу же меняем настройки:

sudo nano /etc/mt-daapd.conf

В mp3_dir указываем папку, где лежат музыкальные файлы. В password указывается пользовательский пароль (тот, что надо будет ввести в iTunes), а в admin_pw — пароль администратора.

mp3_dir = /media/имя_тома/torrents/Music
password = user_password
admin_pw = admin_password

Добавляем веб-интерфейс для прослушивания файлов:

wget http://www.mellberg.org/FirePlay.zip
sudo unzip ./FirePlay.zip -d /usr/share/mt-daapd/admin-root/
rm ./FirePlay.zip

Открываем порт TCP 3689 и перезапускаем наш музыкальный сервер.

sudo service mt-daapd restart

Веб-плеер доступен по адресу http://имя_домена:3689/FirePlay.html, а веб-интерфейс администратора по http://имя_домена:3689. При входе надо будет соответственно ввести пароль пользователя или администратора. В веб-интерфейсе можно добавлять другие папки с музыкой и менять прочие настройки сервера. Для доступа из iTunes надо в его основных настройках включить в списке источников общие медиатеки.

Теперь настроим ретрансляцию онлайн-радиостанций в нашу локальную сеть. Для этого установим сервер потокового вещания icecast:

sudo apt-get install icecast2

Отредактируем его настройки:

sudo nano /etc/icecast2/icecast.xml

В этом файле нам надо изменить несколько параметров, которые заключены в теги.

<authentication>
<source-password>source_pwd</source-password>
<relay-password>relay_pwd</relay-password>
<admin-user>admin</admin-user>
<admin-password>admin</admin-password>
</authentication>

<hostname>soho-machine</hostname>

<listen-socket>
<port>10000</port>
<bind-address>172.16.15.1</bind-address>
<shoutcast-mount>/stream</shoutcast-mount>
</listen-socket>

Все пароли из раздела authentication обязательно меняем на свои. В hostname прописываем сетевое имя сервера, в port указываем порт, на котором будет размещаться веб-интерфейс и откуда будет вестись вещание, а в bind-address прописываем IP-адрес внутреннего сетевого интерфейса. Не забываем создать нужное правило в файрволле. Веб-интерфейс icecast будет доступен по адресу http://soho-machine:10000/

Теперь добавляем ретранслируемые радиостанции в раздел relay. Для каждой станции прописывается свой раздел.

<relay>
<server>radiosilver.corbina.net</server>
<port>8000</port>
<mount>/silver128.mp3</mount>
<local-mount>/silver.mp3</local-mount>
<on-demand>1</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

Откуда брать параметры server, port и mount? Обычно на сайтах радиостанций выкладываются ссылки для прослушивания их в плеере. Как правило, это просто плейлисты в формате m3u или pls, которые можно открыть блокнотом и в которых как раз содержится ссылка на поток. В примере выше используется URL радиостанции «Серебряный дождь», который в исходном виде выглядит так: http://radiosilver.corbina.net:8000/silver128.mp3. Из него легко догадаться, что и куда прописывать. Параметр local-mount должен быть уникальным для каждой станции — в дальнейшем мы будем слушать ту или иную радиостанцию, указывая как раз его. В нашем примере ссылка на ретранслируемый поток будет такой: http://soho-machine:10000/silver.mp3. Именно её надо будет “подсунуть” плееру. Надо разрешить работу icecast в режиме демона, прописав ENABLE=true в конце файла /etc/default/icecast2:

sudo nano /etc/default/icecast2

Всё, запускаем наш сервер и наслаждаемся радио.

sudo service icecast2 start

Для разнообразия можно создать собственную “радиостанцию” и вещать музыку в сеть с жёсткого диска посредством mpd или ices, либо, к примеру, добавить в cron задания для запуска и остановки icecast2, чтобы в течение рабочего дня в офисе было не так скучно сидеть. Оставим эти вопросы для самостоятельного изучения.

#Видеонаблюдение

Рассмотрим простейший вариант организации видеонаблюдения с помощью одной USB веб-камеры и утилиты motion. К сожалению, далеко не все веб-камеры корректно работают в Linux, но motion поддерживает и IP-камеры, и ТВ-тюнеры. Мы использовали камеру Logitech C510, которая без каких-либо проблем определилась и заработала. Также motion хорош тем, что позволяет автоматически включать запись при обнаружении движения в кадре и имеет встроенный веб-сервер для просмотра изображения с камеры в онлайн-режиме. Итак, устанавливаем motion:

sudo apt-get install motion

Разрешаем запуск демона motion:

sudo nano /etc/default/motion
start_motion_daemon=yes

А теперь переходим к настройкам параметров.

sudo nano /etc/motion/motion.conf

Файл настроек довольно объёмистый, но все параметры в нём хорошо прокомментированы, так что мы остановимся только на ключевых. Мы рассматриваем вариант всего с одним видеоустройством. Если же вы хотите подключить больше камер, то для каждой из них надо будет отредактировать или создать файл threadN.conf (N — номер устройства), который находится в том же каталоге и аналогичен по формату motion.conf, и не забыть прописать в конце motion.conf, что надо использовать ещё и параметры из threadN.conf.

  • daemon on — разрешает работу в режиме демона.
  • videodevice /dev/video0 — указатель на используемое видеоустройство. По умолчанию наша веб-камера как раз соответствует /dev/video0. Просмотреть список всех устройств можно командой:

ls /dev/video*

При использовании ТВ-тюнера или IP-камеры пользуйтесь директивами tunerdevice и neturl соответственно.

  • rotate 0 — угол поворота изображения в градусах. На тот случай, если камера установлена не прямо, а повёрнута набок.
  • width и height — ширина и высота кадра. Выставляйте те, что поддерживаются веб-камерой.
  • framerate 15 — максимальная частота кадров, с которой разрешена съёмка. Чем выше значение, тем выше нагрузка на CPU. Выставляйте этот параметр на своё усмотрение.
  • minimum_frame_time 0 — минимальное время в секундах между двумя снимками. По умолчанию равно нулю, то есть используется предыдущий параметр.
  • auto_brightness off, brightness 0, contrast 0, saturation 0, hue 0 — авторегулировка яркости (лучше не включать) и значения яркости, контраста и насыщенности получаемого изображения.
  • treshold 1500 — чувствительность детектора движения. Чем меньше значение параметра, тем выше чувствительность. Фактически означает количество изменившихся пикселей между текущим и предыдущим кадром. Конкретное значение подбирается вручную.
  • noise_level 32 — отсекает шум, создаваемый сенсором камеры. Возможно, тоже придётся подобрать значение самостоятельно.
  • area_detect N — N = от 1 до 9, по умолчанию отключено (; в начале строки). Указывает область кадра, где следует определять наличие движения.
1 2 3
4 5 6
7 8 9
  • mask_file /путь/до/файла/маски.pgm — позволяет использовать маску в формате PGM (portable graymap), для отсечения областей в кадре, где не нужно детектирование движения. Возьмите какой-нибудь кадр и откройте его в подходящем графическом редакторе. В частности, экспортировать в PGM умеет GIMP. Те области, где не нужно детектирование, залейте чёрным, а те, где нужно, — залейте белым цветом. В нашем примере, что на картинках ниже, от ветра может произвольно развеваться флаг и качаться верхушки деревьев. Их-то нам и надо исключить.
  • ffmpeg_video_codec — тип кодека, в котором будут сохраняться видео с движущимися объектами.
  • snapshot_interval N — каждые N секунд будет автоматически делаться снимок с камеры.
  • locate on, off или preview — включает/выключает/включает только на первых кадрах обводку движущегося объекта.
  • target_dir /путь/до/папки/где/хранятся/снимки — например, /media/destdd/motion_shots
  • webcam_port 8989 — порт, на котором будет доступно по http live-изображение с камеры (в нашем примере адрес такой http://soho-machine:8989).
  • webcam_localhost off — чтобы можно было смотреть не только с сервера.
  • control_port 8990 — номер порта для доступа по http к веб-интерфейсу администратора.
  • control_localhost on — если выключите, то обязательно задайте логин и пароль в следующем параметре.
  • control_authentication username:password — логин и пароль администратора motion.

Сохраняем настройки, прописываем в файрволле разрешения на доступ к портам (webcam_port и, если надо, control_port) и перезапускаем демон. Более детальное описание прочих параметров можно найти на сайте проекта motion. Там же есть примеры скриптов, которые можно «повесить» на обработку событий. Например, отсылка e-mail при появлении движения в кадре.

sudo service motion restart

#Резервное копирование

Резервное копирование настраивается элементарно. Нам вполне подойдёт архивация на наш второй жёсткий диск. Выставляем периодичность бекапа и его параметры, опционально задаём шифрование и сохраняем настройки. На клиентские машины можно по желанию установить какие-нибудь утилиты, которые могут сохранять резервные копии в сетевом окружении, а на сервере, конечно, создать каталог с общим доступом или же сохранять все копии в личный каталог пользователя. В Windows 7 такая возможность бекапиться в сетевую папку встроена в саму систему (увы, при работе с Zentyal не всё проходит гладко). Обратите внимание, что если у вас включены перемещаемые профили и настроена архивация профиля непосредственно в Windows 7, то надо будет добавить в список исключений папку /home/samba/profiles.

В дальнейшем будет производиться инкрементальный бекап, чтобы не захламлять лишний раз жёсткий диск. Из архива можно восстановить как любой сохранённый файл, так и все настройки Zentyal. Обладатели компьютеров Apple могут настроить сервер для хранения копий с Time Machine.

#Заключение

На этом мы прервём серию статей о настройке SOHO-сервера, так как охватить все аспекты этого дела просто невозможно. В принципе, мы и так уже разобрали немало наиболее актуальных и популярных вопросов. Задача по дальнейшему усовершенствованию сервера ложится исключительно на ваши плечи. Хотелось бы ещё раз напомнить, что перед тем, как приступить к настройке, необходимо хотя бы раз внимательно прочитать все приведённые инструкции и советы. Необязательно устанавливать подряд всё, что было описано в материалах, — выбирайте только нужное, благо система получилась модульная, а потому позволяет это. Опять же, никто не призывает использовать именно предложенный дистрибутив Zentyal. Можно воспользоваться другими альтернативами, например упомянутой уже ClearOS или связкой Ubuntu Server и webmin. Хочется верить, что материал оказался полезным и хотя бы дал толчок к дальнейшему изучению этой темы. Засим позвольте откланяться и пожелать удачного серверостроения!

⇣ Комментарии
Прежде чем оставить комментарий, пожалуйста, ознакомьтесь с правилами комментирования. Оставляя комментарий, вы потверждаете ваше согласие с данными правилами и осознаете возможную ответственность за их нарушение.