SSH: Zayıf şifreleri nasıl devre dışı bırakabilirim?


47

Örgütünün güvenlik ekibi, zayıf anahtarlar çıkardıkları için zayıf şifreleri etkisizleştirmemizi söyledi.

  arcfour
  arcfour128
  arcfour256

Ancak bu şifreleri ssh_config ve sshd_config dosyasında aramaya çalıştım ancak yorumda bulundu.

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

Bu şifreleri SSH'den devre dışı bırakmak için başka nerede kontrol etmeliyim?


SSH sunucusu için içinde olacak /etc/ssh/sshd_configve SSH istemcisinde de olacak /etc/ssh/ssh_config. CipherHer birindeki çizgiyi aramak istiyorsunuz ve örneğin sadece Cipher aes256-ctrbelirttiniz. Ardından SSH'yi /etc/init.d/sshd restart, eşdeğer systemd komutu aracılığıyla veya aracılığıyla başlatın .
ron

1
sshd_configSSH güvenliğini gerçekten önemsiyorsanız , tüm parametreler hakkında bilgi sahibi olmak istiyorsanız , aksi takdirde tüm güvenlik tiyatrosu olabilir.
ron,

@ron, ikinci yorum merak uyandırıcı bir yorumdur, neyi düşündüğünüzü bir örnekle gösterebilir misiniz?
Jerome

ciphersliste sadece bir düzgün bir şekilde uygulandığı ... Protokol, PermitRootLogin, AuthorizedKeysFile, PermitEmptyPasswords, IgnoreRhosts, PermitTunnel ve benzeri SSH sahibi olmak için birçok yola çıkıyor. Eğer linux dağıtımında uygulandığı şekliyle varsayılan ayarlarına itimat, amaIgnornance is bliss only up until you have a problem
ron

Yanıtlar:


40

Anahtar kelimeyi ssh_configkullanarak belirlenmiş açık bir şifre listeniz yoksa Ciphers, man 5 ssh_config(istemci tarafı) ve man 5 sshd_config(sunucu tarafı) 'ya göre varsayılan değer şudur:

            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

Arcfour şifrelerinin varlığına dikkat edin. Bu yüzden açıkça için daha kısıtlayıcı bir değer belirlemeniz gerekebilir Ciphers.

ssh -Q cipherMüşteriden size müşterinizin hangi programları destekleyebileceğini söyleyecektir. Bu listenin, içinde belirtilen şifre listesinden etkilenmediğini unutmayın ssh_config. Bir şifreyi ssh_configçıkarmak, çıktısından çıkarmayacaktır ssh -Q cipher. Ayrıca, açıkça bir şifre belirtme seçeneğiyle sshbirlikte kullanmanız , -cayarladığınız kısıtlanmış şifre listesini geçersiz kılar ssh_configve muhtemelen zayıf bir şifre kullanmanıza izin verir. Bu, sshistemcinizi yeni daha güçlü şifreleri desteklemeyen eski SSH sunucuları ile iletişim kurmak için kullanmanızı sağlayan bir özelliktir .

nmap --script ssh2-enum-algos -sV -p <port> <host> Sunucunuzun hangi programları desteklediğini size söyleyecektir.


Merhaba, ssh_config içindeki belirli şifrelerden bahsettim ve ssh hizmetini yeniden başlattım ancak ssh -Q şifresi <hostname> yaptığımda, konfigürasyonumdan bağımsız olarak daha önce alıştığım tüm şifreleri alıyorum.
16'da

1
Üzgünüm, ssh_configistemci tarafı yapılandırma mı, sunucu tarafı yapılandırma mı sshd_config, lütfen bunu deneyin. (Aynı zamanda Ciphersorada da denir .)
Ulrich Schwarz

Evet biliyorum ama şifreleri aradığımda onları ssh_config'te buldum, bu yüzden orada değişiklikler yaptım. Üretim sunucusu olarak hiçbir şey yapmıyorum, emin değilim
rɑːdʒɑ

