Genel DNS'de özel IP adresi


62

Genel bir A posta kaydına sahip olacak bir güvenlik duvarının arkasındaki bir SMTP yalnızca posta sunucumuz var. . Bu posta sunucusuna erişmenin tek yolu aynı güvenlik duvarının arkasındaki başka bir sunucudan geliyor. Kendi özel DNS sunucumuzu çalıştırmıyoruz.

Özel IP adresini genel bir DNS sunucusunda A kaydı olarak kullanmak iyi bir fikir midir - yoksa bu sunucu kayıtlarını her sunucuda yerel ana bilgisayar dosyasında tutmak en iyisi midir?

Yanıtlar:


62

Bazı insanlar hiçbir halka açık DNS kaydının hiçbir zaman özel IP adreslerini ifşa etmemesi gerektiğini söylerler.

Şahsen, gizliliğin zayıf bir güvenlik biçimi olduğunu düşünüyorum, özellikle de IP adreslerinden bahsederken genel olarak zaten tahmin etmek kolaydır, bu yüzden bunu gerçekçi bir güvenlik anlaşması olarak görmüyorum.

Buradaki en büyük husus, genel kullanıcılarınızın bu DNS kaydını barındırılan uygulamanızın normal kamu hizmetlerinin bir parçası olarak almadığından emin olmaktır. Örneğin: Dış DNS aramaları bir şekilde ulaşamadıkları adrese çözümlemeye başlar.

Bunun dışında, özel adres A kayıtlarını kamusal alana koymanın temel bir neden olmadığını anlıyorum .... özellikle onları barındıracak alternatif bir DNS sunucunuz olmadığı zaman.

Bu kaydı ortak DNS alanına koymaya karar verirseniz, tüm "özel" kayıtları tutmak için aynı sunucuda ayrı bir bölge oluşturmayı düşünebilirsiniz. Bu onların özel olmaları gerektiğini açıkça ortaya koyacak ... ancak sadece bir A kaydı için, muhtemelen rahatsız etmem.


+1, womble'ın nedenin cevabına yaptığı yorumu görün :)
Mihai Limbăşan

2
Bu, bu fikirle ilgili bir soruna güzel bir örnektir: merit.edu/mail.archives/nanog/2006-09/msg00364.html
sucuri

Genel IP adresleri olan ancak erişimi kısıtlayan bir güvenlik duvarının arkasında hassas sunucularınız varsa, bu tavsiye hala geçerli mi? Genel IP adresleri için genel DNS, altyapının yol haritasını veriyorsa, bazıları saldırgan için kullanılmıyor mu? Ana bilgisayar kimliği?
Kenny

@Kenny Evet, teoride bunun bir faydası var, ama halka açık IP adreslerinin aralığı zaten kolayca keşfedilebildiğinden elde edilmesi zor olmayan bir bilgi. Yanıtta bunu ele aldım ve bu fikre ekleyerek, IP adreslerini veya ana bilgisayar adlarını her türlü maddi savunma hattı olarak gizlemeye bağlıysanız, zaten çok daha büyük sorunlarınız olduğunu savunuyorum.
Uzun Jeff

1
@Kenny Size göre, herkese açık olarak keşfedilebilecek bilgi miktarını en aza indirgemek ve ihtiyaç duymadığınız veya en azından bir tür iyi maliyet / fayda ticaretine sahip olmadığınız bir şeyi ifşa etmek istemezsiniz. düşünmek için dahil kapalı. Orada tartışma yok. Bunun dışında, amacımın özü (ve sanırım kabul ettiğimizi düşünüyorum) basitçe gizliliğin zayıf bir güvenlik biçimi olduğu ve mutlak iyilik / kötünün olmadığı, ancak sadece maliyet / fayda değişiminin sürekliliği olduğu idi. risk toleransınıza, vb. bağlı olarak durum bazında değerlendirilir
Tall Jeff

36

