Beiträge von MAD M!NDWORX

    Aus aktuellem Anlass: Es kommt in letzter Zeit sehr häufig vor, dass einige t-online Mailserver auf der bl.spamcop.net Blacklist landen. Dann werden nicht mehr alle Mails von t-online Absendern angenommen (je nach verwendetem mailout Server). Das ist natürlich nicht optimal!


    Ist es möglich, whitelisten zu definieren, die die blacklisten "überbieten"? So dass z.B. alle t-online Mailserver trotzdem durchgelassen werden, selbst wenn sie auf bl.spamcop.net gelistet sind?

    Das haben wir schon versucht.


    Es ist kein mysql Standard sondern wird Teil des Templatesystems der von Dir verwendeten Software sein.


    Da hilft nur: Mehr Infos zur Software geben oder einfach mal an den Entwickler wenden.

    - Welche Version von pd-admin wird eingesetzt? 4.24
    - Welche Version der Serverumgebung wird eingesetzt? 4-0.273


    Bei einem Server werden auf einmal keine Mails mehr angenommen und ein Versenden über SMTP (z.B. über Roundcube) ist auch nicht möglich.


    Fehlermeldung auf dem Remote Mailserver, der Mails zustellen möchte:

    Code
    1. lost connection with mail.server.tld[12.34.56.78] while receiving the initial server greeting


    Fehlermeldung (in daemon.log) auf dem lokalen Mailserver, der die Mails annehmen soll:

    Code
    1. smtpd: 1470536778.545344 exec failed at /usr/sbin/relaylock line 81.
    2. smtpd: 1470536778.545565 tcpserver: end 4703 status 512


    Eine qmail Logdatei gibt es nicht, wo eventuell Fehler genauer beschrieben sein könnten. Geändert hat sich an dem System nichts. Keine Ahnung warum sich tcpserver auf einmal so verhält.


    Neu starten von qmail hat nichts gebracht.


    Die Dienste sind alle aus der Standard Serverumgebung.


    Im Log von Roundcube finde ich auch nur das:

    Code
    1. SMTP error: Connection failed: Invalid response code received from server


    In der Shell kann ich allerdings via "mail" Nachrichten senden.


    Hatte das schonmal jemand und hat Tipps, wie ich den Mailserver wieder zur Arbeit bewege?


    Dankeschön!

    Sieht so aus, also ob das für einen Loop im Template ist. Falls es mehr als einen Datensatz gibt, der eingefügt werden soll, werden die weiteren Datensätze über das Template innerhalb der drei eckigen Klammern geparsed.


    Ein Datensatz:

    Code
    1. insert into tabelle ( server_id, id, ident, value ) values (1,1,'foo','bar')


    Mehrere Datensätze:

    Code
    1. insert into tabelle ( server_id, id, ident, value ) values (1,1,'foo','bar'), (1,2,'ident','value'), (2,3,'hello','world')


    Ist aber nur eine Vermutung, hängt natürlich davon ab, wo Du den Codeschnipsel her hast.

    Zitat

    Original von Eisenherz
    Ich habe das memory_limit in der php.ini auf 4096 stehen und wird auch erkannt ""memory_limit":"4096M"," trotzdem kommt der Fehler in der error.log.


    se_memory_limit muss gesetzt werden. Nicht memory_limit. Einfach se_memory_limit = 1234M zur php.ini hinzufügen und dann noch /opt/pdadmin/bin/httpd_vhosts.pl starten

    Der Server hat 32GB Speicher, wobei das nicht von Belang ist.


    Kannst Du diese PHP Datei über den Browser ohne Fehler ausführen?


    PHP
    1. <?php
    2. $mb = $target = str_repeat(1,1024*1024);
    3. for($i=1;$i<1536;$i++) {
    4. $target .= $mb;
    5. }
    6. echo "Speicherverbrauch: ".number_format(memory_get_usage()/1024/1024,2)."MB";


    Hier müsste etwas über 1,5GB Speicher belegt werden, sofern das Memory Limit das zulässt.


    Dankeschön.

    - Welche Version von pd-admin wird eingesetzt?
    4.23 und 4.27 getestet


    - Welche Version der Serverumgebung wird eingesetzt?
    4-0.249 und 4-0.269 getestet


    - Welche Fehlermeldung erhalten Sie?
    Allowed memory size of 1073741824 bytes exhausted


    - Wie sind die problematischen Dienste konfiguriert?
    PHP ausführen über: FastCGI (CGIwrap wurde auch getestet)
    Limit Arbeitsspeicher pro Prozess: 4096MB


    - Welche Logfile-Einträge (zB. Webserver- oder Mail-Logfile) gibt es?
    FastCGI: server "/opt/pdadmin/etc/phpfcgi/.../starter" stderr: PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20 bytes) in /home/... on line ..., referer: ...


    Betreff und "Schablone" sagen es eigentlich schon: Es scheint ein fest eingestelltes maximales Limit von 1024MB Speichernutzung für FastCGI/CGIwrap zu geben. Auch dann, wenn dieses Limit in der Verwaltung angehoben werden sollte.


    Kann dieses 1024MB Limit (se_memory_limit) irgendwie über die Konfiguration höher gesetzt werden?


    Vielen Dank!

    Privater Schlüssel = KEY
    Zertifikat = CERT
    Zwischenzertifikat = CACERT


    Das Zwischenzertifikat wird bei selbstsignierten Zertifikaten nicht benötigt, sondern nur wenn die Signierungsstelle selbst nicht trusted ist, aber eine andere Signierungsstelle dafür ein gültiges Zertifikat erstellt hat.


    Code
    1. openssl genrsa -des3 -out server.key 2048
    2. openssl rsa -in server.key -out server.key.unsecure
    3. openssl req -new -key server.key -out server.csr
    4. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


    server.key.unsecure ist hier der KEY (ohne Passwort)
    server.crt ist das CERT


    Diese kannst Du entweder über die Administrationsoberfläche einfügen oder unter /opt/pdadmin/sslcerts mit der benamung


    domain.tld-key
    domain.tld-cert


    eintragen.


    Mit selbstsignierten Zertifikaten habe ich allerdings noch nicht gearbeitet. Daher ist das alles hier nur "proof of concept", sollte aber funktionieren.

    - Welche Version von pd-admin wird eingesetzt? 4.25
    - Welche Version der Serverumgebung wird eingesetzt? 4-0.265
    - Welche Fehlermeldung erhalten Sie? "Internal Server Error"
    - Wie sind die problematischen Dienste konfiguriert? Standard


    Das Anlegen einer Co-Domain unter einer frischen pd-admin Version 4.25 führt zum 500er Fehler. Im Errorlog steht:


    Code
    1. [error] [client xxx.xxx.xxx.xxx] malformed header from script. Bad header=Insecure dependency in require: administrator.cgi, referer: https://xxxxxxxx/administrator/sid/xxxxxxxx/administrator.cgi?lang=de&todo=customers.codomains.main&domainid=xx&customerid=xx


    Egal ob fastcgi oder cgiwrap eingesetzt wird.


    Das System läuft auf Debian 8.


    Nachtrag:
    pd-admin 4.24 auf selbem System mit selber Standardumgebung bringt keinen Fehler beim Anlegen einer Co-Domain.

    Ich habe gerade einen neuen Server aufgesetzt und bin nach der pd-Admin Installation mit Standardumgebung so weiter vorgegangen:


    • SSL Zertifikate ($hostname-key, $hostname-cert, $hostname-cacert) in /opt/pdadmin/sslcerts/ angelegt
    • /opt/pdadmin/bin/httpd_vhosts.pl gestartet und schon lief die Administration über https
    • nun hab ich mir ci-ssl-install.sh angeschaut und darauf aufbauend folgendes Script erstellt und gestartet:



    Danach liefen auch Dovecot, ProFTPD und qmail SMTP mit SSL.

    - Welche Version von pd-admin wird eingesetzt? v4.24
    - Welche Version der Serverumgebung wird eingesetzt? 3-0.257


    Mir ist aufgefallen, dass Abfragen an die Tabelle vadmin.traffic_new bei relativ vielen Einträgen länger als notwendig brauchen. Das liegt daran, dass kein Index auf der Tabelle liegt.


    Abfragen in ftp_log.pl und http_log.pl, wie z.B.


    Code
    1. my $query = "select id from traffic_new where id_user='$user' and date=now();";

    müssen über alle Datensätze der Tabelle laufen.


    Ebenso die Abfrage in msa_warning.pl:


    Code
    1. my $query = "select sum(www), sum(ftp), sum(mail) from traffic_new ".
    2. "where date like '$this_month%' and id_user='$dbuid'";

    und das für alle auf dem Server vorhandenen User in einer Schleife.


    Damit die Datenbank nicht mehr alle Datensätze durchsuchen muss, habe ich der Tabelle einen Index hinzugefügt:


    Code
    1. ALTER TABLE `vadmin`.`traffic_new` ADD INDEX `idx_id_user_date` (`id_user`, `date`);

    Nun laufen die Abfragen schneller, da nicht mehr die komplette Tabelle auf Inhalte durchsucht werden muss.


    Eventuell wäre es hilfreich, die Änderung in eine kommende pd-admin Version zu übernehmen?


    Nebeneffekte sollte es eigentlich keine geben. Was meint ihr?


    Grüße!

    - Welche Version von pd-admin wird eingesetzt? v4.24
    - Welche Version der Serverumgebung wird eingesetzt? 3-0.257


    Ich habe in meiner my.cnf einen wait_timeout von 60s gesetzt, damit es nicht mehr so viele unnötig schlafende mySQL Abfragen gibt.


    Das hatte allerdings zur Folge, dass die Shellscripte von pd-admin (z.B. backup.pl, httpd_log.pl) während ihrer Ausführung in einen mySQL Timeout liefen, da die Datenbankverbindung gleich beim Starten des Scriptes hergestellt - aber (z.B. beim Backup) erst nach anderen, manchmal zeitaufwendigen, Aufgaben verwendet wird. Dann wurde allerdings die Verbindung zur Datenbank schon wegen des wait_timeout beendet.


    Aktuell habe ich mir damit Abhilfe geschaffen, dass ich in den Scripten nach dem


    Code
    1. my $dbh = DBI->connect($dsn, $user, $password) or die "can't connect!";

    immer noch ein


    Code
    1. $dbh->do("SET SESSION wait_timeout=28800") or die "cannot set wait_timeout";

    hinzufügte. Das ist natürlich nicht nicht Update-sicher.


    Daher würde ich mir wünschen, dass die Anpassung des wait_timeout seitens Bradler & Krantz in die Shell Scripte aufgenommen wird.


    Oder gibt es Alternativlösungen?


    Beste Grüße!