Firefox'un DNS için TCP kullanmasını sağlama


4

ISS'imin yavaş ve bozuk DNS sunucularını atlamak için TCP'yi DNS için kullanmak istiyorum. Proxy kullanmıyorum (ve kullanmak istemiyorum).

Not: TCP üzerinden DNS kullanmak istiyorum, çünkü eğer udp üzerinden kullanırsam, hangi sunucuyu kurarsam ayarlarım ISS'nin DNS'sinden cevaplar alıyorum.

Şunu öneren kişiyi şiddetle aşağı indireceğim:

  • DNS üzerinden TCP yapmak için programlar,
  • about:configDNS’in proxy’yi geçmesini sağlamak için yapılan ayar : Proxy kullanmıyorum,
  • başka bir DNS kullan: Google’ı DNS’im olarak ayarladım ancak ele geçiriliyorum.

Kesişme diyerek ne demek istediğime örnek:

$ dig @8.8.8.8 thepiratebay.se

; <<>> DiG 9.8.1 <<>> @8.8.8.8 thepiratebay.se
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24385
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;thepiratebay.se.               IN      A

;; ANSWER SECTION:
thepiratebay.se.        28800   IN      A       83.224.65.41

;; Query time: 50 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 16 22:51:06 2012
;; MSG SIZE  rcvd: 49

$ dig +tcp @8.8.8.8 thepiratebay.se

; <<>> DiG 9.8.1 <<>> +tcp @8.8.8.8 thepiratebay.se
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15131
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;thepiratebay.se.               IN      A

;; ANSWER SECTION:
thepiratebay.se.        436     IN      A       194.71.107.15

;; Query time: 61 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 16 22:51:10 2012
;; MSG SIZE  rcvd: 49

Önemli olursa, Gentoo Linux'ta Firefox 14 kullanıyorum.


Bu sabit bir ağdan mı geliyor? Örneğin. ev ağı? Öyleyse, kendi DNS’inizi çalıştırmayı denediniz mi?
Julian Knight

1
Gerçekten sizin için bir cevap değil bu yüzden yorum olarak bırakacağım. OpenDNS , bunu düzeltmesi gereken bir Windows ve Mac istemcisi DnsCrypt sunuyor
Julian Knight

@JulianKnight evet, öyle. Kendi DNS'mi çalıştırmak bir fikir olabilir. Eğer bir cevap olarak yazarsanız ben upvote edeceğiz ve daha iyi fikirler bulunursa sonunda cevap olarak kabul
miniBill

Firefox, OS'lerin soket arayüzünü de DNS çözünürlüğü için kullanıyor olabilir, bu nedenle DNS'nin nasıl yapıldığını bile kontrol edemeyebilir.
billc.cn

@JulianKnight: ayrıca, named.conf dosyasına koymak için belirli ayarlar var mı? Varsayılan yapılandırma ile bu yakalanan elde tutar Çünkü ...
miniBill

Yanıtlar:


3

Eğer glibc kullanıyorsanız , libc çözümleyicisini daima TCP kullanmaya zorlayan belgesiz use-vcseçeneğini ( resolv/res_init.cglib kaynak koduna bakınız) kullanabilirsiniz.

Her ikisi de resolv.conf dosyasında global olarak ayarlayın:

options use-vc nameserver 1.2.3.4

Veya ortamdaki seçeneği iletin:

RES_OPTIONS=use-vc firefox

Uygulama, libc res_init/res_query/…işlevlerini kullanmadan kendi DNS desteğini uygularsa çalışmaz. Firefox ile çalışıyor (muhtemelen SOCKS proxy ayarlarında "uzak DNS" seçeneğini kullanmadığınız sürece).


7

Unbound'u kurun ve unbound.conf config dosyasındaki "tcp-upstream: no" ile "yes" arasında bir değişiklik yapın.

# upstream connections use TCP only (and no UDP), "yes" or "no"
# useful for tunneling scenarios, default no.
# tcp-upstream: no

Ve her şeyi bir yukarı akış çözümleyiciden çözmek için, şöyle bir şey ekleyin:

forward-zone:
    name: "."
    forward-addr: 213.154.224.3

Ayrıca Unbound için uygun bir kullanıcı arayüzü olan dnssec-trigger'ı kullanarak her şeyi bir SSL bağlantısı üzerinden tünellemek için kullanabilirsiniz.