Bir süre önce NANOG listesinde bu konuyla ilgili uzun bir tartışma yaptım. Her zaman kötü bir fikir olduğunu düşünmeme rağmen, pratikte bu kadar kötü bir fikir olmadığı ortaya çıktı. Zorluklar çoğunlukla rDNS aramalarından kaynaklanıyor (dış dünyadaki özel adresler için Just Don't Work) ve bir VPN veya benzeri adreslerden adreslere erişim sağlarken VPN istemcilerinin uygun şekilde korunmasını sağlamak önemlidir. VPN kapalı olduğunda trafiği "sızdırıyor".

Ben onun için git derim. Bir saldırgan, adlarını dahili adreslere çözümlemekten anlamlı bir şey alabilirse, daha büyük güvenlik sorunlarınız olur.


1
+1, bu soruya verilen tüm FUD cevaplarında bir akıl sağlığı sesi olduğunuz için teşekkür ederiz. Alt dorsal bölgelerimdeki "güvenlik riski" ve yönlendirme problemlerini ve DNS sorunlarının bir dizlik halinde toplandığını "yapma" deme tepkisi sadece ağları her yerde ağları olan insanların yetkinliğini merak etmeme neden oluyor.
Mihai Limbăşan

1
Düzeltme: "Yönlendirme sorunlarını ve DNS sorunlarını ve kimlik doğrulama / kimlik sorunlarını toplanmış" görün.
Mihai Limbăşan

8

Genel olarak, RFC1918 adreslerini kamuya açık DNS’e sokmak, gerçek bir sorun olmasa da gelecekte bir noktada karışıklığa neden olacaktır. Güvenlik duvarınızın arkasındaki RFC1918 adreslerini kullanmak, ancak bunları genel görünüme dahil etmemek için IP'leri, ana bilgisayar kayıtlarını veya bölgenizin özel bir DNS görünümünü kullanın.

Gönderilen diğer cevaplara dayanarak cevabımı açıklığa kavuşturmak için, RFC1918 adreslerini kamuya açık bir DNS’e tanıtmak bir güvenlik meselesi değil, sahte bir işlemdir. Biri beni sorun çıkarmaya çağırırsa ve DNS'lerinde RFC1918 adreslerine rastlarım, yavaşça konuşmaya ve son zamanlarda yeniden başlatılıp başlatılmadıklarını sormaya başladım. Belki de bu benim kibirim, bilmiyorum. Ama dediğim gibi, yapılması gereken bir şey değil ve bir noktada karışıklığa ve yanlış iletişime (insan, bilgisayar değil) neden olabilir. Neden riske atıyorsun?


1
Bunlar gerçek problemler neler? İnsanlar hangi yollarla karıştıracak?
womble

2
Demek ki ... kibar ... 1918 adreslerini halka açık DNS’e koymak değil mi? "Gizli" ve "ufuk bölme" DNS bölgelerinin neden olduğu pek çok sorunla karşılaştım, ancak halka açık DNS'deki özel IP'nin neden olduğu çok fazla sorun değil. Sadece problemi görmüyorum.
womble

2
@womble, bazı nedenlerden dolayı, ağınız dışındaki o ana bilgisayara bağlanmaya çalışırlarsa ve SMTP sunucusunu almak yerine, şu anda bağlandıkları landaki IP adresinde yaşayan ne aldıklarını beklediklerinde bilgisayarların kafası karışabilir. Hatta uzaktaki bir dizüstü bilgisayarı kullanan personelinizden birinin kullanıcı adını ve parolasını başkalarının ağında düz metin olarak yayınlamaya başlaması da mümkün olabilir, çünkü aynı zamanda bir 192.168.1.1
Zoredache

16
Cevabınızla ilgili sorunum siz sorunlara karşı temkinli olmanız, ancak herhangi bir ayrıntı vermemeniz. Bunu yapmamak için nedenler varsa, onlar hakkında bilmek istiyorum, bu yüzden konuyla ilgili tam bir gerekçeli karar verebilirim.
womble

1
@Zoredache: Neden biri erişmediği bir ismi çözüyor? Zaten özel adres alabileceğiniz tek yer DNS değil, zaten - HTML, örneğin IP değişmezlerini kullanabilir ...
womble

5

Hayır, özel IP adreslerinizi ortak DNS’e koymayın.

İlk olarak, göreceli olarak küçük bir problem olmasına rağmen bilgi sızdırıyor.

MX kayıtlarınız belirli bir ana bilgisayar girişine işaret ediyorsa, daha da kötüsü, kendisine posta göndermeye çalışan herkesin en iyi şekilde posta teslim zaman aşımına uğraması.

Gönderenin posta yazılımına bağlı olarak sıçramalar oluşabilir.

Daha da kötüsü, RFC1918 adres alanını kullanıyorsanız (bu, ağınızın içinde olmalıdır) ve gönderen de varsa, postayı kendi ağlarına teslim etme ve denemeleri için her ihtimal vardır.

Örneğin:

  • ağ iç posta sunucusuna sahip, ancak bölünmüş DNS yok
  • admin bu nedenle DNS’e hem genel hem de dahili IP adreslerini koyar.
  • ve MX kayıtları her ikisine de işaret eder:

 $ORIGIN example.com
 @        IN   MX    mail.example.com
 mail     IN   A     192.168.1.2
          IN   A     some_public_IP

  • Bu görme birisi olabilir 192.168.1.2 bağlanmayı deneyin
  • En iyi durumda, zıplıyor, çünkü rotaları yok.
  • Ancak, 192.168.1.2’yi kullanan bir sunucuya sahiplerse, posta yanlış yere gider

Evet, bozuk bir yapılandırma, ancak bunun (ve daha da kötüsü) olduğunu gördüm.

Hayır, bu DNS'nin hatası değil, sadece söyleneni yapıyor.


Nasıl yanlış makineye posta göndermek DNS sorunu? SMTP sunucusunu doğrulamanız gerekir. Bu, DNS ile hiçbir ilgisi olmayan bir SMTP yapılandırma sorunu. Burada elmaları portakallarla bile karşılaştırmıyorsunuz, bir çubuk üzerinde beş miligram Lagrangian türevi olan radyoaktif tereyağlı tostları karşılaştırıyorsunuz. Yanlış MX veya A sonucunu almak konusunda endişeleniyorsanız, sorumlu olmadığından DNS'yi sorumlu tutmak yerine DNSSEC'yi kullanmalısınız ve SMTP'yi yanlış RFC1918 numarasına yanlışlıkla teslim ediyorsanız, ağınızı yanlış yapılandırdınız veya yanlış tasarladınız.
Mihai Limbăşan

(açıklama için
onaylanan emir

Ağınızdaki bir kişi bir IP numarasını "oluşturduysa", IP protokolü tam olarak tasarlandığı gibi çalışır, yani güvenliği göz önünde bulundurmaz. Ne soruyorsun, "kiminle konuşmam gerekiyorsa onunla konuştuğuma nasıl güvenebilirim?" ve bunun cevabı IP ve / veya DNS tarafından verilemez, bunun cevabı DNSSEC ve / veya SSL / TLS ve / veya bir uygulama katmanı mekanizması tarafından verilir.
Mihai Limbăşan

Sadece yorumunuzu Dave'in gönderisine okuyunuz - gönderiniz şimdi daha anlamlı geliyor :) Ben hala öncül konusunda hemfikir değilim, ancak artık mantıksız olduğunu sanmıyorum ...
Mihai Limbăşan

2
hayır, kimlik doğrulama ile ilgili değildi, sadece yanlış yere giden bağlantılar hakkında. Verisign, ~ 2001'de * .com’a joker karaktere karar verdiğinde çok şey gördüm .
Alnitak

3

Olasılık uzak olsa da, bazı MITM saldırıları için kendinizi hazırladığınızı düşünüyorum.

Endişem bu olurdu. Diyelim ki, kullanıcılarınızdan birinin posta sunucusunu işaret edecek şekilde yapılandırılmış bir posta istemcisi ile dizüstü bilgisayarlarını başka bir ağa götürdüğünü söyleyelim. Diğer ağ aynı zamanda kullanımda aynı RFC1918'e sahipse gerçekleşir. Bu dizüstü bilgisayar, smtp sunucusunda oturum açmayı deneyebilir ve kullanıcının kimlik bilgilerini, sahip olmaması gereken bir sunucuya sunabilir. Bu özellikle SMTP’yi söylediğinizden ve SSL gerektiren yerlerde sizden bahsetmediğiniz için geçerlidir.


Kullanıcının ofisinizde veya başka bir yerde kullandığı bir dizüstü bilgisayarı varsa, ana bilgisayar dosyalarını MTA'nın dahili IP'sine işaret edecek şekilde yapılandırmış olmaları veya IP'yi doğrudan MUA yapılandırmalarında kullanmaları muhtemeldir. Aynı sonuç. IPv6'yı ve RFC1918'in ölümünü getirin, emin olmanın tek yolu ...
womble

Mükemmel nokta Zoredache. Bu ilginç bir saldırı vektörü. MUA'ya bağlı olarak, "can sıkıcı bir şey oldu, lütfen ilk başta yapmamı istediğin şeyi yapmak için beni tıkla" iletişim kutusunu açabilir ya da ssl sertifikası eşleşmezse tamamen başarısız olabilir.
Dave Cheney

Geçerli ağdaki tüm sunucular (yani web / HTTPS, IMAP ve SMTP) geçerli ağdaki SSL / TLS tabanlı istemci bağlantıları gerektiriyorsa bu saldırı senaryosu etkin bir şekilde ortadan kaldırılıyor mu?
Johnny Utahh

@JohnnyUtahh, TLS'yi desteklemek için tüm sunuculara, geçerli sertifikalara sahip olmalısınız ve tüm müşterileri, sertifikaları doğrulayacak şekilde yapılandırılmalı ve asla TLS olmayan bir bağlantı kurmayı denemelisiniz. Bu, şimdi daha yaygın bir varsayılandır, daha sonra 10 yıl önce. Ancak hala tls olmayan bağlantıları deneyebilecek eski / aptal bir yazılım var.
Zoredache

Evet, her şey mantıklı, teşekkürler @Zoredache.
Johnny Utahh

3

İki seçeneğiniz / etc / hosts dosyası ve ortak bölgenize özel bir IP adresi koymak. Eskiyi tavsiye ederim. Bu, çok sayıda ana bilgisayarı temsil ediyorsa, kendi çözümleyicinizi dahili olarak çalıştırmayı düşünmelisiniz, o kadar da zor değil.


1
Bu kesinlikle bir seçenek, ama neden? BIND görünümleri kullanarak bir dahili çözümleyici veya (daha akıllı) kullanmak, yönetim yükü ve bakım yükünün yanında size ne kazandırır? Benim anlamadığım şey bu.
Mihai Limbăşan

1
Kendi isim sunucunuzu çalıştırmak roket bilimi değildir. Ağınız / etc / hosts dosyasını bir hack olarak veya zaman alıcı olarak kullanmayı düşündüğünüz boyutta ise, ağınıza bir çift çözümleyici ayarlamanız gerekir. Bir yan fayda olarak, ağınızdan ayrılan dns trafiği miktarını azaltırsınız ve genel sorguların çözümlenmesini hızlandırırsınız.
Dave Cheney

3
Biliyorum bu roket bilimi değil, ama bu genel bir bakım giderleri ve potansiyel bir güvenlik riski. Kesinlikle bir RFC1918 ağının varlığını sızdırmaktan daha yüksek bir güvenlik riski. DNS trafiği tamamen ihmal edilebilir - İş yerimde DNS'imde 80 orta derecede büyük ve meşgul bölge dosyasını aşıyorum ve haftalık DNS trafiği 2 dakikadan az Youtube. Sorgu çözümlemesini hızlandırmak aslında burada gördüğüm DNS'deki RFC1918 sayılarına karşı ilk yarıya açık görüşme argümanıdır :) Aslında her zamanki diz sarsıntısının biraz ötesini düşünmek için olumluydu. Ah, evet, bu bir güvenlik riski "reaksiyonu :)
Mihai Limbăşan

1
@Alnitak: Nereden geldiğini anlıyorum ama bu hala bir DNS sorunu değil ve DNS üzerinden başka bir yerden kaynaklanan sorunları çözmeye çalışmanın hiç de iyi bir fikir olmadığını düşünüyorum. Sorunlar kaynakta çözülmeli, DNS kesmeleri tarafından düzeltilmemelidir - kesmeler ağları kırılgan hale getirir.
Mihai Limbăşan

2
evet, katılıyorum. Özel sunucunuzun bilgisini herkese açık DNS’e koymak, dahili bir DNS sunucusuna sahip olmama sorununa dair hack bir çözümdür ... :) Sorun, daha yüksek katmanların bu bilgilerin "özel" olduğunu bilmemesidir .
Alnitak

