API geht via IPv6, aber nicht via IPv4

Haben Sie einen Bug entdeckt? Teilen Sie es uns mit.
Post Reply
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

API geht via IPv6, aber nicht via IPv4

Post by 24unix »

Moin,

Problem wie im Titel genannt.

Bei 2 Servern kann ich die API nicht per IPv4 erreichen.
timeout.png
An der CLI reproduzierbar:

Code: Select all

$ curl https://tector.24unix.net/api/v2/ping -H "X-Api-Key: HJwrfMd7.A[..]K7jZ"
{
    "response": "pong"
}

Code: Select all

$ curl -4 https://tector.24unix.net/api/v2/ping -H "X-Api-Key: HJwrfMd7.A[..]K7jZ"
curl: (28) Failed to connect to tector.24unix.net port 443: Connection timed out

Aber ICMP Ping geht:

Code: Select all

$ ping tector
PING tector(tector.24unix.net (2a01:4f8:161:12cd::137)) 56 data bytes
64 bytes from tector.24unix.net (2a01:4f8:161:12cd::137): icmp_seq=1 ttl=64 time=0.170 ms

$ ping -4 tector
PING  (176.9.165.137) 56(84) bytes of data.
64 bytes from tector.24unix.net (176.9.165.137): icmp_seq=1 ttl=64 time=0.285 ms
Mit Lynx kann ich die Seite auch von dem Server erreichen.

Apache sieht gut aus:

Code: Select all

apache2ctl -S
VirtualHost configuration:
*:443                  is a NameVirtualHost
         default server tector.24unix.net (/etc/apache2/keyhelp/keyhelp.conf:20)
         port 443 namevhost tector.24unix.net (/etc/apache2/keyhelp/keyhelp.conf:20)

läuft auch:

Code: Select all

$ netstat -luntep|grep 443
tcp6       0      0 :::443                  :::*                    LISTEN      0          2203674    306200/apache2
Hat jemand eine schlaue Idee, wo ich da suchen könnte?
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: API geht via IPv6, aber nicht via IPv4

Post by OlliTheDarkness »

Ich fang mal ganz klein an.

Die 4er Addr. in der FW gelandet, zB. wegen zu vieler fehlerhafter API Logins ?!

Wäre die erste und einfachste Annahme.
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: API geht via IPv6, aber nicht via IPv4

Post by 24unix »

OlliTheDarkness wrote: Sun 23. Jan 2022, 13:08 Ich fang mal ganz klein an.

Die 4er Addr. in der FW gelandet, zB. wegen zu vieler fehlerhafter API Logins ?!

Wäre die erste und einfachste Annahme.
Stimmt, der Gedanke ist nicht verkehrt, aber sieht nicht so aus:

Code: Select all

(ssh) root@tector : ~
[2] # iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       all  --  anywhere             anywhere             state INVALID
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
DROP       tcp  --  anywhere             anywhere             tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN/FIN,SYN
DROP       tcp  --  anywhere             anywhere             tcp flags:SYN,RST/SYN,RST
DROP       all  --  127.0.0.0/8          anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission
DROP       tcp  --  anywhere             anywhere             tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpts:30000:30500
ACCEPT     icmp --  anywhere             anywhere             icmptype 8 code 0
ACCEPT     icmp --  anywhere             anywhere             icmp any limit: avg 10/sec burst 20
DROP       icmp --  anywhere             anywhere             icmp any

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       all  --  127.0.0.0/8          anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere

Chain f2b-sshd (1 references)
target     prot opt source               destination
REJECT     all  --  218.92.0.200         anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere
Der Server auf dem ich Entwickle hat die 176.9.165.128.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: API geht via IPv6, aber nicht via IPv4

Post by OlliTheDarkness »

Also 6 und 4 ist er erreichbar.

Code: Select all

***:~# curl -6 https://tector.24unix.net/api/v2/ping
{
    "code": "401 Unauthorized",
    "message": "API key is missing."
}

***:~# curl -4 https://tector.24unix.net/api/v2/ping
{
    "code": "401 Unauthorized",
    "message": "API key is missing."

Also liegts Problem meiner Meinung nach an deinem anfragendem Client
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: API geht via IPv6, aber nicht via IPv4

Post by 24unix »

OlliTheDarkness wrote: Sun 23. Jan 2022, 13:21 Also 6 und 4 ist er erreichbar.

Code: Select all

***:~# curl -6 https://tector.24unix.net/api/v2/ping
{
    "code": "401 Unauthorized",
    "message": "API key is missing."
}

***:~# curl -4 https://tector.24unix.net/api/v2/ping
{
    "code": "401 Unauthorized",
    "message": "API key is missing."

Also liegts Problem meiner Meinung nach an deinem anfragendem Client
Interessant, auf die Idee bin ich nicht gekommen, es von einem anderen Host zu testen.
OK, aber das hilft mir wohl, das Problem einzugrenzen.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: API geht via IPv6, aber nicht via IPv4

Post by 24unix »

24unix wrote: Sun 23. Jan 2022, 12:48 tcp6 0 0 :::443 :::* LISTEN 0 2203674 306200/apache2


Da habe ich doch glatt vorhin gepennt.

Der Apache ist nur an tcp6 gebunden.


Im Panel ist es aber richtig:

apache.png
Aber, warum klappt es dann bei Olli?

Okay, daran liegt es nicht, bei einem anderen host, bei dem es geht sieht es genau so aus.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: API geht via IPv6, aber nicht via IPv4

Post by OlliTheDarkness »

Noch ne Idee:
Beschränkung ?! Server IP (4) nicht in der Whitelist ?!
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: API geht via IPv6, aber nicht via IPv4

Post by 24unix »

OlliTheDarkness wrote: Sun 23. Jan 2022, 14:45 Noch ne Idee:
Beschränkung ?! Server IP (4) nicht in der Whitelist ?!
Habe noch gar nichts gewhitlistet solange ich noch am Testen bin …
Sonst wärst Du ja auch nicht drauf gekommen.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: API geht via IPv6, aber nicht via IPv4

Post by OlliTheDarkness »

24unix wrote: Sun 23. Jan 2022, 14:51
OlliTheDarkness wrote: Sun 23. Jan 2022, 14:45 Noch ne Idee:
Beschränkung ?! Server IP (4) nicht in der Whitelist ?!
Habe noch gar nichts gewhitlistet solange ich noch am Testen bin …
Sonst wärst Du ja auch nicht drauf gekommen.
Is nen Argument ^^
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: API geht via IPv6, aber nicht via IPv4

Post by 24unix »

Also, ich habe die API nun auf einem zweiten Server am laufen.

Da passt alles:
apiok.png
Ich belasse es nun dabei, werde für einen Timeout nur ein Skip ausgeben, und es nicht als Fehler werten.

Für den ZoneTransfer reicht es, wenn der Server entweder über IPv4 oder über IPv6 erreichbar ist.

Da IPv6 wichtiger ist, und das funktioniert kann ich für den Moment damit leben.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: API geht via IPv6, aber nicht via IPv4

Post by 24unix »

So, um das hier noch mal abzuschliessen: Ich weiß nicht, warum die Rechner sich pingen können, auch über IPv4, aber der API-Aufruf scheitert.

Da aber eine erfolgreiche Verbindung reicht, wird geskipped, und sobald entweder A oder AAAA pinbar waren gilt der Test als bestanden.

Scripte können dann den Rückgabewert prüfen, 0 ist bestanden, 1 ist Fehler.
apiping.png
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
Post Reply