[gelöst] iptables, ntp über openvpn

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

[gelöst] iptables, ntp über openvpn

Beitrag von Exxter » 26.11.2021 07:39:20

Hallo,

ich brech mir gerade einen ab, unter Buster iptables Regeln zu erstellen, die es erlauben, dass per OpenVPN verbundene Clients auf den ntp-Server dieses Servers zugreifen dürfen.

Aktuell kommt von den Clients:

Code: Alles auswählen

root@client:~$ nmap -sU -p123 172.27.64.1
Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-26 06:58 CET
Nmap scan report for 172.27.64.1
Host is up (0.016s latency).

PORT    STATE         SERVICE
123/udp open|filtered ntp

Nmap done: 1 IP address (1 host up) scanned in 0.46 seconds
root@client:~$
Und das, obwohl:

Code: Alles auswählen

root@server:~$ iptables -L |grep -E -i 'chain|ntp'
Chain INPUT (policy DROP)
ACCEPT     udp  --  anywhere             anywhere             udp spt:ntp
ACCEPT     udp  --  anywhere             anywhere             udp spt:ntp
ACCEPT     udp  --  anywhere             anywhere             udp spt:ntp
Chain FORWARD (policy DROP)
Chain OUTPUT (policy DROP)
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ntp
Chain f2b-openvpn-revoked (1 references)
Chain f2b-sshd (1 references)
root@server:~$

Code: Alles auswählen

iptables -A INPUT -p udp -i tun0 --sport 123 -j ACCEPT
iptables -A INPUT -p udp -i tun1 --sport 123 -j ACCEPT

Code: Alles auswählen

root@server:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:xxxxxxxxxxx brd ff:ff:ff:ff:ff:ff
    inet 144.xxx.xxx.xxx peer 144.xxx.xxx.xxx/32 brd 144.xxx.xxx.xxx scope global ens2
       valid_lft forever preferred_lft forever
3: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none
    inet 172.27.64.1 peer 172.27.64.2/32 scope global tun1
       valid_lft forever preferred_lft forever
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none
    inet 172.27.0.1 peer 172.27.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever
root@server:~$
Jemand eine Idee? Ich möchte natürlich nicht, dass der ntp-Server über die öffentliche IP erreichbar ist.
Zuletzt geändert von Exxter am 30.11.2021 12:23:44, insgesamt 1-mal geändert.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: iptables, ntp über openvpn

Beitrag von mat6937 » 26.11.2021 09:54:01

Exxter hat geschrieben: ↑ zum Beitrag ↑
26.11.2021 07:39:20
... per OpenVPN verbundene Clients auf den ntp-Server dieses Servers zugreifen dürfen.

Aktuell kommt von den Clients:

Code: Alles auswählen

root@client:~$ nmap -sU -p123 172.27.64.1
Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-26 06:58 CET
Nmap scan report for 172.27.64.1
Host is up (0.016s latency).

PORT    STATE         SERVICE
123/udp open|filtered ntp

Nmap done: 1 IP address (1 host up) scanned in 0.46 seconds
Was kommt von den Clients, mit z. B.:

Code: Alles auswählen

rdate -4npu 172.27.64.1
?
Evtl. musst Du noch rdate auf den Clients installieren.

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: iptables, ntp über openvpn

Beitrag von Exxter » 26.11.2021 10:13:25

Das gibt:

Code: Alles auswählen

root@client:~$ rdate -4npu 172.27.64.1
rdate: Not enough valid responses received in time
rdate: Unable to get a reasonable time estimate
root@client:~$
Ich habe bisher gedacht, weil bei nmap State "open|filtered" kommt, dass der Port doch nicht richtig offen ist. Deswegen ging ich bisher von einem iptables-Problem aus. Es könnte auch noch die /etc/ntp.conf sein:

Code: Alles auswählen

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
Doch da ist ja der Kommentar, dass jeder die Zeit abrufen kann.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: iptables, ntp über openvpn

Beitrag von mat6937 » 26.11.2021 10:20:47

Exxter hat geschrieben: ↑ zum Beitrag ↑
26.11.2021 10:13:25

Code: Alles auswählen

root@client:~$ rdate -4npu 172.27.64.1
rdate: Not enough valid responses received in time
rdate: Unable to get a reasonable time estimate
root@client:~$
Wie sind auf dem Server die Ausgaben von:

Code: Alles auswählen

