Позднее Ctrl + ↑

Mail Server и Mail Station

Из бесплатных решений у synology есть два пакета, почтовый сервер на базе Postfix и пользовательский web клиент.

давайте рассмотрим функционал сервера

  • есть поддержка как локальных пользователей, так и доменных (есть возможность использовать как корпоративное решение)
  • использование основного домена и элиасов, т. е. пользователь автоматически получает почту с адресов user@domain.ru, user@aliase.ru и т. д.
  • поддержка протоколов как IMAP, так и POP3
  • обратите внимание на использование ssl, этот важный бонус вы оцените позже

безопасность прокачена просто на высоте, есть возможность использовать все современные технологии

  • защита от СПАМа с использованием модуля SpamAssassin
  • поддержка блэклистов DNSBL
  • есть возможность включить антивирус на базе ClamAV, я не включаю, т. к. значительно тратится память, а эффективность под вопросом, чаще происходят ложные срабатывания
  • можно создавать чёрные и белые списки, глобально для всех пользователей сервера, кстати очень гибкий редактор, см. ниже
  • можно установить ежедневные квоты на отправку сообщений, можно общее значение, можно индивидуально пользователям, удобно если чей-то ящик взломают — это не перерастет в лавинную отправку спама
  • фильтр вложений, можно задать запрещенные расширения файлов для пересылки (по-умолчанию, присутствует список самых распространенных исполняемых файлов)

подробнее настройка чёрного и белого списка, обратите внимание на возможности делать исключения

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

и самое, на мой взгляд, важное, это настройки SPF, DKIM и защита DMARK, сейчас современный почтовый сервер не может существовать без всего этого
если вы не знаете, что это такое — не беда, открываете Справку и читаете как правильно настроить DNS

да, Справка в Synology очень крутая!

есть возможность использовать псевдонимы не только внутренних пользователей, а можно настроить пересылку на внешние ящики, это круто

автоматическая скрытая копия, это что-то из области слежения

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

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

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

настройка пересылки, автоответа и т. д. с поддержкой глобальных переменных

Подведем итог, это бесплатная версия сервера (позже расскажу про платную), на мой взгляд реализован функционал современного почтового сервера на 95%. Есть все самые основные вещи, и работает сразу из коробки, не нужны «танцы с бубном». Очень удобный интерфейс управления. Рекомендую как частный почтовый сервер, до корпоративного не хватает адресной книги с возможностью делиться контактами и расшаривания почтовых папок.

PS обещал рассказать про ssl, когда вы настроите домен, пропишите в DNS адрес сервера, то с помощью synology сможете выпустить заверенные сертификаты Let’s Encrypt для IMAP, SMTP и POP3, в будущем synology будет автоматически перевыпускать эти сертификаты, т. е. настроили и забыли

Mail Station — это почтовый web-клиент RoundCube (https://roundcube.net). очень урезанный, без возможности отмечать сообщения как СПАМ, но в целом годный

т. к. RoundCube можно неплохо прокачать за счет огромного количества плагинов, то все в ваших руках

создание виртуальной машины в synology

А вы знали, что на synology можно создать полноценную виртуальную машину? Можно делать снапшоты по расписанию и это все бесплатно! В платных функциях все гораздо круче, возможность создания кластера, с балансировкой нагрузки и т. д.

Вот пример создания виртуальной машины, поставим windows 10 на synology

ставим пакет Virtual Machine Manager и запускаем его

переходим в «Виртуальные машины» и жмем кнопку «Создать»

в нашем случае выбираем Microsoft Windows

Хранилище — наше хранилище

основные настройки: название виртуальной машины, сколько ядер процессора выделим, сколько оперативной памяти

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

Если нажать на шестерню, то откроются дополнительные настройки, если для вас совсем уж критично свободное пространство, то можно поставить галочку «Реорганизация пространства», тогда при освобождении пространства на виртуальном машине, диск будет «сжиматься».

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

для виртуальных машин можно указать свой mac адрес, некоторые лицензионные сервера привязываются к mac адресу компьютера на котором запущены, и потребляют немного ресурсов, имеет смысл выносить их на виртуалки.

основные настройки виртуальной машины, указываем файл с образом системы для инсталляции (iso), обязательно после установки системы поставьте Guest tools, чтобы не возникало проблем с драйверами, автозапуск — виртуальная машина будет автоматически запускаться после старта сервера synology, остальное в нашем случае оставляем по умолчанию, добавлю лишь USB, чтобы была возможность пробрасывать в виртуалку USB донглы, воткнутые в synology.

далее настройка безопасности и старт виртуальной машины

нажимаем кнопку «Подключиться» и у нас открывается отдельная вкладка в браузере с vnc клиентом, через который мы можем управлять виртуальной машиной.

Все! На все ушло не более 5 минут.

поднимаем свой сервер traccar и настраиваем GPS трекер для работы с ним

Был куплен у китайцев такой трекер:

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

Сразу оговорюсь, содержать свой сервер для одного устройства получится дороже (в моем случае $5 и безграничное количество устройств), чем платить за чужой (от 80 руб. за устройство).

Поискав готовые решения, я наткнулся на проект https://www.traccar.org, проект открытый, есть исходники на github https://github.com/traccar/traccar

для начала я проверил работоспособность прибора, для этого написал короткий скрипт на php, по сути, это сокет сервер, который слушает порт 999 и выводит в консоль всю информацию, которая приходит

<?php
set_time_limit (0);
$address = '127.0.0.1';
$port = 999;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, 0, $port) or die('Could not bind to address');
socket_listen($sock);
while (true) {
    $client =  socket_accept($sock);
    $input =  socket_read($client, 1024000);
    echo "$input\n";
    socket_close($client);
}
socket_close($sock);
?>

