
यह chef cookbook mysql के लिए सुरक्षा कॉन्फ़िगरेशन प्रदान करता है।
mysql के लिए सुरक्षा कॉन्फ़िगरेशन प्रदान करता है। इसका उद्देश्य उत्पादन-तैयार mysql इंस्टेंस सेट करना है जो हमलावरों के लिए न्यूनतम सतह के साथ कॉन्फ़िगर किए गए हों।
यह कुकबुक mysql के सुरक्षा कॉन्फ़िगरेशन पर केंद्रित है और इंस्टॉलेशन के लिए mysql cookbook का पुनः उपयोग करता है। इसलिए आप Chef में अपने मौजूदा mysql कॉन्फ़िगरेशन के ऊपर यह हार्डनिंग लेयर जोड़ सकते हैं।
हमने इस कुकबुक को 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 कुकबुक का उपयोग नहीं कर रहे हैं, तो आपको विशेषताओं को अनुकूलित करने की आवश्यकता हो सकती है:
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'] के माध्यम से 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, Version 2.0 ("लाइसेंस") के अंतर्गत लाइसेंस प्राप्त; आप लाइसेंस के अनुपालन में होने के अलावा इस फ़ाइल का उपयोग नहीं कर सकते। आप लाइसेंस की एक प्रति यहाँ प्राप्त कर सकते हैं
http://www.apache.org/licenses/LICENSE-2.0
जब तक लागू कानून द्वारा आवश्यक न हो या लिखित रूप में सहमति न दी गई हो, लाइसेंस के अंतर्गत वितरित सॉफ़्टवेयर "जैसा है" के आधार पर वितरित किया जाता है, बिना किसी प्रकार की वारंटी या शर्तों के, चाहे व्यक्त या निहित। लाइसेंस के अंतर्गत विशिष्ट भाषा को देखें जो अनुमतियों और सीमाओं को नियंत्रित करती है।