netstat -ulpena | grep -i 123
tcpdump -c 50 -vvveni tun0 port 123
? tcpdump vor dem Zugriff mit rdate starten und tun0-Interface bei Bedarf anpassen.

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: iptables, ntp über openvpn

Beitrag von Exxter » 26.11.2021 11:24:38

Code: Alles auswählen

root@server:~$ netstat -ulpena | grep -i 123
udp        0      0 172.27.64.1:123         0.0.0.0:*                           0          14554      461/ntpd
udp        0      0 172.27.0.1:123          0.0.0.0:*                           0          14552      461/ntpd
udp        0      0 144.xxx.xxx.xxx:123     0.0.0.0:*                           0          14550      461/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           0          14548      461/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           0          14544      461/ntpd
udp6       0      0 :::123                  :::*                                0          14541      461/ntpd
root@server:~$
Und tcpdump:

pastebin/?mode=view&s=41537

Und wenn ich nach tcpdump rdate laufen lasse kommt natürlich sehr viel:

pastebin/?mode=view&s=41536

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: iptables, ntp über openvpn

Beitrag von mat6937 » 26.11.2021 11:47:23

Exxter hat geschrieben: ↑ zum Beitrag ↑
26.11.2021 11:24:38
Und wenn ich nach tcpdump rdate laufen lasse kommt natürlich sehr viel:
Damit es weniger wird, kannst Du den Filter von tcpdump optimieren, d. h. die source IP-Adresse als host benutzen. Evtl. ist der ntpd so konfiguriert (oder evtl. auch hard-codiert?), dass er nicht als Server fungieren kann.
Wie ist auf dem Server selber, die Ausgabe von:

Code: Alles auswählen

rdate -4npu 127.0.0.1
?

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: iptables, ntp über openvpn

Beitrag von Exxter » 30.11.2021 08:23:00

Guten Morgen,

hab das nochmal weiter getestet:

Code: Alles auswählen

root@server:~$ tcpdump -vvv src 172.27.1.18
tcpdump: listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
08:17:11.610510 IP (tos 0x0, ttl 64, id 52155, offset 0, flags [DF], proto UDP (17), length 76)
    172.27.1.18.ntp > 172.27.64.1.ntp: [udp sum ok] NTPv3, length 48
        Client, Leap indicator:  (0), Stratum 0 (unspecified), poll 4 (16s), precision -8
        Root Delay: 0.125000, Root dispersion: 0.125000, Reference-ID: (unspec)
          Reference Timestamp:  0.000000000
          Originator Timestamp: 0.000000000
          Receive Timestamp:    0.000000000
          Transmit Timestamp:   3847245704.488857998 (2021/11/30 08:21:44)
            Originator - Receive Timestamp:  0.000000000
            Originator - Transmit Timestamp: 3847245704.488857998 (2021/11/30 08:21:44)
08:17:26.206190 IP (tos 0x0, ttl 64, id 52621, offset 0, flags [DF], proto UDP (17), length 76)
    172.27.1.18.ntp > 172.27.64.1.ntp: [udp sum ok] NTPv3, length 48
        Client, Leap indicator:  (0), Stratum 0 (unspecified), poll 4 (16s), precision -8
        Root Delay: 0.125000, Root dispersion: 0.125000, Reference-ID: (unspec)
          Reference Timestamp:  0.000000000
          Originator Timestamp: 0.000000000
          Receive Timestamp:    0.000000000
          Transmit Timestamp:   3847245719.088767999 (2021/11/30 08:21:59)
            Originator - Receive Timestamp:  0.000000000
            Originator - Transmit Timestamp: 3847245719.088767999 (2021/11/30 08:21:59)
Das sieht für mich so aus, als ob der Server zwar Anfragen rein bekommt aber nicht beantworten darf.
mat6937 hat geschrieben: ↑ zum Beitrag ↑
26.11.2021 11:47:23
Wie ist auf dem Server selber, die Ausgabe von:
CODE: ALLES AUSWÄHLEN

rdate -4npu 127.0.0.1
Da passt es:

Code: Alles auswählen

root@server:~$ rdate -4npu 127.0.0.1
Tue Nov 30 08:19:45 CET 2021
root@server:~$
Ich denke es ist die Firewall, aber ka was daran falsch sein soll..

Also auch wenn ich tcpdump länger laufen lasse, es ist immer 172.27.1.18.ntp > 172.27.64.1.ntp nie die andere Richtung.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: iptables, ntp über openvpn

Beitrag von mat6937 » 30.11.2021 09:43:48

