Page 1 of 2
Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar! [GELÖST]
Posted: Mon 16. Nov 2020, 00:50
by jannisgo
Hallo zusammen - leider muss ich mich nun zu später Stunde hier melden!
Ich verfolge seit ca. 3 Stunden jegliche SQL-Logs auf meiner KeyHelp-Instanz und bei internen Verbindungen funktioniert alles - nur jegliche externen Verbindungen werden zurückgewiesen...
Ich habe schon länger mehrere Anwendungen, welche extern auf die Datenbanken zugreifen, aber der Fehler tritt erst jetzt und nur intern auf - und immer wieder hieß es clientseitig "Connection Refused" und Serverseitig:
Code: Select all
[Warning] Aborted connection to db: 'XXX_XXXX_XXX_db15' user: 'XXX_XXXX_XXX_db15' host: 'XXX.XXX.XXX.XXX' (Got an error reading communication packets)
Was hat es mit diesem Error "reading Packets" auf sich? Ich habe am Datenbankserver nichts geändert!
Ich bin für jede Hilfe dankbar!
Viele Grüße und bleibt gesund,
Jannis
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 00:57
by OlliTheDarkness
jannisgo wrote: ↑Mon 16. Nov 2020, 00:50
Hallo zusammen - leider muss ich mich nun zu später Stunde hier melden!
Ich verfolge seit ca. 3 Stunden jegliche SQL-Logs auf meiner KeyHelp-Instanz und bei internen Verbindungen funktioniert alles - nur jegliche externen Verbindungen werden zurückgewiesen...
Ich habe schon länger mehrere Anwendungen, welche extern auf die Datenbanken zugreifen, aber der Fehler tritt erst jetzt und nur intern auf - und immer wieder hieß es clientseitig "Connection Refused" und Serverseitig:
Code: Select all
[Warning] Aborted connection to db: 'XXX_XXXX_XXX_db15' user: 'XXX_XXXX_XXX_db15' host: 'XXX.XXX.XXX.XXX' (Got an error reading communication packets)
Was hat es mit diesem Error "reading Packets" auf sich? Ich habe am Datenbankserver nichts geändert!
Ich bin für jede Hilfe dankbar!
Viele Grüße und bleibt gesund,
Jannis
Port in der FW frei ?!
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 06:37
by jannisgo
Selbstverständlich. Sonst käme ja nix davon im Log an...
VG Jannis
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 07:18
by jannisgo
Ach ja, und mein PMA sagt mir, dass ich stündlich 17000 Verbindungen habe und in der Sekunde 3... kann man irgendwo alle Verbindungen auflisten lassen? In den Logs steht nix...
Hier noch ein Screenshot:
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 07:32
by OlliTheDarkness
jannisgo wrote: ↑Mon 16. Nov 2020, 07:18
Ach ja, und mein PMA sagt mir, dass ich stündlich 17000 Verbindungen habe und in der Sekunde 3... kann man irgendwo alle Verbindungen auflisten lassen? In den Logs steht nix...
dafür gibt es mit unter netstat ...
Im Leben eines Admins einer der überlebenswichtigsten Befehle ...
Wirkliche Erfahrung hast du nicht , oder? ...
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 09:48
by jannisgo
Naja, eher mit Web-Entwicklung an sich - aber eigentlich auch mit solchen Sachen - Hatte nur solch einen Fehler noch nie und kann daher wenig dazu sagen....
Schau ich mir gleich nochmal an

Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 10:10
by Tobi
Ist der User für externen Datenbankzugriff freigeschaltet?
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 13:13
by jannisgo
Hi,
ja, das ist er. Ich habe jetzt eben mal nachgesehen: Der Port ist blockiert! Aber weder in der KH-Firewall, noch UFW noch iptables... aber laut Portscan ist der zu!
Habe ich noch was vergessen? Hosterseits ist eigentlich alles gut...
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 13:28
by Alexander
Um externen Datenbank-Zugriff für einen Server zu aktivieren sind ggf. 4 Schritte notwendig:
1) - Der Benutzer muss über die Benutzerverwaltung freigeschalten werden (Adminbereich -> Benutzerverwaltung -> Benutzer editieren -> Befugnisse)
2) - Die Datenbank des Benutzers muss nun für externen Zugriff freigegeben werden (Benutzerbereich -> Datenbanken -> Datenbank editieren -> Fernzugriff)
3) - Der Datenbank-Server muss generell freigeschalten werden (Adminbereich -> Konfiguration -> Datenbank-Server)
4) - Die Firewall darf nicht blockieren (hier ggf. einmal die Regeln mit iptables -S auflisten lassen und hier posten)
Re: Ich brauche schnell Hilfe!
Posted: Mon 16. Nov 2020, 13:48
by jannisgo
Alexander wrote: ↑Mon 16. Nov 2020, 13:28
Um externen Datenbank-Zugriff für einen Server zu aktivieren sind ggf. 4 Schritte notwendig:
1) - Der Benutzer muss über die Benutzerverwaltung freigeschalten werden (Adminbereich -> Benutzerverwaltung -> Benutzer editieren -> Befugnisse)
2) - Die Datenbank des Benutzers muss nun für externen Zugriff freigegeben werden (Benutzerbereich -> Datenbanken -> Datenbank editieren -> Fernzugriff)
3) - Der Datenbank-Server muss generell freigeschalten werden (Adminbereich -> Konfiguration -> Datenbank-Server)
4) - Die Firewall darf nicht blockieren (hier ggf. einmal die Regeln mit iptables -S auflisten lassen und hier posten)
Hallo,
danke für diese Tipps - alles geprüft... Und vorher hat ja alles funktioniert, nur seit gestern eben nicht mehr...
Hier die Ausgabe von iptables -S:
Code: Select all
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N Allow
-N Always
-N Banned
-N Bogus
-N Friend
-N fail2ban
-N f2b-sshd
-N ufw-before-logging-input
-N ufw-before-logging-output
-N ufw-before-logging-forward
-N ufw-before-input
-N ufw-before-output
-N ufw-before-forward
-N ufw-after-input
-N ufw-after-output
-N ufw-after-forward
-N ufw-after-logging-input
-N ufw-after-logging-output
-N ufw-after-logging-forward
-N ufw-reject-input
-N ufw-reject-output
-N ufw-reject-forward
-N ufw-track-input
-N ufw-track-output
-N ufw-track-forward
-N ufw-logging-deny
-N ufw-logging-allow
-N ufw-skip-to-policy-input
-N ufw-skip-to-policy-output
-N ufw-skip-to-policy-forward
-N ufw-not-local
-N ufw-user-input
-N ufw-user-output
-N ufw-user-forward
-N ufw-user-logging-input
-N ufw-user-logging-output
-N ufw-user-logging-forward
-N ufw-user-limit
-N ufw-user-limit-accept
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -j Bogus
-A INPUT -j Always
-A INPUT -j Banned
-A INPUT -j fail2ban
-A INPUT -j Allow
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A FORWARD -j Bogus
-A FORWARD -j Always
-A FORWARD -j Banned
-A FORWARD -j Allow
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A Allow -p icmp -m icmp --icmp-type 8 -j Friend
-A Allow -p icmp -m icmp --icmp-type any -m limit --limit 1/sec -j ACCEPT
-A Allow -p icmp -m icmp --icmp-type any -j DROP
-A Allow -i lo -j ACCEPT
-A Allow -p tcp -m tcp --dport 53 -j ACCEPT
-A Allow -p udp -m udp --dport 53 -j ACCEPT
-A Allow -p tcp -m tcp --dport 20 -j ACCEPT
-A Allow -p tcp -m tcp --dport 21 -j ACCEPT
-A Allow -p tcp -m multiport --dports 30000:30500 -j ACCEPT
-A Allow -p tcp -m tcp --dport 22 -j ACCEPT
-A Allow -p tcp -m tcp --dport 80 -j ACCEPT
-A Allow -p tcp -m tcp --dport 443 -j ACCEPT
-A Allow -p tcp -m tcp --dport 25 -j ACCEPT
-A Allow -p tcp -m tcp --dport 587 -j ACCEPT
-A Allow -p tcp -m tcp --dport 110 -j ACCEPT
-A Allow -p tcp -m tcp --dport 143 -j ACCEPT
-A Allow -p tcp -m tcp --dport 993 -j ACCEPT
-A Allow -p tcp -m tcp --dport 995 -j ACCEPT
-A Allow -j REJECT --reject-with icmp-port-unreachable
-A Always -i lo -j ACCEPT
-A Always -m state --state RELATED,ESTABLISHED -j ACCEPT
-A Always -j Friend
-A Bogus -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A Bogus -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A Bogus -s 169.254.0.0/16 -j DROP
-A Bogus -s 172.16.0.0/12 -j DROP
-A Bogus -s 192.0.2.0/24 -j DROP
-A Bogus -s 192.168.0.0/16 -j DROP
-A Bogus -s 10.0.0.0/8 -j DROP
-A Bogus -s 127.0.0.0/8 ! -i lo -j DROP
-A Friend -j RETURN
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -s XXX -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -j RETURN
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d XXX -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d XXX -p udp -m udp --dport 1900 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-skip-to-policy-forward -j DROP
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-user-input -s XXX -j DROP
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 22 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 80 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 443 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 443 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 21 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 21 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 53 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 53 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 587 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 587 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 993 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 993 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 995 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 995 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 3306 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 3306 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT
Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!
Posted: Mon 16. Nov 2020, 13:54
by Tobi
Ich bin mir nicht 100%ig sicher, aber müsste die Regel nicht in der Reihenfolge weiter oben stehen?
Am Besten direkt an Platz 2
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -j Bogus
-A INPUT -j Always
-A INPUT -j Banned
-A INPUT -j fail2ban
-A INPUT -j Allow
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!
Posted: Mon 16. Nov 2020, 14:53
by Florian
Hallo,
bevor man sich die Firewall anschaut, sollte auch mal netstat -tulpen zu Rate gezogen werden, um zu schauen, dass der MySQL auch wirklich auf 0.0.0.0 lauscht und nicht nur auf 127.0.0.1
Code: Select all
# netstat -tulpen | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 112 62020698 17293/mysqld
Ich habe schon Fälle gehabt wo das bind_address mehrmals in den Konfigdateien vorkam und daher die Keyhelp-Konfiguration nicht gegrriffen hat.
Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!
Posted: Mon 16. Nov 2020, 15:20
by jannisgo
Florian wrote: ↑Mon 16. Nov 2020, 14:53
Hallo,
bevor man sich die Firewall anschaut, sollte auch mal netstat -tulpen zu Rate gezogen werden, um zu schauen, dass der MySQL auch wirklich auf 0.0.0.0 lauscht und nicht nur auf 127.0.0.1
Code: Select all
# netstat -tulpen | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 112 62020698 17293/mysqld
Ich habe schon Fälle gehabt wo das bind_address mehrmals in den Konfigdateien vorkam und daher die Keyhelp-Konfiguration nicht gegrriffen hat.
Hallo,
habe ich geprüft - steht auf 0.0.0.0

Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!
Posted: Mon 16. Nov 2020, 15:29
by Florian
Hallo,
OK zusätzlich ist es hilfreich von dem Host, von dem man eine Verbindung herstellen will. mal mittels Telnet eine Verbindung aufzubauen:
"telnet ZielHost 3306"
Es gab schon Fälle da blockt MySQL aufgrund fehlerhafter Verbindung den Host und man muss dann erst mittels "mysqladmin flush-hosts" dies wieder freischalten, siehe:
https://dev.mysql.com/doc/refman/8.0/en ... ocked-host
Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!
Posted: Mon 16. Nov 2020, 16:20
by jannisgo
Hi,
danke auch für diesen Tipp - auch Telnet sagt "connection refused" - die Verbindung wurde auch hier zurückgewiesen und der Port ist noch blockiert... habe eben nochmal den Port mit map geprüft und auch der Rat mit der Nummer 2 in den IP-Tables hat nichts geholfen... Gibt es noch irgendeine Möglichkeit?
EDIT: mysqladmin-flush hat nichts gebracht :/