через NAT на роутере открыл порт наружу

дальше приступаем к настройкам трекера (брал с этого сайта http://miradmin.ru/gps-tracker-sinotrack-st-901/), далее транслирую то что использовал сам (команды отправляются смс сообщениями)

  1. Регистрируем номер телефона, с которого будем управлять устройством
    899977777770000 1
    89997777777 — номер телефона
    0000 — пароль (по умолчанию четыре ноля)
    1 — номер ячейки (можно зарегистрировать до 3 телефонов)
  2. Меняем пароль, конечно же
    77712340000
    777 — команда
    1234 — новый пароль
    0000 — старый пароль
  3. Меняем часовой пояс
    8960000E03
    896 — команда
    0000  — пароль
    E03 — часовой пояс Москвы
  4. Выбираем режим передачи данных (SMS или GPRS)
    7100000
    710 — команда для GPRS
    0000  — пароль
  5. Настройка точки доступа для GPRS
    Мегафон: 8030000 internet gdata gdata
    МТС: 8030000 internet.mts.ru mts mts
    Билайн: 8030000 internet.beeline.ru beeline beeline
    ТЕЛЕ2: 8030000 internet.tele2.ru
    0000  — пароль
  6. Задаем интервалы отправки сообщений на сервер при включенном зажигании и в режиме оффлайн
    800000 5
    каждые пять секунд при включенном зажигании
    8090000 300
    каждые пять минут при выключенном
    0000  — пароль
  7. Настройка спящего режима
    SLEEP0000 5
    после выключения зажигания через пять минут устройство «заснет», перестанет присылать сообщения на сервер, но будет реагировать на смс и звонки
    0000  — пароль
  8. Настройка сервера данных
    8040000 123.123.123.123 999
    123.123.123.123 — ip адрес сервера
    999 — порт сервера
    0000  — пароль

после указанных настроек я стал получать сообщения с трекера:

*HQ,9170631826,V1,105509,A,5576.7575,N,03761.0545,E,000.13,000,210919,FBFF9FFF,250,99,27914,55187#
*HQ,9170631826,V1,105509,A,5576.7578,N,03761.0548,E,000.13,000,210919,FBFF9FFF,250,99,27914,55187#
*HQ,9170631826,V1,105554,A,5576.7577,N,03761.0548,E,000.23,000,210919,FBFFBBFF,250,99,27914,55187#
*HQ,9170631826,V1,105624,A,5576.7575,N,03761.0549,E,001.05,000,210919,FBF7BBFF,250,99,27914,31740#

отлично! осталось создать сервер и транслировать данные туда

для начала я выбрал площадку для размещения виртуального сервера, делал на DigitalOcean
если хотите помочь нам и получить $25 на счет, воспользуйтесь реферальной ссылкой https://m.do.co/c/74f25c68fa79

используйте самый дешевый Droplet за $5 в месяц с ubuntu на борту

дальше в сжатой форме будут только команды для установки недостающих компонент и настройки конфигураций

$ apt-get update
$ apt-get upgrade
$ apt-get install mc

ставим java

$ apt-get install default-jdk

ставим mysql

$ apt-get install mysql-server mysql-client

далее запускаем mysql, настраиваем пароль пользователя root и создаем базу с пользователем для работы traccar

не забудьте указать свои
root_password — пароль root
user_password — пароль пользователя traccar_user

$ mysql -u root -p

USE mysql;
UPDATE USER SET authentication_string=PASSWORD(«root_password») WHERE USER=’root’;
FLUSH PRIVILEGES;

CREATE DATABASE traccar DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER ’traccar_user’@’localhost’ IDENTIFIED BY ’user_password’;
GRANT ALL ON traccar.* TO ’traccar_user’@’localhost’;
FLUSH PRIVILEGES;
EXIT;

качаем и устанавливаем сервер

$ cd /tmp

на момент написания статьи была актуальная версия 4.6, посмотреть версию можно тут https://github.com/traccar/traccar/releases/

$ wget https://github.com/traccar/traccar/releases/download/v4.6/traccar-linux-64-4.6.zip
$ unzip traccar-linux-64-4.6.zip

$ ./traccar.run
$ cd /opt/traccar/conf

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

$ mcedit traccar.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
    <entry key='config.default'>./conf/default.xml</entry>
    <entry key='database.driver'>com.mysql.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://localhost:3306/traccar?useSSL=false&amp;allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>traccar_user</entry>
    <entry key='database.password'>user_password</entry>
</properties>

запускаем службу

$ service traccar start

смотрим запустился ли сервис

$ service traccar status

если все хорошо, получаем следующий вывод

● traccar.service - traccar
   Loaded: loaded (/etc/systemd/system/traccar.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-09-24 07:44:48 UTC; 1 day 3h ago
 Main PID: 8519 (java)
    Tasks: 30 (limit: 1152)
   CGroup: /system.slice/traccar.service
           └─8519 /opt/traccar/jre/bin/java -jar tracker-server.jar conf/traccar.xml

теперь можно подключиться непосредственно к web интерфейсу
http://ip_адрес_droplet:8082

по-умолчанию вводим:
Email: admin
Пароль: admin

не забудьте настроить наше устройство для передачи данных на сервер, для этого отправьте СМС
8040000 123.123.123.123 5013
123.123.123.123 — ip адрес нашего Droplet
5013 — порт сервера
0000  — пароль трекера

Важно! Трекер Sinotrack ST-901 использует протокол H02? соответственно указываем порт 5013!!!

В web интерфейсе добавляем устройство (левый верхний угол)

Имя: имя нашей машинки
Идентификатор: номер трекера (ID под штрих кодом)

через некоторое время машина появится на карте

Все! Для работы этого более чем достаточно!

Дальше пойдет дополнительная информация (необязательные опции)

  1. Для начала создал нового пользователя, чтобы не подключаться все время как admin
  2. Изменил единицы измерения скорости (в узлах скорость не очень)
    зашел Аккаунт — Атрибуты — добавить
  • Имя: Единица скорости
  • Значение: км/ч
  1. Сервер — Слой карты указал «Яндекс Карты», работают быстрее и стабильнее

Важная для меня опция — это ssl подключение к web интерфейсу, не хочется чтобы мой трафик мог видеть или менять оператор связи. Для этого вам понадобится доменное имя, и доступ к настройкам DNS, подтверждённый ssl сертификат не получится выпустить на ip адрес.

Для начала, создаем в DNS запись A, где для нашего домена (например, car.domain.ru) ассоциируем ip адрес нашего Droplet.

настраиваем nginx в режиме reverse proxy и подключаем Let’s Encrypt

$ apt-get install nginx
$ cd /etc/nginx
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt

приводим конфиг к следующему виду, не забудьте заменить в четырех местах car.domain.ru на ваш домен

$ mcedit /etc/nginx/sites-enabled/default

server {
    listen 80;
    server_name car.domain.ru;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name car.domain.ru;
    ssl_certificate           /etc/nginx/cert.crt;
    ssl_certificate_key       /etc/nginx/cert.key;
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    access_log            /var/log/nginx/car.domain.ru.access.log;
    client_max_body_size 10M;
    client_body_buffer_size 128k;

    location / {
      proxy_set_header        Host $host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_pass          http://localhost:8082;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8082 https://car.domain.ru;
      proxy_redirect ws://localhost:8082/api/socket /api/socket;
      proxy_send_timeout 86400s;
    }
}

Важно сделать именно так, в web интерфейсе используется WebSocket, который тоже надо правильно транслировать через прокси.

$ service nginx restart

Теперь вы можете открывать в браузере вашу карту по имени https://car.domain.ru и весь трафик к серверу и обратно будет шифроваться.

И самая малость, сделаем красиво, добавим подтвержденный сертификат. Нам поможет certbot (https://certbot.eff.org).

$ apt-get install software-properties-common
$ add-apt-repository universe
$ add-apt-repository ppa:certbot/certbot
$ apt-get update

$ apt-get install certbot python-certbot-nginx
$ certbot —nginx

далее будет предложено указать e-mail, выбрать найденные домены из конфигурации и сделать редирект http на https автоматически.

проверим автоматический выпуск сертификата:

$ certbot renew —dry-run

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

$ crontab -e

Например, каждого первого числа месяца, в 3 часа 12 минут будет попытка перевыпустить сертификат.
Добавьте строчку в конце (не забудьте, что в crontab нужно оставлять последнюю пустую строку).

12 3 1 * * /usr/bin/certbot renew

 6 комментариев    10480   2019   GPS   Sinotrack   ST-901   traccar
Ранее Ctrl + ↓