- •Некоторые термины
- •Пользователи субд
- •Дискреционная защита
- •Мандатная защита
- •1. Введение
- •1.1 Функциональные возможности
- •1.2 Необходимые условия для защиты
- •2. Установка MySql
- •2.1 Компиляция mysql
- •2.2 Копирование файлов конфигурации
- •2.3 Запуск сервера
- •2.4 Проверка подключений
- •3. Chrooting сервер
- •3.1 Операционная система
- •3.2 Подготовка chroot среды
- •3.4 Создание структуры каталогов
- •3.5 Сжатие паролей и групп
- •3.6 Специальные соображения
- •3.8 Проверка конфигурации
- •4. Конфигурирование сервера
- •4.1 Отключение удаленного доступа
- •4.2 Улучшение локальной защиты
- •4.3 Изменение пароля администратора
- •4.4 Удаление значений по умолчанию users/db
- •4.6 Удаление файлов истории команд
- •5. Связь между php и mysql
- •6. Финальные шаги
- •6.1 Заключение
- •Реализация системы защиты в ms sql Server
- •Проверка полномочий
2.2 Копирование файлов конфигурации
После выполнения вышеупомянутых команд, мы должны скопировать заданный по умолчанию файл конфигурации в соответствии с ожидаемым размером базы данных (маленькая, средняя, большая, огромная). Например:
cp support-files/my-medium.cnf /etc/my.cnf chown root:sys /etc/my.cnf chmod 644 /etc/my.cnf
2.3 Запуск сервера
Теперь mysql полностью установлен и готов к выполнению. Мы можем запустить mysql сервер, выполнив следующую команду:
/usr/local/mysql/bin/mysqld_safe
2.4 Проверка подключений
Попробуйте установить связь с базой данных следующим образом:
/usr/local/mysql/bin/mysql -u root mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.0.13-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)
mysql> quit;
Как только подключение успешно установлено, мы можем остановить работу базы данных:
/usr/local/mysql/bin/mysqladmin -u root shutdown
и начать защиту программного обеспечения. Иначе, мы должны будем проанализировать информацию, сохраненную в файле регистрации /usr/local/mysql/var/`hostname`.err, и устранить причину проблемы.
3. Chrooting сервер
Первый шаг защиты mysql должен подготовить chrootedсреду, в которой будет выполняться mysql сервер. Chrooting методика была подробно описана в первой статье этого цикла ("Защита Apache: Шаг за шагом, поэтому если Вы не знакомы с этой методикой или не знаете почему рекомендуется chrooting, пожалуйста прочтите эту статью.
3.1 Операционная система
Как и в предыдущих статьях, мы будем основываться на операционной системе FreeBSD 4.7. Однако представленные методы должны также применяться и на более современных unix и unix-подобных системах.
3.2 Подготовка chroot среды
Чтобы подготовить chrooted среду, мы должны создать следующую структуру каталога:
mkdir -p /chroot/mysql/dev mkdir -p /chroot/mysql/etc mkdir -p /chroot/mysql/tmp mkdir -p /chroot/mysql/var/tmp mkdir -p /chroot/mysql/usr/local/mysql/libexec mkdir -p /chroot/mysql/usr/local/mysql/share/mysql/english
3.3 Установка прав доступа
Права доступа к вышеупомянутым каталогам должны быть установлены следующим образом:
chown -R root:sys /chroot/mysql chmod -R 755 /chroot/mysql chmod 1777 /chroot/mysql/tmp
3.4 Создание структуры каталогов
Затем, необходимо скопировать следующие файлы в новую структуру каталога:
cp/usr/local/mysql/libexec/mysqld/chroot/mysql/usr/local/mysql/libexec/
cp/usr/local/mysql/share/mysql/english/er rmsg.sys/chroot/mysql/usr/local/mysql/share/mys ql/english/
cp/etc/hosts/chroot/mysql/etc/
cp/etc/host.conf/chroot/mysql/etc/
cp/etc/resolv.conf/chroot/mysql/etc/
cp/etc/group/chroot/mysql/etc/
cp/etc/master.passwd/chroot/mysql/etc/passwords
cp/etc/my.cnf/chroot/mysql/etc/
3.5 Сжатие паролей и групп
Из файлов: /chroot/mysql/etc/passwordsи /chroot/mysql/etc/group мы должны удалить все строки кроме учетной записи mysql и группы. Затем, мы должны, создать базу данных паролей (допустимо только в FreeBSD):
cd /chroot/mysql/etc pwd_mkdb -d /chroot/mysql/etc passwords rm -rf /chroot/mysql/etc/master.passwd
