Soru BIND9: İzin ve güncelleme için anahtar ve ACL'nin birleştirilmesi


Bir istemciden güncellemelere izin vermek için bir BIND 9 sunucusu kurdum ve şifreli anahtarları yapılandırdım. Şimdi benim named.conf, Aşağıdakileri ayarladım:

allow-update { key dns1.example.org.; };

Bu çalışır ve istemciden güncelleştirmeler (ekleme, bölge kayıtlarını silme) yapabilirim (nsupdate komutu).

ACL ile birleştirebilir miyim diye merak ediyorum. Temel olarak istemcinin doğru anahtara ihtiyacı olmasını istiyorum, ancak belirli bir alt ağdan veya IP adresinden de gelmesi gerekiyor. Bunu bir şekilde yapabilir miyim? Bu senaryo hakkında dokümanlardaki hiçbir şeyi bulamadım.


5
2018-04-04 09:36


Menşei


Neden ikisine de ihtiyacın var? Anahtar yeterli değil mi? - Sandman4


Cevaplar:


Alcs ilk maç. İstediğiniz adresleri hariç tutarsanız, eşleşen olmayan tüm adresleri herhangi biriyle reddedebilirsiniz. sonra anahtarın eşleştiğini kontrol edin.

   allow-update { !{ !allowed; any; }; key keyname; };

7
2017-08-14 03:19





Çirkin cevap # 1

Bunu ancak yaratıcı, çirkin ve kaba davranmaya hazırsanız yapabilirsiniz.

Güncelleştirmeleri yalnızca 1.2.3.0/24'ten dns1.example.com anahtarına sahip olmak için.

acl “mix-match” {
! 128.0.0.0/1;
! 64.0.0.0/2
! 32.0.0.0/3
! 16.0.0.0/4
! 8.0.0.0/5
! 4.0.0.0/6
! 2.0.0.0/7
! 0.0.0.0/8     //0 instead of 1 since bit is set in the desired network
! 1.128.0.0/9
! 1.64.0.0/10
! 1.32.0.0/11
! 1.16.0.0/12
! 1.8.0.0/13
! 1.4.0.0/14
! 1.0.0.0/15    //0 instead of 2 since bit is set in the desired network
! 1.3.0.0/16    //1-st bit = 1: we DENY hosts with 1.3.0.0/16 but allow 1.2.0.0/16
! 1.2.128.0/17
! 1.2.64.0/18
! 1.2.32.0/19
! 1.2.16.0/20
! 1.2.8.0/21
! 1.2.4.0/22
! 1.2.0.0/23    //0 instead of 2 since bit is set in the desired network
! 1.2.2.0/24    //1-st bit = 9: we DENY hosts with 1.2.2.0/24 but allow 1.2.3.0/24

key dns1.example.com.;
};

Bu bitsel matematik nasıl yapılır:

  1. / X alt ağı için X satırına ihtiyacınız var.
  2. Alt ağ IP'sini ikili forma dönüştür.
  3. 1-st bit ile başlarsınız - izin verilen alt ağda bu bit kümesi varsa, kuralı temizleyecektir ve bit izin verilen alt ağda 0 ise, kuralınız bu bit kümesini reddedecektir.
  4. Kural # N, N-1 için, ilk bitler istenen alt ağ maskesinde olduğu gibi SAME'dir, bit N, 3. adımda tarif edildiği gibidir.

Aslında denemedim, ama çalışmalı.

Birden fazla izin verilen alt ağınız varsa, size iyi şanslar dilerim.

Bu cevabın amacı için, IPv6'nın henüz yaygın olarak kullanılmadığına sevindim. :)

Çirkin cevap # 2

Kurulum ayrı gizlilik (yani NS olarak listelenmemiş) birincil ana ad sunucusu, güvenlik duvarı kurallarında paketlere yalnızca "izin verilen" alt ağdan izin verir ve köle nameservers dan. Bu gizlilikte, yalnızca anahtar ile güncellemelere izin verin. AXFR / IXFR ve NOTIFY aracılığıyla bölge verilerini almak için slave yapılandırın. Ve kölelerdeki güncelleme iletmeyi devre dışı bırakmayı unutmayın.

Bunu yaptıktan sonra çirkin bir şekildeunutmayın ki kimse itibaren herhangi bir yer Tüm bu çabaları tamamen anlamsız kılan UDP DNS güncelleme paketindeki kaynak adresini taklit edebilir. (Çabaları biraz daha az anlamsız yapmak için UDP'yi devre dışı bırakabilirsiniz).


1
2018-04-04 12:32





Bir match_list tanımlayabileceğinizi biliyorum, ancak anahtar ve eşleme listesini birleştirip birleştiremeyeceğinizden emin değilim.

allow-update { address_match_list };

Örneğin:

options {
    allow-update { !192.168.2.7;192.168.2/24;};
};

0
2018-04-04 09:41





Bunu denemedim ama benim anlayışıma göre tanımlamalar:

address_match_list = element ; [ element; ... ]
element = [!] (ip [/prefix] | key key-name | "acl_name" | { address_match_list } )

ve bu sebepten ötürü

acl “mix-match” {
“two-subnets”;
! 10.10.30.101;
10.10.30.0/24;
key dns1-dns2.example.com;
};
zone "abc.def.example.com" in {
        type master;
        file "named.abc.data";
        allow-update{ mix-match };
};

ve bu nedenle bölgelerdeki transferler artık bir anahtarı olanlarla (eşleşme listesinin ötesinde) sınırlıdır.


0
2018-04-04 10:01



Anahtarsız güncellemelere izin verecek - ilk maç kullanıldı. - Sandman4
Sandman4'ın doğru olduğuna inanıyorum. Net olmayan (ve henüz denemedim), eğer ilk önce anahtar elemanı yerleştirirsek, bu, takip edilecek olan maç için geçerli bir anahtar anlamına gelir mi? Örneğin anahtar ve adres eşleşmesi kombinasyonu. - ank