GNU/Linux >> Znalost Linux >  >> Linux

Proč ntpd naslouchá na tolika portech/adresách?

Řešení 1:

Není vůbec promiskuitní. Je to jen vazba na IP adresy rozhraní a localhost, a to jak na protokolech ipv4, tak ipv6. Pokud si myslíte, že by nemělo poslouchat některé z nich, stačí změnit listen config, jak je vysvětleno v příručce (může být pro jinou verzi, kterou používáte):

 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

V některých jiných verzích budete muset změnit možnosti na ntpd samotného démona změnit na jaké protokoly/rozhraní naslouchat (možnosti jako -4 , -6 , -I )

Řešení 2:

Z mého čtení této stránky se zdá, že ntp nepoužívá INADDR_ANY 0.0.0.0 adresu výhradně částečně z bezpečnostních důvodů a částečně z důvodů autentizace.

První port 123 je nižší než 1024, a proto je považován za privilegovaný port a na tento port se může vázat pouze uživatel root. Ntp je obvykle nastaven tak, aby po spuštění zrušil oprávnění. Z toho, co jsem pochopil z mail listů, a článek po zrušení oprávnění nemůže otevřít soket pro odpověď ze správného zdrojového portu 123, takže ntp otevře sokety pro každou přiřazenou adresu, než zruší oprávnění.

Z toho, co jsem četl, některé autentizační mechanismy pro ntp v podstatě vyžadují, aby zdrojový a cílový port byl 123 a nic jiného.

Věc není úplně jasná. Viz část o zástupné adrese 0.0.0.0 , je z nějakého důvodu otevřen ntpd, ale z komentářů by se ve skutečnosti nemělo nikdy použít, s výjimkou některých speciálních vzácných případů, kterými si vývojáři nejsou zcela jisti, ale nechtějí soket odstranit, jen pro případ, že by věci rozbili.

Všimněte si, že za normálních okolností by ntpd neměl přijímat pakety na zástupných adresách, protože pokud tak učiníte, existuje řada problémů, včetně odesílání zpětných paketů na jinou adresu, než je adresa požadovaná odesílatelem.DannyMayer - 27. dubna 2009

Myslím, že hlavní odpověď na vaši otázku je ve výše uvedeném komentáři zde.


Linux
  1. Proč muž v 00:30 tiskne „gimme Gimme Gimme“?

  2. Linux – Proč Setuid nefunguje?

  3. Proč Mv(1) kopíruje objekty, pokud je odepřeno povolení k pohybu?

  1. Proč Unixový čas začíná na 1970-01-01?

  2. Proč „ukončit &“ nefunguje?

  3. Co je DNS a jak funguje?

  1. Proč se [a-z] shoduje s malými písmeny v bash?

  2. Získání adresy gpsd pro ntpd

  3. Proč se můj název hostitele v /etc/hosts zobrazuje s adresou 127.0.1.1 namísto 127.0.0.1?