Plesk Spamdyke Control Panel

Schreibfehler im Requester

Hallo,
mir ist aufgefallen, wenn ich auf der Absender-IP-Seite versuche eine IP-Adresse auf die Blackliste zu setzen, sind in dem dann erscheinenden Requester beide Seiten mit "Globale, serverweite Whiteliste" beschriftet.

Ich rate mal, dass die rechte Seite eigentlich heissen sollte: "Globale, serverweite Blackliste"

Habe mal ein Bild angehangen.

Ach ja, das Ganze läuft unter Plesk 12.5 mit dem aktuellen SCP " Spamdyke Control Panel Version (3.7-mysql) " -> "[Sie haben die aktuelle Version]"

ansonsten ist es ein geniales Tool.

hG
ankn99
 

Attachments

  • spd1.jpg
    spd1.jpg
    71.8 KB · Views: 535
Version 4.0

Tada, pünktlich zum 8. Geburtstag präsentiert sich das SCP in einem neuen Gewand. Die GUI wurde komplett überarbeitet. Platzsparender, intuitiver, aufgeräumter und mit kompletter Responsive Integration für Smartphones und Tablets. Die Performance ist deutlich besser durch die Entfernung der Abwärtskompatibilität für Pleskversionen unter 10.

Download -> http://haggybear.de/de/spamdyke-control-panel
//EDIT: Attachment gelöscht, nur noch der letzte Post anhält die akt. Version.

Gruß
Haggy
 

Attachments

  • scp1.jpg
    scp1.jpg
    154.6 KB · Views: 498
  • scp2.jpg
    scp2.jpg
    165.2 KB · Views: 542
  • scp3.jpg
    scp3.jpg
    38.5 KB · Views: 542
Last edited by a moderator:
Hallo haggybear,

vielen Dank für die V4.
Ich wollte mal nachfragen, ob es so gedacht ist, dass eingeloggte Kunden bei der Eingabe von ...plesk_url.../spamdyke automatisch die komplette Übersicht erhalten von allen E-Mail-Empfängern und Sendern? Oder gibt es eine Einstellung, die die Ansicht vom SCP nur dem Admin erlaubt?
Ich habe deine index.php zur Zeit einfach um die folgenden Zeilen erweitert:
Code:
if ($_SESSION['panel'][lastShownPanel] != 'admin'){
    die('blabla');
}

VG Macs
 
...plesk_url.../spamdyke automatisch die komplette Übersicht erhalten von allen E-Mail-Empfängern und Sendern? Oder gibt es eine Einstellung, die die Ansicht vom SCP nur dem Admin erlaubt?

Ähh, das sollte nicht so sein !! Das muss ich prüfen! Danke für den Hinweis!
 
Frage in die Runde:

wenn ich die Doku von SPAMDYKE richtig verstehe, ist es grundsätzlich möglich, in der spamdyke.conf mehrere Optionen z.B.:

reject-recipient=

zu benutzen. Zur Auswahl stehen hier: None, same-as-Sender, invalid, unavailable

Schwer ist es heraus zu bekommen, wie diese mehrfache Optionsbenutzung auszusehen hat, ob nun alles in einer Zeile mit einem Trenner zwischen den Optionen oder ob für Jede Option eine eigenständige Zeile ...
z.B.:

reject-recipient= invalid
reject-recipient= unavailable

wenn ich mir den Sourcecode von dem Modul configuration.c ansehe ist in den Erklärungen zu sehen, CONFIG_TYPE_NAME_MULTIPLE würde ich tippen, mehrere Zeilen mit jeweils einer Option, welche dann der Reihe nach eingelesen wird um sie miteinander zu verODERn ...

ist es richtig, dass SCP, diese Möglichkeit nicht anbietet ???
Wenn ich manuell in der Datei die entsprechenden Zeilen nachtrage, werden diese bei der nächsten Config-Änderung gelöscht bzw. Überschrieben ??

hG ankn99
 
Hallo Haggy,

ich hatte es mittlerweile auch ausprobiert. Spamdyke, SQL-Logging funktioniert, nur das SCP zeigt keine Daten, obwohl in der SQL Tabelle Werte hinein geschrieben wurden. Nach einiger Zeit habe ich dann das SQL Statement gefunden, welches einen Fehler produzierte. Und zwar log-mysql.class.php => function setLogRotate()
Code:
SELECT time FROM spamdyke.spamdyke_log_table group by DATE_FORMAT(time,'%d.%m.%y') order by time desc
MySQL meldet: Dokumentation
#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'spamdyke.spamdyke_log_table.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Abhilfe schaffte dann:
Code:
SELECT DATE(time) AS time FROM spamdyke.spamdyke_log_table GROUP BY DATE(time) ORDER BY time DESC
Frisch installiertes Ubuntu 16.04.3 LTS‬ - Plesk Onyx Version 17.5.3 Update #21

Gruß Macs
 
Abhilfe schaffte dann:
Code:
SELECT DATE(time) AS time FROM spamdyke.spamdyke_log_table GROUP BY DATE(time) ORDER BY time DESC
Frisch installiertes Ubuntu 16.04.3 LTS‬ - Plesk Onyx Version 17.5.3 Update #21

Gruß Macs[/QUOTE]

Hey,
danke für die Korrektur. Werde ich für Zukünftige Versionen berücksichtigen. Ich habe das Issue nicht, aber ich werde es mal versuchen nachzustellen.

Gruß
Haggy
 
Abhilfe schaffte dann:
Code:
SELECT DATE(time) AS time FROM spamdyke.spamdyke_log_table GROUP BY DATE(time) ORDER BY time DESC
Frisch installiertes Ubuntu 16.04.3 LTS‬ - Plesk Onyx Version 17.5.3 Update #21

Gruß Macs

Hi Macs,
ich war gezwungen (Hardwaredefekte) am WE meinen gemieteten Server tauschen zu lassen und musste ihn anschließend neu aufsetzen, ich hatte dann exakt die selbe Konstellation, wie Du auch und auch exakt das selbe Problem. Ich bin durch Debuggen auf den selben Fehler gekommen ( habe dazu 2 Dateien von Haggybears SCP mit Print Statements verschandelt ) ...
Deine Lösungsvorschlag brachte dann die Erlösung ...

Dank, es funktioniert wieder, werde dann wohl jetzt "sauber machen" ..

frohe Ostern an Alle

ankn99
 
Hallo nochmal,

bei mir unter Ubuntu 16.04.5 mit Onyx 17.8.11 MU10 gibt es noch ein Problem mit dem Bericht-Script: dailyreport.php

Code:
PHP Fatal error:  Uncaught Error: Call to undefined function eregi_replace() in /opt/psa/admin/htdocs/scp/log-mysql.class.php:1158

Dort steht noch ein PHP7 untaugliches:
Code:
$topCountries[eregi_replace("[^a-z]","",$tmpRdns[count($tmpRdns)-1])]++;

Viele Grüße
Thomas
 
Moin.

Vielleicht betrifft es ja nur mein System:

Die Reportmail wurde wurde trotz der Änderung aus meinem vorigen Post (in der log-mysql.class.php in Zeile 1158 das "eregi_replace" dur "preg_replace" ersetzt) nicht versendet, da folgendes bei mir nicht mehr funktioniert hat:

PHP:
 mail($email, "SCP report ".$titleTime.$titelSuffix, "", $Header);

Das geht wohl nun nicht mehr, da der E-Mail-Inhalt $text nicht mehr in den Header ($Header) gepackt werden darf. Also Habe ich $header und $body getrennt:

PHP:
         $header.= "MIME-Version: 1.0";
         $header.= "\n";
         $header.= "Content-Type: multipart/mixed; boundary=$Trenner";

         $body.= "This is a multi-part message in MIME format";
         $body.= "\n";
         $body.= "--$Trenner";
         $body.= "\n";
         $body.= "Content-Type: text/html";
         $body.= "\n";
         $body.= "Content-Transfer-Encoding: 8bit";
         $body.= "\n\n";
         $body.= $text;

         for($rr=0;$rr<5;$rr++){
              $Dateiname = 'flags/'.$stat->topCountrySave[$rr].'.png';
              $DateinameMail = $stat->topCountrySave[$rr].'.png';
              $body.= "\n";
              $body.= "--$Trenner";
              $body.= "\n";
              $body.= "Content-Type: image/png";
              $body.= "\n";
              $body.= "Content-ID: <flags-".$stat->topCountrySave[$rr].".png>";
              $body.= "\n";
              $body.= "Content-Transfer-Encoding: base64";
              $body.= "\n";
              $body.= "Content-Disposition: inline; filename=\"$DateinameMail\"\n\n";
              $body.= "\n\n";
              $Dateiinhalt = fread(fopen($Dateiname, "r"), filesize($Dateiname));
              $body.= chunk_split(base64_encode($Dateiinhalt));
              $body.= "\n";
              }
         $Dateiname = 'help_ico.gif';
         $DateinameMail = 'help_ico.gif';
         $body.= "\n";
         $body.= "--$Trenner";
         $body.= "\n";
         $body.= "Content-Type: image/gif";
         $body.= "\n";
         $body.= "Content-ID: <help_ico.gif>";
         $body.= "\n";
         $body.= "Content-Transfer-Encoding: base64";
         $body.= "\n";
         $body.= "Content-Disposition: inline; filename=\"$DateinameMail\"\n\n";
         $body.= "\n\n";
         $Dateiinhalt = fread(fopen($Dateiname, "r"), filesize($Dateiname));
         $body.= chunk_split(base64_encode($Dateiinhalt));
         $body.= "\n";
         $body.= "--$Trenner--";

