MENU

Linux’ta DNS Sunucularını Kontrol Etme ve Ayarlama: Temel Kavramlardan Güvenlik Önlemlerine

Linux sistemlerinde DNS sunucularını doğru bir şekilde kontrol etmek ve yapılandırmak, ağınızın stabilitesini ve verimliliğini korumak için son derece önemlidir. Bu makale, DNS sunucularını Linux’ta nasıl kontrol edeceğinizi ve ayarlayacağınızı hem başlangıç seviyesindeki kullanıcılar için hem de ileri seviye kullanıcılar için kapsamlı bir rehber sunar. Temel kavramlardan başlayarak, belirli komut satırı araçlarının kullanımını, yapılandırma dosyalarını düzenlemeyi, sorun gidermeyi kapsar ve pratik bilgileri kapsamlı bir şekilde ele alır. Sonuç olarak, Linux sisteminiz İnternet’teki kaynaklara erişimde daha verimli hale gelecektir.

İçindekiler

DNS Nedir: Temel Bir Kavram Açıklaması

Alan Adı Sistemi (DNS), internet alan adlarını IP adreslerine ve bunun tersine çeviren bir sistemdir. Anlamlı alan adlarını (örn., www.example.com) bilgisayarların anlayabileceği sayısal IP adreslerine (örn., 192.0.2.1) çevirerek internet aramalarını ve web sitesi erişimini mümkün kılar. Bu süreç, “isim çözümleme” olarak bilinir ve internet üzerinde bilgi alma işlemini kolaylaştırır.

DNS hiyerarşik bir yapıya sahiptir ve en üstte “Kök DNS Sunucuları” yer alır, alan adlarının son kısmını (örn., .com, .org) yönetirler. Bunları “Üst Düzey Alan (TLD) Sunucuları” izler, ardından “Yetkili DNS Sunucuları” gelir ve nihayet, “Yerel DNS Sunucuları” bu yapılandırılmış kurulumda kullanıcı sorgularına yanıt verir.

Bir kullanıcı web tarayıcısına bir alan adı girdiğinde, yerel DNS sunucusu karşılık gelen IP adresini arar. Yerel DNS sunucusunda bilgi yoksa, istek gerekli bilgi alınana kadar daha üst seviye DNS sunucularına aktarılır. Bu işlem genellikle milisaniyeler içinde tamamlanır, böylece kullanıcı web sayfasına erişebilir.

DNS sistemi, internet altyapısının vazgeçilmez bir parçasıdır ve verimli çalışması, web performansı ve erişilebilirliği üzerinde önemli bir etkiye sahiptir. Bu nedenle, Linux sistemlerinde DNS sunucularını doğru bir şekilde yapılandırmak ve yönetmek, sistem yöneticileri için kritik bir beceridir.

DNS Sunucularını Kontrol Etme: Komut Satırı Araçlarını Kullanma

Linux sistemlerinde DNS sunucu ayarlarını kontrol etmenin birkaç yolu vardır, ancak en doğrudan ve yaygın yöntem komut satırı araçlarını kullanmaktır. Burada, iki yaygın kullanılan araçtan bahsedeceğiz: cat komutu ve nmcli komutu.

`cat` Komutu ile /etc/resolv.conf’u Kontrol Etme

En temel yöntem, /etc/resolv.conf dosyasını görüntülemektir. Bu dosya, sistem tarafından DNS çözümlemesi için kullanılan DNS sunucularının adreslerini içerir. İçeriğini kontrol etmek için aşağıdaki komutu yürütün:

cat /etc/resolv.conf

Çıktı şu şekilde görünebilir:

# NetworkManager tarafından oluşturuldu
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8

Bu örnekte, nameserver ile başlayan satırlar DNS sunucu IP adreslerini gösterir, 192.168.1.1 ve Google’ın genel DNS adresi 8.8.8.8 ayarlanmıştır.

`nmcli` Komutu ile DNS Sunucularını Kontrol Etme

NetworkManager kullanan sistemlerde, geçerli ağ bağlantısının DNS ayarlarını kontrol etmek için nmcli komutunu kullanabilirsiniz. Aşağıdaki komut DNS sunucu bilgilerini alır:

nmcli device show | grep IP4.DNS

