Создаем 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.
ls /dev/video*
При использовании ТВ-тюнера или IP-камеры пользуйтесь директивами tunerdevice и neturl соответственно.
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
Сохраняем настройки, прописываем в файрволле разрешения на доступ к портам (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. Хочется верить, что материал оказался полезным и хотя бы дал толчок к дальнейшему изучению этой темы. Засим позвольте откланяться и пожелать удачного серверостроения!