DNSBox

IP tabanlı ana makine adları için DNS ve HTTPS

Herkese açık bir HTTP hizmetine *.dnsbox.io üzerinden erişin veya DNSBox'ı kendi özel ağınızda çalıştırın.

v0.5.2 ile sunulanlar

v0.4.x sürümünden mi yükseltiyorsunuz? Mevcut kurulumunuzu değiştirmeden önce geçiş rehberini izleyin. Geçiş rehberi

Herkese açık hizmeti kullanın

Hesap açmanız veya alan adı kaydetmeniz gerekmez. Arka ucunuz, izin verilen bir genel IP adresinde, DNSBox'tan erişilebilen 80 numaralı portta bir HTTP hizmeti çalıştırmalıdır.

198.51.100.20 yerine sunucunuzun genel IPv4 adresini yazın:

https://198-51-100-20.dnsbox.io

DNS, ana makine adını bir DNSBox vekil sunucusunun adresine çözümler. Vekil sunucu HTTPS bağlantısını sonlandırır ve HTTP isteklerini ana makine adında kodlanmış IP adresine iletir. Sunucunuza sertifika yüklemez.

Let's Encrypt, ana makine adını DNS-01 ile doğrular. Sertifika doğrudan IP adresi için değil, bu ana makine adı için verilir. Sertifika oluşturulurken ilk TLS bağlantısı daha uzun sürebilir.

Tarayıcı ile DNSBox arasındaki bağlantı HTTPS kullanır. DNSBox ile arka uç arasındaki bağlantı HTTP kullanır. WebSocket'e bağlantı yükseltme desteklenir.

Bir IPv6 arka ucu 2a01-4f8-c17-b8f--1.dnsbox.io olarak kodlanabilir. Tek kısa çizgi iki noktayı, çift kısa çizgi ise :: işaretini temsil eder.

Önce DNS çözümlemesini, ardından HTTPS'i kontrol edin. Bu test için kendi erişilebilir HTTP arka ucunuzu kullanın:

dig +short 198-51-100-20.dnsbox.io
curl -v https://198-51-100-20.dnsbox.io/

DNS yanıtı vekil sunucunun adresidir. Geçerli bir TLS bağlantısı ve arka uçtan başarılı bir HTTP yanıtı alınması ayrı ayrı kontrol edilir.

Özel bir ağ içinde çalıştırın

Yerel TLS modu; herkese açık DNS, port yönlendirme veya İnternet erişimi olmadan çalışır. DNSBox kendi sertifika otoritesini oluşturur. İstemcilerin bu otoriteye güvenmesi gerekir.

Örnek: DNSBox 192.168.1.2 adresinde, HTTP arka uçları ise 192.168.1.0/24 ağında:

./dnsboxd --domain=home.arpa --ip=192.168.1.2 \
  --tls-mode=local --allowed-cidrs=192.168.1.0/24 \
  --dns-listen=192.168.1.2:53 --https-listen=192.168.1.2:443 \
  --data-dir=/var/lib/dnsbox

Yerel ağınızın DNS çözümleyicisinden yalnızca home.arpa bölgesini 192.168.1.2 adresine yönlendirin. DNSBox kendi bölgesi için yetkili sunucudur; genel amaçlı özyinelemeli bir DNS çözümleyicisi değildir.

Sertifika otoritesini oluşturmak için bir yerel sertifika üretin, ardından /var/lib/dnsbox/ca/root.crt dosyasını her istemcinin güvenilen sertifika otoriteleri deposuna yükleyin. root.pem dosyasını gizli tutun. İlk kurulum komutu, kurulum rehberinde yer alır.

192.168.1.50 adresindeki bir arka uç için https://192-168-1-50.home.arpa adresini açın. Yerel ağ istemcileri DNSBox'ın DNS ve HTTPS portlarına, DNSBox ise arka ucun HTTP portuna erişebilmelidir.

Özel ağ kurulumu

Let's Encrypt ile kendi sunucunuzu kurun

Kontrol ettiğiniz bir alan adı veya alt alan adı kullanın ve DNS bölgesinin yetkisini DNSBox ad sunucunuza devredin. Bölgeyi tek bir düğüm sunabilir; birden fazla düğüm yedeklilik sağlar.

Herkese açık DNS-01 doğrulaması için gelen UDP 53 ve TCP 53 trafiğine, giden HTTPS trafiğine ve DNS çözümlemesine izin verin. Gelen bağlantılar için 80 numaralı port gerekli değildir. 443 numaralı porta yalnızca hizmeti kullanmasını istediğiniz istemcilerin erişmesi yeterlidir.

DNS-01 doğrulaması herkese açık olduğunda, özel ağlardaki HTTP arka uçları genel olarak güvenilen ana makine adı sertifikalarını kullanabilir. Bu arka uçlara --allowed-cidrs ile açıkça izin verin ve istemcileriniz için DNS ile yönlendirmeyi yapılandırın.

Birden fazla düğüm kullanırken her düğümde aynı ad sunucusu listesini ve kayıtları yapılandırın; doğrulama verilerinin çoğaltılması için de karşılıklı TLS kullanın. Sertifika üretimi devam etmeden önce yapılandırılmış tüm eşlerin doğrulama verilerini aldığını onaylaması gerekir.

Linux, macOS ve Windows için sürüm arşivleri mevcuttur. Yükleyici, elle başlatma veya başka bir süreç yöneticisi kullanımı için --no-systemd seçeneğini destekler. Sisteminizin DNS çözümleyicisini devre dışı bırakmaz.

Kurulum ve küme yapılandırması

ocserv ve diğer hizmetler için sertifikalar

Herkese açık hizmet, özel anahtarlarını dışa aktarmaz. Hizmetiniz sertifika dosyalarına ihtiyaç duyuyorsa, kontrol ettiğiniz ve yetkisini devrettiğiniz bir DNS bölgesiyle kendi DNSBox sunucunuzu kurun.

Bu bölge altında IP adresi kodlanmış bir ana makine adıyla --issue seçeneğini çalıştırın. DNSBox, PEM biçimindeki sertifika zincirini ve özel anahtarı <data-dir>/certs dizinine yazar, ardından kapanır. ACME ile sertifika üretimi sırasında DNS hizmeti verir ancak HTTPS portu 443'ü boş bırakır.

Açık bir A/AAAA kaydıyla bu ana makine adını doğrudan hizmetinize yönlendirin. ocserv için server-cert ve server-key ayarlarını yapılandırın. DNSBox'ın HTTP vekil sunucusu OpenConnect veya DTLS protokollerini uygulamaz.

Sertifika yenilemeyi ve dosyalar değiştiğinde hizmetinizin bunları yeniden yüklemesini ayarlayın. Tek seferlik komut, kapandıktan sonra sertifikaları yenilemez. Aynı veri dizinini kullanan iki DNSBox sürecini birlikte çalıştırmayın.

Sertifika dışa aktarma örneği

Sorular

Herkese açık hizmetle özel IP adreslerini kullanabilir miyim?

Hayır. Herkese açık vekil sunucu, izin verilen genel arka uçlar içindir. Özel adresler için açıkça tanımlanmış bir CIDR izin listesiyle kendi sunucunuzu çalıştırın.

IP adresim değişirse ne olur?

IP adresi, ana makine adının bir parçasıdır. Yeni IP için yeni bir ana makine adı kullanın; eski adı kullanan istemciler eski adrese yönelmeye devam eder.

DNSBox, arka uç IP adresinin sahipliğini kanıtlar mı?

DNS-01, DNS ana makine adı üzerindeki kontrolü kanıtlar. Arka uç IP adresinin veya orada sunulan içeriğin sahipliğini doğrulamaz.

Sertifikalar otomatik olarak yenilenir mi?

Çalışan bir DNSBox hizmeti, yönettiği sertifikaları yeniler. Dışa aktarılan sertifikalar için bir yenileme süreci ve onları kullanan hizmetin dosyaları yeniden yüklemesi gerekir.

Arka uç çevrimdışıysa ne olur?

DNS ve TLS çalışmaya devam edebilir ancak vekil sunucu uygulamanın içeriğini döndüremez. Arka ucun HTTP dinleyicisini, güvenlik duvarını ve erişilebilirliğini kontrol edin.

Bir sorunu nereden bildirebilirim?

DNSBox sürümünü, kurulum modunu ve ilgili hata mesajlarını belirterek GitHub'da bir sorun kaydı açın. Özel anahtarları, erişim belirteçlerini ve diğer gizli bilgileri çıkarın.

GitHub sorun kayıtları

Teknik başvuru

Yapılandırma başvurusu

Kaynak kodu