Многофункциональный сервер на Ubuntu

Автор:human

Многофункциональный сервер на Ubuntu

Многофункциональный сервер для организации на Ubuntu

Содержание

  1. Введение
  2. Компоненты сервера
  3. Конфигурация сервера(требования)
  4. Установка Samba+DNS+DHCP+BIND9
  5. Установка Squid
  6. Установка webmin и добавление пользователей в samba
  7. Установка ONLYOFFICE COMMUNITY SERVER + DOCUMENT SERVER
  8. Заключение
  9. Скачать образ сервера

1.Введение

Начнем с того, что же с подвигло меня к написанию данной статьи. В одной из своих статей, я описывал процесс создания контроллера домена на ubuntu server — samba4.3samba 4.4. Особенностью этого поста заключалась в том, что мы использовали встроенный Днс сервер samba в связке с контроллером домена samba. Но я решил пойти дальше, почему бы не написать подробный, объемный мануал, о том как создать универсальное решение, которое затрагиваем минимум ресурсов и обеспечивает широкий функционал. Моя статья не претендует на оригинальность,многие скажут что она, по сути своей, является «солянкой» из многих статей в сети. Я не отрицаю этого, но всё у меня есть предложение, которое, как мне кажется, может помочь многим начинающим  ИТ специалистам в организации сетевой инфраструктуры в организации до 200 человек, а может и более. Тем более, что все решения, которые будут расписаны в данной статье являются абсолютно бесплатными, т.е основные затраты лягут на использование рабочего времени ИТ специалиста, который будет заниматься их внедрением,а так же на обучение персонала пользованием получившейся системы.

2. Итак, какие же компоненты мы будет использовать:

  • контроллер домена на Samba — для единой авторизации пользователей;
  • Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS.
  • ONLYOFFICE community server + ONLYOFFICE document server— это офисный пакет для работы онлайн, интегрированный с CRM, системой для управления документами, проектами, Диаграммой Ганта и почтовым сервером. ONLYOFFICE написан на ASP.NET и доступен на 21 языке (на 1 декабря 2015 года). На ubuntu портирован под mono.

3. Конфигурация сервера(требования)

PC x64

4 gb ram

4 ядерный процессор

2 сетевые карты(1-смотрит в локалку, 2-предоставляет интернет)

HDD для хранения данных(+1 для зеркалирования)

Ubuntu server 14.04.2 — именной !!!!!14.04.2!!!!!!. На 14.04.3 — не заводится ONLYOFFICE — не приходят письма активации. Н 14.04.4 не пробывал.

Еще один пк для onlyoffice document server, так же можно реализовать через KVM или любой другой гипервизор, тогда понадобится более мощная конфигурация.

 4. Установка SAMBA+DNS+DHCP

Итак представим, что у нас у же есть машина с установленным ubuntu server 14.04.2 и реализованным raid0(на всякий случай). Рекомендую сразу продумать механизм резервного копирования, благо в интернете их полно, по этому, писать статью на эту тему не буду, по красней мере пока. Имя сервера — main. Домен — AVANPOST. Зона — Avanpost.local.

У нас есть 2 сетевые карты

eth0 — смотрит в локалку.

eth1 — смотрит в интернет.

Настройки сети хранятся в файле /etc/network/interfaces
Редактируем его на свой вкус. В качестве редактора можно использовать nano, vi и т.п.
Для редактирования файлов понадобятся root права, их можно получить например командой

после этого, Вы будете работать из под пользователя root.
Либо Вы можете перед каждой командой, которая требует root доступа, приписывать sudo

В моем случае они выглядят вот так(для рабочей конфигурации):

После изменения сетевых настроек необходимо перезапустить сетевой сервис
/etc/init.d/networking restart

Отредактируем файл hosts

sudo nano /etc/hosts

3. Установка Samba+DNS+DHCP+BIND9

Ставим ssh(must have)

Обновляемся

Ставим сервер времени для синхронизации

Samba возьмём из github’a и соберем. Но до этого установим необходимые пакеты:

