No name

Links

Software
OtherSoft
Images
Настройка сервера под управлением Debian с нуля

Настройка сервера под управлением Debian с нуля


visibility185 2021-04-03 20:47:23

Задачи возложенные на сервер:

1) Резервное копирование данных с помощью программного RAID 1

2) Видеосервер с базой данных MySQL вместо стандартной MiriaDB

3) Веб сервер для размещения сайтов и прочего



Настройка RAID


Есть два одинаковых, неразмеченных, ССД по 120 Гб. При установке нам будет предложено разметить пространство автоматически или в ручную, нажимаем Manual.

Для достижения поставленной задачи будут созданы следующие разделы

1) Swaparea – 2Gb

2) / (основная система) – 90Gb

3) /videorecords – 28Gb

Размечаем первый диск, нажимаем на FREE SPACE.

Файл подкачки делаем Primal, где файловая система выбираем Использовать для RAID

Системную область делаем Priamal, ставим метку Загрузочный, Использоваться для RAID

Для видеозаписей делаем Logcal, Использовать для RAID

Второй диск нужно разметить точно так же как и первый.

После настройки переходим в пункт Конфигурация RAID, создать MD оставляем настройки по умолчанию и по порядку, в нашем случае 3 раза, создаем разделы для SWAP, /, /videorecord. То есть три раза создаем MD каждый раз отмечая галочкой соответствующие разделы на двух дисках.

После успешного выполнения операции у нас появятся 3 области RAID, щелкаем на каждую из них и настраиваем:

1) Swap – пункт Не использовать меняем на Swaparea

2) / - пункт Не использовать меняем на Ext4 монтировать как /

3) Видеораздел пункт Не использовать меняем на Ext4, монтировать как вписываем вручную /videorecords

Нажимаем на завершение разметки, если все сделано верно тогда установка пойдет дальше без ошибок.

ВАЖНО на этапе разметки запомнить пути ваших дисков, например /dev/sda /dev/sdb

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


Установка MySQL

Устанавливаем SUDO

# apt install sudo

Устанавливаем gnupg

# sudo apt install gnupg

Переходим во временную папку, скачиваем файл конфигурации, настраиваем, устанавливаем

# cd /tmp

# wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb

# sudo dpkg -i mysql-apt-config*

Выбираем нужную версию и жмем Ок

# sudo apt update

# sudo apt install mysql-server

В процессе установки будет предложено выбрать метод шифрования, выбираем Legacy, так ZoneMinder не умеет работать с новым методом.

После установки вводим

# sudo systemctl status mysql

Если статут зеленый, установка прошла успешно


Установка ZoneMinder

Устанавливаем Веб сервер, PHP, мод php для apache модуль для обращения к бд.

# sudo apt install apache2 php libapache2-mod-php php-mysql

Добавляем репозиторий

sudo nano /etc/apt/sources.lis

# Zoneminder repo

deb https://zmrepo.zoneminder.com/debian/release-1.34 buster/

Устанавливаем модуль для работы с https

# sudo apt install apt-transport-https

Качаем модуль ZoneMinder

# wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add –

Качаем и устанавливаем ZoneMinder

# sudo apt update

# sudo apt install zoneminder

# sudo systemctl enable zoneminder.service

# sudo systemctl start zoneminder

# sudo a2enconf zoneminder

# sudo a2enmod rewrite

# sudo service apache2 reload

При обращении по адресу ваш_ип/zm будет ошибка подключения к БД

Unable to connect to ZM db.SQLSTATE[HY000] [1045] Access denied for user 'zmuser'@'localhost' (using password: YES)

Это нормально, приступаем к конфигурации.

Для отладки я разрешил пользователю root авторизоваться по SSH:

# sudo nano /etc/ssh/sshd_config

Добавляю строку

PermitRootLogin yes

Перезапускаю сервис

Авторизовались в WinSCP переходим по пути /etc/zm/zm.conf

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

Создаем БД для zoneminder

# mysql –u root –p< /usr/share/zoneminder/db/zm_create.sql

Переходим в БД создаем пользователя и даем ему права на БД.

# CREATE USER 'ИМЯ ПОЛЬЗОВАТЕЛЯ'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';

# GRANT ALL PRIVILEGES ON zm.* TO 'ИМЯ ПОЛЬЗОВАТЕЛЯ'@'localhost';

# FLUSH PRIVILEGES;

Если все сделано верно то по пути http://ваш_ип/zm выдаст окно соглашения.

Подключаем отдельную область для записей

# sudo chown -R www-data:www-data /videorecords

Переходим в опции zm > storage и указываем путь до нового хранилища

Указываем пункт do delete – NO чтобы при переполнении хранилища удалялись только старые записи, а не все полностью.

По факту файлы там храниться не будут поэтому переходим в

/etc/zm/conf.d/ 01-system-paths.conf меняем там путь по умолчанию на тот который нужен и перезагружаем zoneminder

Устанавливаем часовые пояса в системе, php.ini, MySQL и zoneminder

Система

timedatectl list-timezones – смотрим список

timedatectl set-timezone Europe/Moscow – Устанавливаем свой

php.ini

sudo nano /etc/php/7.3/apache2/php.ini > data.timezone

zoneminder

option > system > timezone (устанавливаем свое) > save

MySQL

# musql –u root –p

# mysql> SELECT NOW(); - проверяем время

# SET time_zone = '+05:00'; - задаем вашу зону

# quit;

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

Alarm Check Method — AlarmedPixels

Min/Max Pixel Threshold (0-255) — 15

Min/Max Alarmed Area — 1

Для того, чтобы обезопасить сайт от постороннего вмешательства, предлагаю установить дополнительную авторизацию со стороны Apache. Создаем файл с логином и паролем, в шифрованном виде:

# htpasswd -c /etc/apache2/.htpasswd ИМЯ ПОЛЬЗОВАТЕЛЯ > задаем пароль

В конфигурационный файл заносим изменения

/etc/apache2/conf-available/zoneminder.conf


Настройка Apache

Подключаем модуль SSL

#sudo a2enmod ssl

Создаем папку для сертификатов

Конфигурируем Virtual Hosts

Подробно описывать не буду, так как итак все понятно

Подключаем новый конфигурационный файл

# sudo a2ensite название файла

# sudo systemctl reload apache2

Теперь сайт доступен по защищенному протоколу

*если вы устанавливаете какой-либо готовый сайт убедитесь, чтобы у папки был владелец www-data



Полезные ссылки:

1) Создание программного RAID 1

2) Установка MySQL

3) Установка zoneminder

4) Установка времени MySQL

5) Как улучшить чувствительность срабатывания детектора движения в ZoneMinder при режиме записи Modect

Back