ntpd in esecuzione come non-root, ma i pacchetti in output corrispondono a uid 0

Ho impostato la mia catena OUTPUT iptables predefinita in pacchetti DROP. Ho quindi creato una regola di firewall per consentire all'utente ntp di submit i pacchetti ntp:

iptables -A OUTPUT -m owner --uid-owner ntp -p udp --dport 123 -j ACCEPT 

Tuttavia, each 10-20 minuti vedo:

 ntpd[27769]: sendto(<snip>) (fd=22): Operation not permitted 

Ho quindi rimosso la parte di -m owner --uid-owner ntp della -m owner --uid-owner ntp e aggiunto una regola di log prima di esso:

 iptables -A OUTPUT -p udp --dport 123 -j LOG --log-level debug \ --log-prefix "Spotted a NTP packet: " --log-uid 

ntpd iniziato a lavorare nuovamente e nel buffer dell'anello del kernel vedo:

 Spotted a NTP packet: <snip> PROTO=UDP SPT=123 DPT=123 LEN=56 UID=0 

Sto utilizzando l' --log-uid al target LOG e ntpd è in esecuzione come utente ntp (uid = 38):

 # ps auxf | grep ntpd ntp 27769 0.0 1.0 4512 4508 ? SLs Jan04 0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid 

Tuttavia il registro mostra UID=0 . Sono assolutamente positivo che il sistema sta inviando pacchetti ntp e poiché non sono più in grado di get l' Operation not permitted , sono certo che è in realtà ntpd che sta inviando il pacchetto.

Immagino che sto bene di non corrispondere l'utente ntp per questi pacchetti; tuttavia, qualcuno può spiegare perché iptables non mostra UID=38 per questi pacchetti?

  • Best practice per la sincronizzazione dell'orologio di sistema nell'host KVM
  • Probabili cause di NTPD che muoiono inaspettatamente e soluzioni
  • Fornire ntpd per apportre modifiche in passaggi più piccoli
  • Orologio sincronizzato NTP accanto all'orologio di sistema
  • Quanto funziona ntpd quando la latenza è altamente variabile?
  • Come avere ntpd che serve solo la mia substring locale
  • utilizzando il protocollo NTP per la sincronizzazione temporale interna
  • Entrambi i miei server ntp sono contrassegnati come falsetickers nello stato
  • 2 Solutions collect form web for “ntpd in esecuzione come non-root, ma i pacchetti in output corrispondono a uid 0”

    Per un programma per utilizzare una port less di 1024 deve essere root. Molte applicazioni come NTP avranno inizio, apriranno la port come root e poi rilasciano i privilegi a un account definito per tutto il resto.

    Ci sono errori nella regola iptables:

     iptables -A OUTPUT -m owner --uid-owner ntp -p udp --dport 123 -j ACCEPT 

    Se si utilizza il proprietario -uid-owner è necessario definire il valore numbersco uid .
    Per il nome del programma Hai bisogno di un'altra opzione: –cmd-owner . La regola corretta è:

     iptables -A OUTPUT -m owner --cmd-owner ntp -p udp --dport 123 -j 

    Spiegazione dettagliata Puoi leggere in un ottimo libro di Oskar Andreasson .

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.