Сегодня 15 июня 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Мастерская

Создаем 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. Хочется верить, что материал оказался полезным и хотя бы дал толчок к дальнейшему изучению этой темы. Засим позвольте откланяться и пожелать удачного серверостроения!

 
 
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Disney внедрил «рекламные игры» в стриминговые сервисы Hulu и ESPN 9 ч.
Meta перестала обучать ИИ на данных пользователей, но только из ЕС 9 ч.
Новая статья: XDefiant — зов долга, но не тот. Рецензия 10 ч.
В Сети нашли намёк на сроки выхода крупного эксклюзива Xbox — ролевой игры Clockwork Revolution, похожей на BioShock Infinite 10 ч.
The Talos Principle 2 получила «грандиозное» дополнение Road to Elysium со счастливой концовкой и сложнейшими загадками 10 ч.
Ubisoft превращается в «Абстерго»: платформу Assassin’s Creed Infinity переименовали в «Анимус» 12 ч.
Apple станет первой компанией, которой ЕС предъявит обвинение по закону DMA — из-за монополии App Store 12 ч.
Статистика назвала самые желанные игры с летних презентаций — Doom: The Dark Ages на втором месте 13 ч.
Bandai Namco анонсировала первый за несколько месяцев патч для Elden Ring и раскрыла системные требования Shadow of the Erdtree 14 ч.
«Базальт СПО» представила открытую библиотеку libdomain для управления службами каталогов 15 ч.
Intel поймала AMD на подтасовке результатов в ИИ-тестах EPYC против Xeon 9 ч.
Южнокорейские ИИ-стартапы Sapeon и Rebellions объединятся, чтобы вместе противостоять NVIDIA 10 ч.
Lian Li представила корпус O11 EVO RGB Automobili Lamborghini в стиле итальянских суперкаров 12 ч.
«Джеймс Уэбб» разглядел пару звёзд с газовыми шлейфами там, где учёные 50 лет видели лишь одну звезду 14 ч.
Марсоход Perseverance наткнулся на опасное поле валунов, но смог обогнуть его по руслу древней реки 15 ч.
Samsung Galaxy Z Fold6 показался на видео в форме макета — его сравнили с предшественником 15 ч.
Учёные облачили ДНК в искусственный янтарь — получилось сверхплотное и долговечное хранилище данных 16 ч.
Спрос на ЦОД в Азиатско-Тихоокеанском регионе значительно превышает предложение 17 ч.
Суд взыскал с производителя электроники «Ангстрем» более €1 млрд в пользу «ВЭБ.РФ» 17 ч.
Глобальный рынок смартфонов столкнулся с перенасыщением 17 ч.