und mit

PHP:
mail($email, "SCP report ".$titleTime.$titelSuffix, $body, $header);

versendet.

Weiterhin gab es ein Problem mit der Grafik "unknown.png", diese wurde nun als "(unknown).png" aufgerufen und nicht mehr angezeigt. Quick and dirty einfach ein "unknown.png" in "(unknown).png" kopiert.

Zu guter Letzt fing die "lang/tld.inc.php" nur mit "<?" statt "<?php" an, das macht auf machen System auch ein Problen, wenn Short-Open-Tag deaktiviert ist. Hier habe ich auch noch ein "$tld['(unknown)'] = 'Unknown (?)';" ergänzt, da diese "TLD" sonst in der Mail nicht angezeigt wurde. Wenn man das "Klammerproblem" an der Wurzel packt, ist dies sicher nicht mehr nötig.

So, ich hoffe etwas geholfen zu haben,
Grüße Thomas
 
Hallo,
ich nutze seit langem das SCP und setze es auch auf der aktuellen Plesk Onyx 17.8.11 Version wieder ein - bisher immer zu meiner vollsten Zufriedenheit!

Leider funktioniert die Anbindung an den Plesk Event-Handler mit dieser Version nicht mehr. Die DB Tabelle "event_handlers" hat jetzt andere Spalten, so dass die SQL statements in AdminRights.class.php teilweise kommentarlos ins Leere laufen oder die vorhandenen Eintragungen einfach entfernen.
Behelfen kann man sich natürlich, indem man den Event Handler manuell bestückt - mit der SCP Oberfläche ist's aber schon übersichtlicher und schneller zu handhaben.
 
Hallo allerseits.

Frage an die spamdyke/SCP-Experten:
Seit einiger Zeit (OK, schon Jahre) befülle ich die RDNS-Blacklist im SCP auf meinen Servern manuell zur SPAM-Abwehr. Das funktioniert SUPER. Nun bin ich beim 6115. Eintrag in der Liste (OK, ich weiß, das ist eine Menge, allerdings konnte ich noch keine Performance-Einbußen feststellen) und es lassen sich keine weiteren Einträge mehr erstellen bzw. sichern. Kurz auf den Servern nachgeschaut und die /var/qmail/spamdyke/blacklist_rdns ist ziemlich genau 128kB groß. Sieht so aus als ob das die Dateigrößengrenze wäre.

Hat jemand eine Idee, wie man dieses Problem lösen könnte?

Ich spiele seit längerem schon mit dem Gedanken das die ganze Geschichte irgendwie in einen eingenen rbldnsd-Server auszulagern...
Hat das jemand schon einmal gemacht?

Bin für jede Info dankbar!

Viele Grüße
Thomas
 
Moin.

Vielleicht betrifft es ja nur mein System:

Die Reportmail wurde wurde trotz der Änderung aus meinem vorigen Post (in der log-mysql.class.php in Zeile 1158 das "eregi_replace" dur "preg_replace" ersetzt) nicht versendet, da folgendes bei mir nicht mehr funktioniert hat:

PHP:
 mail($email, "SCP report ".$titleTime.$titelSuffix, "", $Header);

Das geht wohl nun nicht mehr, da der E-Mail-Inhalt $text nicht mehr in den Header ($Header) gepackt werden darf. Also Habe ich $header und $body getrennt:

PHP:
         $header.= "MIME-Version: 1.0";
         $header.= "\n";
         $header.= "Content-Type: multipart/mixed; boundary=$Trenner";

         $body.= "This is a multi-part message in MIME format";
         $body.= "\n";
         $body.= "--$Trenner";
         $body.= "\n";
         $body.= "Content-Type: text/html";
         $body.= "\n";
         $body.= "Content-Transfer-Encoding: 8bit";
         $body.= "\n\n";
         $body.= $text;

         for($rr=0;$rr<5;$rr++){
              $Dateiname = 'flags/'.$stat->topCountrySave[$rr].'.png';
              $DateinameMail = $stat->topCountrySave[$rr].'.png';
              $body.= "\n";
              $body.= "--$Trenner";
              $body.= "\n";
              $body.= "Content-Type: image/png";
              $body.= "\n";
              $body.= "Content-ID: <flags-".$stat->topCountrySave[$rr].".png>";
              $body.= "\n";
              $body.= "Content-Transfer-Encoding: base64";
              $body.= "\n";
              $body.= "Content-Disposition: inline; filename=\"$DateinameMail\"\n\n";
              $body.= "\n\n";
              $Dateiinhalt = fread(fopen($Dateiname, "r"), filesize($Dateiname));
              $body.= chunk_split(base64_encode($Dateiinhalt));
              $body.= "\n";
              }
         $Dateiname = 'help_ico.gif';
         $DateinameMail = 'help_ico.gif';
         $body.= "\n";
         $body.= "--$Trenner";
         $body.= "\n";
         $body.= "Content-Type: image/gif";
         $body.= "\n";
         $body.= "Content-ID: <help_ico.gif>";
         $body.= "\n";
         $body.= "Content-Transfer-Encoding: base64";
         $body.= "\n";
         $body.= "Content-Disposition: inline; filename=\"$DateinameMail\"\n\n";
         $body.= "\n\n";
         $Dateiinhalt = fread(fopen($Dateiname, "r"), filesize($Dateiname));
         $body.= chunk_split(base64_encode($Dateiinhalt));
         $body.= "\n";
         $body.= "--$Trenner--";

und mit

PHP:
mail($email, "SCP report ".$titleTime.$titelSuffix, $body, $header);

versendet.

Weiterhin gab es ein Problem mit der Grafik "unknown.png", diese wurde nun als "(unknown).png" aufgerufen und nicht mehr angezeigt. Quick and dirty einfach ein "unknown.png" in "(unknown).png" kopiert.

Zu guter Letzt fing die "lang/tld.inc.php" nur mit "<?" statt "<?php" an, das macht auf machen System auch ein Problen, wenn Short-Open-Tag deaktiviert ist. Hier habe ich auch noch ein "$tld['(unknown)'] = 'Unknown (?)';" ergänzt, da diese "TLD" sonst in der Mail nicht angezeigt wurde. Wenn man das "Klammerproblem" an der Wurzel packt, ist dies sicher nicht mehr nötig.

So, ich hoffe etwas geholfen zu haben,
Grüße Thomas


Ergänzend zum Post #757 von HMnet (Danke dafür!) ist mir Folgendes aufgefallen:

Wenn ich normalen Usern erlaube, sich einen täglichen Report zukommen zu lassen, erhalten diese einen kompletten Admin-Report, der auf Grundlage aller auf dem Server enthaltenen Domains und E-Mail-Adressen erstellt wird. Den normalen User sollte (allein aus Gründen des Datenschutzes) aber eher nur seine Domain interessieren.

Da in dailyreport.php $_GET["dom_name"] gesetzt wird, habe ich dies genutzt, um die Datenbankabfragen in log-mysql.class.php zu manipulieren. Sicher nicht die feine Art, funktioniert aber;-)

In den Funktionen 'topStat' und 'readQmailLogs' findet man nun diesen Abschnitt
if(!$this->dieRechte->isAllView){
$searchStr = "AND ( `to` LIKE '%@".implode("' OR `to` LIKE '%@",$this->allDomains)."' or ";
$searchStr.= " `from` LIKE '%@".implode("' OR `from` LIKE '%@",$this->allDomains)."')";

// for the client domain report:
if ($_GET["dom_name"]){
$searchStr = "AND ( `to` LIKE '%@".$_GET['dom_name']."' OR `from` LIKE '%@".$_GET['dom_name']."')";
}
}

statt nur
if(!$this->dieRechte->isAllView){
$searchStr = "AND ( `to` LIKE '%@".implode("' OR `to` LIKE '%@",$this->allDomains)."' or ";
$searchStr.= " `from` LIKE '%@".implode("' OR `from` LIKE '%@",$this->allDomains)."')";
}


Das Flaggenproblem habe ich in dailyreport.php kurzerhand mittels str_replace gelöst

$body.= "--$Trenner--";

$body = str_replace('(unknown).png','unknown.png', $body);
$body = str_replace('xyz.png', 'unknown.png', $body);

mail($email, "SCP report ".$titleTime.$titelSuffix, $body, $header);


}

function getCorrectLog($fomat){
 

Attachments

Back
Top