Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
chef-os-hardening — यह शेफ कुकबुक कई सुरक्षा-संबंधित कॉन्फ़िगरेशन प्रदान करती है, जो सर्वांगीण आधार सुरक्षा सुनिश्चित करती है। | Kitploit
उपकरण/GitHubGitHub/dev-sec/chef-os-hardening
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाकॉन्फ़िगरेशन ऑडिटिंगDevSecOpsप्रमाणीकरण
GitHubdev-sec/chef-os-hardening

chef-os-hardening

यह शेफ कुकबुक कई सुरक्षा-संबंधित कॉन्फ़िगरेशन प्रदान करती है, जो सर्वांगीण आधार सुरक्षा सुनिश्चित करती है।

रिपॉजिटरी देखें
45213261 महीना पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
वेबसाइट
साझा करें

os-hardening (Chef कुकबुक)

Supermarket Tests

विवरण

यह कुकबुक कई सुरक्षा-संबंधित कॉन्फ़िगरेशन प्रदान करती है, जो व्यापक आधार सुरक्षा प्रदान करती है।

यह निम्नलिखित कॉन्फ़िगर करती है:

  • पैकेज प्रबंधन कॉन्फ़िगर करता है, जैसे केवल हस्ताक्षरित पैकेजों की अनुमति देना
  • ज्ञात समस्याओं वाले पैकेज हटाता है
  • pam और pam_limits मॉड्यूल कॉन्फ़िगर करता है
  • शैडो पासवर्ड सूट कॉन्फ़िगरेशन
  • सिस्टम पथ अनुमतियाँ कॉन्फ़िगर करता है
  • सॉफ्ट लिमिट के माध्यम से कोर डंप अक्षम करता है
  • रूट लॉगिन को सिस्टम कंसोल तक सीमित करता है
  • SUID सेट करता है
  • sysctl के माध्यम से कर्नेल पैरामीटर कॉन्फ़िगर करता है

यह निम्नलिखित नहीं करेगी:

  • सिस्टम पैकेज अपडेट करना
  • सुरक्षा पैच स्थापित करना