Teşekkür ederim. Sonunda opendns'in 5353 portunu kullanarak ( forward-addr: 208.67.222.222@5353udp kullanarak ) kurtulabilirdim , ama cevabınız aradığım şeydi :)
miniBill

4

ISS sorununu çözmenin bir yolu, kendi yerel, yerel DNS sunucunuzu çalıştırmaktır. Bu özellikle Linux'ta zor değil.

İlgili noktalardan bazılarını kapsayan önceki, ilgili bir soru var: Bir ISS, NXDOMAIN isteklerini yakaladığında ne yapmalı? Ve burada başka bir makale .

DNSsec ( WikiPedia ) uzun vadede bu sorunu kaldırmak gerekir. Ayrıca OpenDNS'den DNSCrypt sorunu düzeltir, ancak yalnızca Mac ve Windows iş istasyonları için.

Kendi DNS'nizi kurma konusunda iyi makaleler var:


1
Ancak yerel DNS sunucumun nihayetinde oraya çıkması ve çözülen adı alması gerekiyor. Şimdi, bu olduğunda ISS'm isteği durduruyor. Sadece delegasyon numarası benim için işe yaramıyor, ya da belki yanlış adlandırılmış adını verdim.
miniBill 16:12

1
OpenDNS 5353'te sorgu kabul ediyor.
LawrenceC

@ultrasawblade şimdi bu ilginç. Bunu doğrudan kullanmanın bir yolu var mı yoksa yerel bir dns sunucusu kurmak zorunda mıyım?
miniBill

1
@ ultrasawblade, Frank'in önerdiği gibi Unbound'u kullanarak, özel limanda hile yaptı. Teşekkürler.
miniBill

2

Firefox'un DNS için TCP kullanmasını sağlayın?

Yapamazsın

Firefox bu kararı vermez, sadece bir işletim sistemi API çağırır gethostbyname()

İşletim sistemi çözücü bir DNS sunucusuna verir.

Kendi dahili DNS sunucunuzu kurabileceğinizi ve bunu yalnızca TCP kullanacak şekilde yapılandırabileceğinizi düşünebilirsiniz.

İşte bu ilgili post dan birisi muhtemelen herkesten daha DNS hakkında daha fazla biliyor.

08-11-2008 03:20

Yanıt: BIND'yi yalnızca TCP kullanmaya zorlamak mümkün mü?

"Joe Baptista" yazıyor:

Yalnızca TCP kullanmaya zorlamak ve hiçbir zaman UDP kullanmamak için BIND'de yapılabilecek herhangi bir yapılandırma değişikliği var mı? Mümkün?

yok hayır.

-
Paul Vixie

Muhtemelen zaten

Teoride, istediğinizi yapan bir DNS ileticisi bulabilir, yazabilir veya değiştirebilirsiniz.

Teoride, herhangi bir çağrıyı arayarak gethostbyname()ve özel DNS istemci koduyla değiştiren bir Firefox eklentisi bulabilir ya da yazabilirsiniz - Firefox eklentisi mimarisinin bunu mümkün kıldığı, ancak bir bakıma değeceği konusunda hiçbir fikrim yok.


1

