Jak uniemożliwić NTTP odsłuchiwanie w 0.0.0.0:123?

29

ntpd domyślnie nasłuchuje na wielu interfejsach, chcę tylko, aby nasłuchiwał na 127.0.0.1:123, ponieważ chcę tylko, aby localhost zsynchronizował czas.

Jak to zrobić, próbowałem, edytując / etc / default / ntp na Debian Wheezy:

NTPD_OPTS='-4 -I 127.0.0.1'

Ale wciąż słucha globalnie na 0.0.0.0:123

Jakieś pomysły?

JohnnyFromBF
źródło
Jestem ciekawy, jaki jest twój ostateczny cel. Synchronizacja z localhost nie ma większego sensu i domyślnie nie będzie działać bez fudgeinstrukcji. Co próbujesz osiągnąć?
Ladadadada
@Ladadadada Mamy tutaj serwer NTTP w sieci LAN. Nasi klienci systemu Linux powinni mieć odpowiedni czas, ale zamiast uruchamiać cronjob co godzinę ntpdate -B timeserverchcieliśmy uruchomić ntpd na każdym kliencie z tylko 127.0.0.1:123, który pyta serwer czasu w sieci LAN. Czy coś jest z tym nie tak?
JohnnyFromBF
4
Na kliencie port nasłuchujący służy tylko do sprawdzania bieżącego stanu demona. Te serverlinie w swoim ntpdconfigs klienckich określić kto synchronizacji z. Jeśli twoje serverlinie mówią 127.0.0.1, masz problem. Jeśli wskazują na twój centralny serwer czasu, wszystko powinno być w porządku.
Ladadadada

Odpowiedzi:

34

Usuń wszystkie -Ilub --interfaceopcje z /etc/default/ntpi wstaw następujące elementy do /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

Fragment strony ntpd(1)podręcznika na temat -iopcji:

Ta opcja oznacza również, że nie należy otwierać innych adresów, z wyjątkiem symboli wieloznacznych i hosta lokalnego. Rozważ skorzystanie z polecenia interfejsu pliku konfiguracyjnego, które jest bardziej uniwersalne.

Zobacz także stronę podręcznika Debiana (nie mogłem go znaleźć w Arch Linux jeden) ntp.conf(5).

Lekensteyn
źródło
6
ntp musi się połączyć z routowalnym interfejsem, aby móc zsynchronizować się z serwerami czasu. Zobacz odpowiedź meepmeep poniżej.
organic-mashup,
17

Z nasłuchiwaniem NTTP tylko na 127.0.0.1 wygląda na to, że nie może nawiązać połączenia z publicznym serwerem NTTP:

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

Aby działał, musi być powiązany z routowalnym adresem IP.

meepmeep
źródło
Dziękuję za tę obserwację i przykład pokazujący, jak sprawdzić, czy rzeczywiście tak jest.
ColinM
6

Pełny /etc/ntp.conf ten protokół neutralny (IPv4 i | 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

źródło
6

Jeśli chcesz zmniejszyć liczbę usług nasłuchiwania ze względów bezpieczeństwa, można rozważyć użycie openntpd, ponieważ nie wymaga on, aby serwer nasłuchujący działał jako klient. Jest uważany za nieco mniej dokładny niż ntpd; jest niezawodny w ciągu kilkuset ms, ale jest to odpowiednie do większości celów.

naśladowca
źródło