Page 1 of 1
API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 12:48
by 24unix
Moin,
Problem wie im Titel genannt.
Bei 2 Servern kann ich die API nicht per IPv4 erreichen.
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?
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 13:08
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.
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 13:11
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.
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 13:21
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
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 13:28
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.
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 14:33
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:
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.
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 14:45
by OlliTheDarkness
Noch ne Idee:
Beschränkung ?! Server IP (4) nicht in der Whitelist ?!
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 14:51
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.
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 14:53
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 ^^
Re: API geht via IPv6, aber nicht via IPv4
Posted: Sun 23. Jan 2022, 20:35
by 24unix
Also, ich habe die API nun auf einem zweiten Server am laufen.
Da passt alles:
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.
Re: API geht via IPv6, aber nicht via IPv4
Posted: Mon 24. Jan 2022, 17:24
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.