Сегодня 13 декабря 2017
18+
Мастерская

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

Создаем 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

Ну и включить напоследок автоматическое обновление ПО в настройках.

На этом, пожалуй, прервёмся. В следующей части мы разберём создание групп и пользователей, настройку файлообменника, установку торрент-клиента и ряд других вещей.

 
 
Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме
⇣ Комментарии