2

Bununla ilgili ince problemler olabilir. Birincisi, DNS Rebind saldırıları için ortak çözümlerin, genel DNS sunucularından çözülen yerel DNS girişlerini filtrelemesidir. Yani, saldırıları yeniden bağlamak için kendinizi açıyorsunuz ya da yerel adresler çalışmıyor ya da daha karmaşık bir yapılandırma gerektiriyor (yazılımınız / yönlendiriciniz izin veriyorsa).


+1 DNS yeniden bağlama işlemi kötü! medium.com/@brannondorsey/…
Ohad Schneider

1

Hosts dosyasında tutmak en iyisidir. Yine de bir makinenin buna bağlanması gerekiyorsa, genel DNS’e koyarak ne kazanırsınız?


Bulutta çalışırken, binlerce özel makineye sahip olabilirsiniz. Birkaç yıl önce, Netflix 2,000+ Cassandra düğümü olduğunu söyledi. /etc/hostsDosyayı kullanmak pratik değil çünkü 2.000 makinenin tümü bu IP / isim çiftlerini yönetmeli ...
Alexis Wilke

1

Özel olarak, 10.0.0.0/8, 192.168.0.0/16 veya 172.16.0.0/12 demek istiyorsan, yapma . - Çoğu internet yönlendiricileri Ne için onu tanımak gerekir özel adrese asla direkt bir tutumla kamu internete yönlendirilir NAT popülerliğini yardımcı budur. Genel DNS sunucunuzla bağlantı kurmaya çalışan herkes özel IP adresini DNS'den alır; yalnızca hiçbir yere bir paket göndermek için. Bağlantıları interneti özel adresinize yönlendirmeye çalıştığından, yol boyunca bazı (tamamen yapılandırılmış) bir yönlendirici basitçe paketi canlı olarak yer.

