GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum lauscht ntpd auf so vielen Ports/Adressen?

Lösung 1:

Es ist überhaupt nicht promiskuitiv. Es bindet sich nur an die IP-Adressen der Schnittstelle und den lokalen Host, sowohl bei IPv4- als auch bei IPv6-Protokollen. Wenn Sie der Meinung sind, dass einige davon nicht überwacht werden sollten, ändern Sie einfach den listen config wie im Handbuch erklärt (dies kann für eine andere Version gelten, die Sie verwenden):

 listen on address
         Specify a local IP address or a hostname the ntpd(8) daemon
         should listen on. If it appears multiple times, ntpd(8) will
         listen on each given address. If the exact string '*' is given as
         an address, ntpd(8) will listen on all local addresses. Other-
         wise, address can be followed by an asterisk ('*') and a UDP port
         number to listen on instead of the default 123. ntpd(8) does not
         listen on any address by default. For example:

               listen on *
               listen on 127.0.0.1
               listen on ::1

In einigen anderen Versionen müssen Sie die Optionen auf ntpd ändern Daemon selbst, um zu ändern, welche Protokolle/Schnittstellen überwacht werden sollen (Optionen wie -4 , -6 , -I )

Lösung 2:

Aus meiner Lektüre dieser Seite scheint es, dass ntp den INADDR_ANY 0.0.0.0 nicht verwendet Adresse ausschließlich teils aus Sicherheitsgründen, teils aus Authentifizierungsgründen.

Der erste Port 123 liegt unter 1024 und wird daher als privilegierter Port betrachtet, und nur Root kann sich an diesen Port binden. Ntp ist normalerweise so eingestellt, dass es die Berechtigungen nach dem Start verwirft. Nach dem, was ich aus den Maillisten und dem Artikel verstehe, kann nach dem Löschen der Berechtigungen kein Socket geöffnet werden, um vom korrekten Quellport 123 zu antworten. Daher öffnet ntp Sockets für jede zugewiesene Adresse, bevor Berechtigungen gelöscht werden.

Nach dem, was ich gelesen habe, erfordern einige der Authentifizierungsmechanismen für ntp im Grunde, dass der Quell- und Zielport 123 sind und sonst nichts.

Die Sache ist nicht ganz klar. Siehe den Abschnitt über die Wildcard-Adresse 0.0.0.0 , es wird aus irgendeinem Grund von ntpd geöffnet, aber aus den Kommentaren sollte es eigentlich nie verwendet werden, außer in einigen seltenen Sonderfällen, bei denen sich die Entwickler nicht ganz sicher sind, aber sie wollen den Socket nicht entfernen, nur für den Fall, dass sie etwas kaputt machen.

Beachten Sie, dass ntpd normalerweise keine Pakete an den Wildcard-Adressen akzeptieren sollte, da es eine Reihe von Problemen gibt, wenn Sie dies tun, einschließlich des Sendens von Rückpaketen an eine andere Adresse als die angeforderte Adresse des Absenders. DannyMayer - 27. April 2009

Ich denke, die Hauptantwort auf Ihre Frage ist im obigen Kommentar hier.


Linux
  1. Warum druckt Man um 00:30 Uhr „Gimme Gimme Gimme“?

  2. Linux – Warum funktioniert Setuid nicht?

  3. Warum funktioniert `exit &` nicht?

  4. Warum hat „/“ einen „..“-Eintrag?

  5. Was ist DNS und wie funktioniert es?

So finden Sie Ihre IP-Adresse unter Linux

Holen Sie sich eine IP-Adresse unter Linux:Entdecken Sie die vielen Möglichkeiten

Warum schlägt Git beim Push/Fetch mit zu vielen geöffneten Dateien fehl?

Warum stürzt dieser Code bei aktivierter Adress-Randomisierung ab?

GPSD-Adresse für ntpd abrufen

Warum erscheint mein Hostname mit der Adresse 127.0.1.1 statt 127.0.0.1 in /etc/hosts?