SSH: कमजोर सिफर को कैसे निष्क्रिय करें?


47

मेरे संगठन की सुरक्षा टीम ने हमें बताया कि वे कमजोर किफ़रों को निष्क्रिय कर देते हैं क्योंकि वे कमजोर कुंजी जारी करते हैं।

  arcfour
  arcfour128
  arcfour256

लेकिन मैंने ssh_config और sshd_config फ़ाइल में इन सिफर्स की तलाश की लेकिन उन्हें टिप्पणी नहीं मिली।

 grep arcfour *
ssh_config:#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

एसएसएच से इन सिफर्स को निष्क्रिय करने के लिए मुझे और कहां जांचना चाहिए?


SSH सर्वर के लिए यह अंदर होगा /etc/ssh/sshd_configऔर SSH क्लाइंट के लिए यह अंदर होगा /etc/ssh/ssh_config। आप Cipherप्रत्येक में लाइन की तलाश करना चाहते हैं , और उदाहरण के लिए बस Cipher aes256-ctrनिर्दिष्ट किया गया है। फिर SSH को /etc/init.d/sshd restartसमान सिस्टमड कमांड के माध्यम से या उसके माध्यम से पुनः आरंभ करें ।
रॉन

1
sshd_configयदि आप वास्तव में SSH सुरक्षा की परवाह करते हैं , तो आप सभी मापदंडों के बारे में जानकार बनना चाहते हैं , अन्यथा यह सभी सुरक्षा थियेटर हो सकते हैं।
रॉन

@ दूसरी टिप्पणी एक पेचीदा है, क्या आप एक उदाहरण से स्पष्ट कर सकते हैं कि आप क्या चाहते हैं?
जेरोम

ciphersसूची सिर्फ एक ठीक से लागू ... प्रोटोकॉल, PermitRootLogin, AuthorizedKeysFile, PermitEmptyPasswords, IgnoreRhosts, PermitTunnel, और इतने पर SSH होने के लिए कई से बाहर स्थापित कर रही है। आप अपने डिफॉल्ट सेटिंग्स पर भरोसा कर सकते हैं जैसा कि आपके लिनक्स वितरण में कार्यान्वित किया गया है, लेकिनIgnornance is bliss only up until you have a problem
रॉन

जवाबों:


40

यदि आपके पास कीवर्ड ssh_configका उपयोग करने में निर्धारित सिफर की कोई स्पष्ट सूची नहीं है Ciphers, तो man 5 ssh_config(क्लाइंट-साइड) और man 5 sshd_config(सर्वर-साइड) के अनुसार, डिफ़ॉल्ट मूल्य है:

            aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
            aes128-gcm@openssh.com,aes256-gcm@openssh.com,
            chacha20-poly1305@openssh.com,
            aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
            aes256-cbc,arcfour

आर्कफोर सिफर्स की उपस्थिति पर ध्यान दें। तो आपको स्पष्ट रूप से इसके लिए अधिक प्रतिबंधक मूल्य निर्धारित करना पड़ सकता है Ciphers

ssh -Q cipherक्लाइंट से आपको बताएगा कि आपके ग्राहक किन योजनाओं का समर्थन कर सकते हैं। ध्यान दें कि यह सूची निर्दिष्ट सिफर की सूची से प्रभावित नहीं है ssh_config। एक सिफर को ssh_configहटाने से इसे के आउटपुट से नहीं हटाया जाएगा ssh -Q cipher। इसके अलावा, एक सिफर को स्पष्ट रूप से निर्दिष्ट करने sshके -cविकल्प का उपयोग करने से आपके द्वारा सेट किए गए सिफर की प्रतिबंधित सूची को ओवरराइड किया जा ssh_configसकता है और संभवतः आपको एक कमजोर सिफर का उपयोग करने की अनुमति मिलती है। यह एक ऐसी सुविधा है जो आपको अपने sshग्राहक को अप्रचलित एसएसएच सर्वर के साथ संवाद करने की अनुमति देती है जो नए मजबूत सिफर का समर्थन नहीं करते हैं।

nmap --script ssh2-enum-algos -sV -p <port> <host> आपको बताएगा कि आपका सर्वर किन योजनाओं का समर्थन करता है।


नमस्ते, मैंने ssh_config में विशिष्ट सिफर्स का उल्लेख किया और ssh सेवा को फिर से शुरू किया, लेकिन जब मैंने ssh -Q सिफर <hostname> किया तो मुझे अभी भी सभी सिफर मिल रहे हैं जो मुझे मेरे कॉन्फ़िगरेशन से पहले ही मिल रहे हैं।
r --dʒɑ

1
मुझे क्षमा करें, ssh_configक्लाइंट-साइड कॉन्फ़िगर है, सर्वर-साइड कॉन्फ़िगर है sshd_config, कृपया कोशिश करें। (इसे Ciphersवहाँ भी कहा जाता है।)
उलरिच श्वार्ज़

हाँ, मुझे पता है, लेकिन जब मैं सिफर के लिए जीआरई करता हूं तो मैंने उन्हें ssh_config पर पाया था इसलिए मैंने वहां बदलाव किए। उत्पादन सर्वर के रूप में मैं कुछ भी नहीं कर रहा हूँ मुझे यकीन नहीं है
rʒɑd

ध्यान दें कि डिफॉल्ट वितरण के बीच भिन्न हो सकते हैं।
जोनास शफर