Eğer "içerden" gelmek için "dışardan" e-posta almak istiyorsanız, bir noktada paketin güvenlik duvarınızı geçmesi gerekir. Bunu işlemek için bir DMZ adresi kurmanızı tavsiye ederim - bulunduğunuz herhangi bir yönlendirici / güvenlik duvarı tarafından sıkı bir şekilde kontrol edilen tek bir genel IP adresi. Tanımladığınız mevcut kurulum tam olarak böyle sesler.

EDIT: niyetin açıklanması ... (aşağıdaki yorumlara bakınız). Bu mantıklı gelmezse, kendi gönderimi kaldırmak için oy kullanacağım.


3
Bunların hepsi güzel ve doğru, ancak neden RFC1918 adreslerini DNS’de yayınlamaması gerektiği konusunda gerçek bir neden belirtmediniz. Az önce RFC1918 adreslerinin ne olduğunu ve bazılarına bir rota açmanın mümkün olmadığını açıkladınız. Bunun diğer IP numaralarından farkı nedir? 198.41.0.4’e giden bir rotaya sahip olmamak mümkün - bu 198.41.0.4’ün DNS’de yayınlanmasının yanlış olduğu anlamına mı geliyor? DNS bir ad çözümleme sistemidir . Yönlendirmeyle ilgisi yok, ikisi ortogonal. Temel olarak FUD'ye karşılık gelen iki problem kategorisini topluyorsunuz.
Mihai Limbăşan

