
يوفر كتاب وصفات chef هذا تكوينًا أمنيًا لـ mysql.
يوفر إعدادات أمنية لـ mysql. وهو مخصص لإعداد نسخ mysql الجاهزة للإنتاج والمهيأة بأقل سطح هجوم ممكن للمهاجمين.
يركز كتاب الوصفات هذا على الإعدادات الأمنية لـ mysql ويعيد استخدام mysql cookbook لعملية التثبيت. لذلك يمكنك إضافة طبقة التقوية هذه فوق إعدادات mysql الحالية لديك في Chef.
قمنا بتحسين كتاب الوصفات هذا ليعمل مع os-hardening وssh-hardening دون عناء. سيعمل بشكل جيد بدونهما، لكن عليك التأكد من استيفاء جميع الشروط المسبقة مثل apt-get update أو yum 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
أضف ما يلي إلى قائمة التشغيل الخاصة بك وخصّص سمات الخيارات الأمنية
"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
يأتي كتاب الوصفات هذا مع ملف guard لتسهيل التطوير. أثناء التطوير، يراقب guard المجلدات ويشغّل footcritic وrobocop.
# list all plugins
bundle exec guard list
# run guard with foodcritic and robocop
bundle exec guard -P Foodcritic Rubocop
مرخّص بموجب Apache License، الإصدار 2.0 (the "License")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على
http://www.apache.org/licenses/LICENSE-2.0
ما لم يُشترط خلاف ذلك بموجب القانون المعمول به أو يُتفق عليه كتابيًا، فإن البرمجيات الموزعة بموجب الترخيص تُوزع "كما هي" (AS IS)، دون أي ضمانات أو شروط من أي نوع، صريحة أو ضمنية. راجع الترخيص للحصول على الأحكام المحددة التي تحكم الأذونات والقيود بموجب الترخيص.