लगता है ssh -Qपुराने संस्करणों पर कोई नहीं है । (उदाहरण के लिए CentOS 6 के अधिभारित v5.3p1)
Tomofumi

30

RC4 को अक्षम करने और SSH सर्वर पर सुरक्षित सिफर का उपयोग करने के लिए, निम्नलिखित को हार्ड-कोड करें /etc/ssh/sshd_config

ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

या यदि आप सिफर्स को डिक्टेट नहीं करना चाहते हैं, लेकिन केवल असुरक्षित साइफर को उतारना चाहते हैं, तो इसके बजाय कमांड लाइन पर चलाएं (sudo मोड में):

sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|rijndael-cbc@lysator.liu.se\)\,\?//g" >> /etc/ssh/sshd_config

आप वर्तमान में अपने सर्वर द्वारा उपयोग किए जाने वाले सिफर की जांच कर सकते हैं:

sudo sshd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u

सुनिश्चित करें कि आपका ssh क्लाइंट इन सिफर्स का उपयोग कर सकता है, चला सकता है

ssh -Q cipher | sort -u

सूची देखने के लिए।

आप अपने SSH क्लाइंट को केवल दूरस्थ सर्वर के साथ सुरक्षित सिफर पर बातचीत करने का निर्देश भी दे सकते हैं। में /etc/ssh/ssh_configसेट:

Host *
    ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

ऊपर से स्निपेट यहां से आते हैं
अपने सर्वर की सेटिंग्स का परीक्षण करने के लिए आप ssh-ऑडिट का उपयोग कर सकते हैं


20

एक सिफर सूची को स्पष्ट रूप से निर्दिष्ट करने के साथ समस्या यह है कि आपको नए सिफर को मैन्युअल रूप से जोड़ना होगा क्योंकि वे बाहर निकलते हैं। इसके बजाय, केवल उन सिफर को सूचीबद्ध करें जिन्हें आप हटाना चाहते हैं, सूची को 'प्रत्येक व्यक्ति के सिफर' को '-' वर्ण के साथ जोड़ना। तो इस मामले में, सिफर्स लाइन को पढ़ना चाहिए:

Ciphers -arcfour*

या यदि आप पसंद करते हैं:

Ciphers -arcfour,arcfour128,arcfour256

पर sshd_config आदमी पृष्ठ से सिफर विकल्प (OpenSSH 7.5 के बाद से, 2017/03/20 जारी):

यदि निर्दिष्ट मान '+' वर्ण से शुरू होता है, तो निर्दिष्ट सिफर को प्रतिस्थापित करने के बजाय डिफ़ॉल्ट सेट में जोड़ा जाएगा। यदि निर्दिष्ट मान '-' वर्ण से शुरू होता है, तो निर्दिष्ट सिफर (वाइल्डकार्ड सहित) को प्रतिस्थापित करने के बजाय डिफ़ॉल्ट सेट से हटा दिया जाएगा।

यह KexAl एल्गोरिदम और एमएसीएस विकल्पों पर भी लागू होता है ।


2

सक्षम / अक्षम सिफर को फ़ाइल / आदि / ssh / sshd_config में जोड़ने / हटाने की आवश्यकता है इस फ़ाइल को संपादित करने के बाद सेवा को पुनः लोड किया जाना चाहिए

systemctl reload sshd
/etc/init.d/sshd reload

फिर, क्लाइंट से इस कमांड को चलाने से आपको पता चल जाएगा कि कौन सी योजनाएं समर्थन करती हैं

ssh -Q cipher

यह जाँचने के लिए कि क्या सर्वर पर सिफर सक्षम है या नहीं, यह कमांड चलाते हैं

ssh localhost -c arcfour

यह जांचने के लिए कि क्या सर्वर पर आर्कफौरसस सिफर सक्षम है या नहीं, इस कमांड को रन करें

ssh localhost -c arcfour128

यह कदम उपरोक्त उत्तरों में गायब था
सरस आर्य

1

कमजोर ssh साइफर को कैसे निष्क्रिय करें, Fedora 29 पर 100% काम कर रहा है। समस्या: नेसस रिपोर्ट मेरे samba4 सर्वर का उपयोग नहीं मजबूत साइपर aes256-cbc और aes128-cbc। तो मैंने उन पंक्तियों को अंदर डाल दिया/etc/ssh/sshd_config

MACs hmac-sha2-512,hmac-sha2-256
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256,curve25519-sha256@libssh.org

Et voilà! .. यह अभी भी cbc सिफर का उपयोग करता है क्योंकि यह कमांड काम करता है :(

ssh -c aes256-cbc samba4

इसलिए मैं उपयोगी प्रणाली की जांच करता हूं और मुझे पता चलता है कि sshd सेवा सिफर्स के लिए किसी अन्य फ़ाइल का उपयोग कर रही है

/etc/crypto-policies/back-ends/opensshserver.config

सुरक्षा के लिए फ़ाइल बैकअप

cp /etc/crypto-policies/back-ends/opensshserver.config     /etc/crypto-policies/back-ends/opensshserver.config.old

इसे संपादित करें, और cbc सिफर को हटा दें। सेवा को पुनरारंभ करें

systemctl restart sshd

और अंत में परीक्षण, ठीक काम करता है .. बीबीसी अक्षम।

ssh -c aes256-cbc samba4
Unable to negotiate with 192.168.0.48 port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.