Ben de aynı problemi yaşadım. Firefox’taki herhangi bir ayar, işletim sistemindeki herhangi bir ayar veya TCP ve UDP ile ilgisi olmadığı ortaya çıktı. Sorun gerçekten ISS'nizdeki yönlendiriciden kaynaklanıyor. Bu müdahale ediyor bütün "port 53" trafik ve ISS'nizin DNS sunucularına bunu yapamazlar. Yeniden yönlendirme hem gönderilen hem de alınan paketleri (NAT'a benzer) yeniden ne olduğunu söyleyemeyeceğiniz şekilde yeniden yazarak yapılır (paketlerdeki DNS sunucusunun adresi, paketlenmiş olsa bile istediğiniz gibi görünüyor) Gerçekten de ISS’nin kendi DNS sunucusuna gitti.

Yönlendiricinize erişin (genellikle web’de 192.168.1.1’e göz atarak ve bir ad ve parola girerek), DNS sunucusunun yazdığı yeri bulun ve bu adresi ISS'nizin DNS sunucusundan gerçekten kullanmak istediğinize göre değiştirin (OpenDNS? Google ? ...?).

Router config neredeyse kesinlikle adresin yönlendiricinin kendisi tarafından kullanıldığını gösterir. Muhtemelen araya girmekle veya bilgisayarınız hakkında hiçbir şey söylemeyecektir. İnanma Yönlendiricilerin DNS tarafından ele geçirilmesi, SOHO kullanıcılarının geçici bir siteye bakmak için filtrelenmiş bir DNS'yi atlayarak geçici olarak engellemelerini amaçlamaktadır ve bu nedenle büyük bir sırdır: bu nedenle en az belgelendirilen, genellikle olmadığı bile görülür.


Maalesef yönlendiricim bir "Vodafone İstasyonu", burada DNS ayarı yok ... Yine de bir artı puan alıyorsunuz ^^
miniBill

Arrggghhhh. LAN bağlantınızın bir cep telefonu bağlantısıyla olduğunu doğru anlıyor muyum? Eğer öyleyse, herhangi bir cevap bilmiyorum. Bildiğim kadarıyla, herhangi bir alternatif DNS'nin bir hücre ağı üzerinden kullanılması çözülmemiş bir sorundur ve iyi bir saldırı bile yoktur. DNS sunucusunun adresi, telefona ISS'den gelen DHCP yanıtının bir parçası olarak verilir. Bunu kesmek , "köklü" bir telefon ve "statik" bir IP yapılandırmasının bir kombinasyonu ile mümkün olabilir ... ama muhtemelen değil. Hücre ağında TCP DNS konusunda deneyimim yok, bu yüzden işe yaramayacağından emin değilim ... :-(
Chuck Kollars

Cep telefonu ipi sadece bir geri dönüş olarak var, normal bağlanabilirlik normal DSL aracılığıyla geliyor, bu yüzden hayır, gözleminiz geçerli değil :)
miniBill 19

Hata! Netlik için "modem" demeliydim, çünkü bugünlerde iki cihaz bir araya geldi. DSL modem tarafından desteklenen dıştan takma bir yönlendirici için, ayar DSL modemde olacaktır. (Bunu düşünmenin bir başka yolu, ayarın, telefon şirketiniz tarafından "onaylanması" gereken kısmı olacak :-)
Chuck Kollars,

1

Dnscrypt + unbound kullanın. Varsayılan olarak dnscrypt, 443 / udp'deki dns sorgularını OpenDNS'e gönderir.

Bu dns servisini LAN'ımdaki diğer makinelere tünellemenin bir yolunu bulamadım. Netcat, socat veya udptunnel değil, hiçbir slogan yok.


0

Google’ın genel DNS sunucularını kullanın. Hızlı ve güvenilirler. İşte çeşitli işletim sistemlerinde bunları kullanmak için talimatlar .


1
Eğer nsp üzerinden dns kullanırsam, ISS'm tarafından ele geçiriliyorum. Sorunu yansıtacak şekilde düzenleyeceğim
miniBill 16:12

OOC, ISS'niz kim?
Keltari

Vodafone IT
miniBill 16:12

hm, onlarla ailevi değil.
Keltari

Vodafone bir İngiltere cep telefonu sağlayıcısıdır.
Julian Knight

0

IPtables kullanarak giden UDP DNS isteklerini engellemeyi deneyin:

iptables -A OUTPUT -p udp --dport 53 -j REJECT

Arama UDP için başarısız olmalı ve daha sonra (umarım) TCP kullanılarak yeniden denenmelidir.


Bunu yaparsam arama basitçe başarısız olur ve firefox TCP ile yeniden
denenmez

RFC başına 1035 DNS sorgusu normalde UDP'dir. Sorguların TCP üzerinde çalışmasını sağlamak için sorguları bu şekilde göndermek üzere bir çözümleyici ve sorguları bu şekilde almak için bir DNS sunucusu gerekir.
dafydd

0

Sonunda, birçok TPB kullanıcısının gidip TOR veya VPN servisini kullanma biçimine geçebilirsiniz .


TPB sadece özel bir örnekti. Soru açıkça bir proxy kullanmak istemediğimi belirtiyor [ve TOR ve bir VPN bu sorunun proxy'si olarak nitelendiriliyor] ...
miniBill
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.