Как настроить MariaDB SSL и установить безопасные соединения с различных клиентов. Установка MariaDB на Debian Установка mariadb

Здравствуйте!

Я полностью поддерживаю Ваше решение! Я перевел свои серверы на MariaDB с MySQL 3 года назад и не от хорошей жизни. Версии MySQL после покупки его компанией Oracle становились все хуже и хуже. Постоянные падения и ошибки в таблицах плохо влияли на доступность сайтов, тогда было принято решение перейти на MariaDB.

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

Выбор версии MariaDB

  • /var/run/php5-fpm.sock уже должен присутствовать на сервере? в ubuntu 16.04 не нашел такого файла в /var/run
  • Существует 2 ветки MariaDB - 5.x и 10.x.

    5.x - это версии, максимально приближенные к MySQL последних версий, они полностью совместимы с MySQL. Если вы только переходите на MariaDB с MySQL - эта линейка версий для вас.

    10.x - новая линейка версий, которую начали после версии 5.5. Эти версии полностью не копируют все новые функции последних версий MySQL, но содержат свои уникальные функции. Они по прежнему совместимы с MySQL, но, если вы только начинаете использовать MariaDB - лучше начать с версии 5.5.

    Установка MariaDB на Linux сервер

    Дистрибутивов MariaDB обычно нет в репозитариях основных дистрибутивов Linux (например в CentOS 6 и CentOS 7). Но, даже если бы были, лучше установить в систему родной репозитарий MariaDB, чтобы всегда иметь актуальные версии. Для установки репозитария yum следуйте инструкции:

    1. Создайте новый файл репозитария с помощью команды:

    vi /etc/yum.repos.d/MariaDB.repo

    Нажмите клавишу i для перехода в режим редактирования редактора vi.

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

    Скопируйте текст для файла репозитария, вставьте его в свой файл и нажмите ":wq" для выхода из редактора vi с сохранением.

    Теперь можно установить MariaDB Server и программы окружения с помощью yum:

    yum install MariaDB-server MariaDB-client

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

    Теперь вам необходимо запустить установленный сервер MariaDB и перейти к его настройке:

    Если вы все сделали правильно, увидите такое сообщение:

    Настройка MariaDB

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

    Первоначальная установка root пароля MySQL:

    Самый простой способ установить пароль root - использовать специальный скрипт, он входит в дистрибутив MariaDB:

    /usr/bin/mysql_secure_installation

    Следуйте инструкциям и установите root пароль.

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

    Я всегда рад помочь!

    Думаю всем известно, что MariaDB — это ответвление от MySQL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation. Ведущий разработчик MariaDB — это всем известный Майкл Видениус, автор оригинальной версии MySQL.

    На текущий момент актуальной является версия , которая была выпущена 13 февраля 2018 года. В новой версии MariaDB хранилище InnoDB было обновлено до выпуска 5.7.21, так же было исправлено более 100 ошибок, в том числе , которые могли быть использованы для инициирования удалённого отказа в обслуживании.

    Давайте попробуем установить новую версию на чистую систему Debian 9.3 (Stretch).

    Не буду скрывать, что мне очень нравится MariaDB и я давно отказался от использования Oracle MySQL в пользу MariaDB или Percona Server for MySQL о чем ни капли не жалею. MariaDB используется в качестве замены Oracle MySQL во многих Linux дистрибутивах. Так же MariaDB используется в качестве БД на большом количестве крупных сайтов, собственно и мой блог тоже не исключение — в качестве БД у меня используется MariaDB 10.2.

    Исходные данные: ОС Debian 9.3 (Stretch);
    Задача: Установить MariaDB 10.2.13 с минимум телодвижений и произвести базовую настройку БД;

    В интернете можно найти много статей о том как установить MariaDB на Debian, но все они предлагают довольно громоздкие решения.
    Есть так же , но она тоже не содержит простого решения, а ведь оно есть!

    Установка MariaDB 10.2.13 на Debian 9:

    1. Установка необходимых доп. пакетов:

    Apt-get update apt-get install dirmngr wget -y

    2. А теперь та самая простая магия, о которой нигде не написано — скачивание и запуск скрипта установки репозитария:

    Wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup && chmod a+x mariadb_repo_setup ./mariadb_repo_setup --mariadb-server-version=10.2

    Для информации:
    Данный скрипт проанализирует вашу систему, установит GPG-ключи и добавит репозитарий в файл /etc/apt/sources.list.d/mariadb.list
    Скрипт является официальным и поддерживает дистрибутивы: RHEL/CentOS 6 & 7, Ubuntu 16.04 LTS (xenial) & 18.04 (bionic), Debian 8 (jessie) & 9 (stretch) и SLES 12 и 15
    Скрипт так же поддерживает установку репозитариев для разных версий MariaDB, MaxScale и MariaDB Tools, Вы можете скачать его и посмотреть все опции запуска:

    ./mariadb_repo_setup --help

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

    3. Обновляем список пакетов:

    Apt-get update

    4. Устанавливаем последнюю версию MariaDB 10.2.x:

    Apt-get install mariadb-server -y

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

    После установки проверим статус работы MariaDB:

    # systemctl status mariadb ● mariadb.service - MariaDB 10.2.13 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Thu 2018-02-15 12:14:17 +05; 19s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 7270 (mysqld) Status: "Taking your SQL requests now..." CGroup: /system.slice/mariadb.service └─7270 /usr/sbin/mysqld # netstat -ltupn | grep mysql tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 7270/mysqld # ps -ef | grep [m]ysql mysql 7270 1 0 12:14 ? 00:00:00 /usr/sbin/mysqld

    А так же попробуем подключиться к БД с помощью команды mysql (т.к. на этапе установки мы оставили пароль root пустым, то использовать опции -u root -p мы не будеи):

    # mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 10 Server version: 10.2.13-MariaDB-10.2.13+maria~stretch-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type "help;" or "\h" for help. Type "\c" to clear the current input statement. MariaDB [(none)]>

    Мы успешно подключились к серверу MariaDB.

    5. Теперь запустим мастер настройки безопасности:

    Mysql_secure_installation

    На вопрос:
    Enter current password for root (enter for none):
    нажимаем Enter, текущий пароль root у нас пустой.

    И последний вопрос:
    Reload privilege tables now?
    вводим Y, да мы хотим перезагрузить таблицу привилегий для вступления их в силу.

    После этого мы выполнили минимальные меры по защите нашего экземпляра MariaDB.

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

    # mysql ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: NO)

    Как мы видим с пустым паролем root нас больше не пускают.

    Подключимся с указанием дополнительных опций и вводом пароля:

    # mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 20 Server version: 10.2.13-MariaDB-10.2.13+maria~stretch-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type "help;" or "\h" for help. Type "\c" to clear the current input statement. MariaDB [(none)]>

    Отлично, все получилось.

    На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете .

    В данной статье мы рассмотрим как установить и настроить Linux, Apache, MariaDB, PHP на Centos7 /RHEL 7. В новой версии Centos7 /RHEL 7 много изменений.

    Что такое LAMP?

    LAMP — комплект программного обеспечения на ОС, состоящей из операционной системы Linux, веб-сервера Apache, сервера базы данных MySQL и языка программирования PHP (или Perl / Python) . LAMP используется для работы тяжелых динамических веб-сайтов полностью состоящий из свободного программного обеспечения с открытым исходным кодом. В этой статье я собираюсь объяснить, как Linux, Apache, MySQL / MariaDB (замена для MySQL), PHP (LAMP) устанавливаются на CentOS 7 или RHEL 7.

    • Устанавливаем RHEL 7 или CentOS 7 сервер. Открываем терминал к серверу по ssh, у Вас должны быть права суперпользователя root.
    • Вам также понадобятся знания команд yum
    • Вам понадобится IP адрес вашего сервера, используйте следующую комманду, что бы определить IP адрес для интерфейса eth0
    ifconfig eth0 или ip a show eth0 или ip addr list eth0 | awk "/inet /{sub(/\/+/,"",$2); print $2}" или ifconfig eth0 | awk "/inet /{print $2}" 10.180.10.10
    • Полученный IP 10.180.10.10 адрес будем использовать для тестирования установки

    Итак приступим

    Установка Apache on a CentOS 7 /RHEL 7 сервер

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

    Yum install httpd

    Включите службу HTTPd в автозагрузки

    systemctl enable httpd.service ln -s "/usr/lib/systemd/system/httpd.service" "/etc/systemd/system/multi-user.target.wants/httpd.service"

    Чтобы отключить, автоматическую загрузку

    Systemctl disable httpd.service rm "/etc/systemd/system/multi-user.target.wants/httpd.service"

    Запустите HTTPd службу на CentOS 7 / RHEL 7

    systemctl start httpd.service

    На данном этапе вы можете указать в веб-браузере IP-адрес вашего сервера, http://10.180.10.10. Вы увидите стартовую страницу apache:

    Остановка HTTPd службы на CentOS 7 / RHEL 7

    systemctl stop httpd.service

    Перезапуск HTTPd службы на CentOS 7 / RHEL 7

    Просмотр статуса apache службы на CentOS 7 / RHEL 7

    Убедитесь что веб сервер запущен

    Systemctl status httpd.service

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

    Apachectl graceful

    Проверка apache / httpd на наличие ошибок конфигурации в Centos 7/ RHEL 7

    Apachectl configtest

    Конфигурация по умолчанию HTTPD сервера:

    1. По умолчанию конфигурационный файл: /etc/httpd/conf/httpd.conf
    2. Файлы конфигурации, загружаемых модулей: /etc/httpd/conf.modules.d/ (например, PHP)
    3. Выберите MPMs как загружаемые модули и события: / etc/httpd/conf.modules.d/00-mpm.conf
    4. Стандартные порты: 80 и 443 (SSL)
    5. Файлы журналов по умолчанию: /var/log/httpd/{access_log,error_log}

    Установка MariaDB на сервере CentOS 7 / RHEL

    MariaDB — обновленная замена для сервера MySQL. На RHEL / CentOS 7 вместо MySQL используется система управления базами данных MariaDB. Введите следующую yum команду для установки MariaDB сервера:

    Yum install mariadb-server mariadb

    Для запуска MariaDB, используйте команду:

    Systemctl start mariadb.service

    Чтобы убедиться, что сервис MariaDB запускается автоматически во время загрузки, введите:

    Systemctl enable mariadb.service

    Вывод команды

    Ln -s "/usr/lib/systemd/system/mariadb.service" "/etc/systemd/system/multi-user.target.wants/mariadb.service"

    Чтобы остановить / перезапуск и отключить MariaDB используйте следующие команды:

    Sudo systemctl stop mariadb.service #-- Остановить mariadb сервер sudo systemctl restart mariadb.service #-- Перзапусить mariadb сервер sudo systemctl disable mariadb.service #-- Отключить автозагрузку mariadb сервер sudo systemctl is-active mariadb.service #-- Проверка запущен ли сервер?

    Первый запуск MariaDB

    Введите следующую команду:

    /usr/bin/mysql_secure_installation

    Отвечая на вопросы Вы сможете настроить первоначальную безопасность БД

    Проверка установки MariaDB

    Введите следующую команду

    Mysql -u root -p

    Пример вывода:

    Установка PHP на CentOS 7 / RHEL 7

    Для установки PHP и модулей, такие как GD / mysql введите следующую комманду

    Yum install php php-mysql php-gd php-pear

    Необходимо перезагрузить HTTPD (Apache) сервер, введите:

    Systemctl restart httpd.service

    Для поиска всех других PHP модулей:

    Yum search php-

    Чтобы получить более подробную информацию о модуле:

    Yum info php-pgsql

    Проверка PHP на сервере

    Создайте файл с именем /var/www/html/test.php следующим образом:

    Vi /var/www/html/test.php

    Добавьте следующий код:

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

    Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 7 на базе связки популярного http сервера apache , интерпретатора php и сервера баз данных mysql , или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.

    Данная статья является частью единого цикла статьей про сервер .

    Web сервер на CentOS 7

    Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache , интерпретатора языка программирования php и сервера баз данных mysql . Познакомимся немного с каждым из них:

    1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
    2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
    3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Последнее время я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

    Подопытным сервером будет выступать , характеристики следующие:

    Процессор 2 ядра
    Память 8 Gb
    Диск 150 Gb SSD

    Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.

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

    Если у вас еще нет сервера, то вам надо выполнить . А если сервер уже установлен, то не забудьте его . Рекомендую обратить внимание именно на настройку, так как там много полезной информации, которую в рамках этой статьи я не даю — обновление системы, настройка фаервола, установка редактора и многое другое.

    Настройка apache в CentOS 7

    В CentOS служба apache называется httpd . Когда я только знакомился с этим дистрибутивом, мне было непривычно. В Freebsd и Debian, с которыми я до этого работал служба веб сервера называлась apache, хотя где-то я замечал, кажется во фрюхе, что файл конфигурации имеет имя httpd.conf. До сих пор я не знаю, почему распространились оба эти названия. Был бы рад, если бы со мной кто-то поделился информацией на этот счет в комментариях.

    Теперь приступим к установке apache . В CentOS 7 это делается очень просто:

    # yum install -y httpd

    Добавляем apache в автозагрузку:

    # systemctl enable httpd

    Запускаем apache в CentOS 7:

    # systemctl start httpd

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

    # netstat -tulnp | grep httpd tcp6 0 0:::80:::* LISTEN 21586/httpd

    Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://ip-address и увидеть картинку:

    Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

    Создаем подобную структуру:

    # mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R apache. /web

    IncludeOptional conf.d/*.conf

    Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. С оздаем там файл site1.ru.conf :

    ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /web/site1.ru/www Options FollowSymLinks AllowOverride All Require all granted ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log common

    Перезапуск apache в centos

    Теперь делаем restart apache :

    # systemctl restart httpd

    Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log . Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:

    # mcedit /web/site1.ru/www/index.html

    Апач настроен!

    # chown apache. /web/site1.ru/www/index.html

    192.168.1.25 site1.ru

    где 192.168.1.25 ip адрес нашего веб сервера.

    Теперь в браузере набираем адрес http://site1.ru . Если видим картинку:

    значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd , а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log .

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

    Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd . Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:

    # mcedit /etc/logrotate.d/httpd /web/*/logs/*.log /var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }

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

    Если вам необходимо организовать работу сайта по протоколу https , то воспользуйтесь руководством по .

    Установка php в CentOS 7

    Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

    # yum install -y php

    И следом еще несколько полезных компонентов. Установим популярные модули для php :

    # yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

    Выполним перезапуск apache:

    # systemctl restart httpd

    Создадим файл в директории виртуального хоста и проверим работу php:

    # mcedit /web/site1.ru/www/index.php # chown apache. /web/site1.ru/www/index.php

    Заходим по адресу http://site1.ru/index.php

    Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.

    Где лежит php.ini

    После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc , прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

    # mcedit /etc/httpd/conf.d/site1.ru.conf

    Добавляем в самый конец, перед

    Php_admin_value date.timezone "Europe/Moscow" php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M

    Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.

    Обновление до php 5.6 в CentOS 7

    В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6 ? В таком случае нужно выполнить обновление php.

    # wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7*.rpm

    Теперь обновляем php 5.4 до php 5.6 :

    # yum --enablerepo=remi,remi-php56 install php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

    Перезапускаем apache:

    # systemctl restart httpd

    И идем смотреть вывод phpinfo — http://site1.ru/index.php

    Отлично, мы обновили php до версии 5.6.

    Установка MySQL в CentOS 7

    Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb . Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

    Устанавливаем mariadb на CentOS 7:

    # yum install -y mariadb mariadb-server

    Добавляем mariadb в автозапуск:

    # systemctl enable mariadb.service

    Запускаем mariadb:

    # systemctl start mariadb

    Проверяем, запустилась или нет:

    # netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld

    Обращаю внимание, что она даже в системе отображается как сервис mysqld . Теперь запускаем стандартный скрипт настройки безопасности:

    # /usr/bin/mysql_secure_installation

    Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.

    Файл настроек mysql/mariadb лежит в /etc/my.cnf . Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

    Перезапуск mariadb /mysql в CentOS 7:

    # systemctl restart mariadb

    На этом все. Базовый функционал web сервера на CentOS 7 настроен.

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

    Практикум по Kali Linux

    Курс для тех, кто интересуется проведением тестов на проникновение и хочет практически попробовать себя в ситуациях, близких к реальным. Курс рассчитан на тех, у кого еще нет опыта в информационной безопасности. Обучение длится 3 месяца по 4 часа в неделю. Что даст вам этот курс:
    • Искать и эксплуатировать уязвимости или изъяны конфигурации в корпоративных сетях, web сайтах, серверах. Упор на пентест ОС Windows и на безопасность корпоративного сегмента.
    • Изучение таких инструментов, как metasploit, sqlmap, wireshark, burp suite и многие другие.
    • Освоение инструментария Kali Linux на практике - с ним должен быть знаком любой специалист по ИБ.
    Проверьте себя на вступительном тесте и смотрите подробнее программу по.

    Сейчас расскажу как установить MariaDB на Debian. Так же расскажу как ею пользоваться в своей теме «Установка MariaDB на Debian» все это будет подробно описано.

    MariaDB является лёгкой заменой MySQL. MariaDB является аналогом MySQL и она стремится быть лучшим выбором для специалистов по базам данных, которые ищут надежный, масштабируемый SQL Server. Это руководство поможет начинающим установить и понять суть работы MariaDB на Debian 7 и 6. Для достижения этой цели, MariaDB Foundation тесно сотрудничает и совместно работает с большим сообществом пользователей и разработчиков в истинном духе свободного и открытого программного обеспечения, и выпускает ПО таким образом, чтобы оно было с высокой надежностью.

    Толчком к созданию стала необходимость обеспечения свободного статуса СУБД (под лицензией GPL), в противовес неопределенной политике лицензирования MySQL компанией Oracle. Ведущий разработчик - Майкл Видениус, автор оригинальной версии MySQL и основатель компании Monty Program AB.

    В MariaDB произошел отказ от подсистемы хранения данных InnoDB и его замена на XtraDB. Также включены подсистемы Aria (en:Aria (storage engine)), PBXT и FederateX.

    Для начала, обновим ОС (чтобы было все самое новое):

    # apt-get update # apt-get upgrade

    Устанавливаем дополнения к питону:

    # sudo apt-get install python-software-properties

    Установка MariaDB

    Во-первых, нужно импортировать ключ GPG, для того что бы APT проверил целостность пакетов и загрузил все:

    # apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

    Создаем собственный MariaDB файл sources.list чтобы добавить репозиторий в него:

    # vim /etc/apt/sources.list

    Установка MariaDB 5.5 для Debian 7 wheezy

    # MariaDB 5.5 repository list - created 2014-11-15 17:08 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main

    Установка MariaDB 5.5 для Debian 6 squeeze

    # MariaDB 5.5 repository list - created 2014-11-15 17:14 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main

    Установка MariaDB 10.0 для Debian 7 wheezy

    # MariaDB 10.0 repository list - created 2014-11-15 17:21 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main

    Установка MariaDB 10.0 для Debian 6 squeeze

    # MariaDB 10.0 repository list - created 2014-11-15 17:22 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main

    Установка MariaDB 10.1 для Debian 7 wheezy

    # MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main deb-src http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main

    Установка MariaDB 10.1 для Debian 6 squeeze

    # MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main deb-src http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main

    После этого, обновляем систему (список всех репозиторией) и устанавливаем сервер с MariaDB:

    # sudo apt-get update # sudo apt-get install mariadb-server

    После чего начнется установка сервера MariaDB. Я выбрал 10.0 версию и по этому, приведу пример установки. В ходе установки, вас попросят ввесли пароль для MariaDB пользователя — root.

    Вводим пароль и нажимаем OK. Так же нужно ввести 2-й раз (подтверждение). Процесс установки займет пару минут.

    Использование MariaDB

    В этом разделе вы узнаете, как подключиться к MariaDB и как пользоваться основными командами SQL.

    Стандартный инструмент для взаимодействия с MariaDB является программа-клиент MySQL. Для начала, выполните следующую команду для подключения к MariaDB в качестве пользователя root:

    # mysql -u root -p

    Вводим пароль, тот который Вы вводили (создали) при установке.

    Давайте попробуем создать простую базу данных, которую мы позже будем заполнения данными. Введите следующие команды, чтобы создать базу данных с именем TEST_DB, владельцем которого будет являться новый пользователь Test_User, так же командой установим пароль secret_password для пользователя:

    MariaDB [(none)]> CREATE DATABASE test_db; MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO test_user@localhost IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Последняя строка (команда) выходит из пользователя root на MariaDB. И сейчас войдем как пользователь test_user:

    # mysql -u testuser -p

    Введем команду для того чтобы использовать только что созданную БД (test_db):

    MariaDB [(none)]> USE test_db;

    Создайте новую таблицу и заполните ее некоторым данным:

    MariaDB [(none)]> CREATE TABLE products (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price DECIMAL(6,2)); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("MacBook_Pro", 3200.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("Asus", 340.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("HP", 745.0);

    Убедитесь, что новые данные нормально вставлены:

    MariaDB [(none)]> SELECT * FROM products;

    Выйдите из клиента MariaDB выполнив:

    MariaDB [(none)]> quit

    Для получения дополнительной информации о командах SQL выполните:

    MariaDB [(none)]> \h

    Настройка MariaDB

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

    # vim /etc/mysql/my.cnf

    перезапустите сервер, выполнив следующую команду:

    # service mysql restart

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

    # mysql_secure_installation

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

    Удаленные соединения пользователей

    Давайте взглянем на то, как разрешить ранее созданному пользователю Test_User подключения к MariaDB удаленно (по умолчанию, MariaDB розрешает подключения только с локального хоста).

    Открытие сервера MariaDB к Интернету делает его менее безопасным. Если вам необходимо подключить с другого сервера, то убедитесь, что вы применили правила брандмауэра, разрешающие соединения только с определенных IP-адресов.
    Во-первых, мы должны предоставить пользовательские соединения с удаленными хостами для пользователя Test_user, для этого нужно войти в MariaDB как root:

    # mysql -u root -p

    Разрешаем пользователю Test_User подключения с удаленных хостов:

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO test_user@"%" IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Настройка MariaDB слушать все сетевые интерфейсы. Откройте файл /etc/mysql/my.cnf:

    # vim /etc/mysql/my.cnf

    […]
    bind-address = 0.0.0.0
    […]

    Перезапустите сервер:

    # service mysql restart

    Проверка соединения с локального компьютера на вашем MariaDB сервере, заменив Test_User с вашим именем пользователя, и test_domain.com с вашим доменом или IP-адресом:

    # mysql -u test_user -h test_domain.com -p

    Если вошли успешно, вы должны увидеть приветствие MariaDB и shell prompt.

    Тюнинг MariaDB

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

    Установите MySQL тюнер, выполнив следующую команду:

    # apt-get install mysqltuner

    Запустите MySQL тюнер с помощью следующей команды:

    # mysqltuner

    После чего он вам выдаст много весьма полезной информации. Обратите внимание рекомендации в конце. Это укажет вам, что необходимо изменить (какие переменные должны быть настроины) в разделе вашего /etc/mysql/my.cnf файла.

    Как сбросить MariaDB root пароль?

    Если вы забыли свой пароль суперпользователя (пароль от root), вы можете легко сбросить его, следуя приведенным ниже инструкциям.

    Остановите сервер MariaDB:

    # service mysql stop

    Запустите сервер с skip-grant-tables, таким образом, вы можете войти на MariaDB без пароля:

    # mysqld_safe --skip-grant-tables &

    Теперь вы можете подключиться к серверу MariaDB как root без пароля:

    # mysql -u root

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

    MariaDB [(none)]> USE mysql MariaDB [(none)]> UPDATE user SET password=PASSWORD("yournewpassword") WHERE user="root"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Перезапустите сервер MariaDB:

    # service mysql restart

    Подключитесь к серверу MariaDB, используя новый пароль:

    # mysql -u root -p

    Установка MariaDB на Debian завершена. Надеюсь было понятно.



    
    Top