Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!  [GELÖST]

jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!  [GELÖST]

Post 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
Last edited by jannisgo on Mon 16. Nov 2020, 17:12, edited 5 times in total.
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: Ich brauche schnell Hilfe!

Post 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 ?!
Mit freundlichen Grüßen
OlliTheDarkness

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

:!: World Hack Organization :!:
**************************************************************
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe!

Post by jannisgo »

Selbstverständlich. Sonst käme ja nix davon im Log an...

VG Jannis
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe!

Post 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:
112ACDE8-07AC-424C-B675-E79DABBC152D.png
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: Ich brauche schnell Hilfe!

Post 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? ...
Mit freundlichen Grüßen
OlliTheDarkness

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

:!: World Hack Organization :!:
**************************************************************
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe!

Post 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 :)
User avatar
Tobi
Community Moderator
Posts: 2832
Joined: Thu 5. Jan 2017, 13:24

Re: Ich brauche schnell Hilfe!

Post by Tobi »

Ist der User für externen Datenbankzugriff freigeschaltet?
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe!

Post 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...
User avatar
Alexander
Keyweb AG
Posts: 3842
Joined: Wed 20. Jan 2016, 02:23

Re: Ich brauche schnell Hilfe!

Post 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)
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe!

Post 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
User avatar
Tobi
Community Moderator
Posts: 2832
Joined: Thu 5. Jan 2017, 13:24

Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!

Post 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
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Florian
Keyweb AG
Posts: 1261
Joined: Wed 20. Jan 2016, 02:28

Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!

Post 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.
Mit freundlichen Grüßen / Best regards
Florian Cheno

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!

Post 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 :)
User avatar
Florian
Keyweb AG
Posts: 1261
Joined: Wed 20. Jan 2016, 02:28

Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!

Post 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
Mit freundlichen Grüßen / Best regards
Florian Cheno

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
jannisgo
Posts: 44
Joined: Thu 16. Jan 2020, 19:03

Re: Ich brauche schnell Hilfe! | MySQL ist extern nicht erreichbar!

Post 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 :/
Locked