Bu komut, geçerli ağ cihazı bilgilerinden DNS sunucu ayarlarını (IPv4) çıkarır ve gösterir. Çıktı şu şekilde görünebilir:

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

Bu yöntemler, Linux sisteminizde ayarlanan DNS sunucu bilgilerini kolayca kontrol etmenize olanak tanır, ağ bağlantısı sorunlarını teşhis etmek veya belirli bir DNS sunucusuna değişiklikler düşünmek için kullanışlıdır.

DNS Sunucularını Ayarlama: /etc/resolv.conf’u Düzenleme

Linux sistemlerinde DNS sunucularını ayarlamanın temel yöntemlerinden biri, doğrudan /etc/resolv.conf dosyasını düzenlemektir. Bu dosya, sistem tarafından DNS çözümlemesi için başvurulan DNS sunucularının bir listesini tutar. Burada, bu dosyayı nasıl güvenli bir şekilde düzenleyeceğinizi açıklıyoruz.

/etc/resolv.conf Dosyasını Düzenleme

  1. İlk olarak, mevcut ayarların bir yedeğini alın. Herhangi bir sorun durumunda orijinal dosyayı geri yükleyebilmek önemlidir. Yedek oluşturmak için aşağıdaki komutu kullanın:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. Ardından, bir metin düzenleyici kullanarak /etc/resolv.conf dosyasını düzenleyin. Burada nano düzenleyicisini kullanıyoruz, ancak vi veya emacs gibi tercih ettiğiniz düzenleyiciyi kullanabilirsiniz:
sudo nano /etc/resolv.conf
  1. Dosya açıldığında, DNS sunucu adreslerini belirtmek için nameserver ile başlayan satırları ekleyin veya düzenleyin. Örneğin, Google’ın genel DNS adreslerini kullanmak için şunları yazarsınız:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. Değişiklikleri yaptıktan sonra, dosyayı kaydedin ve düzenleyiciden çıkın. nano kullanıyorsanız, kaydetmek için Ctrl + O‘ya ve çıkmak için Ctrl + X‘e basın.

Yeni Ayarları Aktifleştirme

/etc/resolv.conf dosyasını düzenledikten sonra, genellikle değişiklikleri uygulamak için ağ servisini yeniden başlatmanız gerekir. Bu, aşağıdaki komutla yapılabilir:

sudo systemctl restart network.service

Ya da, NetworkManager kullanıyorsanız, ağ bağlantısını bu komutla yeniden başlatabilirsiniz:

sudo systemctl restart NetworkManager

Bu, sistemdeki yeni DNS ayarlarını uygular. Ayarların doğru çalıştığını doğrulamak için, web sitelerine erişmeyi deneyerek veya alan adlarını çözmek için ping gibi komutları kullanarak test etmek önerilir.

Manuel DNS sunucu yapılandırması, DNS çözümleme stratejilerini sistem veya ağ gereksinimlerine göre ayarlamak için etkilidir. Ancak, bu yöntem uzun vadeli çözümler için uygun olmayabilir, çünkü /etc/resolv.conf dosyası diğer işlemler tarafından otomatik olarak üzerine yazılabilir. Bu nedenle, DNS ayarlarını yönetmek için resolvconf, systemd-resolved veya NetworkManager gibi araçları kullanmayı düşünün.

Komut Satırı Araçlarıyla DNS Ayarlarını Kontrol Etme ve Değiştirme

Linux, GUI araçlarına başvurmadan komut satırı kullanarak DNS ayarlarını kontrol etme ve değiştirme yöntemleri sunar. Bu yöntemler, özellikle sunucu ortamları veya uzaktan sistemleri yönetmek için yararlıdır. Burada, systemd-resolve ve nmcli komutlarını kullanarak yöntemleri açıklıyoruz.

`systemd-resolve` Komutu ile DNS Ayarlarını Kontrol Etme

systemd kullanan sistemlerde, mevcut DNS ayarlarını kontrol etmek için systemd-resolve komutu kullanılabilir. Bu komut, systemd-resolved servisiyle ilişkilidir ve isim çözümleme yapılandırması ve istatistiklerini sağlar.

DNS ayarlarını kontrol etmek için aşağıdaki komutu yürütün:

systemd-resolve --status

