28.12.2022

bind-chroot veya named-chroot

Bind DNS sunucusu kurmak için normal şartlar altında bind paketine ihtiyacımız var. Debian/Ubuntu için /etc/bind/ altındaki yapılandırmaları tamamlayıp zone dosyalarını da uygun yere (örneğin /etc/bind/zones) [Fedora/CentOS için ise /etc/named.conf dosyasını yapılandırıp /var/named/ altına zone dosyalarımızı] ekledikten sonra named-checkconf ve named-checkzone (bind-utils paketi ile gelen) ile yapılandırmaları kontrol edip

$ named-checkconf /etc/bind/named.conf.local

$ named-checkzone ozmener.net /etc/bind/zone/ozmener.net.db

named hizmetini başlattıktan sonra DNS sunucumuz hazır. Çalıştığından emin olmak için host, dig ve nslookup kullanabiliriz.

Ama her an internete bağlı bir DNS sunucusunun güvenliği ile ilgili endişe edenler için farklı bir seçenek daha var; bind-chroot. DNS hizmetini veren sürecin yetkilerini kısıtlayarak dosya sistemindeki erişimini bir chroot ortamı ile kısıtlamaya yarayan özel bir yapılandırma.

Fedora üzerinden işlem yaptığımızı varsayarsak öncelikle sisteme bind-chroot'u kurmamız gerek.

$ sudo dnf install bind-chroot bind-utils

bind'ı kurduktan sonra sistemdeki bütün isimleri named olacak. Alan adlarımızı chroot olmayan bind içinde çalışır hale getirdikten sonra öncelikle bu hizmeti durdurup devre dışı bırakalım.

$ sudo systemctl stop named

$ sudo systemctl disable named

Bu aşamada hem named hem de named-chroot hizmetleri devre dışı olmalı. Şimdi chroot ortamımızı hazırlayalım (bu adım öncesinde /var/named/chroot/ altında sadece named pki klasörleri olmalı).

$ /usr/libexec/setup-named-chroot.sh /var/named/chroot/ on

Bu adımdan sonra /etc/named.conf dosyasına /var/named/chroot/etc/named.conf yolundan, /var/named/forward.zone dosyasına ise /var/named/chroot/var/named/forward.zone yolundan erişeceğiz.

Bundan sonra named-chroot hizmetini başlatıp etkinleştirebiliriz.

$ sudo systemctl start named-chroot

$ sudo systemctl enable named-chroot

Güvenlik duvarımız etkindi. DNS için yeni kural ekleyep ayarları uygulayalım:

$ sudo firewall-cmd --permanent --add-service=dns

$ sudo firewall-cmd --reload

İşlem tamam.

---

Linux Bind kurulumu

9.12.2022

Powershell ile Windows'da IPv6'yı devre dışı bırakmak

Grafik arayüzden yapmak da bir yöntem ama Powershell varken Powershell'den yapmak lazım.

Bilgisayardaki ağ adaptörleri ile ilişkilendirilen birkaç "bileşen" var, aşağıdaki resimde görülebileceği gibi.

Grafik arayüz yöntemi ile yukarıdaki "İnternet Protokolü Sürüm 6 (TCP/IPv6)" öğesinin solundaki seçimi kaldırmak yeterli. Bunu powershell ile yapmak için önce Get-NetAdapterBinding cmdlet'ini kullanabiliriz. Bunun sonucunda bilgisayardaki tüm ağ adaptörleri (kablolu, kablosuz, sanal, Docker, VPN vs.)  ile ilişkilendirilen bütün bileşenlerin listesi gelir. Bunların içinden sadece konumuz ile ilgili olarak IPv6'ları görmek için -ComponentID argumanı ile birlikte ms_tcpip6 kimliğini kullanmalıyız.

PS> Get-NetAdapterBinding -ComponentID ms_tcpip6

Bunun sonucunda da bütün ağ adaptörlerinin IPv6 eşleştirmesi gelir. Amacımız bütün ağ adaptörlerinin IPv6 bileşeni ilişkisini kesmekse doğrudan bu komutun çıktısını Disable-NetAdapterBinding cmdlet'ine gönderebiliriz.

PS> Get-NetAdapterBinding -ComponentID ms_tcpip6 | Disable-NetAdapterBinding

Ama amacımız sadece, örneğin kablolu bağlantının (diyelim ki Ethernet) ilişkisini kesmek ise 

PS> Get-NetAdapterBinding -ComponentID ms_tcpip6 -Name Ethernet | Disable-NetAdapterBinding

kullanabiliriz. Daha kısa olsun, diye Get-NetAdapterBinding'i atlayıp direk bağlantıyı kesen cmdlet olan Disable-NetAdapterBinding'i de kullanabiliriz.

PS>Disable-NetAdapterBinding -ComponentID ms_tcpip6 -Name Ethernet

ama önce Get-NetAdapterBinding kullanmak işlemi hangi adaptör ve bileşenler üzerinde yaptığımızdan emin olmamızı sağlar.

2023-01-13 Ek: Farkettim ki ağ arayüzündeki ilişkileri kaldırmak IPv6'yı tamamen devre dışı bırakmıyormuş. Tamamen devre dışı bırakmak için şurada (Microsoft Exchange CSSRhoderic Milne blog) yazıldığı gibi HKLM\System\CurrentControlSet\Services\Tcpipv6\Parameters altına DWord olarak DisabledComponents değerini oluşturmak ve değerini Hex olarak FF (veya onluk düzende 255) vermek gerek.

PS> New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponent" -Value 255 

Anahtarımız Local Machine olduğu için yukarıdaki satırı yaratmak için powershell terminalini yönetici yetkileriyle açmamız gerekecek. Ayrıca bu işlemlerden sonra bilgisayarı yeniden başlatmak da gerek.