Проверить свой сервер на уязвимость очень просто:
ntpdc -c monlist внешний_адрес_сервераЕсли команда выдает список клиентов (а не «timed out, nothing received»), значит система уязвима.
- Настраиваем
Отключаем команду monlist в /etc/ntp.conf:disable monitor
Разрешаем получение времени только клиентами из внутренней сети и localhost. Смотрим в /etc/ntp.conf список серверов для синхронизации, в моем файле их три:server 0.freebsd.pool.ntp.org iburst maxpoll 9 server 1.freebsd.pool.ntp.org iburst maxpoll 9 server 2.freebsd.pool.ntp.org iburst maxpoll 9
Редактируем или добавляем строчки в /etc/ntp.conf. Сервера, с которыми синхронизируемся, должны быть разрешены при помощи restrict:restrict default ignore restrict -6 default ignore restrict 0.freebsd.pool.ntp.org noquery notrap restrict 1.freebsd.pool.ntp.org noquery notrap restrict 2.freebsd.pool.ntp.org noquery notrap restrict 127.0.0.1 nomodify notrap restrist -6 ::1 nomodify notrap restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict default ignore - по умолчанию всех посылаем в лес
restrict -6 default ignore - в том числе и с ipv6 адресов
restrict X.freebsd.pool.ntp.org noquery notrap - разрешаем менять время с этих пулов
192.168.0.0 - это наша внутренняя сеть, с неё клиенты могут получать время, но не менять.
Добавляем свой лог файл, чтобы не ковыряться в общем:logfile /var/log/ntp.log
- /etc/rc.conf
ntpd_enable="YES"
- Перезапускаем:
# /etc/rc.d/ntpd restart
- Проверяем
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 0.freebsd.pool. .POOL. 16 p - 64 0 0.000 0.000 0.000 -91.206.16.3 (tm 89.109.251.22 2 u 129 128 377 74.392 22.078 6.348 *ntp1.doorhan.ru .SOCK. 1 u 44 64 377 6.750 6.688 5.255 +rnis-app.rnis66 89.109.251.23 2 u 56 64 377 25.272 7.775 4.201 +89.221.207.113 194.190.168.1 2 u 55 64 377 18.993 7.525 3.687
* - сервер, с которым наш сервер синхронизировался в последний раз
+ - сервер, синхронизация с которыи возможна
- - сервер, синхронизация с которыи невозможна
# ntpdate -q localhost server ::1, stratum 2, offset 0.000011, delay 0.02567 server 127.0.0.1, stratum 2, offset 0.000019, delay 0.02568 20 Dec 15:35:00 ntpdate[39927]: adjust time server ::1 offset 0.000011 sec
- Синхронизируем время на сервере со своего ntp
Для автоматизации данную команду рекомендуется выполнять через cron раз в сутки.# ntpdate -u localhost