Создаем SOHO-сервер на базе Zentyal. Часть 1 28 июля 2011 Игорь Осколков В первом материале мы рассмотрим установку и базовую настройку маленького сервера на базе какого-нибудь старого компьютера. Сервер под управлением Linux будет служить для сетевых (и не только) нужд небольшого офиса или дома ⇣ Содержание Создаем SOHO-сервер на базе Zentyal. Часть 2. Создаем SOHO-сервер на базе Zentyal. Часть 3. ⇡#Вступление Расширять возможности роутеров за счёт альтернативных прошивок, конечно, интересно. Однако порой наступает такой момент, что добавление очередной надстройки приводит к тому, что и так уже «взмыленный» роутер перестаёт стабильно работать. В этом случае либо придётся отказаться от части функций, либо приготовиться раскошелиться на покупку более мощной модели роутера, а то и вовсе готового решения в виде небольшого сервера с предустановленным софтом. Но зачем? Ведь достаточно просто взять старый компьютер и самостоятельно настроить всё что нужно. Этим-то мы и займёмся. Можно, конечно, взять в руки напильник и превратить паровоз в истребитель, то есть установить какой-нибудь дистрибутив Linux (попутно обязательно пересобрав ядро, куда же без этого), а затем долго и муторно доводить его до нужного состояния, прикрутив под конец Webmin или что-нибудь в этому духе.
Мы же не будем мудрствовать лукаво и воспользуемся специализированным дистрибутивом Zentyal. Он имеет два важных для нас преимущества. Во-первых, у него есть унифицированный веб-интерфейс для управления всем основным модулями сервера (маршрутизация, брандмауэр, DHCP, почта и так далее). Во-вторых, он основан на Ubuntu, а значит, нам доступна вся база пакетов этого дистрибутива. Вообще-то можно установить все компоненты Zentyal на Ubuntu из специального PPA-репозитория. Есть и другой, очень похожий продукт — ClearOS. Оба дистрибутива обладают различными вариантами подписки, но нам вполне хватит и бесплатной версии. При желании и за относительно небольшие деньги можно будет получить чуть больше возможностей, что актуально скорее для организаций, нежели для дома. ⇡#Подготовка Рекомендуемая для Zentyal конфигурация ПК, который будет играть роль сервера, примерно
такова: процессор уровня Pentium 4, от одного гигабайта RAM, винчестер на 80 Гбайт и минимум два сетевых интерфейса (мы же будем делать шлюз). В реальности всё зависит от ваших задач. Сетевая составляющая потребляет меньше всего ресурсов, так что вполне можно обойтись какой-нибудь «атомной» машинкой. Если планируется поставить антивирус, почту, фильтр и так далее, то тут, пожалуй, надо взять что-нибудь посерьёзнее. Логично, что надо купить адаптер Wi-Fi (список совместимых), если нужна беспроводная сеть, но в качестве альтернативы можно приобрести точку доступа (мост) — в некоторых случаях это даже лучше, так как сервер наверняка будет спрятан в каком-нибудь тихом углу, то есть физически удалён от места скопления беспроводных клиентов. На памяти экономить не стоит — она и так нынче совсем недорога. При желании можно организовать RAID, но особого смысла в этом, кажется, нет. Встроенные или софтовые решения не так надёжны, а аппаратный контроллер, пожалуй, будет излишней тратой денег в нашем случае. И ещё, разумнее всего будет выделить отдельный жёсткий диск под данные («файлопомойку», закачки в torrent и так далее) либо вообще добавить USB-накопитель. Подключать его лучше уже после установки ОС.
⇡#Установка Zentyal Когда машина будет подготовлена, потребуется скачать нужный ISO-образ установщика с этой странички. Прожигаем ISO на болванку или пишем на флешку. Попутно можно зарегистрироваться в Zentyal и получить базовую подписку на дополнительные сервисы, нажав на кнопку Subscribe на той же странице. Включаем в BIOS загрузку со съёмного накопителя или CD-привода, вставляем наш носитель с образом системы и перезагружаемся. Если хотите, можете выбрать русский язык в ходе установки. В меню выбираем первый пункт (delete all disk) и жмём Enter.
Мастер установки проведёт нас по всем основным пунктам. Первым делом необходимо настроить клавиатуру.
Один из сетевых интерфейсов будет смотреть во внешнюю сеть, а другой — в локальную. По большому счёту нет никакой разницы, какому интерфейсу какую роль вы отведёте. В нашем примере eth0 будет служить для локального подключения, а eth1 для выхода в Интернет.
Если установщику не удалось определить ваш текущий часовой пояс, то ему надо немного помочь.
Затем инсталлятор самостоятельно разобьёт диск, отформатирует его и установит базовую систему. Под конец будет предложено создать новую учётную запись администратора.
После этого будут установлены оставшиеся компоненты ОС, и нам предложат перезагрузиться. Заодно в BIOS вернём загрузку с жёсткого диска.
⇡#Базовая настройка Управление Zentyal осуществляется через веб-интерфейс, который похож на интерфейс большинства роутеров. Из локальной сети он доступен по адресу https://ip_сервера/. После загрузки нам предлагают зайти в него с помощью логина и пароля администратора, которые были заданы на этапе установки. Мы можем определить серверу одну из стандартных ролей (нам нужен Gateway) либо пропустить настройку и самостоятельно выбрать все нужные модули. Делается это в разделе «Управление программным обеспечением» → «Компоненты Zentyal». При установке появляются рекомендации доустановить некоторые другие компоненты, которые изначально недоступны. Например, при инсталляции антивируса и SAMBA (для обмена файлами по сети) рекомендуется включить опцию сканирования расшаренных папок на наличие зловредов. Уже установленные модули включаются и отключатся в разделе «Статус модуля». Обратите внимание, что некоторые службы зависят друг от друга — пока не включишь одну из них, другая будет недоступна. Быстрый доступ к информации о текущем состоянии системы и запуску (перезапуску) основных служб доступен с главной страницы веб-интерфейса, она же — «Рабочий стол». В правом верхнем углу находится кнопка «Сохранить изменения», не забывайте нажимать на неё после смены настроек.
При установке части модулей будет запущен мастер настройки. Например, для настройки сетевых подключений. Для внешнего интерфейса доступны варианты ручного указания всех настроек или получения их по DHCP либо через VLAN (802.1q) или ADSL (PPPOE). Увы, в данный момент готовой поддержки столь любимых нашими провайдерами PPTP/L2TP нет, и её внедрение не планируется вплоть до следующего релиза, который увидит свет осенью. Наиболее простым выходом из этой ситуации видится покупка простейшего роутера (от 500 рублей), настройка его на соединение с провайдером, прописывание статического IP для сервера и вынос оного в DMZ или полный проброс портов к нему. Для внутреннего интерфейса сервера надо указать статический IP-адрес и выбрать маску подсети. Потом настройки можно будет поменять в разделе «Сеть» → «Интерфейсы».
Также нам понадобятся модули NTP, DNS, DDNS и DHCP. Первые три необязательны, а вот без последнего не обойтись, если не хотите вручную прописывать сетевые настройки на всех машинах в локальной сети. В любом случае локальный кеширующий DNS-сервер, внешний домен и локальный же сервер времени полезны. Не забудьте только включить синхронизацию со сторонними NTP-серверами в разделе «Система» → «Дата/Время». Заодно можно прописать статические маршруты, например для доступа к ресурсам локальной сети провайдера.
Теперь познакомимся с понятием объектов и служб в Zentyal. Объекты — это любые устройства в сети или их группы (ПК, принтеры, NAS и так далее). Изначально создаются списки объектов (группы), в которые потом добавляются нужные IP-адреса или диапазоны адресов. Для отдельно взятого хоста можно указать и MAC-адрес.
Службы в понимании Zentyal — это порты или группы портов и протоколов. При создании службы можно поставить галочку «Внутренний», если данный порт и протокол используются на сервере (например, порт 21 для FTP-сервера Zentyal). Аналогично объектам каждая служба может включать целый список портов/протоколов. Службы и объекты в дальнейшем можно использовать в других модулях вроде брандмауэра, и нужны они лишь для более гибкой и простой настройки сети.
В общем случае для активации DHCP достаточно выставить такие же настройки, как на первом скриншоте ниже. После этого обязательно надо добавить диапазоны IP-адресов, которые будут раздаваться машинам, — их можно создать сразу несколько для разных групп устройств. Статический DHCP реализуется с помощью объектов. Чуть выше в нашем
примере мы создали список объектов wire, в котором указали несколько машин с IP- и MACадресами. Так вот, нам достаточно добавить любой список объектов в разделе «Фиксированные адреса», чтобы компьютерам из этого списка присваивались заранее указанные IP-адреса в соответствии с их MAC-адресами.
Firewall разделён на две логические части. Первая, фильтр пакетов, не столь интересна, так как позволяет настроить поведение только внутренних служб Zentyal. Вторая часть — самое обычное перенаправление (проброс) портов.
В качестве примера откроем доступ к веб-интерфейсу Zentyal извне, добавив одно правило в «Правила фильтрации из внешних сетей на Zentyal».
Распределение полосы пропускания настраивается в Gateway → Traffic Shaping. Естественно, этот модуль должен быть уже установлен. Первым делом в разделе «Скорости интерфейса» надо указать максимальные входящую и исходящую скорости согласно вашему тарифу.
Контроль за скоростью базируется на системе фильтров L7. В разделе Application Protocols мы можем создавать и редактировать группы протоколов. Затем необходимо добавить нужные правила для каждого из интерфейсов, выставив приоритет и задав показатели скоростей. Можно, в частности, задать ограничение для каждого из компьютера в локальной сети. Про особенности настройки QoS уже рассказывалось в этой статье — рекомендуется прочитать нужный раздел.
Если у вас есть несколько внешних каналов для выхода в Интернет (например, два шлюза или два ADSL-модема, необязательно с одинаковой скоростью), то можно настроить балансировку трафика. В разделе «Сеть» → «Шлюзы» как раз и прописываются эти каналы, а для PPPOE и DHCP они создаются автоматически. У каждого внешнего соединения можно указать вес, то есть фактически приоритет выбора того или иного канала. Если скорости у внешних каналов одинаковые, то веса тоже должны быть одинаковые. В противном случае чем выше номер приоритета (больше 1), а значит и ниже скорость, тем реже будет идти обращение к нему. Непосредственно балансировка основывается на правилах, в которых можно указать, через какой шлюз и какие данные будут идти. Здесь нам в очередной раз пригодятся объекты и службы.
Наличие сразу нескольких шлюзов даёт ещё одно преимущество — возможность автоматического переключения между ними в случае, если один из них перестаёт работать. Но предварительно немного познакомимся с системой событий Zentyal. Нас интересует событие «Отказоустойчивая WAN», которое надо включить. У некоторых событий есть настраиваемые параметры, например можно указать в процентах объём свободного места на жёстком диске, при достижении которого будет сгенерировано оповещение. Оповещение о событии может быть доставлено до администратора несколькими способами — для нас актуальны только RSS или сообщение в Jabber. Одновременно все логи событий записываются в журналы, которые потом можно просмотреть в соответствующем разделе.
Так вот, после включения отказоустойчивой WAN идём в разделе «Сеть» в пункт, который называется точно так же. Здесь мы добавляем правила проверки работоспособности каждого шлюза путём «пинга» непосредственно шлюза, какого-либо хоста, HTTP-запроса или запроса DNS. Тут же добавляем интервал запуска проверки и выставляем число попыток. Если шлюз не проходит проверку, то он временно отключается до восстановления его работоспособности, а все запросы автоматически перенаправляются на другой(ие) шлюз(ы).
Дополнительные настройки Если вы решили оформить базовую подписку на сервисы Zentyal, то вам на почту должны были прийти логин и пароль. Перед тем как подключить её, надо сгенерировать сертификаты (цифровые ключи) в «Центре сертификации». Они же в дальнейшем понадобятся нам для
создания VPN-подключений к серверу. Для корневого сертификата достаточно указать название организации и срок его действия. После чего в разделе «Подписка» → Server Subscription достаточно ввести присланные логин и пароль. Особенного смысла в этом, если честно, нет — можно только посмотреть в деморежиме на возможности, доступные в платных вариантах подписки (резервное копирование, управление группой серверов, удалённое обновление и так далее).
В разделе «Система» → Import/Export Configuration есть возможность сохранить и восстановить текущие настройки сервера. Файл с настройками рекомендуется скачать и сохранить на другой машине или съёмном накопителе. Также можно сохранить конфигурацию в сервисе Zentyal. Это, пожалуй, единственная польза от него, кроме возможности посмотреть, в Сети ли сейчас сервер, и автоматического уведомления по почте, если он вдруг отключился.
Наконец, последнее, что рекомендуется сделать при первичной настройке, — обновить систему из раздела «Системные обновления», нажав на «Список обновлений», отметив галочками нужные пакеты и потом нажав «Обновление». Маленький совет — лучше не выбирать все пакеты скопом, а обновлять их небольшими пачками. Альтернативный вариант — просто выполнить в консоли (User Console) две команды: sudo apt-get update && sudo apt-get upgrade Ну и включить напоследок автоматическое обновление ПО в настройках.
На этом, пожалуй, прервёмся. В следующей части мы разберём создание групп и пользователей, настройку файлообменника, установку торрент-клиента и ряд других вещей.
Создаем SOHO-сервер на базе Zentyal. Часть 2 04 августа 2011 Игорь Осколков В первой части мы ознакомились с установкой Zentyal, настройкой сетевых опций, а также немного привели все это в порядок. Сейчас же мы рассмотрим опции, которые будут полезны в первую очередь для небольшого офиса ⇣ Содержание Создаем SOHO-сервер на базе Zentyal. Часть 1 Создаем SOHO-сервер на базе Zentyal. Часть 3 ⇡#Подключение второго HDD Как уже говорилось в первой части, на ещё одном жёстком диске (например, съёмном) мы будем хранить общие файлы, а заодно сливать туда резервные копии системы. Диск лучше заранее отформатировать в нужную ФС. Для примера пусть это будет NTFS — в случае чего диск можно подсоединить к Windows-машине и скопировать нужные данные. После подключения HDD к серверу (не важно, по SATA/IDE/USB или как-то ещё) нам надо узнать его идентификатор. Запускаем User Console с рабочего стола и выполняем команду: sudo blkid -c /dev/null Нам будет выведен список блочных устройств. В этом списке надо найти UUID нашего жёсткого диска. Сориентироваться можно по метке тома (Label). Затем создаём точку монтирования, откуда, собственно, и будет доступ к нашему диску. Условимся, что она будет совпадать с меткой тома (но вы можете задать имя на ваш выбор): sudo mkdir /media/имя_тома Теперь надо прописать всего лишь одну строчку в fstab… sudo nano /etc/fstab … вида: UUID=идентификатор_диска /media/имя_тома ntfs-3g defaults 0 0 Вместо пробелов в этой строке используем табуляцию (Tab) и в конце переводим каретку
(жмём Enter). Затем сохраняем файл (F2, Y, Enter) и выходим (Ctrl+X). Всё, теперь при каждой загрузке жёсткий диск будет автоматически смонтирован. ⇡#Настройка домена и файлообмена Zentyal способен также выступать в роли LDAP-сервера, в том числе в связке с Windows AD. В первую очередь надо создать группы пользователей, например в соответствии с отделами или территориальным размещением. Для каждой группы можно сразу же задать имя общей папки, куда будут иметь доступ все пользователи данной группы. Затем добавляем новых пользователей и раскидываем их по группам, попутно задавая максимальный объём данных на диске, который может забить своими файлами каждый пользователь. Обязательно надо создать как минимум один аккаунт с правами администратора.
Переходим в раздел «Шаринг файлов» и задаём основные настройки SAMBA. Включаем наш маленький домен, указываем его имя и остальные настройки. Если вы решите включить перемещаемые профили пользователей, то дисковые квоты, возможно, лучше будет отключить. На вкладке PDC меняем параметры, касающиеся пользовательских паролей, согласно вашей параноидальности. Затем добавляем общие папки (ресурсы). В нашем примере все данные будут храниться на втором жёстком диске. У каждого ресурса необходимо прописать права доступа для групп и пользователей. Опционально можно включить корзину для сетевых ресурсов, и тогда удалённые файлы будут помещаться в неё, а не удаляться навсегда. Каталоги, которым не требуется такая опция, добавляются в исключения. Наконец, последняя опция — антивирусное сканирование общих папок. Здесь также можно исключить отдельные каталоги. Учтите, что использование антивируса не гарантирует отсутствия вирусов и прочей дряни. Впрочем, с наиболее распространёнными зловредами он справляется.
Не забывайте создавать на жёстком диске папки, которые привязаны к сетевым ресурсам. mkdir /media/метка_тома/имя_папки Добавим в наш домен машину под управлением Windows XP Professinal. Для этого кликаем правой кнопкой по значку «Мой компьютер», выбираем «Свойства» → «Имя компьютера» → «Изменить» → «Является членом домена» и в поле вводим имя нашего домена, а затем нажимаем ОК. В приглашении вводим логин и пароль аккаунта, который имеет права администратора в домене. Остаётся только перезагрузиться, а при входе в систему выбрать наш домен и указать логин-пароль пользователя — не локального, а какого-нибудь из тех, что мы завели в Zentyal.
При первом входе придётся немного подождать, пока будет создан пользовательский профиль на локальной машине. Всё, теперь можно пользоваться ресурсами сети. Личная папка пользователя уже подключена как сетевой диск, а остальные ресурсы на сервере доступны по адресу \\netbios_имя_сервера.
Для входа в так называемый «Уголок пользователя» надо открыть в веб-браузере страничку https://имя_сервера:8888/. В нём можно поменять текущий пароль, но не более того. Кстати, для работы с веб-интерфейсом Zentyal лучше всего использовать Mozilla Firefox или Google Chrome. В том же IE он отображается кривовато.
FTP-сервер мы будем использовать для доступа к файлам на сервере из внешней сети. Устанавливаем компонент FTP, включаем модуль и в настройках сервера разрешаем
анонимный доступ к чтению файлов. Можно также включить доступ к личным каталогам пользователей. В этом случае авторизоваться при входе по FTP надо с логином-паролем пользователя домена. Также придётся открыть в файрволле доступ к серверу из внешних сетей.
Корневая папка сервера находится в директории /srv/ftp — именно туда надо закидывать файлы и папки, которые вы хотите расшарить. Увы, из-за использования vsftpd, в корне нельзя создавать ссылки на другие папки, находящиеся, к примеру, на втором жёстком диске. Однако это ограничение можно обойти. Создадим папки pub в корне FTP и на втором HDD… sudo mkdir /srv/ftp/pub mkdir /media/метка_тома/pub … а затем просто подмонтируем одну к другой. sudo mount --bind /media/метка_тома/pub /srv/ftp/pub Чтобы монтирование происходило автоматически, можно добавить последнюю команду в /etc/rc.local или же дописать следующую строчку в /etc/fstab: /media/метка_тома/pub /srv/ftp/pub bind defaults,bind 0 0 Те, кого не устраивает vsftpd, могут настроить связку proftd+ldap. ⇡#Настройка сетевого принтера
В разделе «Общий доступ к принтеру» надо отметить галочкой сетевой интерфейс, который обслуживает локальную сеть. Там же есть ссылка на веб-интерфейс CUPS, по которой надо перейти. Логин и пароль используем те же, что и для администрирования Zentyal. Нажимаем кнопку Add Printer и выбираем принтер, который подключен к серверу (он должен автоматически определиться), или же вручную указываем нужный тип принтера. Жмём Continue. В поле Location указываем место, где физически расположен принтер, и ставим галочку Share this printer. Снова нажимаем Continue.
В списке выбираем драйвер нашего принтера, нажимаем Add printer, и в самом конце нам предложат изменить некоторые параметры печати по умолчанию. Учтите, что далеко не для всех устройств есть готовые драйвера под Linux, однако многие из них подходят сразу для нескольких моделей. Если вы всё равно не нашли подходящего драйвера или PPD-файла под ваш принтер, то попробуйте выполнить две команды в консоли, которые приведены ниже, и заново добавить принтер. Если и это не помогло, то придётся ждать появления нужного драйвера. Обычно такая ситуация возникает с самыми свежими моделями принтеров. sudo apt-get install cups-driver-gutenprint sudo service cups restart
Осталось только разрешить использование принтеров группам и/или отдельным пользователям. Для подключения сетевого принтера на клиентских машинах достаточно зайти на них с аккаунтом администратора домена и добавить с помощью стандартного мастера принтер, который подключен к нашему серверу. После этого станет доступной печать по сети и из-под обычного пользователя.
⇡#Настройка прокси
С помощью прокси мы сможем ограничивать пользователей по объёму скачиваемых файлов, фильтровать контент, немного сэкономить трафик и ускорить загрузку страниц. Прозрачный прокси в нашем случае лучше не использовать. Во-первых, для HTTPS он не работает. Вовторых, мы не сможем нормально использовать групповые политики. Размер кеша зависит от числа пользователей и их активности. Здесь придётся немного поэкспериментировать. Если размер кеша окажется слишком маленьким, то данные будут чаще загружаться из Сети, а не с локального сервера. Если же он окажется слишком большим, то это тоже может замедлить загрузку. Политика по умолчанию определяет действие прокси-сервера в случае запроса к нему: обработать его, отфильтровать или проигнорировать и требовать ли при этом авторизацию с помощью логина и пароля. Мы рассмотрим вариант с авторизацией пользователей и фильтрацией контента. В список сайтов-исключений, которые не будут кешироваться, модно добавить адреса ресурсов с, например, динамично обновляющимся контентом. Естественно, в настройках браузера и прочих программ, требующих доступа в Интернет, надо указать настройки прокси-сервера. Либо, в случае Windows, прописать параметры прокси в IE для того, чтобы весь трафик шёл через него.
Фильтрация контента основывается на так называемых профилях. По умолчанию уже есть один профиль default, в который внесены всевозможные правила. Можно создать собственный профиль на базе того, который выставлен по умолчанию или собственноручно добавить в нужные места свои правила. Первый вариант фильтрации — по расширению файла. Вы добавляете нужные расширения и разрешаете или запрещаете загрузку соответствующих файлов. Аналогичным образом добавляются правила на базе MIME-типов. В фильтр по имени домена можно составить список адресов, которые будут разрешены/запрещены для посещения, или загрузить уже готовые списки в текстовом формате. Наконец, для каждого профиля можно включить антивирусное сканирование на лету и выставить уровень строгости фильтрации.
В дальнейшем созданные фильтры используются в групповых политиках и политиках объектов. И с теми, и с другими разобраться очень просто — указываем время, выбираем политику и, если надо, профиль фильтра. Обратите внимание, что для каждого объекта или группы можно задать только одно правило. Наконец, последняя возможность HTTP-прокси в Zentyal — ограничение скорости канала для сетевых объектов. Есть два пула ограничений — первого и второго класса, причём первый имеет более высокий приоритет. В первом пуле задаётся лимит по объёму скачиваемого файла, после превышения которого скорость будет урезана до указанной. Второй пул похож на первый, но в нём также указываются лимиты на скорость и объём для каждого клиента. При этом общий объём скачанных файлов суммируется и после превышения порога скорость опять урезается.
⇡#Настройка OpenVPN С помощью VPN-соединения мы сможем подключаться к серверу Zentyal извне и работать с ресурсами нашей локальной сети. Для начала нам надо сгенерировать минимум два сертификата — один для сервера, второй для клиента. Затем добавляем VPN-сервер в разделе VPN → «Сервера». На скриншоте ниже приведена типичная конфигурация сервера. Следите за тем, чтобы адресация в VPN-сети не совпадала с адресацией локальной сети или других интерфейсов. После этого переходим к загрузке клиентского пакета под нужную платформу, где надо указать внешний адрес сервера. В скачанном архиве находятся ключи и файл настроек, которые, в случае Windows-клиента, надо скопировать в каталог C:\Program Files\OpenVPN\config. Для подключения запускаем OpenVPN GUI, кликаем правой кнопкой по появившемуся в трее значку, выбираем наше соединение и кликаем по Connect.
⇡#Настройка Jabber Jabber (XMPP) — это одна из разновидностей протоколов для обмена мгновенными сообщениями. Его можно использовать, например, для быстрого общения между сотрудниками в офисе. Настраивается Jabber-сервер элементарно. Выставляем настройки в соответствии с приведёнными на скриншоте ниже и включаем Jabber-аккаунт в настройках пользователей. На компьютеры устанавливаем Jabber-клиенты и настраиваем их. Например, в популярной программе QIP Infium это делается так. Идём в «Настройки» → «Учётные записи» → «Добавить учётную запись» → «XMPP (Jabber)». Используем логин вида имя_пользователя@имя_домена, а в качестве пароля тот, что используется для входа в домен. В ростер (контакт-лист) добавляем логины коллег в том же формате, что и наш логин.
⇡#Настройка VoIP Для использования функции VoIP необходимо иметь аккаунт у какого-нибудь SIP-провайдера. В случае офиса желательно ещё и с нормальным городским номером. Недавно мы рассматривали возможность сэкономить на телефонных разговорах, так что можно воспользоваться уже настроенным аккаунтом на pbxes.org. Вообще рекомендуется хотя бы бегло пролистать указанную статью — в ней упрощённо описаны некоторые базовые понятия IP-телефонии. Итак, настраиваем подключение к SIP-провайдеру. Если ваш сервера находится за NAT, то надо указать либо внешний статический IP-адрес (если таковой выдан интернет-провайдером), либо хотя бы DDNS-имя. В противном случае у вас не будут работать входящие звонки. Демонстрационные номера — это 400, 500 и 600. Их можно использовать для проверки работоспособности клиентов. Внизу страницы есть ещё одна
опция — локальные сети. Сюда можно добавить IP-адреса или подсети, с которых разрешено подключаться к VoIP-серверу. Например, подсеть для OpenVPN-клиентов. Текущую внутреннюю локальную сеть добавлять не надо. Если вы включили поддержку конференций на этапе установки модуля VoIP, то в соответствующем разделе вы можете их добавить и задать пароль (в цифровом виде, конечно). Конференции — это своего рода многопользовательский голосовой чат.
Расширения (экстеншены, или внутренние номера, если хотите) присваиваются пользователям и группам. Для подключения к серверу в SIP-клиенте в качестве логина указывается либо доменное им пользователя, либо номер его расширения, а пароль совпадает с паролем для входа в домен. Если позвонить на расширение, которое присвоено группе пользователей, то у всех них будет отображаться входящий вызов, пока кто-нибудь не снимет трубку. В общих настройках VoIP можно указать расширение, на которое по умолчанию будут переадресовываться все входящие звонки, например экстеншен секретаря или группы сотрудников поддержки. Если внутренний номер оказывается занятым, то звонящему предлагается оставить голосовое сообщение. Прослушать его можно, набрав номер голосовой почты и введя в качестве логина и пароля номер расширения. Пароль для голосовой почты можно поменять в уголке пользователя (см. первую часть статьи). С помощью голосового меню в почте можно, в том числе, настроить её параметры. Для перевода звонка на другой экстеншен достаточно набрать # и внутренний номер, куда звонок будет перекинут. Для удержания звонка надо набрать #700, а потом с того же телефона или любого другого еще раз — #700. Для исходящих звонков перед номером надо добавлять 0. Впрочем, с внешними вызовами Zentyal работает не очень корректно, так что при большом желании есть смысл перенастроить Asterisk с использованием FreePBX, например. Да и вообще, раз уж Zentyal построен на свободных компонентах, то никто не мешает
вмешиваться в их работу, пусть и с потерей определённого уровня удобства в конфигурировании всего этого серверного хозяйства.
На этом мы завершаем ту часть материала, которая посвящена возможностям Zentyal, наиболее подходящим для офисного использования. Остались нерассмотренными несколько модулей, которые описывать особого смысла нет. Почту и корпоративный сайт лучше держать у какого-нибудь хостинг-провайдера, IDS и Groupware в маленькой компании не очень-то и нужны, а про настройку RADIUS рассказывать совершенно нечего. В дальнейшем мы рассмотрим некоторые другие возможности сервера, которые могут вам пригодиться и которые непосредственно к Zentyal уже мало относятся. Продолжение следует…
Создаем SOHO-сервер на базе Zentyal. Часть 3 11 августа 2011 Игорь Осколков Для последней части материала о домашнем сервере на базе Zentyal мы оставили самое интересное. Если в процессе чтения предыдущих частей вам хотелось перелистнуть страницу и узнать, как же настроить торренты, закачку файлов, резервное копирование и мультимедийный функционал, — милости просим, все это описано в данной заметке ⇣ Содержание Создаем 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 — логин и пароль для доступа к веб-интерфейсу, rpcport — номер порта для веб-интерфейса или стороннего клиента, а 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://sohomachine: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. Хочется верить, что материал оказался полезным и хотя бы дал толчок к дальнейшему изучению этой темы. Засим позвольте откланяться и пожелать удачного серверостроения!