NTP Umleitung

  • Hallo Forum, mal wieder eine "ich sehe den Wald vor lauter Bäumen nicht" Frage. Ich möchte mit

    Code
    iptables -t nat -A PREROUTING -p udp --dport 123 -j DNAT --to-destination 192.168.3.15:123
    iptables -t nat -A PREROUTING -p udp --sport 123 -j DNAT --to-destination 192.168.3.15:123

    die NTP_Abfragen auf meinen NTP-Server umleiten. Also die IP-Regel sind auf meinem Standart-GW installiert. Jetzt die Frage, wie mache ich es, daß die Antwort von der IP-Adresse, die der Klient angefragt hat zurück kommt.

    Habe mich wsl etwas unverständlich ausgedrückt. Also, wenn jetzt ein Rechner in meinem Netzwerk eine NTP-Anfrage aussendet, z.B. an 0.de.pool.ntp.org, der hat die IP 129.70.132.37, möcht er auch eine Antwort von 129.70.132.37 bekommen, nicht von 192.168.3.15.
    Weiß jmd wie ich das mache?

  • iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    Bei deiner prerouting dnat Zeile noch das Input device angeben. -i eth0

    Aber mal eine andere Frage. Wieso installierst du nicht einfach einen ntpd den die anderen Clients abfragen. Der ntpd holt sich regelmäßig die Zeit und alle Clients dann von dem ntpd bei dir.


  • ..., wenn jetzt ein Rechner in meinem Netzwerk eine NTP-Anfrage aussendet, z.B. an 0.de.pool.ntp.org, der hat die IP 129.70.132.37, möcht er auch eine Antwort von 129.70.132.37 bekommen, nicht von 192.168.3.15.
    Weiß jmd wie ich das mache?

    Kannst Du die Rechner in deinem Netzwerk, nicht so konfigurieren, dass diese nicht 0.de.pool.ntp.org, sondern 192.168.3.15 benutzen?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • ..., aber was mache ich mit meinen Android-Telefonen oder Tablets,?. Bei denen geht es nichtr so einfach.

    Du könntest z. B., statt Android, Ubuntu Touch als OS für solche Geräte verwenden.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • Ist es so schwer die IP-Adressen einzelnet Services zu verändern?

    Was meinst Du damit? Du sagst es doch, dass Du mit Android nicht den Zeitserver deiner Wahl, konfigurieren kannst.

    Und wenn der ntp-Client (oder gleichwertig) eine Anfrage an einen bestimmten Zeitserver macht, warum sollte dieser Client, dann eine Antwort von einem anderen Zeitserver akzeptieren?

    Umleiten kann man die Anfragen an den UDP-Port 123, schon.

    EDIT:

    Ich habe die Umleitung mit dem ntpd (auf dem PI, nicht auf einem gateway!) getestet.

    Code
    sudo iptables -t nat -I OUTPUT 1 -p udp --dport 123 -j DNAT --to-destination 192.168.178.55:123


    Der hat damit kein Problem, wenn er z. B. seine Anfrage an 192.168.178.1 macht und die Antwort dann von 192.168.178.55 kommt.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (6. Februar 2017 um 22:43)

  • Wie bekommen die Systeme in deinem Netz ihre IP-Adresse?

    Die 'guten' DHCP-Server können auch mitteilen, welche IP der NTP-Server im Netz hat, so dass die Clients, die sich im Netz eine IP-Adresse holen, auch den NTP-Server mitgeteilt bekommen.
    Bei der Fritzbox ist das ein Haken ("Fritzbox soll als Zeitserver im Netz dienen" oder so)

    (So wie ja auch den DNS und Default-Gatway)
    http://www.networksorcery.com/enp/protocol/bootp/option042.htm

    Computer ..... grrrrrr

    Einmal editiert, zuletzt von Rasp-Berlin (8. Februar 2017 um 09:47)

  • 1. Ich kann mir nicht vorstellen, das man den ntp am Client nicht einstellen kann. Jeden Tag werden werden bei Anbietern Server ab und umgebaut. Firmen ausgekauft oder haben aufgekauft. Daher wird Technik reduziert und zusammen geführt. Daher wird kein Hersteller hingehen und den ntp Server fest in der Software verdrahten. Du kannst ihn ändern. Und wie rasp-Berlin auch schon geschrieben hat, kann man dem Client per dhcp unter anderem auch den ntp Server mitgeben.

    2. Wieso bekommt der Client die Antwort von einem anderen Server als er angefragt hat?
    Wenn die Anfrage an 0.pool.debian.org geht und das Gateway im Netz die Adresse per NAT umschreibt auf den lokalen ntpd, dann bekommt der Client die Antwort auch weiterhin von 0.pool.debian.org. Das NAT ist für den Client transparent.
    Das Gateway sieht die Pakete an extern. Sieht in den rules das er DNAT machen soll, schreibt die Adresse im Header um und schickt an den lokalen ntpd, trägt die Verbindung in der Connection Table für NAT ein.
    Kommt das Paket vom lokalen ntpd zurück, dann sieht das Gateway das es ein Paket bekommt was in der Table für den Client markiert war, schreibt den IP Header wieder um und schickt die Pakete an den Client, für den es dann aussieht als kommt es von dem externen ntpd.
    Automatisch zusammengefügt:
    Wenn du es ganz dreckig machen willst kannst du auch folgendes machen.
    Hat der externe ntpd die ip 12.13.24.15 und du hast eine Fritzbox, dann fährst du die ip 12.13.24.15 auf dem PI mit dem ntpd hoch. In der Fritzbox trägst du eine Route zu 12.13.24.15 auf der Fritzbox mit Gateway die IP des PIs ein.

    Ist dreckig, aber würde auch gehen. Man fängt sich halt nur wieder neue Probleme ein, wie zum Beispiel das oben beschriebene Umstrukturieren beim Anbieter. Sein NTPd wird sbgebaut, die Firma aufgekauft, das IP Netz geht an jemanden anderen, der eine komplett anderen Dienst anbietet, den du zufällig Benutzer, aber nicht benuten kannst, da deine Fritzbox die IP auf den PI Routet.


  • Kommt das Paket vom lokalen ntpd zurück, dann sieht das Gateway das es ein Paket bekommt was in der Table für den Client markiert war, schreibt den IP Header wieder um und schickt die Pakete an den Client, für den es dann aussieht als kommt es von dem externen ntpd.

    Der ntpd merkt schon (... aber er verwirft die Datenpakete nicht), dass die Pakete von einem anderen Server (als konfiguriert) kommen.

    Das kann man z. B. mit:

    Code
    sudo tcpdump -vvveni <Interface> port 123


    und dort an der "Reference-ID:", sehen bzw. an der Ausgabe von "ntpq -pn" sehen. Es kommt kein

    Code
    “*” – The remote peer or server presently used as the primary reference;


    zustande bzw. auch an der Spalte "refid".

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Der ntpd merkt schon (... aber er verwirft die Datenpakete nicht), dass die Pakete von einem anderen Server (als konfiguriert) kommen.

    Das kann man z. B. mit:

    Code
    sudo tcpdump -vvveni <Interface> port 123


    und dort an der "Reference-ID:", sehen bzw. an der Ausgabe von "ntpq -pn" sehen. Es kommt kein

    Code
    “*” – The remote peer or server presently used as the primary reference;


    zustande bzw. auch an der Spalte "refid".

    Nein der client merkt es nicht weil für ihn das Paket für ihn daher kommt wo er es hingeschickt hat. Das DNAT ist für ihn transparent.

    Und das RefID bei NTP hat rein gar nichts damit zutun wen er angefragt hat und ob er es sieht woher das Paket wirklich gekommen ist und ob NAT und Co mit im Spiel gewesen ist.
    https://tools.ietf.org/rfc/rfc5905.txt

    Das ist der header von einem Server den ich gerade umgebogen habe auf einen anderen Server mit ntpd.

    Code
    13:43:06.151082 00:00:a3:b0:00:0b > 52:54:00:96:0e:62, ethertype IPv6 (0x86dd), length 110: (hlim 64, next-header UDP (17) payload length: 56) 2a01:238:433f:2600:200:a3ff:feb0:b.123 > 2a02:180:6:1::105.123: [udp sum ok] NTPv4, length 48

    das refid field steht nicht im header sondern in den Daten die im Paket sind. Und wie gesagt, hat das was mit dem referenz ntp servers zutun.


  • das refid field steht nicht im header sondern in den Daten die im Paket sind. Und wie gesagt, hat das was mit dem referenz ntp servers zutun.

    ... und das bedeutet bzw. zeigt, dass es nicht ausreichend ist, den header zu ändern um dem ntpd etwas vorzuenthalten.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Du hast es immer noch nicht verstanden wozu das refid da ist.

    Es hat nichts mit der Verbindung von Client und Server zutun.

    Es sagt etwas darüber aus von welchem stratum der angefragte ntpd seine Zeit hat.

    The refid is a 32-bit field that identifies the source of time for the data packet. The NTP data packet also includes some timestamps, various other pieces of information, and the stratum of the time source, or the number of layers between the server and its “ultimate” source of time.

    Guck dir das einmal mit mehreren Anfragen an und du wirst feststellen das die IP in refid sich bei einem Pool in diesem Feld jedes Mal ändern wird und oft überhaupt nichts mit deiner Netzwerk Infrastruktur und die des angefangen NTPD zutun hat.
    Automatisch zusammengefügt:
    Ausserdem. Wenn es wie du schreibst nicht funktioniert weil refid nicht passt, dann hätten einige Firmen echte Probleme wenn es wegen DNAT nicht mehr funktionieren würde.


  • ..., dann hätten einige ...

    Fakt ist, dass die Umleitung eine Änderung der Ausgabe von "ntpq -np" bewirkt/verursacht.

    Z. B., die Ausgabe vor der Umleitung:

    Code
    :~$ ntpq -pn
        remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *192.168.178.1   87.81.181.2      3 u  982 1024  377    1.973    0.681   2.025


    und hier die Ausgabe nach der Umleitung:

    Code
    :~$ ntpq -pn
        remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    192.168.178.1   192.168.178.1    4 u  817 1024  377    7.353    4.523   4.670


    Welche Ausgabe gefällt dir besser, die 1. (vor) oder die 2.(nach)?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • ... wo hast du denn genau auf was die ntp Anfrage umgeleitet?


    Auf einem Linux-Rechner, mit (wie Im Beitrag #9):

    Code
    sudo iptables -t nat -I OUTPUT 1 -p udp --dport 123 -j DNAT --to-destination 192.168.178.55:123


    und auf einen anderen Linux-Rechner im WLAN mit ntpd und "broadcast 192.168.178.255". Mit rdate kann man die Zeit/Datum von diesem ntpd auch bekommen/abfragen:

    Code
    :~$ rdate -4npu 192.168.178.55
    Fri Feb 10 14:20:24 CET 2017

    Für diese Linux-Rechner, ist mit iptables:

    Code
    udp dpt:123 TOS set 0x00/0xff


    auch schon getestet worden.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!