Может ли rsyslogd использовать файл /etc/hosts вместо DNS?

У меня проблема с rsyslogd, использующим DNS для PTR-разрешения имени каждого удаленного хоста.

Есть ли способ использовать "/etc/hosts" для выполнения той же работы и отключения разрешения с помощью DNS?

1 ответ

Вы можете сделать это, обеспечив hosts запись в nsswitch.conf настроена как hosts files dnsЭто означает, что сначала он будет смотреть на /etc/hosts, а затем на DNS.

РЕДАКТИРОВАТЬ: Как упоминалось @ThomasN ниже, это влияет не только на rsyslog, и вы, возможно, захотите подумать об этом подходе, прежде чем выбирать его.

Но это может быть не совсем правильно

  • если вы действительно хотите, чтобы разрешение имело место, вы можете рассмотреть возможность установки локального кэширующего преобразователя (может быть dnsmasq, pdns-resolver, unbound или любого количества альтернатив) и настроить очень длинные TTL на рассматриваемых доменах (если это возможно с выбранным вами сервером).

  • если вы не хотите разрешать эти домены (или, по крайней мере, не из rsyslog), то вы можете отключить DNS двумя способами (используя параметры командной строки):

    1. -Q отключает поиск DNS во время обработки ACL, то есть все ваши ACL сети должны быть fromhost-ip-основан.
    2. -x отключает DNS для "удаленных сообщений" (не совсем понятно, что это значит, за исключением того, что я предполагаю, что доменное имя удаленного хоста не разрешается ни в одной точке).

Кажется, что большинство людей в конечном итоге используют оба этих флага вместе, но, как упоминалось выше, это влияет на вашу конфигурацию. Смотрите https://linux.die.net/man/8/rsyslogd для получения дополнительной информации.

Другие вопросы по тегам