Bitte genauer definieren!!!
Aufgrund der fehlenden Fehlermeldung und ob es ein lokales Problem ist oder eine externe Connection, tappt der Thread mehr oder weniger im Dunkeln.
Also bis dato
WAREN ein paar DB auch extern geschalten.
Habe diese jetzt erstmal deaktiviert weil z.Zt. unnötig.
Fraglich ist jetzt, ob ich jetzt auch alles richtig konfiguriert habe, sodass MYSQL tatsächlich nicht öffentlich ist.... aber dazu gibt es ja nmap.
Problem dabei ist aber, das ich dessen Einsatz nicht wirklich verstehe.
Führe ich nmap -v <domain> auf den Server direkt aus erhalte ich das:
Code:
Not shown: 990 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
993/tcp open imaps
995/tcp open pop3s
3306/tcp open mysql
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
Raw packets sent: 1000 (44.000KB) | Rcvd: 2010 (84.440KB)
Vermutlich wird hier nicht wirklich gescannt sondern eher die /usr/share/nmap/nmap-service zu rate gezogen.
Führe ich das ganze nochmal extern auf die gleiche domain durch, erhalte ich schon ganz andere Daten... + es dauert weit aus länger.
Code:
Not shown: 1687 filtered ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp closed https
465/tcp closed smtps
993/tcp open imaps
995/tcp open pop3s
Nmap finished: 1 IP address (1 host up) scanned in 66.769 seconds
Raw packets sent: 5083 (223.650KB) | Rcvd: 20 (834B)
Theoretisch sollte mysql dicht sein (?).
Zusätzlich solltest Du noch angeben wie hoch die MaxClients im Apache stehen. Das man z.B. mit 500 Apache-Clients 100 MySQL-Verbindungen voll bekommen kann ist wahrscheinlich klar.
Auch die php.ini Einstellungen von mysql.allow_persistent, mysql.max_persistent, mysql.max_links sind in diesem Fall interessant.
Denn damit könnte man vor sich hin dümpelnde Verbindungen unterbinden.
Code:
[B]Max Requests[/B] Per Child: 10000 - Keep Alive: on - Max Per Connection: 100
[B]Timeouts[/B] Connection: 300 - Keep-Alive: 15
[B]Loaded Modules[/B] core prefork http_core mod_so mod_actions mod_alias mod_auth_basic mod_authn_file mod_authz_host mod_authz_groupfile mod_authz_default mod_authz_user mod_authn_dbm mod_autoindex mod_cgi mod_dir mod_env mod_expires mod_include mod_log_config mod_mime mod_negotiation mod_setenvif mod_ssl mod_suexec mod_userdir mod_php5 mod_rewrite mod_vhost_alias mod_status mod_evasive20 mod_log_sql mod_log_sql_mysql
MOD: Bilder bitte immer als Anhang!
MaxClients habe ich glaube ich nicht aktiviert. Würde sogar soweit gehen wollen und behaupten, das ich hierfür garnicht das modul aktiviert habe.
Zumindest sagt phpinfo und http.conf nichts darüber aus.
Hoffe, das ich alle Variablen gepostet habe... aber wie man sieht, ist so gut wie alles noch auf default. Hat ja bisher auch alles wunderbar geklappt.
Wenn die blockierenden Connections allerdings wegen Attacken gegen einen offenen MySQL-Port kommen, könnte man den Port einfach von 3306 auf z.B. 3307 verlegen.
Hoffe, das MYSQL jetzt erstmal nicht mehr öffentlich ist.
Zusätzlich habe ich mal denyhost etwas senibilisiert.
BLOCK_SERVICE = ALL
Frage hierzu: Wie trenne ich denn 2 Dienste bei DENYHOST ?
Die Manuell sagt hierzu rein garnichts aus. Mit ; ?
BLOCK_SERVICE = sshd;mysql