ssh-hardening (Ansible Role)
ध्यान दें: इस role को हमारे hardening-collection में स्थानांतरित कर दिया गया है:
कृपया वहाँ पर सभी issues और pull requests खोलें!
आवश्यकताएँ
Role Variables
network_ipv6_enable
- डिफ़ॉल्ट: false
- विवरण: true यदि IPv6 की आवश्यकता है।
ssh_listen_to को भी IPv6 पतों (उदाहरण के लिए [::]) को सुनने के लिए सेट किया जाना चाहिए।
ssh_server_ports
- डिफ़ॉल्ट: ['22']
- विवरण: वे पोर्ट जिन पर ssh-server को सुनना चाहिए
ssh_client_port
- डिफ़ॉल्ट: '22'
- विवरण: वह पोर्ट जिससे ssh-client को कनेक्ट होना चाहिए
ssh_listen_to
- डिफ़ॉल्ट: ['0.0.0.0']
- विवरण: एक या अधिक IP पते, जिन पर ssh-server को सुनना चाहिए। डिफ़ॉल्ट सभी IPv4 पते हैं, लेकिन सुरक्षा कारणों से इसे विशिष्ट पतों पर कॉन्फ़िगर किया जाना चाहिए!
ssh_host_key_files
- डिफ़ॉल्ट: []
- विवरण: sshd के लिए होस्ट कुंजियाँ। यदि खाली है तो ['/etc/ssh/ssh_host_rsa_key', '/etc/ssh/ssh_host_ecdsa_key', '/etc/ssh/ssh_host_ed25519_key'] का उपयोग किया जाएगा, जहाँ तक स्थापित sshd संस्करण द्वारा समर्थित है
ssh_host_key_algorithms
- डिफ़ॉल्ट: []
- विवरण: होस्ट कुंजी एल्गोरिदम जो सर्वर प्रदान करता है। यदि खाली है तो डिफ़ॉल्ट सूची का उपयोग किया जाएगा, अन्यथा निर्दिष्ट एल्गोरिदम की सूची के साथ सेटिंग को ओवरराइड करता है
ssh_client_alive_interval
- डिफ़ॉल्ट: 600
- विवरण: keepalive संदेश भेजने के लिए एक अंतराल निर्दिष्ट करता है
ssh_client_alive_count
- डिफ़ॉल्ट: 3
- विवरण: परिभाषित करता है कि keep-alive संदेश कितनी बार भेजे जाते हैं
ssh_permit_tunnel
- डिफ़ॉल्ट: false
- विवरण: true यदि SSH पोर्ट टनलिंग की आवश्यकता है
ssh_remote_hosts
- डिफ़ॉल्ट: []
- विवरण: ssh-client के लिए एक या अधिक होस्ट और उनके कस्टम विकल्प। डिफ़ॉल्ट खाली है।
defaults/main.yml में उदाहरण देखें।
ssh_permit_root_login
- डिफ़ॉल्ट: no
- विवरण: रूट-लॉगिन अक्षम करें। रूट-लॉगिन सक्षम करने के लिए
without-password या yes पर सेट करें
ssh_allow_tcp_forwarding
- डिफ़ॉल्ट: no
- विवरण: TCP फ़ॉरवर्डिंग अक्षम करने के लिए
'no'। TCP फ़ॉरवर्डिंग की अनुमति देने के लिए 'yes' पर सेट करें। यदि आप OpenSSH >= 6.2 संस्करण का उपयोग कर रहे हैं, तो आप 'yes', 'no', 'all' या 'local' निर्दिष्ट कर सकते हैं।
नोट: इस variable को दिए गए मान स्ट्रिंग होने चाहिए, इस प्रकार 'yes' और 'no' मान उद्धरणों के साथ दिए जाने चाहिए।
ssh_gateway_ports
- डिफ़ॉल्ट:
false
- विवरण: फ़ॉरवर्ड किए गए पोर्ट को non-loopback पतों से बाइंड करने को अक्षम करने के लिए
false। wildcard पते पर बाइंडिंग को बाध्य करने के लिए true पर सेट करें। क्लाइंट को यह निर्दिष्ट करने की अनुमति देने के लिए clientspecified पर सेट करें कि किस पते से बाइंड करना है।
ssh_allow_agent_forwarding
- डिफ़ॉल्ट: false
- विवरण: एजेंट फ़ॉरवर्डिंग अक्षम करने के लिए false। एजेंट फ़ॉरवर्डिंग की अनुमति देने के लिए true पर सेट करें।
ssh_x11_forwarding
- डिफ़ॉल्ट: false
- विवरण: X11 फ़ॉरवर्डिंग अक्षम करने के लिए false। X11 फ़ॉरवर्डिंग की अनुमति देने के लिए true पर सेट करें।
ssh_pam_support
- डिफ़ॉल्ट: true
- विवरण: true यदि SSH में PAM समर्थन है।
ssh_use_pam
- डिफ़ॉल्ट: true
- विवरण: pam प्रमाणीकरण अक्षम करने के लिए false।
ssh_gssapi_support
- डिफ़ॉल्ट: false
- विवरण: true यदि SSH में GSSAPI समर्थन है।
ssh_kerberos_support
- डिफ़ॉल्ट: true
- विवरण: true यदि SSH में Kerberos समर्थन है।
ssh_deny_users
- डिफ़ॉल्ट: ''
- विवरण: यदि निर्दिष्ट है, तो उन उपयोगकर्ता नामों के लिए लॉगिन अस्वीकृत है जो किसी एक पैटर्न से मेल खाते हैं।
ssh_allow_users
- डिफ़ॉल्ट: ''
- विवरण: यदि निर्दिष्ट है, तो लॉगिन केवल उन उपयोगकर्ता नामों के लिए अनुमत है जो किसी एक पैटर्न से मेल खाते हैं।
ssh_deny_groups
- डिफ़ॉल्ट: ''
- विवरण: यदि निर्दिष्ट है, तो उन उपयोगकर्ताओं के लिए लॉगिन अस्वीकृत है जिनकी प्राथमिक समूह या पूरक समूह सूची किसी एक पैटर्न से मेल खाती है।
ssh_allow_groups
- डिफ़ॉल्ट: ''
- विवरण: यदि निर्दिष्ट है, तो लॉगिन केवल उन उपयोगकर्ताओं के लिए अनुमत है जिनकी प्राथमिक समूह या पूरक समूह सूची किसी एक पैटर्न से मेल खाती है।
ssh_authorized_keys_file
- डिफ़ॉल्ट: ''
- विवरण: डिफ़ॉल्ट फ़ाइल बदलें जिसमें सार्वजनिक कुंजियाँ होती हैं जिनका उपयोग उपयोगकर्ता प्रमाणीकरण के लिए किया जा सकता है।
ssh_trusted_user_ca_keys_file
- डिफ़ॉल्ट: ''
- विवरण: उस फ़ाइल को निर्दिष्ट करता है जिसमें उपयोगकर्ता प्रमाणपत्रों पर हस्ताक्षर करने के लिए उपयोग की जाने वाली विश्वसनीय प्रमाणपत्र प्राधिकरण सार्वजनिक कुंजियाँ होती हैं।
ssh_trusted_user_ca_keys
- डिफ़ॉल्ट: []
- विवरण: उपयोगकर्ता प्रमाणपत्रों पर हस्ताक्षर करने के लिए उपयोग की जाने वाली विश्वसनीय प्रमाणपत्र प्राधिकरण सार्वजनिक कुंजियाँ सेट करें। केवल तभी उपयोग किया जाता है जब
ssh_trusted_user_ca_keys_file सेट हो।
ssh_authorized_principals_file
- डिफ़ॉल्ट: ''
- विवरण: उस फ़ाइल को निर्दिष्ट करता है जिसमें अनुमत principals होते हैं। केवल तभी उपयोग किया जाता है जब
ssh_trusted_user_ca_keys_file सेट हो।
ssh_authorized_principals
- डिफ़ॉल्ट: []
- विवरण: फ़ाइल पथ और अधिकृत principals वाले हैश की सूची, सभी विकल्पों के लिए
default_custom.yml देखें। केवल तभी उपयोग किया जाता है जब ssh_authorized_principals_file सेट हो।
ssh_print_motd
- डिफ़ॉल्ट: false
- विवरण: MOTD की छपाई अक्षम करने के लिए false
ssh_print_pam_motd
- डिफ़ॉल्ट: false
- विवरण: pam के माध्यम से MOTD की छपाई अक्षम करने के लिए false (Debian और Ubuntu)
ssh_print_last_log
- डिफ़ॉल्ट: false
- विवरण: अंतिम लॉगिन जानकारी का प्रदर्शन अक्षम करने के लिए false
sftp_enabled
- डिफ़ॉल्ट: false
- विवरण: sftp कॉन्फ़िगरेशन सक्षम करने के लिए true
sftp_umask
- डिफ़ॉल्ट: '0027'
- विवरण: sftp के लिए umask निर्दिष्ट करता है
sftp_chroot
- डिफ़ॉल्ट: true
- विवरण: sftp के लिए chroot अक्षम करने के लिए false
sftp_chroot_dir
- डिफ़ॉल्ट: /home/%u
- विवरण: डिफ़ॉल्ट sftp chroot स्थान बदलें
ssh_client_roaming
- डिफ़ॉल्ट: false
- विवरण: प्रयोगात्मक क्लाइंट roaming सक्षम करें
sshd_moduli_file
- डिफ़ॉल्ट: '/etc/ssh/moduli'
- विवरण: SSH moduli फ़ाइल का पथ
sshd_moduli_minimum
- डिफ़ॉल्ट: 2048
- विवरण: logjam को कम करने के लिए परिभाषित आकार से छोटे Diffie-Hellman पैरामीटर हटाएँ
ssh_challengeresponseauthentication
- डिफ़ॉल्ट: false
- विवरण: निर्दिष्ट करता है कि challenge-response प्रमाणीकरण की अनुमति है या नहीं (जैसे PAM के माध्यम से)
ssh_client_password_login
- डिफ़ॉल्ट: false
- विवरण: ssh क्लाइंट के साथ पासवर्ड-आधारित प्रमाणीकरण की अनुमति देने के लिए
true
ssh_server_password_login
- डिफ़ॉल्ट: false
- विवरण: ssh सर्वर के साथ पासवर्ड-आधारित प्रमाणीकरण की अनुमति देने के लिए
true
ssh_banner
- डिफ़ॉल्ट:
false
- विवरण: लॉगिन पर बैनर प्रिंट करने के लिए
true
ssh_banner_path
- डिफ़ॉल्ट: '/etc/sshd/banner.txt'
- विवरण: SSH बैनर फ़ाइल का पथ
ssh_client_hardening
- डिफ़ॉल्ट:
true
- विवरण: क्लाइंट को हार्डन करना बंद करने के लिए
false
ssh_client_port
- डिफ़ॉल्ट:
'22'
- विवरण: रिमोट होस्ट पर कनेक्ट करने के लिए पोर्ट नंबर निर्दिष्ट करता है।
ssh_client_compression
- डिफ़ॉल्ट:
false
- विवरण: निर्दिष्ट करता है कि क्लाइंट संपीड़न का अनुरोध करता है या नहीं।
ssh_compression
- डिफ़ॉल्ट:
false
- विवरण: निर्दिष्ट करता है कि उपयोगकर्ता के सफलतापूर्वक प्रमाणित होने के बाद सर्वर-साइड संपीड़न सक्षम है या नहीं।
ssh_login_grace_time
- डिफ़ॉल्ट:
30s
- विवरण: SSH सर्वर पर सफल प्रमाणीकरण के लिए अनुमत समय निर्दिष्ट करता है
ssh_max_auth_retries
- डिफ़ॉल्ट:
2
- विवरण: प्रति कनेक्शन अनुमत प्रमाणीकरण प्रयासों की अधिकतम संख्या निर्दिष्ट करता है।
ssh_max_sessions
- डिफ़ॉल्ट:
10
- विवरण: किसी दिए गए कनेक्शन से अनुमत खुली सत्रों की अधिकतम संख्या निर्दिष्ट करता है।
ssh_print_debian_banner
- डिफ़ॉल्ट:
false
- विवरण: debian विशिष्ट बैनर प्रिंट करने के लिए
true
ssh_server_enabled
- डिफ़ॉल्ट:
true
- विवरण: opensshd सर्वर अक्षम करने के लिए
false
ssh_server_hardening
- डिफ़ॉल्ट:
true
- विवरण: सर्वर को हार्डन करना बंद करने के लिए
false
ssh_server_match_address