Назад | Перейти на главную страницу

Исключить подмножество сети в BIND Named acl

Я хотел бы исключить некоторые IP-адреса из ACL, например:

acl "exclude" {
  192.168.1.1;
  192.168.1.2;
  192.168.1.3;
};

acl "internal" {
  192.168.1.0/24;
  !exclude;
};

Я думаю, это не работает, потому что IP-адреса, содержащиеся в exclude acl, содержатся во всем диапазоне.

BIND ACL использует логику «первого совпадения», а не «наилучшего совпадения». Ваш "внутренний" ACL не работает должным образом, потому что первый элемент адреса соответствует всем адресам, которые вы хотите исключить, а затем все последующее (т.е. !exclude; элемент) игнорируется.

Вам просто нужно поменять порядок следующим образом:

acl "internal" {
  !exclude;
  192.168.1.0/24;
};

Именно этот вопрос обсуждается в официальное справочное руководство для администраторов BIND 9.11в разделе 7.1, посвященном соображениям безопасности для правильно реализованных списков контроля доступа.

Вы должны поставить "!" перед IP-адресами, которые вы хотите исключить. Если вы хотите исключить все IP-адреса из "exclude" acl, измените его на следующее:

acl "exclude" {
  !192.168.1.1/24;
  !192.168.1.2/24;
  !192.168.1.3/24;
};