
Этот поваренный рецепт chef обеспечивает конфигурацию безопасности для mysql.
Предоставляет конфигурации безопасности для mysql. Предназначен для настройки готовых к эксплуатации экземпляров mysql с минимальной поверхностью атаки.
Этот cookbook фокусируется на конфигурации безопасности mysql и повторно использует mysql cookbook для установки. Поэтому вы можете добавить этот уровень усиления поверх существующей конфигурации mysql в Chef.
Мы оптимизировали этот cookbook для работы с os-hardening и без лишних сложностей. Он будет работать и без них, но вам необходимо убедиться, что выполнены все предварительные условия, такие как или .
apt-get updateyum updateПример роли может выглядеть так:
{
"name": "mysql",
"default_attributes": { },
"override_attributes": { },
"json_class": "Chef::Role",
"description": "MySql Hardened Server Test Role",
"chef_type": "role",
"default_attributes" : {
"mysql": {
"server_root_password": "iloverandompasswordsbutthiswilldo",
"server_debian_password": "iloverandompasswordsbutthiswilldo"
}
},
"run_list": [
"recipe[chef-solo-search]",
"recipe[apt]",
"recipe[mysql::server]",
"recipe[mysql-hardening]"
]
}
Этот рецепт является рецептом-обёрткой для mysql cookbook) и применяет mysql-hardening::hardening
Добавьте следующее в ваш runlist и настройте атрибуты параметров безопасности
"recipe[mysql::server]",
"recipe[mysql-hardening]"
Этот рецепт усиления устанавливает усиление, но ожидает уже существующую установку Mysql, MariaDB или Percona. Если вы не используете mysql cookbook, вам может потребоваться адаптировать атрибуты:
node['mysql']['service_name'] = 'default'node['mysql']['data_dir'] = '/var/lib/mysql'node['mysql-hardening']['conf-file'] = '/etc/mysql/conf.d/hardening.cnf'node['mysql-hardening']['user'] = 'mysql'Дополнительная информация уже доступна в Deutsche Telekom (на немецком) и Symantec
Эта настройка по умолчанию задаёт следующие параметры
user = mysql
port = 3306
bind-address = X.Y.Z.W
# via ['mysql']['security']['local_infile']
local-infile = 0
# via ['mysql']['security']['safe_user_create']
safe-user-create = 1
# via ['mysql']['security']['secure_auth']
secure-auth = 1
# via ['mysql']['security']['skip_show_database']
skip-show-database
# via ['mysql']['security']['skip_symbolic_links']
skip-symbolic-links
# via ['mysql']['security']['automatic_sp_privileges']
automatic_sp_privileges = 0
# via ['mysql']['security']['secure-file-priv']
secure-file-priv = /tmp
Дополнительно она гарантирует, что следующие параметры не заданы
['mysql']['security']['secure_auth']node['mysql']['security']['allow-suspicious-udfs']Кроме того, права доступа к /var/lib/mysql ограничены пользователем mysql.
# Install dependencies
gem install bundler
bundle install
# Do lint checks
bundle exec rake lint
# Fetch tests
git clone https://github.com/dev-sec/tests-mysql-hardening test/integration
# fast test on one machine
bundle exec kitchen test default-ubuntu-1204
# test on all machines
bundle exec kitchen test
# for development
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204
Этот cookbook поставляется с файлом guard для удобной разработки. Во время разработки guard следит за папками и запускает footcritic и robocop.
# list all plugins
bundle exec guard list
# run guard with foodcritic and robocop
bundle exec guard -P Foodcritic Rubocop
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.