mRemoteNG + MySQL

0

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

Будем делать общую базу на Centos 7 + MariaDB.

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

Подготовка Centos

Обновления и пару утилит

Вся статья делается на голом Centos’e и вся настройка производиться с 0. Поэтому нам надо подготовить сервер.

Начинаем с обновления системы.

Так же я сразу добавляю mc, уж очень мне нравится :)

Ещё я себе ставлю Nano т.к. просто привык к нему во времена учёбы.

 

Установка MariaDB

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

Создаем файл MariaDB.repo по пути /etc/yum.repos.d/

И вставляем в него код, который даёт нам разработчик.

У меня были какие-то проблемы с установкой версии 10.5, поэтому я поставить 10.4

Запускаем установку.

После установки запускаем и добавляем в автозагрузку

Проверяем, что всё стартануло.

Примерный вывод.

Дальше нам необходимо настроить базовую защиту. Выполняем команду:

  1.  Задать пароль для пользователя root (по умолчанию его нет)

  2. Удаляем анонимных пользователей

  3. Запрещаем удаленный вход под root’ом

  4. Удаляем тестовые таблицы

  5. Обновляем таблицу привилегий

     

После выполнения этих шагов должно выйти сообщение о том, всё прошло удачно.

И небольшой тюнинг работы MariaDB, взятая с просторов интернета, которая мне очень нравится. Также в этом конфиге исправлена проблема с кодировкой.

Кириллица превращалась в вопросительные знаки.

И приводим к виду

Перезапускаем MariaDB.

 

Установка PhpMyAdmin

Для удобства администрирования базы поставим phpmyadmin. Он не обязателен, всё можно сделать из консоли. Ну и, конечно, нам нужен веб-сервер, возьмём Apache и php поставим, куда без него? :)

Установим Apache

После установки включаем Apache

Переходим по адресу http://ip-адрес-сервера/. Примерная картинка:

 

Установим php

Перезапускаем Apache, чтобы он заработал с php.

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

Сделаем бэкап оригинального конфига.

В стандартном конфиге подключения к phpmyadmin разрешены только с localhost или же 127.0.0.1, надо это поправить. Открываем конфиг и приводим к виду.

После этого перезапускаем Apache.

И пробуем зайти http://ip-адрес-сервера/phpmyadmin

Создание базы

Логинимся на phpmyadmin. Переходим в «Создать БД». Заполняем поля:

Имя: mRemoteNG

Кодировка: urf8_general_ci

Далее переходим в раздел SQL и копируем скрипт, который ниже.

Если всё прошло хорошо, вы увидите вот такой вывод.

Создание пользователя

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

Заполняем поля. Имя, разрешенные IP с которых можно подключаться, пароль, привилегии.

Настройка подключения

Я всё настраивал под версию v1.77.0 portable. Переходим на страницу загрузки на сайте разработчика.

Распаковываем в любое место. И запускаем.

Переходим во вкладку инструменты.

Открываем SQL-Server, отмечаем чек бокс на «Использовать SQL-Server для загрузки и сохранения подключения». Заполняем данные от базы, которые мы настраивали на предыдущих шагах.

Проверяем подключение. Если всё хорошо — нажимаем «Да».

И первым делом, чтобы понять, что всё заработало корректно — надо создать первое подключение. Если что-то пойдет не так, то все проблемы будут высыпаться в левом нижнем углу на вкладке «Уведомления».

Безопасность

Что касается безопасности — тут, как и ожидалось, сыровато, но присутствует.

Если заглянуть в базу, то все пароли зашифрованы. Мы видим в базе лишь отпечатки.
Если попытаться сделать экспорт файла подключений и заглянуть в XML-файл — там тоже самое. Но везде видны логины, ip:порт и другая информация. То есть в базе шифруется лишь пароль.

Не лишним будет поставить на сам сервер поставить fail2ban, выключить phpmyadmin и настроить какой-нибудь FireWall.

Шифрование и пароль

На файл подключения можно поставить пароль. Тогда, даже если сделать экспорт и импорт файла в виде XML, то выдаст ошибку. Пароль можно поставить так:

И при входе мы будем видеть запрос на пароль:

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

Разграничение прав

Про разграничение прав и речи нет. Группа пользователей всегда одна: все всё видят. Так что, если стоит задача — одним дать доступы сюда, вторым только сюда, то это можно сделать только через MySQL. Либо создавать несколько баз. Других способов я не нашел.

Результат

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

Траблшут

Везде отключен буфер обмена

По умолчанию для всех и вся проброс буфера обмена отключен. Если вы перенесили свой рабочий конфиг, то эти значения перепишет. Чтобы не ковыряться руками — зайдем в phpmyadmin, выбираем базу mRemoteNG, таблицу tblCons, делаем SQL-запрос: