Sshd “UseDNS” seçeneğinin amacı nedir?


78

Ne yaptığını biliyorum ama nedenini bilmiyorum . Hangi saldırıları engeller?

Her türlü kimlik doğrulama yöntemiyle alakalı mı? (ana bilgisayar tabanlı, şifre, publickey, klavye etkileşimli ...)


2
Burada da CoreOS'a bir tane ekledim: github.com/coreos/bugs/issues/92

Yanıtlar:


65

UseDNSSeçenek çoğunlukla işe yaramaz. İstemci makineleri orada Internet’te bulunuyorsa, ters DNS’leri olma ihtimali yüksek, ters DNS’leri ileriye çözümlemiyor veya DNS’leri “buna ait” dışında herhangi bir bilgi sağlamıyor IP adresinin zaten söylediği “ISS”.

Tipik yapılandırmalarda, DNS yalnızca günlük kaydı için kullanılır. Kimlik doğrulama için kullanılabilir, ancak yalnızca IgnoreRhosts noiçinde belirtilmişse sshd_config. Bu “denilen kullanıcı söyleyebiliriz rsh, kullanılan eski tesisler ile uyumluluk içindir bobdenilen makinede darkstarolarak giriş yapabilirsiniz alice(yazarak herhangi bir kimlik göstermeden” darkstar bobin ~alice/.rhosts). Yalnızca ssh sunucusuna bağlanmış olabilecek tüm makinelere güveniyorsanız güvenlidir. Başka bir deyişle, bu çok nadiren güvenli bir şekilde kullanılabilir.

DNS aramasının çok özel durumlar dışında hiçbir yararlı bilgi sağlamadığı göz önüne alındığında, kapatılması gerekir. Söyleyebileceğim kadarıyla, varsayılan olarak açık olmasının tek nedeni, teknik olarak daha güvenli olması (kimlik doğrulaması konusunda endişe duyuyorsanız, kullanılabilirliği değil), sadece küçük bir koşul kümesi için geçerli olmasına rağmen.

Bu özelliği kapatmak için başka bir argüman, gereksiz her özelliğin gereksiz bir güvenlik riski olduğudur .


Yani, UseDNS sadece ana bilgisayar tabanlı kimlik doğrulaması ile ilgilidir? Eğer hostbased auth kullanmıyorsam ve hostname veya IP'nin loglarda görünüp görünmemesi umrumda değil, UseDNS fark yaratmaz mı?
user368507, 28:12

5
@ user368507 Evet, bu kadar. Anahtar tabanlı ana bilgisayar kimlik doğrulaması kullanıyorsanız, sadece ana bilgisayar adı tabanlı ana bilgisayar kimlik doğrulaması kullanıyorsanız (yani, son derece zayıf kimlik doğrulaması) UseDNSkullanışsız bile olabilir .
Gilles

3
@Gilles, anahtar tabanlı ve ana bilgisayar adı tabanlı kimlik doğrulaması kullanıyorsanız, UseDNSçok yararlı ve önemlidir. Bir MAC adresine atanmış anahtar ve kullanıcının ana bilgisayar adına göre sunucu kimliğini doğrularsınız.
kara deniz

38

Bu konuda Ubuntu'da bir hata raporuna (eski ama hala güncel) ekledim.

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/424371

Varsayılanı Hayır olarak değiştirmeyi ve yeni belgeler eklemeyi önerdim:

# UseDNS - Determines whether IP Address to Hostname lookup and comparison is performed
# Default value is No which avoids login delays when the remote client's DNS cannot be resolved
# Value of No implies that the usage of "from=" in authorized_keys will not support DNS host names but only IP addresses.
# Value of Yes supports host names in "from=" for authorized_keys. Additionally if the remote client's IP address does not match the resolved DNS host name (or could not be reverse lookup resolved) then a warning is logged.

2
Up upvote ... Bu daha faydalı, çünkü aradığım bir bilgiyi içeriyor.
0xC0000022L

1
Benzer şekilde, eğer UseDNS hayır ise, pam_access kurallarında ana bilgisayar adları eşleştirilemez ve bunun yerine IP'ler kullanılmalıdır.
ColinM

1
Birkaç yıl önce bu cevabı iptal ettim ancak yalnızca bugün , Ubuntu 15.10 ve sonrasında bulunan OpenSSH 6.8p1'de varsayılanın "UseDNS no" olarak değiştirildiğini fark ettim .
Anthony Geoghegan

RedHat (RHEL7'de) kısa süre önce varsayılanı Hayır olarak değiştirdi, bu da ana bilgisayar adı tabanlı erişim kontrollerini (intranette çoğunlukla danışma kontrolleri olarak kullanışlıdır, açıkça tek erişim kontrol mekanizması olarak değil) kullanışlıdır.
dannysauer

8

Man sayfasından sshd_config(5):

 UseDNS  Specifies whether sshd(8) should look up the remote host name and
         check that the resolved host name for the remote IP address maps
         back to the very same IP address.  The default is “yes”.

Bunu etkinleştirmek, bir konumdan uygun bir şekilde (ileri ve geri) erişim sağlar DNS, günlüklerde bir uyarı oluşturur.

Bu, herhangi bir uyarıyı kaydetmemek için müşterinin nitelikli bir uzak adresine ihtiyaç duyması dışında herhangi bir saldırıyı önlemez. Böyle bir uyarı, ancak PTR kaydının herhangi bir anlamı varsa, saldırganın izini sürmenize yardımcı olabilir.

düzenleme: Andrey Voitenkov'un yorumuna göre güncellendi .


Yani, DNS sunucusunda ne olduğuna bağlı olarak kimin bağlanmasına izin verildiği konusunda bir filtre var?
user368507

2
Neden erişimi imkansız kılıyor? sshd, yalnızca DNS A / PTR kayıtları eşleşmediğinde uyarı oluşturur. Oturum açma sırası, sorunların çözülmesi durumunda yavaş olacaktır.
Andrey Voitenkov

Bu, eğer saldırgan söz from=konusu yetkili anahtarın önündeki alandaki değerleri taklit edemediği sürece (kullanılmışsa) aldatmadığı sürece erişim yetkisine sahip değildir .
Alecz

7

Author_keys dosyasında FROM seçeneğini kullandığınızda ve sadece IP'leri değil adlara göre filtrelemek istediğinizde bu gereklidir.

Yetkili_key dosyası dosyasının satırındaki FROM seçeneği, belirli bir anahtarı kullanabilecek ana bilgisayarları sınırlamanıza izin verir.
Bu, bir makinenin klonlarının, genellikle istemeden (artık crontabs, insan hatası) kaynağını taklit etmesine izin vermeden birbirine erişimi olan birden çok sunucuyu yönetme yeteneğini artırır.


3

Ben CentOS 7 (1503/07/01) ve dolayısıyla Red Hat Enterprise Linux 7 eklemek istiyorum, ben yapamaz varsayılan ayarı ile oturum yesiçin UseDNS. Açılmadan ve ayarladıktan sonra no, giriş yapmayı başardım. Böylece, DNS düzgün çalışmıyorsa, birinin gerçekten hizmet reddedildiği anlaşılıyor! CentOS 6’da göründüğü kadarıyla varsayılan nove bu nedenle de sshçalışan bir DNS olmadan içeri girebiliyorum !

Bir fark yaratabilirse denememin fiziksel makinede değil LXC kaplarda olduğunu da eklemek isterim!

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.