1
Tartışmanın içeriği, halka açık bir DNS sunucusunda özel IP adreslerinin kullanılmasıydı . Gönderinin amacı, yönlendiricilerin varsayılan olarak özel IP adreslerini yönlendirmeyeceğini belirtmekti. Bunu göstermek için teşebbüs etmemek olamaz siz "dışarıya" bu IP adreslerini sağlamamalıdır sadece bir DNS sunucusu içinde özel IP adreslerini kullanabilirsiniz. Bu yeterince net değilse, ben memnuniyetle yazıyı geri çekeceğim. Aksi takdirde, katılmıyorum, yazı% 100 spot-on - bu kişi için net etkisi / bunu yapacak / sorun varsa bu olacaktır.
Avery Payne

başını salla Alnitak'ın gönderisi altındaki yorumunuz bunu temizledi :) Thanks.
Mihai Limbăşan

"Genel DNS sunucunuzla bağlantı kurmaya çalışan herkes özel IP adresini DNS'den alır, yalnızca bir yere .... bir yere gönderir" - hayır, aslında DNS yeniden bağlanmasını tanımladınız ve en güvenli yönlendiricilerden bazılarında çalışıyor PepWave Surf SOHO'm da dahil olmak üzere dışarıda: rebind.network/rebind
Ohad Schneider

