19.8. Аутентификация с использованием ключей NTP

Проблема

Требуется организовать безопасную аутентификацию на локальных серверах NTP. Несмотря на редкие случаи использования уязвимостей в NTP злоумышленниками, важно удостовериться, что клиенты и серверы являются теми, за кого себя выдают. Аутентификация поможет избежать подделки синхронизации и защитит от передачи недостоверного времени.

Решение

Используйте встроенную схему аутентификации ntpkeys в NTP. Начните с настройки сервера (в нашем примере это server1):

# /etc/ntp.conf
crypto pw seekritword
keysdir /etc/ntp/keys

Пароли хранятся в текстовом виде, поэтому для файла ntp.conf необходимо установить права chmod 600.

Создайте ключ на сервере server1 с помощью следующей команды:

# ntp-keygen -T -I -p seekritword

Скопируйте сгенерированный файл ntpkey_IFFpar_server1.4558615255 в директории /etc/ntp всех клиентов server1 (имя файла будет уникальным и изменится при генерации). Этот ключ является секретным, поэтому передача должна быть защищена. Вы можете использовать безопасный носитель, например флешку или диск, и надёжно хранить его после копирования.

Теперь настройте клиентов. Создайте две символьные ссылки на новый ключ:

# ln -s ntpkey_IFFpar_server1.4558615255 ntpkey_iff_server1
# ln -s ntpkey_IFFpar_server1.4558615255 ntpkey_iff_client1

Отредактируйте запись сервера в файле /etc/ntp.conf на клиенте, добавив ключевое слово autokey для активации аутентификации:

server server1 autokey

Перезапустите ntpd на всех компьютерах. Процесс синхронизации и аутентификации может занять некоторое время, обычно от одного до двух часов, прежде чем все клиенты будут надёжно подключены к серверу.

Комментарий

Команда ntp-keygen поддерживает несколько ключевых параметров:

Для использования аутентификации с общедоступными серверами времени нужно:

  1. Найти серверы, которые поддерживают аутентификацию.
  2. Указать в ntp.conf конкретные адреса серверов (вместо использования пулов NTP).

Текущий список общедоступных серверов времени доступен здесь. Хотя атаки на NTP редки, даже если злоумышленник попытается выдать себя за сервер времени, изменения будут минимальными благодаря пулу серверов. NTP автоматически корректирует любые несоответствия, обеспечивая надёжную синхронизацию времени.

См. также

ssh(1).