Exxter hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 08:23:00
Ich denke es ist die Firewall, aber ka was daran falsch sein soll..
Es muss nicht an der Firewall liegen, es kann auch am ntpd liegen, wenn er so konfiguriert ist, dass er nicht antworten soll oder evtl. durch patchen (hard-codiert) so modifiziert ist, dass er nicht antwortet bzw. nur intern (localhost) genutzt werden soll.

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: iptables, ntp über openvpn

Beitrag von Exxter » 30.11.2021 10:43:05

mat6937 hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 09:43:48
Exxter hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 08:23:00
Ich denke es ist die Firewall, aber ka was daran falsch sein soll..
Es muss nicht an der Firewall liegen, es kann auch am ntpd liegen, wenn er so konfiguriert ist, dass er nicht antworten soll oder evtl. durch patchen (hard-codiert) so modifiziert ist, dass er nicht antwortet bzw. nur intern (localhost) genutzt werden soll.
Also es ist das Paket ntp installiert:

Code: Alles auswählen

root@vpnportal:~$ apt list --installed|grep ntp
ntp/oldstable,oldstable,now 1:4.2.8p12+dfsg-4 amd64  [installiert]
ntpdate/oldstable,oldstable,now 1:4.2.8p12+dfsg-4 amd64  [installiert]
sntp/oldstable,oldstable,now 1:4.2.8p12+dfsg-4 amd64  [Installiert,automatisch]
root@vpnportal:~$
In diesem Paket gibt es die /etc/ntp.conf, in dieser gibt es die Einträge:

Code: Alles auswählen

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
restrict 172.27.1.
Den letzten restrict Eintrag habe ich noch hinzugefügt, ändert aber nichts. Außerdem deute ich den Kommentar so, dass jeder die Zeit abfragen darf. Ich habe sonst an der Datei nichts verändert.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: iptables, ntp über openvpn

Beitrag von mat6937 » 30.11.2021 10:51:30

Exxter hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 08:23:00
Das sieht für mich so aus, als ob der Server zwar Anfragen rein bekommt aber nicht beantworten darf.
Versuch mal mit einem anderen Filter für tcpdump:

Code: Alles auswählen

tcpdump -c 30 -vvveni any host 172.27.1.18 and port 123

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: iptables, ntp über openvpn

Beitrag von Exxter » 30.11.2021 11:24:06

mat6937 hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 10:51:30
Exxter hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 08:23:00
Das sieht für mich so aus, als ob der Server zwar Anfragen rein bekommt aber nicht beantworten darf.
Versuch mal mit einem anderen Filter für tcpdump:

Code: Alles auswählen

tcpdump -c 30 -vvveni any host 172.27.1.18 and port 123
Ist das gleiche, gehen nur Pakete rein. Aber ich bin ein Stück weitergekommen, mit der Regel:
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
geht es, plötzlich bekommt der Client was zurück:

Code: Alles auswählen

root@client:~$ rdate -4npu 172.27.64.1
Tue Nov 30 11:07:20 CET 2021
root@client:~$
Vom Internet aus ist der Port noch gefiltert, leuchtet mir zwar nicht ein, bei der Regel hätte ich erwartet dass der Port von allen Seiten offen ist.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: iptables, ntp über openvpn

Beitrag von mat6937 » 30.11.2021 11:29:41

Exxter hat geschrieben: ↑ zum Beitrag ↑
30.11.2021 11:24:06
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
Wie ist die default policy der OUTPUT chain auf deinem Server?

Code: Alles auswählen

iptables -nvx -L OUTPUT | head -n 3
?

EDIT:

BTW: Das ist ein source-Port den Du auf dem Server, jetzt für Verbindungen (hier zum antworten) nach außen, frei gegeben hast. Das hat m. E. nichts mit deinem Internetprovider zu tun.

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: iptables, ntp über openvpn

Beitrag von Exxter » 30.11.2021 12:21:03

iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
Wie ist die default policy der OUTPUT chain auf deinem Server?

Code: Alles auswählen

iptables -nvx -L OUTPUT | head -n 3
?

EDIT:

BTW: Das ist ein source-Port den Du auf dem Server, jetzt für Verbindungen (hier zum antworten) nach außen, frei gegeben hast. Das hat m. E. nichts mit deinem Internetprovider zu tun.
Hmm, OK:

Code: Alles auswählen

root@server:~$ iptables -nvx -L OUTPUT | head -n 3
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
 3700037 1373297986 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
root@server:~$
Dann sollte das passen, vielen Dank mat6937 :THX:

Antworten