Для корректной работы Samba потребуется поддержка vfs на уровне файловой системы, для этого внесем изменения в /etc/fstab, необходимо добавить user_xattr,acl,barrier=1 в настройки корневого раздела /

должна получится строка, что-то вроде этой:

UUID=1423481c-210f-4076-92a6-48f6ce2b1339 /         ext4    user_xattr, acl, barrier=1, errors=remount-ro 0 1

после чего ребутимся

Не забываем про root права

Устанавливаем  последнюю стабильную версию Samba  (4.4).

Делаем все по порядку — переходим в каталог, гиттим, переходим в исходники, собираем и устанавливаем(занятие продолжительное)

Обязательно укажите версию пакета, после того как пройдет сборка  выйдет следующее окно

samba 4.4 ubuntu

На следующие запрос отвечаем «N»

samba 4.4 ubuntu2

На запрос об исключение исходных файлов из сборки пакета отвечаем «Y»

samba 4.4 ubuntu3

Ждем пока файлы скопируются во временный каталог и закончится установка.

После установки отредактируем файл прописав  пути до исполняемых файлов /usr/local/samba/sbin и /usr/local/samba/bin в файлах /etc/sudoers

переменная secure_path и /etc/environment переменная PATH, добавив строку :/usr/local/samba/sbin:/usr/local/samba/bin

должна получится строчка что-то вроде этой:

РЕБУТИМСЯ

Настраиваем AD SAMBA

Для манипуляций с AD в Samba существует инструмент samba-tool.
Для первоначальной настройки Samba вводим команду

Появится окно ввода параметров

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

эта команда отключает требование сложности, отключает сроки действия паролей, устанавливает минимальную длину пароля 6 символов

эта команда упрощает требования к паролю
Если же пароль не подошел по сложности и Вы увидели ошибку вроде этой:

ERROR(ldb): uncaught exception — 0000052D: Constraint violation — check_password_restrictions: the password is too short. It should be equal or longer than 7 characters!

то перед повторным выполнением первоначальной настройки, необходимо удалить содержимое каталогов /usr/local/samba/private/ и /usr/local/samba/etc/

Далее необходимо подправить настройки Samba и добавить туда следующие строки в секцию [global]

Это позволит динамически обновлять DNS-записи на сервере, при входе рабочей станции (под управлением windows) в домен и отключит поддержку печати, которая постоянно выдает ошибки в лог.

В файле /etc/resolvconf/resolv.conf.d/head необходимо указать наш DNS-сервер Samba 127.0.0.1

и перезапустить сервис resolvconf

Также установим Kerberos клиент

apt-get install krb5-user

и настроим на AD с помощью файла созданного на этапе samba-tool domain provision

Для автоматического запуска сервиса Samba необходим скрипт:

Вставляем код

Сохраняем. Его необходимо сделать исполняемым

и создать настройки по-умолчанию

Перезагружаем компьютер

Устанавливаем и настраиваем DHCP

Теперь приступим к установке DHCP сервера(для раздачи адресов)

sudo aptitude install isc-dhcp-server -y

Может выйти сообщения, что пакеты невозможно идентифицировать — нажимаем y и нажимаем Enter.

редактируем конфиг

Устанавливаем и настраиваем DHCP
и добавим в поле INTERFACES=”” в кавычках, интерфейс карты, которая смотрит в локальную сеть (в моем случае это eth0)

Сохраняем (Ctrl+O) и закрываем (Ctrl+X).
Далее открываем файл конфигурации

Так как мой сервер DHCP будет единственным в сети, в первую очередь снимаем знак # перед authoritative;

Строки:

нужно закомментировать (поставить перед ними знак #). Эти настройки мы будем указывать в другом месте.

Следующим этапом будет внесение диапазона выдаваемых адресов и срока их аренды

Сохраняем (Ctrl+O) и закрываем (Ctrl+X), после этого перезапускаем службу DHCP

Диапазон адресов 192.168.0.10 – 192.168.0.254
DNS сервер 192.168.0.1
Доменное имя “avanpost.local”
Шлюз по умолчанию 192.168.0.1
Широковещательный адрес 192.168.0.255
Срок аренды 604800 секунд

В ответ должны получить вот такой ответ

Устанавливаем и конфигурируем BIND9

и приводим файл к следующему виду(заменяя ip-адреса на свои):

Включаем в конфиг bind9 конфиг samba4

и дописываем в конец файла:

Меняем конфиг для использования bind 9.9

приводим к виду — в моем случае все было ОК — ничего не менял ( не забывем что у нас 64 битная linux):

Перезапускаем службы:
sudo service apparmor restart
sudo service bind9 restart

 Проверяем работоспособность samba

У нас должна быть запущена samba после перезагрузки

root 865 0.3 3.0 95408 31748? Ss 18:59 0:00 /usr/local/samba/sbin/samba -D

Должен работать DNS сервер

Server: 127.0.0.1
Address: 127.0.0.1#53

Name: dc1.avanpost.local
Address: 192.168.0.1

Должны быть доступны сетевые ресурсы AD

Domain=[AVANPOST] OS=[Windows 6.1] Server=[Samba 4.3.4]

Sharename       Type      Comment
———       —-      ——-
netlogon        Disk
sysvol          Disk
IPC$            IPC       IPC Service (Samba 4.3.4)
Domain=[AVANPOST] OS=[Windows 6.1] Server=[Samba 4.3.4]

Server               Comment
———            ——-

Workgroup            Master
———            ——-

Должен подключаться Kerberos

Warning: Your password will expire in 41 days on Пт. 11 марта 2016 14:53:14

Должен храниться Ticket kerberos’a

Valid starting Expires Service principal
29.01.2016 15:19:09 30.01.2016 01:19:09 krbtgt/AVANPOST.LOCAL@AVANPOST.LOCAL
renew until 30.01.2016 15:19:07

Должна проходить аутентификация netlogon

На этом данный этап завершён. Перейдем к установке SQUID

5. Установка Squid

Для начала нам нужно открыть полный доступ к интернету для всех компьютеров в нашей локальной сети. Для этого воспользуемся NATом. NAT – технология позволяющая пускать весь сетевой трафик через один адрес. То есть все запросы к интернету в локальной сети, будут обрабатываться именно сервером.

Создадим файл с настройками

Вставим в него содержимое

sudo nano /etc/nat

Сохраняем(ctrl+O и crtl+x) и делаем исполняемым

Добавим запуск NATа (строку post-up /etc/nat) в файл настройками:

в конец файла вставляем

Сохраняем и ребутимcя

После ребута продолжаем установку

После установки откроем файл /etc/squid3/squid.conf

Найдем строку http_port и преведем ее к следующему виду

т.е. наш прокси будет на ip 192.168.0.1 порте 3128 и он будет прозрачным, т.е. не надо будет ее прописывать в настройках браузера, так же если наш сервер прозрачный, то надо добавить еще один порт — 3129.

Теперь, нужно указать сеть в которой будет работать наш прокси сервер, для этого раскомментируем строку acl localnet src 192.168.0.0/16 # RFC1918 possible internal network и укажем префикс маски сети 24 ( у нас маска 255.255.255.0). В итоге строка будет такая:

Будет так

squid3-2

Расскомметируем строку, для того, чтобы компы могли иметь доступ к инету из внутренний сети

Теперь настроим кэширование. Найдем эту строку и преведем её к данному виду

Далее раскомметируем строки:

Подробнее:

maximum_object_size 100 MB — максимальный размер кэшируемого объекта
maximum_object_size_in_memory 512 KB — максимальный объем кэшированного объекта в памяти
cache_mem 256 MB — допустимый объем памяти.

Теперь настроим ведение логов:

и ниже, вставим строку — время хранения логов в днях, далее перезапись.

Сохраняемся. Мы настроивали кэширование страниц в памяти, тем самым снизив нагрузку на канал сети и ускорив загрузку страниц.

Теперь надо сделать так, чтобы весь трафик для наших клиентов сети шёл через наш прокси, для этого добавим строку в наш файл /etc/nat

В конец вставим эту строку

 

Сохраняемся и ребутимя. На этом настройка прокси закончена. Теперь ваши компьютеры будут получать адрес по DHCP и иметь выход в интернет.

6.Установка webmin и добавление пользователей в samba

Добавляем в источники

вставляем строку

Сохраняемся. Добаляем ключи

Теперь webmin доступен на адресе https://192.168.0.1:10000

Открываем webmin, в настройках ставим русский язык. Переход во вкладку неиспользумые модули и выбираем SAmba. Кликаем по настройки модуля, так как наша samba собрана из исходников то нам придется произвести небольшие настройки.

webmin samba

Приводим настройки к виду, как показано на картинке

webmin настройка samba

Нажимаем сохранить. Появится окно, значит все настройки прошли нормально.

webmin настройка samba

Теперь можем добавлять пользователей, делается это через «Система»>»Пользователи и Группы»>»Создать нового пользователя»

webmin настройка samba

Здесь можно создать только пользователя системы, чтобы добавить пользователя samba необходимо воспользоваться командой, так как webmin пока не дружит с samba 4.4 и в окне пользователи выдается такая ошибка

webmin настройка samba

Поэтому пользователей будем заводить либо через консоль либо средствами администрирования для windows — пакетом Adminpak.msi: для Windows7, для Vista + RSAT, для Windows XP Pro + вторая часть.

Устанавливаем, МЕНЮ ПУСК > Выполнить, вбиваем dsa.ms.

6. Установка ONLYOFFICE COMMUNITY SERVER + DOCUMENT SERVER

Про onlyoffice читайте здесь. После того, как мы произвели настройку нашей системы ALL-IN-ONE. Нам останется установить onlyoffice-communityserver и onlyoffice document server. Производители рекомендуют размещать их на разных серверах. В нашем случае мы разместит Community server на нащем сервере, а документ сервер на виртуальной машине. Да и коммьюнити сервер кинем на порт 81, чтобы не было конфликта (так как мы еще юзаем squid).

6.1 Установка ONLYOFFICE COMMUNITY SERVER

Установка Community Server

Будем ставить через Docker. Устанавливаем последнюю версию докера

sudo su

touch /etc/apt/sources.list.d/docker.list

nano /etc/apt/sources.list.d/docker.list

Вставляем строку в файл

deb https://apt.dockerproject.org/repo ubuntu-trusty main

Сохраняемся. Добавляем ключ

sudo apt-key adv —keyserver hkp://p80.pool.sks-keyservers.net:80 —recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Обновляемся

sudo apt-get update

Устанавливаем linux image extra. Для этого делаем

sudo apt-get install linux-image-extra-$(uname -r)

Если надо будет система доустановит необходимые пакеты.

Ставим сам докер

sudo apt-get install docker-engine

Устанавливаем и запускаем ONLYOFFICE COMMUNITY SERVER

sudo docker run -i -t -d -p 81:80 onlyoffice/communityserver

Ждем. После окончания он доступен по https://192.168.0.1:81 . Можем стразу настроить

Сохранение данных вне контейнеров

Все данные хранятся в специально отведенных для этого каталогах, томах данных, которые находятся по следующему адресу:

  • /var/log/onlyoffice для лог-файлов Document Server
  • /var/www/onlyoffice/Data для сертификатов

Для получения доступа к данным извне контейнера надо монтировать папку хоста к контейнеру. Это можно сделать, указав значение параметра -v в команде docker run.

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

Теперь нам необходимо на другой машине установить ONLYOFFICE DOCUMENT SERVER.

6.2 Установка ONLYOFFICE DOCUMENT SERVER

Document Server — это офисный пакет для работы онлайн, который включает в себя просмотрщики и редакторы текстовых документов, электронных таблиц и презентаций, полностью совместимые с форматами Office Open XML: .docx, .xlsx, .pptx и позволяющие совместно редактировать документы в режиме реального времени.

Функциональность

  • Редактор документов
  • Редактор электронных таблиц
  • Редактор презентаций
  • Приложение Documents для iOS
  • Совместное редактирование
  • Поддержка иероглифов
  • Поддержка всех популярных форматов: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

Перейдем к установке. Устанавливать будем на чистую ubuntu 14.04. Подробно описывать не буду, но я думаю что благодаря моей инструкции Вам все будет ясно. Требования:

  • Процессор
    двухъядерный с тактовой частотой 2 ГГц или лучше
  • Оперативная память
    не менее 2 Гб
  • Свободное место на жестком диске
    не менее 2 Гб
  • Дополнительные требования
    не менее 2 Гб для файла подкачки
  • Операционная система
    64-битный дистрибутив Debian, Ubuntu или другой совместимый дистрибутив с версией ядра 3.8 или выше
  • Дополнительные требования
    • mono: версия 4.0.0 или выше
    • MySQL: версия 5.6.4 или выше
    • nginx: версия 1.3.13 или выше
    • nodejs: версия 0.12 или выше
    • libstdc++6: версия 4.9 или выше

Ставим последний mono:

Ставим сам пакет документ сервера:

Добавляем источник:

Строку в конец:

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

Можно также поставить через докер. Инструкция здесь.

Ну все, теперь нам осталось запустить Onlyoffice community server, активировать его и произвести настройки. В настройках добавим сервис документов — любой справится. Так же добавим пользователей в наш Community Onlyoffice и вуаля. Инфраструктура готова.

7. Заключение

Что хотелось бы сказать в заключении. Как мы видим open source за последние годы шагнул далеко вперед и перестал быть уделом «гиков». В настоящее время любой IT специалист может развернуть функциональную сетевую инфраструктуру с минимальным затратами. Что же мы получили в итоге:

  • готовый контролер домена на последней версии samba 4.4;

  • DNS -сервер bind9;

  • DHCP сервер;

  • кэширующий прокси-сервер squid3;

  • Onlyoffice — офисный пакет для работы онлайн, интегрированный с CRM, системой для управления документами, проектами, Диаграммой Ганта и почтовым сервером.

Сколько средств мы затратили на покупку программного обеспечения?

0 рублей 0 копеек.

Какой потенциал у нашей системы?

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

Примечание. Для запуска onlyoffice после перезагрузки необходимо запускать команду

sudo docker run -i -t -d -p 81:80 onlyoffice/communityserver

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

Готовый сервер на virtualbox можете скачать здесь. Как его перевести в kvm?

Особенности образа:
-ubuntu server 14.04.4 x64;
-всё как в статье:
-удалите apache2 перед работой(sudo apt-get purge apache2)
-вам ничего не надо делать, только развернуть
-пользователь — human; пароль — 2456;
-размер — 2.gb в архиве, распакованный около 9gb.
-samba4.4rc. Пользователь Administrator, пароль Cbrt32456;

Об авторе

human administrator

    3 комментария

    ДмитрийДата:12:57 пп - Авг 25, 2016

    — большая часть lib… из списка доп пакетов, не устанавливается ((( сообщает, что невозможно установить, а так же есть held битые пакеты.
    — XATTR нет в обще в конфиге, добавить просто строчкой как у вас?
    — UUID=1423481c-210f-4076-92a6-48f6ce2b1339 / ext4 user_xattr, acl, barrier=1, errors=remount-ro 0 1 — это ваш
    в моем ….. ext2 defoults 0 2 — исправить как у вас?

    ПавелДата:7:47 пп - Окт 19, 2016

    Итак представим, что у нас у же есть машина с установленным ubuntu server 14.04.2 и реализованным raid0(на всякий случай)

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

    «Для корректной работы Samba потребуется поддержка vfs на уровне файловой системы, для этого внесем изменения в /etc/fstab, необходимо добавить user_xattr,acl,barrier=1 в настройки корневого раздела /»

    ПавелДата:11:44 пп - Окт 19, 2016

    #смотрит в интернет
    auto eth1
    iface eth0 inet dhcp

    вот тут наверное ошибка? eth0 и eth1

    Оставить ответ

    Войти с помощью: 

     

    Яндекс.Метрика