0

Buraya benzer bilgiler aradığım için geldim ve birçoğunun özel IP adreslerinizi sızdırmanın iyi olduğunu söylediğine şaşırdım. Sanırım saldırıya uğramak açısından güvenli bir ağ kullanıyorsanız çok büyük bir fark yaratmıyor. Bununla birlikte, DigitalOcean tüm yerel ağ trafiğini tamamen aynı kablolarda, herkesin gerçekten herkesin trafiğine erişebilmesini sağladı (muhtemelen Ortadaki bir Adamla yapılabilir).) Aynı veri merkezinde bir bilgisayarı ele geçirirseniz bilgi kesinlikle size trafiğimi hacklemeye bir adım daha yaklaşıyor. (Artık her müşterinin AWS gibi diğer bulut hizmetlerinde olduğu gibi kendi özel ağına sahip.)

Bununla birlikte, kendi BIND9 servisinizle, kamu ve özel IP'lerinizi kolayca tanımlayabilirsiniz. Bu viewbir şartlı içeren özellik kullanılarak yapılır . Bu, bir DNS'yi sorgulamanıza ve yalnızca kendi dahili IP adresinizden birinden soruyorsanız dahili IP'ler hakkında bir cevap almanıza olanak sağlar.

Kurulum iki bölge gerektirir. Seçim, kullanır match-clients. İşte BIND9 ile Two-in-one DNS sunucusundan kurulum örneği :

acl slaves {
    195.234.42.0/24;    // XName
    193.218.105.144/28; // XName
    193.24.212.232/29;  // XName
};

acl internals {
    127.0.0.0/8;
    10.0.0.0/24;
};

view "internal" {
    match-clients { internals; };
    recursion yes;
    zone "example.com" {
        type master;
        file "/etc/bind/internals/db.example.com";
    };
};
view "external" {
    match-clients { any; };
    recursion no;
    zone "example.com" {
        type master;
        file "/etc/bind/externals/db.example.com";
        allow-transfer { slaves; };
    };
};

İşte dış bölge ve IP’lerin özel olmadığını görebiliyoruz.

; example.com
$TTL    604800
@       IN      SOA     ns1.example.com. root.example.com. (
                     2006020201 ; Serial
                         604800 ; Refresh
                          86400 ; Retry
                        2419200 ; Expire
                         604800); Negative Cache TTL
;
@       IN      NS      ns1
        IN      MX      10 mail
        IN      A       192.0.2.1
ns1     IN      A       192.0.2.1
mail    IN      A       192.0.2.128 ; We have our mail server somewhere else.
www     IN      A       192.0.2.1
client1 IN      A       192.0.2.201 ; We connect to client1 very often.

İç bölgeye gelince, ilk önce dış bölgeyi ekledik, bu şekilde çalışıyor. yani eğer bir dahili bilgisayarsanız, sadece dahili bölgeye erişirsiniz, böylece yine de harici bölge tanımlarına ihtiyacınız vardır, bu nedenle $includekomut:

$include "/etc/bind/external/db.example.com"
@       IN      A       10.0.0.1
boss    IN      A       10.0.0.100
printer IN      A       10.0.0.101
scrtry  IN      A       10.0.0.102
sip01   IN      A       10.0.0.201
lab     IN      A       10.0.0.103

Son olarak, tüm bilgisayarlarınızın artık bu DNS ve kölelerini kullandığından emin olmalısınız. Statik bir ağ varsayalım, bu, /etc/network/interfacesdosyanızı düzenlemek ve DNS IP'lerinizi nameserverseçeneğinde kullanmak anlamına gelir . Bunun gibi bir şey:

iface eth0 inet static
    ...
    nameserver 10.0.0.1 10.0.0.103 ...

Şimdi hepiniz hazır olmalısınız.

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.