Bu komut, kullanılan DNS sunucularını, arama alanlarını ve diğer ağla ilgili bilgileri içeren detaylı bir çıktı sağlar. Çıktı, ağ arayüzüne göre bölünmüş olup, her bölüm o arayüz için ayarları gösterir.

`nmcli` Komutu ile DNS Ayarlarını Değiştirme

NetworkManager kullanan sistemlerde, DNS ayarlarını değiştirmek için nmcli komutu kullanılabilir. nmcli, ağ bağlantılarını kurmak ve yönetmek için bir komut satırı aracıdır.

Örneğin, belirli bir bağlantı için DNS sunucularını ayarlamak için aşağıdaki komutu kullanın:

nmcli connection modify <bağlantı adı> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <bağlantı adı> ipv4.ignore-auto-dns yes
nmcli connection up <bağlantı adı>

Bu komutta, Google’ın DNS sunucuları (8.8.8.8 ve 8.8.4.4) <bağlantı adı> adlı bağlantı için ayarlanmıştır. ipv4.ignore-auto-dns yes seçeneği, otomatik olarak elde edilen DNS ayarlarını yoksayıp manuel olarak belirtilen DNS’yi kullanmak için kullanılır. Son olarak, nmcli connection up komutu kullanılarak bağlantı yeniden başlatılır ve yeni ayarlar uygulanır.

Bu komut satırı araçları, Linux sistemlerinde DNS ayarlarını esnek bir şekilde kontrol etme ve değiştirme olanağı sağlar. Özellikle uzaktan sistem yönetimi ve betikler aracılığıyla otomasyon için yararlıdırlar.

systemd-resolved ile DNS Ayarları

systemd-resolved, systemd sistem ve servis yöneticisine entegre modern bir DNS çözümleyicisidir. DNS önbellekleme, DNSSEC doğrulama ve kayıt yönlendirme gibi çeşitli özellikler sunarak DNS çözümleme sürecini akıcı hale getirir. Burada, systemd-resolved kullanarak DNS ayarlarını nasıl yöneteceğinizi açıklıyoruz.

systemd-resolved’a Genel Bakış

systemd-resolved, yerel uygulamalardan gelen DNS çözümleme isteklerini işler, dış DNS sunucularından gelen yanıtları önbelleğe alır ve isim çözümleme hızını ve güvenilirliğini artırır. Ayrıca, sistem genelinde bir DNS çözümleme stratejisi sağlayan /etc/resolv.conf dosyasını yönetir.

systemd-resolved’ı Etkinleştirme ve Yapılandırma

Çoğu modern Linux dağıtımında systemd-resolved varsayılan olarak etkinleştirilmiştir. Ancak, etkinleştirilmemişse, servisi başlatmak ve etkinleştirmek için aşağıdaki komutu kullanabilirsiniz:

sudo systemctl enable --now systemd-resolved.service

Etkinleştirildikten sonra, özel DNS sunucu adreslerini ayarlamak için /etc/systemd/resolved.conf dosyasını düzenleyebilirsiniz. Düzenlemeden önce dosyanın bir yedeğini almanız önerilir.

sudo nano /etc/systemd/resolved.conf

Örneğin, Google’ın genel DNS sunucularını kullanmak için aşağıdakileri ayarlarsınız:

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

DNS seçeneği, kullanılacak birincil DNS sunucularının IP adreslerini boşluklarla ayrılmış olarak belirtir. FallbackDNS, birincil sunucular kullanılamadığında kullanılacak DNS sunucularını listeler.

Ayarları değiştirdikten sonra, değişiklikleri uygulamak için systemd-resolved servisini yeniden başlatın:

sudo systemctl restart systemd-resolved

systemd-resolved ve /etc/resolv.conf Arasındaki İlişki

systemd-resolved kullanılan sistemlerde, /etc/resolv.conf dosyasını /run/systemd/resolve/stub-resolv.conf dosyasına sembolik bağlantı olarak ayarlamak önerilir. Bu, systemd-resolved tarafından sağlanan yerel DNS önbelleği ve yönlendirme özelliklerinin kullanılmasını sağlar. Sembolik bağlantıyı ayarlamak için aşağıdaki komutu kullanın:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Bu, systemd-resolved‘ın sistemin DNS çözümleme işlemini yönetmesine olanak tanır, daha hızlı ve daha güvenli bir internet bağlantısı sağlar.

