Wie kann man verhindern, dass ntpd 0.0.0.0:123 abhört?

29

ntpd lauscht standardmäßig an zahlreichen Schnittstellen, ich möchte nur, dass es 127.0.0.1:123 abhört, da ich nur möchte, dass der localhost die Zeit synchronisiert.

Wie das geht, habe ich versucht, indem ich / etc / default / ntp unter Debian Wheezy bearbeitet habe:

NTPD_OPTS='-4 -I 127.0.0.1'

Aber es hört immer noch global auf 0.0.0.0:123

Irgendwelche Ideen?

JohnnyFromBF
quelle
Ich bin gespannt, was Ihr Endziel hier ist. Die Synchronisation mit localhost macht wenig Sinn und funktioniert standardmäßig nicht ohne eine fudgeAnweisung. Was versuchst du zu erreichen?
Ladadadada
@Ladadadada Wir haben hier im LAN einen NTP-Server. Unsere Linux-Clients sollten die richtige Zeit haben, aber anstatt einen stündlichen Cronjob auszuführen ntpdate -B timeserver, wollten wir auf jedem Client einen NTPD mit nur 127.0.0.1:123 ausführen, der den Zeitserver im LAN fragt. Stimmt etwas nicht?
JohnnyFromBF
4
Auf einem Client wird der Listening-Port nur zum Abfragen des aktuellen Status des Dämons verwendet. Die serverZeilen in Ihren ntpdClient-Konfigurationen definieren, mit wem Sie synchronisieren. Wenn Ihre serverLeitung (en) sagen 127.0.0.1, haben Sie ein Problem. Wenn sie auf Ihren zentralen Zeitserver verweisen, sollte alles in Ordnung sein.
Ladadadada

Antworten:

34

Entfernen Sie alle -Ioder --interfaceOptionen aus /etc/default/ntpund fügen Sie Folgendes in Ihre ein /etc/ntp.conf:

interface ignore wildcard
interface listen 127.0.0.1
interface listen ::1
# NOTE: if you want to update your time using remote machines,
# add at least one remote interface address:
#interface listen 2001:db8::1
#interface listen 192.0.2.1

Ein Auszug aus der ntpd(1)Manpage zur -iOption:

Diese Option impliziert auch, dass keine anderen Adressen als Platzhalter und localhost geöffnet werden. Erwägen Sie die Verwendung des Befehls configuration file interface, der vielseitiger ist.

Siehe auch die Debian-Handbuchseite (ich konnte sie in Arch Linux nicht finden) von ntp.conf(5).

Lekensteyn
quelle
6
ntp muss sich an eine routingfähige Schnittstelle binden, um mit Zeitservern synchronisieren zu können. Siehe die Antwort von meepmeep unten.
Bio-Mashup
17

Wenn ntp nur unter 127.0.0.1 empfangsbereit ist, kann anscheinend keine Verbindung zu einem öffentlichen ntp-Server hergestellt werden:

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
ks370079.kimsuf **.INIT.**       16 -    -   64    0    0.000    0.000   0.000

Es muss an eine routingfähige IP-Adresse gebunden sein, damit es funktioniert.

meep Meep
quelle
Vielen Dank für diese Beobachtung und Ihr Beispiel, das zeigt, wie dies tatsächlich der Fall ist.
ColinM
6

Vollständige /etc/ntp.conf dieses Protokolls neutral (IPv4 & | IPv6)

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict lo

interface ignore wildcard
interface listen lo

quelle
6

Wenn Sie die Anzahl der Abhördienste aus Sicherheitsgründen verringern möchten, kann openntpd in Betracht gezogen werden, da kein Abhörserver als Client erforderlich ist. Es gilt als etwas ungenauer als ntpd; es ist innerhalb weniger hundert ms zuverlässig, aber dies ist für die meisten Zwecke geeignet.

Nachahmer
quelle