Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание структуры каталогов
Затем, необходимо скопировать следующие файлы в новую структуру каталога: 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/ Сжатие паролей и групп Из файлов: /chroot/mysql/etc/passwords и /chroot/mysql/etc/group мы должны удалить все строки кроме учетной записи mysql и группы. Затем, мы должны, создать базу данных паролей (допустимо только в FreeBSD): cd /chroot/mysql/etc Специальные соображения Как и в случае с Web -сервером Apache, мы должны создать специальный файл устройства /dev/null: Ls -al /dev/null Crw-rw-rw- 1 root sys 2, 2 Jun 21 18:31 /dev/null Mknod /chroot/mysql/dev/null c 2 2 Chown root:sys /chroot/mysql/dev/null Chmod 666 /chroot/mysql/dev/null Теперь необходимо скопировать базу данных mysql, которая содержит таблицы, созданные в процессе инсталляции mysql: Cp-R/usr/local/mysql/var//chroot/mysql/usr/local/mysql/var Chown-R mysql:mysql/chroot/mysql/usr/local/mysql/var 3.7 Локализация Если будет использоваться какой-либо язык кроме английского, то необходимо будет скопировать нужный набор символов из каталога /usr/local/mysql/share/mysql/charsets. Проверка конфигурации Теперь MySQL готов к запуску в chrooted среде. Мы можем проверить, правильно ли запускается MySql, выполнив следующую команду: chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld & Если произойдет какая-либо ошибка, то необходимо будет использовать команду truss или подобную ей, типа ktrace/kdump, strace, и т.д. Это поможет нам определить и устранить причину проблемы. Заметьте, что для выполнения процесса mysqld, вместо chroot, как в случае Apache или PHP, использовалась программа chrootuid. Главное отличие состоит в том, что chrootuid меняет владельца запущенного процесса. В нашем примере, mysqld выполняется в chrooted среде, но владелец процесса - не root, а пользователь mysql. C hrootuid во многих операционных системах не установлен по умолчанию, поэтому необходимо загрузить и установить эту программу вручную. Программа Chrootuid может быть загружена здесь. Конфигурирование сервера Следующий шаг должен сконфигурировать сервер базы данных в соответствии с нашими требованиями по защите. В случае заданной по умолчанию инсталляции mysql, главным файлом конфигурации является /etc/my.cnf. Однако, в нашем случае, из-за выполнения сервера в chrooted среде, мы будем использовать два файла конфигурации: /chroot/mysql/etc/my.cnf и /etc/my.cnf. Первый будет использоваться сервером mysql, а второй - утилитами mysql (например: mysqladmin, mysql, mysqldump и т.д.). В обоих случаях, потребуются некоторые изменения конфигурации.
Отключение удаленного доступа Первое изменение касается порта 3306/tcp, который mysql прослушивает по умолчанию. Поскольку, согласно начальным предположениям по защите, база данных будет использоваться только локально установленными PHP приложениями, мы можем свободно отключить прослушивание этого порта. Это ограничит возможность нападения на базу данных mysql прямыми TCP/IP подключениями с других хостов. Чтобы отключить прослушивание упомянутого порта, необходимо к разделу [ mysqld ] файла /chroot/mysql/etc/my.cnf добавить следующий параметр: Skip-networking Если, по некоторым причинам, все же требуется удаленный доступ к базе данных (например, чтобы выполнить удаленное резервирование данных), то можно использовать SSH протокол, как показано ниже: backuphost$ ssh mysqlserver /usr/local/mysql/bin/mysqldump -A > backup Улучшение локальной защиты Следующее изменение должно отключить использование команды LOAD DATA LOCAL INFILE, что поможет предотвратить несанкционированное чтение данных из локальных файлов. Это имеет особенное значение, в случае если в PHP будет найдена новая уязвимость к SQL инъекциям. Для этой цели, в раздел [ mysqld ] файла /chroot/mysql/etc/my.cnf, необходимо добавить следующий параметр: Set-variable=local-infile=0 Кроме того, чтобы сделать более удобным использование административных средств базы данных, в разделе [Client] файла /etc/my.cnf, должен быть изменен следующий параметр: socket = /chroot/mysql/tmp/mysql.sock Благодаря этому, каждый раз при выполнении этих утилит, не будет никакой потребности передавать в команды: mysql, mysqladmin, mysqldump и т.д., параметр socket =/chroot/mysql/tmp/mysql.sock.
|
|||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 90; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.221.163 (0.007 с.) |