Network Manager ile DNS Yönetimi

Linux sistemlerinde, Network Manager (NetworkManager) ağ yapılandırması ve yönetimi için en yaygın kullanılan araçtır. Kablosuz ağlar, kablolu ağlar, mobil geniş bant ve VPN bağlantıları dahil olmak üzere çeşitli ağ arayüzlerinin yönetimini kolaylaştırır. DNS ayarları da bu araç aracılığıyla yönetilebilir. Burada, Network Manager kullanarak DNS’yi nasıl ayarlayacağımızı tartışıyoruz.

Network Manager ile DNS Ayarlarını Değiştirme

Network Manager ile DNS ayarlarını, grafik kullanıcı arayüzü (GUI) veya komut satırı arayüzü (CLI) kullanarak değiştirebilirsiniz. CLI için, nmcli komutu çok kullanışlıdır.

Belirli bir ağ bağlantısı için DNS ayarlarını değiştirmek üzere, öncelikle bağlantının adını belirleyin. Mevcut tüm ağ bağlantılarını aşağıdaki komutla listeleyebilirsiniz:

nmcli connection show

Ardından, bağlantı adını kullanarak DNS sunucularını ayarlayın. Aşağıdaki komut, “bağlantı adı” adlı bağlantı için DNS sunucu adreslerini ayarlar:

nmcli connection modify "bağlantı adı" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "bağlantı adı" ipv4.ignore-auto-dns yes
nmcli connection up "bağlantı adı"

Bu komut, belirli bir bağlantı için Google’ın DNS sunucularını (8.8.8.8 ve 8.8.4.4) ayarlar, otomatik olarak elde edilen DNS ayarlarını yoksayar. Son olarak, ayarları uygulamak için nmcli connection up kullanılarak bağlantı yeniden başlatılır.

Küresel DNS Ayarlarını Değiştirme

Network Manager’ı kullanarak sistem genelinde DNS ayarlarını da değiştirebilirsiniz. Bunu yapmak için, /etc/NetworkManager/NetworkManager.conf dosyasını düzenleyin ve [main] bölümü altına dns seçeneğini ekleyin:

[main]
dns=dnsmasq

Bu ayar, Network Manager’ın DNS sorgularını işlemek için dnsmasq kullanmasını sağlar. dnsmasq, yerel DNS sorgu çözümlemesi ve önbellekleme sağlayan hafif bir DNS önbelleği ve DHCP sunucusudur ve DNS çözümleme hızını artırır.

Ayarları değiştirdikten sonra, Network Manager’ı yeniden başlatmanız gerekir:

sudo systemctl restart NetworkManager

Network Manager aracılığıyla DNS yönetimi, ağ yapılandırması esnekliğini ve kolaylığını önemli ölçüde artırır. Kullanıcıların DNS ayarlarını kolayca özelleştirmesine olanak tanır, ağ performansını ve güvenliğini optimize eder.

Sorun Giderme: Yaygın Sorunlar ve Çözümleri

DNS ile ilgili sorunlar, internet bağlantı sorunları, web sitelerine erişim zorlukları ve gecikmeler gibi çeşitli şekillerde ortaya çıkabilir. Burada, Linux’ta karşılaşabileceğiniz yaygın DNS ile ilgili sorunları ve bunları çözme yaklaşımlarını tartışıyoruz.

Yavaş DNS Çözümlemesi

DNS çözümlemesi yavaşsa, kullandığınız DNS sunucusu gecikmenin nedeni olabilir. Başka bir DNS sunucusuna geçmek sorunu çözebilir. Örneğin, Google Public DNS (8.8.8.8 ve 8.8.4.4) ve Cloudflare DNS (1.1.1.1) hızlı ve güvenilir seçeneklerdir.

DNS Çözümlemesi Başarısızlığı

DNS çözümlemesi başarısız olursa, öncelikle sisteminizin doğru DNS sunucularına işaret edip etmediğini kontrol edin. Bunu /etc/resolv.conf dosyası veya systemd-resolve --status komutunu kullanarak doğrulayabilirsiniz. Doğru DNS sunucuları ayarlanmışsa ve sorun devam ediyorsa, DNS önbelleğini temizlemek yardımcı olabilir. systemd-resolved kullanıyorsanız, önbelleği aşağıdaki komutla temizleyebilirsiniz:

sudo systemd-resolve --flush-caches

Belirli Web Sitelerine Erişememe

Belirli web sitelerine erişmekte sorun yaşıyorsanız, bu sitelerin DNS kayıtlarında sorunlar olabilir veya yerel DNS önbelleğiniz eski bilgileri tutuyor olabilir. DNS önbelleğini temizlemek sorunu çözebilir. Ayrıca, /etc/hosts dosyasının bu web siteleri için manuel olarak eklenmiş girişlere sahip olmadığını kontrol edin.

DNS Sunucusu Yanıt Vermiyor

Kullandığınız DNS sunucusu yanıt vermiyorsa, öncelikle DNS sunucusunun çöktüğünü veya ağ bağlantınızda herhangi bir sorun olup olmadığını kontrol edin. DNS sunucusuna ulaşıp ulaşamadığınızı ping komutu kullanarak test edebilirsiniz. DNS sunucusu yanıt vermiyorsa, başka bir DNS sunucusuna geçmeyi düşünün.

Bu genel sorun giderme adımlarını deneyerek, birçok DNS ile ilgili sorunu çözebilirsiniz. Ancak, sorun devam ederse, ağ ayarlarını veya yapılandırmayı daha fazla incelemek gerekebilir. Bazı durumlarda, İnternet Servis Sağlayıcınızla (ISS) veya ağ yöneticinizle iletişime geçmek uygun bir yol olabilir.

Güvenlik Düşünceleri: DNS Ayarları Yaparken Göz Önünde Bulundurulması Gerekenler

DNS yapılandırmaları yaparken, güvenlik etkilerini göz önünde bulundurmak önemlidir. Uygun olmayan DNS ayarları, siber saldırılara karşı savunmasızlığı artırabilir. Burada, DNS yapılandırırken aklınızda bulundurmanız gereken bazı temel güvenlik düşüncelerini tanıtıyoruz.

DNS Sunucularının Güvenilirliği ve Güvenliği

Seçtiğiniz DNS sunucusu güvenilir olmalı ve güvenlik önlemlerine sahip olmalıdır. Kamu DNS hizmeti kullanıyorsanız, hizmet sağlayıcının sunduğu güvenlik özelliklerini kontrol edin, örneğin DNSSEC desteği ve kötü amaçlı sitelerin engellenmesi.

DNS Önbellek Zehirlenmesini Azaltma

DNS önbellek zehirlenmesi, saldırganın sahte DNS bilgilerini önbelleğe enjekte ettiği ve kullanıcıları kötü amaçlı sitelere, örneğin phishing sitelerine yönlendirdiği bir saldırı türüdür. DNSSEC (DNS Güvenlik Uzantıları) destekleyen DNS sunucuları kullanmak, bu tür saldırılara karşı koruma sağlayabilir.

Yerel DNS Sunucu Yapılandırmasını Güvenli Hale Getirme

Kendi DNS sunucunuzu çalıştırıyorsanız, yazılım güncellemelerini güncel tutun, gereksiz hizmetleri devre dışı bırakın ve güvenli bir yapılandırma sağlayın. Ayrıca, dışarıdan yetkisiz erişimi önlemek için güvenlik duvarını doğru bir şekilde yapılandırmak hayati öneme sahiptir.

Gizliliği Koruma

DNS sorguları, kullanıcıların internet kullanım geçmişini ortaya çıkarabilir. Gizliliği korumak için, şifrelenmiş DNS sorgularını destekleyen DNS sunucularını kullanmayı düşünün, örneğin DNS üzerinden HTTPS (DoH) veya DNS üzerinden TLS (DoT).

Sonuç

Linux’ta DNS sunucularını nasıl kontrol edeceğinizi ve yapılandıracağınızı anlamak ve bunları uygun şekilde yönetmek, ağ verimliliğini ve güvenliğini sürdürmek için hayati önem taşır. Bu makale, DNS temellerini, DNS sunucularını nasıl kontrol edip kuracağınızı, systemd-resolved ve Network Manager ile DNS yönetimini, sorun gidermeyi ve güvenlik düşüncelerini kapsadı. Bu bilgileri uygulayarak, Linux sistemlerinizde daha etkili ve güvenli DNS yapılandırmaları sağlayabilirsiniz.

İçindekiler