Update von Reihe 4 auf 6

  • Der MySQL 5.5 Ordner wird umbenannt (Schritt 4.), dann die neue Version kopiert und die Dumps eingespielt. Sollte dabei etwas schief gehen, kann man /home/mysql löschen und den gesichterten MySQL Ordner zurück umbenennen.

    Sonst wird ja nichts weiter verändert. Unter /services/mysql bleibt alles identisch und innerhalb der SE sind die Verweise auf MySQL Symlinks auf /home/mysql

    Lediglich die my.cnf bleibt innerhalb der SE. Da musste ich dann noch den strict mode (sql-mode="") deaktivieren. Ansonsten sind die Schritte eigentlich ziemlich simpel und in meinem Augen eine sichere Sache. Für Endnutzer kann es lediglich zu einer längeren Ausfallzeit kommen, abhängig von der Anzahl und Größe der einzuspielenden Dumps.

  • Update [ERLEDIGT - siehe ganz unten]:


    Nach dem Upgrade schlägt nun der Aufruf von http_vhost.pl fehl:


    Can't connect to local MySQL server through socket '/usr/local/pd-admin2/var/mysql.run/mysql.sock' (111) at /opt/pdadmin/bin/httpd_vhosts.pl line 58

    [Wed Apr 8 15:42:41 2020] httpd_vhosts.pl: can't connect! at /opt/pdadmin/bin/httpd_vhosts.pl line 58.


    Ausserdem wollte ich auch ein Upgrade auf die 0-6-351 machen und dies schlägt auch fehl:


    ...

    Installierte Version: 0348

    Aktuelle Version : 0351

    Die Installation der aktuellen Version wird NUN vorbereitet ...


    SETEMP=/usr/local/pd-admin2.ELgrDg

    Entpacke Server-Umgebung. Bitte haben Sie etwas Geduld.

    ~/seu3

    Versionsvergleich 2019102300 >= 2019102300 OK.

    |

    | trying to stop apache ...

    |

    httpd: no process found

    |

    | Dienste werden gestoppt ...

    |

    /service/apache24

    /service/clamd

    /service/dovecot22

    /service/FPM-...

    /service/mysqld

    /service/proftpd

    /service/qmail-msa

    /service/qmail-send

    /service/qmail-smtpd

    /service/qmail-smtpSd

    /service/spamd

    /service/dovecot22/log

    /service/FPM-...

    /service/proftpd/log

    /service/qmail-msa/log

    /service/qmail-smtpd/log

    /service/qmail-smtpSd/log

    couriertls: no process found

    courierlogger: no process found

    stoppe MySQL-Server ...mysqladmin: [ERROR] unknown option '--The MySQL server'

    Fertig.

    Lege ein tempor▒res Arbeitsverzeichnis an: /usr/local/pd-admin2.work done

    Installierte Dateien werden kopiert (hard-linking) ... done

    Unver▒nderte Dateien werden gel▒scht.

    4924 directories removed

    75 directories not removed (not empty)

    done

    Das alte pd-admin2-Verzeichnis wird umbenannt ... done

    Bringe die neue Server-Umgebung in Stellung...

    ~/seu3

    USERADD=useradd

    ** Eigent▒mer ▒ndern auf root **

    ** user mysql einrichten **

    ** Eigent▒mer ▒ndern auf mysql f▒r var/mysql **

    ** PostgreSQL vorbereiten **

    ** user dovecot und dovenull einrichten **

    ** DocumentRoot einrichten **

    ** adminer vorbereiten **

    ** adminer an root **

    ** phpMyAdmin vorbereiten **

    ** php.d an root **

    ** Gruppe/Benutzer squirrel anlegen**

    ** Eigent▒mer/Berechtigungen von squirrelmail anpassen**

    ** Gruppe/Benutzer rndcbml anlegen**

    ** Eigent▒mer/Berechtigungen von roundcubemail anpassen**

    ** Berechtigung f▒r share/clamav ▒ndern **

    ** user/group simscan/simscan einrichten **

    ** Eigent▒mer ▒ndern auf clamav f▒r share/clamav **

    ** suidperl wird erzeugt **

    + workaround for perl without suid support

    ** cgiwrap setuid **

    ** Berechtigungen f▒r Apache-Logfile-Verzeichnis **

    ** Berechtigungen f▒r Apache-Conf-Verzeichnis **

    ** Berechtigungen f▒r UPDATE.INF-Verzeichnis **

    ** Berechtigungen f▒r awstats-Verzeichnis **

    ** Verzeichnisse f▒r mod-pagespeed **

    ** Ausf▒hrungsberechtigung zur▒ckgesetzt **

    ** User/Gruppen f▒r qmail **

    ** Berechtigungen f▒r /var/qmail/owners/... **

    HERE=/root/seu3

    checking subdirectory structure before importing changed files

    importing changed files from work dir

    Entferne Symlink /usr/local/pd-admin2.work/var/mysql

    (1) MYSQLDATADIR = </home/mysql>

    Arbeitsverzeichnis wird gel▒scht ...Fertig

    |

    | Entferne einige .pdu-Dateien ...

    |

    /usr/local/pd-admin2/var/mysql/mysql/db.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/db.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/user.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/user.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/tables_priv.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/tables_priv.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/func.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/func.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/host.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/host.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/columns_priv.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/columns_priv.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_leap_seconds.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_leap_seconds.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_name.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_name.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_transition.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_transition.frm.pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_transition_type.MY[ID].pdu-*

    /usr/local/pd-admin2/var/mysql/mysql/time_zone_transition_type.frm.pdu-*

    (2) MYSQLDATADIR = </home/mysql>

    (3) re-creating symlink var/mysql -> </home/mysql>

    old SE has mysql symlink

    new SE has mysql symlink (OK)

    |

    | changing u/g of squirrelmail

    |

    |

    | Dienste werden gestartet ...

    |

    /service/apache24

    /service/clamd

    /service/dovecot22

    /service/FPM-...

    /service/mysqld

    /service/proftpd

    /service/qmail-msa

    /service/qmail-send

    /service/qmail-smtpd

    /service/qmail-smtpSd

    /service/spamd

    /service/dovecot22/log

    /service/FPM-...

    /service/proftpd/log

    /service/qmail-msa/log

    /service/qmail-smtpd/log

    /service/qmail-smtpSd/log

    |

    | PHP-Version von 4 auf 5 aendern

    |

    Kann nicht zur Datenbank verbinden!

    Kann nicht zur Datenbank verbinden!

    Kann nicht zur Datenbank verbinden!

    Kann nicht zur Datenbank verbinden!

    Kann nicht zur Datenbank verbinden!

    Konnte auch nach 60 Sekunden nicht mit der MySQL-Datenbank verbinden.

    [Wed Apr 8 15:42:41 2020] httpd_vhosts.pl: DBI connect('database=vadmin;host=localhost;','va dmin',...) failed: Can't connect to local MySQL server through socket '/usr/local/pd-admin2/v ar/mysql.run/mysql.sock' (111) at /opt/pdadmin/bin/httpd_vhosts.pl line 58

    [Wed Apr 8 15:42:41 2020] httpd_vhosts.pl: can't connect! at /opt/pdadmin/bin/httpd_vhosts.p l line 58.

    |

    | MySQL fix privileges/MySQL shutdown/restart (MySQL 4.1/5.0)

    | mysql_upgrade (MySQL 5.1)

    |

    |

    | mysql_upgrade (5.1, 5.5, 5.7)

    |

    mysql_upgrade: [ERROR] unknown option '--The MySQL server'

    Upgrade process encountered error and will not continue.

    mysqladmin: [ERROR] unknown option '--The MySQL server'

    |

    | Courier IMAP wird initialisiert.

    |

    found etc/authlib/authdaemonrc

    found etc/authlib/authmysqlrc

    CONFIGURE/configure-ci.pl wird nicht ausgef▒hrt.

    |

    | rssh wird als shell registriert

    |

    |

    | Das Update der Serverumgebung (SE) ist abgeschlossen

    | Bitte pr▒fen Sie, ob alle Dienste wieder angelaufen sind,

    | insbesondere solche, die ▒ber /etc/rc.d (z. B. imap) ge-

    | startet werden.

    |


    Auch ein manueller Aufruf von


    /usr/local/pd-admin2/bin/mysqladmin -p... shutdown


    liefert den Fehler


    mysqladmin: [ERROR] unknown option '--The MySQL server'


    Bzw. auch direkter Aufruf von


    /usr/local/pd-admin2/bin/mysql


    liefert Fehler


    mysql: [ERROR] unknown option '--The MySQL server'



    Hat jemand eine Idee woran das liegen könnte?


    ERLEDIGT: Das Problem war, dass sich ein Syntaxfehler in der my.cnf eingeschlichen hat. Ich bin mir noch nicht ganz sicher wie es

    dazu kam aber nach manuellem Fix starte der MySQL Server nun wieder wie gewohnt.

  • Update:


    Habe festgestellt, dass qmail-smtpSd seit dem Update nicht mehr funktioniert. Es wird offenbar kein SSL Zertifikat mehr retourniert:


    $ openssl s_client -showcerts -connect mail.server.com:465 -servername mail.server.com

    CONNECTED(00000003)

    write:errno=104

    ---

    no peer certificate available

    ---

    No client certificate CA names sent

    ---

    SSL handshake has read 0 bytes and written 201 bytes

    Verification: OK

    ---

    New, (NONE), Cipher is (NONE)

    Secure Renegotiation IS NOT supported

    Compression: NONE

    Expansion: NONE

    No ALPN negotiated

    SSL-Session:

    Protocol : TLSv1.2

    Cipher : 0000

    Session-ID:

    Session-ID-ctx:

    Master-Key:

    PSK identity: None

    PSK identity hint: None

    SRP username: None

    Start Time: 1586793101

    Timeout : 7200 (sec)

    Verify return code: 0 (ok)

    Extended master secret: no

    ---


    Die qmail-smtpSd/run sieht wie folgt aus (keine manuellen Änderungen seit der Installation):


    #!/bin/sh

    QMAILDUID=`id -u qmaild`

    NOFILESGID=`id -g qmaild`

    MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

    HOSTNAME=`hostname --fqdn`

    if [ ! -f /usr/local/pd-admin2/share/pop3d.pem -a ! -L /usr/local/pd-admin2/share/pop3d.pem ]; then

    ln -s imapd.pem /usr/local/pd-admin2/share/pop3d.pem

    fi

    rm -rf ./env/*;

    mkdir -p env

    cd env

    cat /usr/local/pd-admin2/etc/pop3d-ssl | ../envconv

    cd ..

    exec 2>&1

    exec /usr/local/bin/envdir ./env/ \

    /usr/local/bin/softlimit -m 128000000 \

    /usr/local/bin/tcpserver -x /etc/tcp.msa.cdb \

    -c "$MAXSMTPD" \

    -u "$QMAILDUID" -g "$NOFILESGID" \

    -v -R -H -l $HOSTNAME 0 465 \

    /usr/local/pd-admin2/bin/couriertls -server -tcpd \

    /var/qmail/bin/qmail-smtpd $HOSTNAME /usr/local/pd-admin2/bin/checksmtppasswd \

    /bin/true 2>&1


    Die Zertifikate existieren und funktionieren für andere Dienste, die mit dem Skript dc-ssl-install.sh konfiguriert wurden, z.B. Dovecot.


    Woran kann es liegen, dass nun über die stunnel Konfiguration von qmail-smtpSd kein Zertifikat gesendet wird und damit der

    SSL Handshake fehlschlägt?


    Ich habe das dc-ssl-install.sh Skript auf bereits mehrfach laufen lassen und die Settings manuell getestet - sehe hier keinen logischen Fehlern...


    Besten Dank vorab.

  • Ich habe keine Probleme mit dem Dienst...


    Gibt es gar keine Fehlermeldungen im Log? Ansonsten einfach Mal den Dienst stoppen und /service/qmail-smtpSd/run manuell ausführen, auf Port 465 versuchen zu verbinden und dann schauen was die Konsole ausgibt.

  • Hallo,


    nein hätte auf Anhieb keine Fehlerlogs gefunden - schaue derzeit in /var/logs/mail.err => sonst evtl. noch wo?


    Service manuell stoppen haben ich bereits mehrfach probiert - stoppt und startet auch einwandfrei nur schlägt der SSL Handshake via Port 465 - smtpS fehl.


    Bin etwas ratlos derzeit. Danke

  • Ich habe von Reihe 4 auf 6 umgestellt. Das war bei einer SE < 0.249. Mittlerweile bin ich bei SE 0.251 (also mit der neue openssl Version) und habe keinerlei Probleme. Das System ist CentOS 7. Daher würde ich nicht von einem allgemeinen, sondern einem individuellen Fehler ausgehen.


    Ich fürchte nur, ohne eine Fehlermeldung oder z.B. die Konsolenausgabe einer Zustellung, kann man nicht weiter helfen.

  • Danke für die Info, liefere gerne Logeinträge - weiß nur nicht welche in diesem Fall.


    StartTLS funktioniert ja via Port 25 einwandfrei, sobald aber der Port 465 für implizites TLS verwendet wird klappt es clientseitig

    mit der Fehlermeldung, dass der SSL Handshake fehlgeschlagen ist.


    Welche Logs soll ich den zu Verfügung stellen? Welche Tests durchführen?


    Als Info, dass die Certs für StartTLS einwandfrei funktionieren:


    openssl s_client -starttls smtp -showcerts -connect mail.server.com:25 -servername mail.server.com

    CONNECTED(00000003)

    depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority

    verify return:1

    depth=1 C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA

    verify return:1

    depth=0 CN = mail.server.com

    verify return:1

    ---

    Certificate chain

    0 s:/CN=mail.server.com

    i:/C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA

    -----BEGIN CERTIFICATE-----

    MIIFxTCCBK2gAwIBAgIRALtIZeYtniidkQc4LupNvBMwDQYJKoZIhvcNAQELBQAw

    gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmN


    Bin für jeden Hinweis dankbar!

  • Das Zertifikat auf Port 25 zu testen bringt leider nicht viel, da es hier ja Probleme auf Port 465 gibt.


    Bei einem Handshake Fehler kann dieser serverseitig oder clientseitig erfolgen. Daher wären mehr Informationen dazu wichtig.

    Wenn der Mail-Client nicht mehr liefert, kann man eine Mail-Zustellung manuell mit openssl durchführen:

    Code
    openssl s_client -crlf -connect mail.server.com:465

    Bei einem Handshake Fehler sollte es hier bereits beim Verbindungsaufbau eine Ausgabe mit genauer Fehlermeldung geben.


    Edit:


    Mit -verbose liefert openssl auch noch Mal mehr Informationen. Die normale Ausgabe sollte aber ausreichen.


    Mir fiel auch auf, dass Sie offenbar noch couriertls einsetzen. Daher würde ich dazu raten auf stunnel umzustellen. Möglicherweise löst dies bereits das Problem.

  • Besten Dank!


    Das Problem war, dass durch das Reihenupgrade (warum auch immer) von der davor eingesetzten stunnel Variante zurück auf couriertls "zurück migriert" wurde.


    => Sollte dies durch eine forced upgrade passieren in diesem Fall?


    Mit dem erneuten Setzen von stunnel klappt nun alles wieder einwandfrei.


    Nochmals besten Dank!

  • Ich könnte mir nicht erklären, wie dies durch das Reihen Upgrade gekommen sein soll...

    Die Umstellung auf stunnel erfolgte Ende 2018. Ich hatte der Upgrade der Reihe 4 auf 6 bei mir Anfang des Jahres durchgeführt. Sprich bei mir war stunnel schon länger in Betrieb. Ich hatte nach dem Upgrade keinerlei Probleme und eine erneute Einrichtung war auch nicht notwendig. Dies wurde auch bisher von keinem anderen Nutzer berichtet.


    Entweder lief zuvor noch couriertls oder aus irgendeinem Grund schlug der Check im dc-ssl-install.sh Skript fehl und es wurde erneut couriertls installiert. Letzteres würde aber bedeuten, dass das run File nicht mehr vorhanden war.

  • Code
    openssl s_client -crlf -connect mail.server.com:465

    Da bekomme ich folgende Fehlermeldung


    Code
    s1:~# openssl s_client -crlf -connect mail.server.com:465
    139861713776704:error:20087002:BIO routines:BIO_lookup:system lib:../crypto/bio/                                                                                                                                                             b_addr.c:694:Name or service not known
    connect:errno=2

    ist das bei mir das gleiche Problem?

  • So,


    habe jetzt auch mal das Update auf Reihe 6 mit der beschriebenen Import/Export Anleitung durchgeführt.

    Soweit klappt alles fehlerfrei, aber jetzt habe ich regelmäßig folgenden Log-Eintrag in der MySQL Errorlog Datei:

    2021-01-13T12:04:07.935880Z 36375 [Note] Aborted connection 36375 to db: 'vadmin' user: 'vadmin' host: 'localhost' (Got an error reading communication packets)


    Hat jemand eine Idee, woran das liegen könnte. Mit MySQL 5.5 hatte ich diesen Fehler nie.

  • Da wollte ich doch testweise mal auf einem Server von Reihe 6 auf Reihe 8 (Mysql 5.7 auf Mysl 8) updaten und was sagt das Skript:

    cannot upgrade <6> to series <8> (unsupported upgrade path)


    Aber laut Oracle soll ein Inplace Upgrade von MySql 5.7 auf MySQl 8 möglich sein?!?

  • Möglich,

    in se-update.sh Skript ist die Regel, alles > 6 wird nicht unterstützt.


    Aber wie lange soll die 8er Reihe denn experimentell bleiben? Mittlerweile gibt es ja Produkte wie NextCloud 21, die zwingend MySql 8 voraussetzen werden.