आवश्यकताएँ

  • Chef >= 14.13.11
  • प्लेटफ़ॉर्म

    • Ubuntu 20.04, 22.04, 24.04, 26.04
    • CentOS Stream 9, 10
    • AlmaLinux 8, 9, 10
    • Rocky Linux 8, 9, 10
    • Oracle Linux 8, 9, 10
    • Debian 13
    • Fedora 43, 44

    विशेषताएँ

    • ['os-hardening']['components'][COMPONENT_NAME] - डिफ़ॉल्ट रेसिपी के माध्यम से किन घटकों को निष्पादित किया जाना चाहिए, इस पर सूक्ष्म नियंत्रण की अनुमति देता है। अधिक विवरण के लिए नीचे देखें
    • ['os-hardening']['desktop']['enable'] = false true यदि यह एक डेस्कटॉप सिस्टम है, जैसे Xorg, KDE/GNOME/Unity/आदि
    • ['os-hardening']['network']['forwarding'] = false true यदि इस सिस्टम को पैकेट फ़ॉरवर्डिंग की आवश्यकता है (जैसे राउटर), अन्यथा false
    • ['os-hardening']['network']['ipv6']['enable'] = false
    • ['os-hardening']['network']['arp']['restricted'] = true true यदि आप ARP की घोषणा और उत्तर देने के व्यवहार को प्रतिबंधित करना चाहते हैं, अन्यथा false
    • ['os-hardening']['env']['extra_user_paths'] = [] उपयोगकर्ता के PATH वेरिएबल में अतिरिक्त पथ जोड़ें (डिफ़ॉल्ट खाली है)।
    • ['os-hardening']['env']['umask'] = "027"
    • ['os-hardening']['env']['root_path'] = "/" जहाँ root माउंटेड है
    • ['os-hardening']['auth']['pw_max_age'] = 60 अधिकतम पासवर्ड आयु
    • ['os-hardening']['auth']['pw_min_age'] = 7 न्यूनतम पासवर्ड आयु (किसी अन्य पासवर्ड परिवर्तन की अनुमति देने से पहले)
    • ['os-hardening']['auth']['pw_warn_age'] = 7 अधिकतम पासवर्ड आयु होने से पहले के दिनों की संख्या, आगामी परिवर्तन की चेतावनी देने के लिए
    • ['os-hardening']['auth']['uid_min'] = 1000 useradd द्वारा निर्दिष्ट UID की निचली सीमा
    • ['os-hardening']['auth']['uid_max'] = 60000 useradd द्वारा निर्दिष्ट UID की ऊपरी सीमा
    • ['os-hardening']['auth']['gid_min'] = 1000 groupadd द्वारा निर्दिष्ट GID की निचली सीमा
    • ['os-hardening']['auth']['gid_max'] = 60000 groupadd द्वारा निर्दिष्ट GID की ऊपरी सीमा
    • ['os-hardening']['auth']['retries'] = 5 प्रमाणीकरण प्रयासों की अधिकतम संख्या, इससे पहले कि खाता कुछ समय के लिए लॉक हो जाए
    • ['os-hardening']['auth']['lockout_time'] = 600 सेकंड में वह समय जो गुजरना आवश्यक है, यदि खाता बहुत अधिक असफल प्रमाणीकरण प्रयासों के कारण लॉक हो गया था
    • ['os-hardening']['auth']['timeout'] = 60 सेकंड में प्रमाणीकरण टाइमआउट, इसलिए यदि यह समय बीत जाता है तो लॉगिन समाप्त हो जाएगा
    • ['os-hardening']['auth']['allow_homeless'] = false true यदि बिना होम वाले उपयोगकर्ताओं को लॉगिन करने की अनुमति देनी है
    • ['os-hardening']['auth']['pam']['passwdqc']['enable'] = true true यदि आप passwdqc का उपयोग करके PAM में मजबूत पासवर्ड जाँच का उपयोग करना चाहते हैं
    • ['os-hardening']['auth']['pam']['passwdqc']['options'] = "min=disabled,disabled,16,12,8" किसी भी विकल्प पंक्ति (स्ट्रिंग के रूप में) पर सेट करें जिसे आप passwdqc को पास करना चाहते हैं
    • ['os-hardening']['auth']['pam']['passwdqc']['template_cookbook'] = 'os-hardening' उस कुकबुक के नाम पर सेट करें जिससे /usr/share/pam-configs/passwdqc फ़ाइल के लिए टेम्पलेट प्राप्त किया जाता है
    • ['os-hardening']['auth']['pam']['tally2']['template_cookbook'] = 'os-hardening' उस कुकबुक के नाम पर सेट करें जिससे /usr/share/pam-configs/tally2 फ़ाइल के लिए टेम्पलेट प्राप्त किया जाता है
    • ['os-hardening']['auth']['pam']['system-auth']['template_cookbook'] = 'os-hardening' उस कुकबुक के नाम पर सेट करें जिससे /etc/pam.d/system-auth-ac फ़ाइल के लिए टेम्पलेट प्राप्त किया जाता है
    • ['os-hardening']['security']['users']['allow'] = [] उन चीज़ों की सूची, जिन्हें उपयोगकर्ता को करने की अनुमति है। इसमें शामिल हो सकता है: change_user
    • ['os-hardening']['security']['kernel']['enable_module_loading'] = true true यदि आप सिस्टम चलने के बाद कर्नेल मॉड्यूल बदलने की अनुमति देना चाहते हैं (जैसे modprobe, rmmod)
    • ['os-hardening']['security']['kernel']['disable_filesystems'] = ['cramfs', 'freevxfs', 'jffs2', 'hfs', 'hfsplus', 'squashfs', 'udf', 'vfat'] कर्नेल फ़ाइल सिस्टम मॉड्यूल की सूची, जो लोडिंग के लिए ब्लैकलिस्टेड हैं (जैसे वे अप्रयुक्त हैं और अक्षम किए जा सकते हैं)। इस ब्लैकलिस्टिंग से पूरी तरह बचने के लिए इसे [] पर सेट करें
    • ['os-hardening']['security']['kernel']['enable_sysrq'] = false
    • ['os-hardening']['security']['kernel']['enable_core_dump'] = false
    • ['os-hardening']['security']['suid_sgid']['enforce'] = true true यदि आप SUID/SGID बिट्स कम करना चाहते हैं। पहले से ही उन वस्तुओं की एक सूची है जिन्हें कॉन्फ़िगर किया गया है, लेकिन आप अपनी खुद की भी जोड़ सकते हैं
    • ['os-hardening']['security']['suid_sgid']['blacklist'] = [] उन पथों की सूची जिनके SUID/SGID बिट्स हटाए जाने चाहिए
    • ['os-hardening']['security']['suid_sgid']['whitelist'] = [] उन पथों की सूची जिनके SUID/SGID बिट्स बदले नहीं जाने चाहिए
    • ['os-hardening']['security']['suid_sgid']['remove_from_unknown'] = false true यदि आप किसी भी फ़ाइल से SUID/SGID बिट्स हटाना चाहते हैं, जो blacklist में स्पष्ट रूप से कॉन्फ़िगर नहीं है। यह हर Chef रन को माउंटेड फ़ाइल सिस्टम में उन SUID/SGID बिट्स की खोज करने देगा जो डिफ़ॉल्ट और उपयोगकर्ता ब्लैकलिस्ट में कॉन्फ़िगर नहीं हैं। यदि यह SUID/SGID बिट पाता है, तो इसे हटा दिया जाएगा, जब तक कि यह फ़ाइल आपकी whitelist में न हो।
    • ['os-hardening']['security']['suid_sgid']['dry_run_on_unknown'] = false ऊपर remove_from_unknown की तरह, केवल अंतर यह है कि SUID/SGID बिट्स नहीं हटाए जाते। यह अभी भी SUID/SGID बिट्स की खोज के लिए फ़ाइल सिस्टम को खोजेगा लेकिन केवल उन्हें आपके लॉग में प्रिंट करेगा। यह विकल्प केवल तभी अनुशंसित है, जब आप पहली बार SUID/SGID बिट्स के लिए remove_from_unknown कॉन्फ़िगर करते हैं, ताकि आप बदली जा रही फ़ाइलों को देख सकें और अपनी whitelist और blacklist में समायोजन कर सकें।
    • ['os-hardening']['security']['packages']['clean'] = true ज्ञात समस्याओं वाले पैकेज हटाता है।
    • ['os-hardening']['security']['packages']['list'] = ['xinetd','inetd','ypserv','telnet-server','rsh-server'] हटाने के लिए पैकेजों की सूची, डिफ़ॉल्ट रूप से हम निम्नलिखित पैकेज हटाते हैं:
      • xinetd (NSA, अध्याय 3.2.1)
      • inetd (NSA, अध्याय 3.2.1)
      • tftp-server (NSA, अध्याय 3.2.5)
      • ypserv (NSA, अध्याय 3.2.4)
      • telnet-server (NSA, अध्याय 3.2.2)
      • rsh-server (NSA, अध्याय 3.2.3)
    • ['os-hardening']['security']['selinux_mode'] = 'unmanaged' unmanaged पर सेट करें यदि आप selinux कॉन्फ़िगरेशन को वैसे ही छोड़ना चाहते हैं। SELinux को लागू करने के लिए enforcing या अनुमेय SELinux के लिए permissive पर सेट करें।

    शामिल घटकों को नियंत्रित करना

    default.rb आपके सिस्टम की ohai स्वतः-पहचान विशेषताओं के आधार पर अन्य घटकों को शामिल करता है। जैसे गैर-RHEL सिस्टम पर selinux निष्पादित न करें। आप इस व्यवहार को ओवरराइड कर सकते हैं और ओवरराइड स्तर पर node['os-hardening']['components'] में विशेषताएँ सेट करके घटकों को निष्पादित करने या न करने के लिए बाध्य कर सकते हैं। उदाहरण

    root@kitploit:~
    # कुछ विशेषता फ़ाइल
    # sysctl और auditd शामिल न करें
    override['os-hardening']['components']['sysctl'] = false
    override['os-hardening']['components']['auditd'] = false
    
    # selinux को शामिल करने के लिए बाध्य करें
    override['os-hardening']['components']['selinux'] = true
    

    वर्तमान कार्यान्वयन में विभिन्न घटक विभिन्न रेसिपी में स्थित हैं। संभावित घटक नामों के लिए उपलब्ध रेसिपी या default.rb देखें।

    उपयोग

    रेसिपी को run_list में जोड़ें, यह अंतिम होनी चाहिए:

    root@kitploit:~
    "recipe[os-hardening]"
    

    विशेषताएँ कॉन्फ़िगर करें:

    root@kitploit:~
    "security" : {
      "kernel" : {
        "enable_module_loading" : true
      }
    },
    

    स्थानीय परीक्षण

    स्थानीय परीक्षण

    कृपया chef-dk, VirtualBox या VMware Workstation और Vagrant स्थापित करें।

    लिंटिंग की जाँच rubocop और foodcritic से की जाती है:

    root@kitploit:~
    $ chef exec rake lint
    .....
    

    यूनिट/स्पेक परीक्षण chefspec से किए जाते हैं:

    root@kitploit:~
    $ chef exec rake spec
    .....
    

    एकीकरण परीक्षण test-kitchen और inspec से किए जाते हैं:

    root@kitploit:~
    $ chef exec rake kitchen
    .....
    # या आप सीधे kitchen का उपयोग कर सकते हैं
    $ kitchen test
    

    फोर्क्स का CI परीक्षण

    आप Travis CI में अपने फोर्क का परीक्षण सक्षम कर सकते हैं। डिफ़ॉल्ट रूप से आपको kitchen-dokken के साथ लिंटिंग, स्पेक परीक्षण और एकीकरण परीक्षण मिलेंगे।

    kitchen-dokken के साथ एकीकरण परीक्षण सब कुछ कवर नहीं करते क्योंकि वे कंटेनर वातावरण में चलते हैं। पूर्ण एकीकरण परीक्षण DigitalOcean का उपयोग करके निष्पादित किए जा सकते हैं।

    यदि आप अपने फोर्क के लिए पूर्ण एकीकरण परीक्षण चाहते हैं, तो आपको अपने फोर्क की सेटिंग्स में निम्नलिखित पर्यावरण चर जोड़ने होंगे:

    • DIGITALOCEAN_ACCESS_TOKEN - DigitalOcean के लिए एक्सेस टोकन
    • CI_SSH_KEY - कुछ ssh कुंजी का निजी भाग, DigitalOcean पर आपके इंस्टेंस के लिए उपलब्ध, base64 एन्कोडेड रूप में (जैसे cat id_rsa | base64 -w0 ; echo)
    • DIGITALOCEAN_SSH_KEY_IDS - CI_SSH_KEY का DigitalOcean में ID, अधिक जानकारी के लिए यह देखें

    योगदानकर्ता + श्रेय

    • Dominik Richter arlimus
    • Bernhard Weisshuhn bkw
    • Christoph Hartmann chris-rock
    • Edmund Haselwanter ehaselwanter
    • Patrick Meier atomic111
    • Artem Sidorenko artem-sidorenko

    यह कुकबुक अधिकतर निम्नलिखित गाइडों पर आधारित है:

    • Arch Linux wiki, Sysctl hardening
    • Ubuntu Security/Features
    • NSA: Guide to the Secure Configuration of Red Hat Enterprise Linux 5
    • Deutsche Telekom, Group IT Security, Security Requirements (German)

    आप सभी का धन्यवाद!!

    योगदान

    योगदानकर्ता दिशानिर्देश देखें।

    लाइसेंस और लेखक

    • लेखक:: Dominik Richter [email protected]
    • लेखक:: Deutsche Telekom AG

    Apache License, Version 2.0 (the "License") के तहत लाइसेंस प्राप्त; आप इस फ़ाइल का उपयोग केवल लाइसेंस के अनुपालन में कर सकते हैं। आप लाइसेंस की एक प्रति निम्नलिखित पते पर प्राप्त कर सकते हैं

    root@kitploit:~
    http://www.apache.org/licenses/LICENSE-2.0
    

    जब तक लागू कानून द्वारा आवश्यक न हो या लिखित रूप में सहमत न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर "AS IS" आधार पर वितरित किया जाता है, बिना किसी प्रकार की वारंटी या शर्तों के, व्यक्त या निहित। लाइसेंस के तहत विशिष्ट अनुमतियों और सीमाओं के लिए लाइसेंस देखें।

    टूल डाउनलोड करें