Varsayılanların dağılımlar arasında değişebileceğini unutmayın.
Jonas Schäfer

ssh -QEski sürümlerde yok gibi görünüyor . (örneğin, CentOS 6’ın openssh v5.3p1)
Tomofumi

30

RC4'ü devre dışı bırakmak ve SSH sunucusunda güvenli şifreler kullanmak için, /etc/ssh/sshd_config

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

VEYA, şifreleri dikte etmeyi tercih etmiyorsanız, ancak yalnızca güvenli olmayan şifreleri çıkarmak istiyorsanız, bunu komut satırında çalıştırın (sudo modunda):

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

Sunucunuz tarafından kullanılmakta olan şifreleri aşağıdakilerle kontrol edebilirsiniz:

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

Ssh istemcinizin bu şifreleri kullanabildiğinden emin olun,

ssh -Q cipher | sort -u

Listeyi görmek için

Ayrıca, SSH istemcinize yalnızca uzak sunucularla güvenli şifreleri pazarlık etmesi talimatını verebilirsiniz. In /etc/ssh/ssh_configseti:

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

Parçacıkları gelen Üstü burada
sunucunuzun ayarlarını test etmek için kullanabileceğiniz ssh-denetim


20

Açıkça bir şifre listesi belirtmedeki sorun, ortaya çıktıkça manuel olarak yeni şifreler eklemeniz gerektiğidir. Bunun yerine, listeyi (her bir şifreyi değil) '-' karakteriyle hazırlayarak çıkarmak istediğiniz şifreleri listeleyin. Yani bu durumda, Şifreler satırı okumalıdır:

Ciphers -arcfour*

Veya eğer tercih ederseniz:

Ciphers -arcfour,arcfour128,arcfour256

Şifreler seçeneğindeki sshd_config man sayfasından (OpenSH 7.5'ten beri 2017-03-20 yayınlandı):

Belirtilen değer '+' karakteriyle başlıyorsa, belirtilen şifreleri değiştirmek yerine varsayılan ayarlara eklenir. Belirtilen değer '-' karakteriyle başlıyorsa, belirtilen şifreler (joker karakterler dahil), değiştirmek yerine varsayılan ayarlardan kaldırılır.

Bu aynı zamanda KexAlgorithms ve MAC seçenekleri için de geçerlidir .


2

enable / disable şifreyi / etc / ssh / sshd_config dosyasına eklemeniz / kaldırmanız gerekiyor. Bu dosyayı düzenledikten sonra servis yeniden yüklenmeli.

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

Ardından, bu komutu istemciden çalıştırmak size hangi şemaların desteklediğini söyleyecektir.

ssh -Q cipher

Arcfour şifresinin etkin olup olmadığını kontrol etmek için sunucuda bu komutu çalıştırın

ssh localhost -c arcfour

Arcfour128 şifresinin sunucuda etkin olup olmadığını kontrol etmek için bu komutu çalıştırın

ssh localhost -c arcfour128

Bu adım yukarıdaki cevaplarda eksikti
Saras Arya

1

Zayıf bir ssh şifresini nasıl etkisizleştirebilirim,% 100'ü Fedora 29'da test edilmiştir. Sorun: Nessus, samba4 sunucumun güçlü şifreleyici olmayan aes256-cbc ve aes128-cbc kullandığını bildirdi. Ben de bu çizgileri koydum/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 şifresini hala kullanıyor çünkü bu komut çalışıyor :(

ssh -c aes256-cbc samba4

Bu yüzden kullanışlı sistemi kontrol ediyorum ve sshd servisinin şifreler için başka bir dosya kullandığını keşfettim.

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

Güvenlik için dosyayı yedekleyin

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

Düzenleyin ve cbc şifresini çıkarın. Hizmeti yeniden başlat

systemctl restart sshd

Ve nihayet test, iyi çalışıyor ... devre dışı bırakılmış.

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.