alphalogic
Registered User
Howto wie installiere ich Ubuntu 6.06 LTS mit Plesk 8.3.0, Greylist, Spamassassin & Razor, Qsheff-II, ClamAV auf einem Strato-V-Server
Für die einzelnen Unterpunkte existieren schon verschiedene HowTos. Ich habe nur die ganze Sache speziell für Ubuntu angepasst. Ausserdem wird Qsheff-II mit einer Socketverbindung zu ClamAv verwendet. Ich werde das Howto noch überabeiten und natürlich die Referenzen einfügen. Ich wollte nur jetzt schonmal einen Zwischenstand sichern.
Inhalt
0. Achtung
1. Ubuntu + Plesk 8.3.0
2. Greylist
3. Spamassassin, Razor, Pyzor, DCC, ClamAV & Qsheff-II
4. Zusätzliches
5. Referenzen
0. Achtung
Das HowTo hat keinen Anspruch auf Vollständigkeit und Funktionsfähigkeit. Es ist gut möglich, dass ich Kleinigkeiten vergessen habe, in dem Fall würde ich mich freuen wenn ihr mich darauf hinweist.
1. Ubuntu + Plesk 8.3.0
1. Server Neuinstallation mit Ubuntu auf http://config.stratoserver.net
Per shell auf den Server einloggen.
Die sources.list bearbeiten
Der Inhalt (die Strato Sourcen habe ich auskommentiert, die Standard Sources eigefügt und die Source für Plesk 8.3.0):
Updaten und Plesk installieren:
Einfach enter bei nächsten Meldung. Plesk sollte nun installiert sein.
Nötige Module installieren:
Updater, Php5-Configurator (wichtig für Horde), Migrationsmanager (falls man ihn braucht)
Lizenz aktualisieren:
http://hxxxxxxx.stratoserver.net:8443 im Browser öffnen
Daten eingeben Passwort ändern und bei Lizenzen den Strato Key hochladen.
nun kann man noch die deutschen Sprachdateien runterladen und evtl. Updates
2. Greylist
Die Installation ist abgesehen von den Paketen eigentlich analog zu Plesk & Qmail: Spamprotection mit Greylisting - huschi.net
Notwendige Pakete installieren:
Datenbank erstellen
Datenbankeinstellungen anpassen:
Ersetzte alle Vorkommen von "/usr/lib/mysql/libmysqlclient.a" durch "/usr/lib/libmysqlclient.a"
Folgende Zeile auskommentieren (mit // oder in /* ... */)
Installieren
Aufräum Skrip
Folgendes einfügen (und anpassen):
Ausführbar machen
3. Clamav, Spamassassin, Razor, Pyzor, DCC, Qsheff-II
1. Pakete installieren
2. Pyzor
3. DCC
4. Razor
5. Spamassassin
Die Konfiguration anpassen:
Mein Inhalt (Änderungen: Bayes, Whitelist, Razor, DCC, ...):
Evtl. vorhandene Lerndaten einspielen:
bayes_seen, bayes_toks, whitelist, bayes_journal
Die Startoptionen von spamd einstellen:
Folgende Änderungen vornehmen:
In
Folgende Zeile auskommentieren:
Spamassassin neu starten
6. Qsheff-II
Ripmime
Qsheff II
Wer zu diesem Zeitpunkt noch Probleme mit dem Mailversand oder Horde haben sollte und derartige Zeilen in /var/log/mail.err (tail /var/log/mail.err) hat
sollte folgendes ausführen:
Danke an ste_fan für diesen Hinweis.
Nun kann man das ganze Testen:
auf Test emails - Emailcheck - heise Security UK kann man sich eine Mail mit einem Virendummy zukommen lassen. Oder einfach den Testvirus selbst hier: Michael Schall - Testvirus Download laden.
Wenn man alles richtig gemacht hat kann man in der "/var/log/qsheff.log" so etwas in der Art wie:
finden
4. Zusätzliches
1. PDO (PHP Data Objects) für PHP
In der cli - php.ini
den safe_mode Off stellen
PDO installieren
In der php.ini
am Ende das hier:
einfügen
Apache neustarten
2. PDO_MYSQL
In der php.ini
am Ende das hier:
einfügen
Apache neustarten
3. APC für PHP installieren
Wenn nach apxs gefragt wird mit nein/no antworten, sonst bricht die Installation ab (dank an ste_fan für den Hinweis)
In der php.ini
am Ende das hier:
einfügen
Apache neustarten
4. Fehlermeldungen von ProFTP loswerden
Wenn jetzt bei FTP Verbindungen in /var/log/daemon.log (oder /var/log/auth.log) solche Fehlermeldungen angezeigt werden:
Dann einfach folgendes ausführen:
5. Über updates per Mail informieren
Hinweis
Einfacher geht das mit cron-apt: 5.32 cron-apt. Danke an daseddy für den Hinweis .
Folgendes einfügen
Auführbar machen
6. Fesplattennutzungsanzeige in Plesk reparieren
(Falls in Plesk bei der Festplattennutzung 0.00 MB angezeigt wird)
7. Logcheck installieren
Qmail Zeugs ignorieren:
einfügen:
Da ich mir Qmail Statistiken per E-Mail schicken lasse, will ich keine Qmail System Events von Logcheck,
wer das auch so will fügt das noch ein:
8. Qmail Statistiken per Mail
qmailanalog source installieren:
anpassen:
kompilieren
cronskript erstellen
der Inhalt:
ausführbar machen:
testen:
5. Referenzen:
Brent Meshier Adding Greylisting support to qmail on Plesk 8
Plesk & Qmail: Spamprotection mit Greylisting - huschi.net
Postfix Howto - Konfiguration - SpamAssassin
Postfix Spam Filter using Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC and ClamAV - Page 4 | HowtoForge - Linux Howtos and Tutorials
Plesk: Spamassassin und ClamAV per qsheff einbinden - huschi.net
http://www.enderunix.org/qsheff/docs/handbook.en.txt
HantsLUG Wiki: LinuxHints/FightingSpam
Debian - Fairly-Secure Anti-Spam
Getting PDO to work with Ubuntu’s 6.06 LTS (Dapper Drake) bhiv.com
Qmail Statistics - Megalinux
Horde geht nach 8.3.0 update nicht mehr
Für die einzelnen Unterpunkte existieren schon verschiedene HowTos. Ich habe nur die ganze Sache speziell für Ubuntu angepasst. Ausserdem wird Qsheff-II mit einer Socketverbindung zu ClamAv verwendet. Ich werde das Howto noch überabeiten und natürlich die Referenzen einfügen. Ich wollte nur jetzt schonmal einen Zwischenstand sichern.
Inhalt
0. Achtung
1. Ubuntu + Plesk 8.3.0
2. Greylist
3. Spamassassin, Razor, Pyzor, DCC, ClamAV & Qsheff-II
4. Zusätzliches
5. Referenzen
0. Achtung
Das HowTo hat keinen Anspruch auf Vollständigkeit und Funktionsfähigkeit. Es ist gut möglich, dass ich Kleinigkeiten vergessen habe, in dem Fall würde ich mich freuen wenn ihr mich darauf hinweist.
1. Ubuntu + Plesk 8.3.0
1. Server Neuinstallation mit Ubuntu auf http://config.stratoserver.net
Per shell auf den Server einloggen.
Die sources.list bearbeiten
Code:
vi /etc/sources.list
Der Inhalt (die Strato Sourcen habe ich auskommentiert, die Standard Sources eigefügt und die Source für Plesk 8.3.0):
Code:
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://autoinstall.plesk.com/ubuntu/PSA_8.3.0 dapper all
deb http://de.archive.ubuntu.com/ubuntu dapper main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu dapper main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu dapper-updates main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu dapper-updates main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu dapper-security main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu dapper-security main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse
deb http://archive.canonical.com/ dapper-commercial main
#deb ftp://ftp.stratoserver.net/pub/linux/ubuntu dapper main restricted universe
#deb-src ftp://ftp.stratoserver.net/pub/linux/ubuntu dapper main restricted universe
Updaten und Plesk installieren:
Code:
apt-get update
apt-get upgrade
apt-get install psa
Einfach enter bei nächsten Meldung. Plesk sollte nun installiert sein.
Nötige Module installieren:
Updater, Php5-Configurator (wichtig für Horde), Migrationsmanager (falls man ihn braucht)
Code:
apt-get install psa-autoinstaller psa-migration-manager psa-php5-configurator
/etc/init.d/psa restart # Psa neustarten damit die neuen Module funktionieren.
/etc/init.d/apache2 restart # Apache neustarten damit die angepasste Php Version mit Imap läuft.
Lizenz aktualisieren:
http://hxxxxxxx.stratoserver.net:8443 im Browser öffnen
Daten eingeben Passwort ändern und bei Lizenzen den Strato Key hochladen.
nun kann man noch die deutschen Sprachdateien runterladen und evtl. Updates
2. Greylist
Die Installation ist abgesehen von den Paketen eigentlich analog zu Plesk & Qmail: Spamprotection mit Greylisting - huschi.net
Notwendige Pakete installieren:
Code:
apt-get install libmysqlclient12-dev libssl-dev gcc
Datenbank erstellen
Code:
mysql -u admin -p
Code:
# Datenbank 'qmail':
CREATE DATABASE qmail;
# User 'greylist' (ändert evtl. das Passwort):
GRANT ALL ON qmail.* TO 'greylist'@'localhost' IDENTIFIED BY '[b]passwort[/b]';
FLUSH PRIVILEGES;
# Tabelle 'relaytofrom':
USE qmail;
CREATE TABLE relaytofrom (
id bigint(20) NOT NULL auto_increment,
relay_ip varchar(16) default NULL,
mail_from varchar(255) default NULL,
rcpt_to varchar(255) default NULL,
block_expires datetime NOT NULL default '0000-00-00 00:00:00',
record_expires datetime NOT NULL default '0000-00-00 00:00:00',
blocked_count bigint(20) NOT NULL default '0',
passed_count bigint(20) NOT NULL default '0',
aborted_count bigint(20) NOT NULL default '0',
origin_type enum('MANUAL','AUTO') NOT NULL default 'MANUAL',
create_time datetime NOT NULL default '0000-00-00 00:00:00',
last_update timestamp(14) NOT NULL,
PRIMARY KEY (id),
KEY relay_ip (relay_ip),
KEY mail_from (mail_from(20)),
KEY rcpt_to (rcpt_to(20))
) TYPE=MyISAM;
Code:
cd /usr/local/src/
wget http://www.huschi.net/download/qmail-103-greylist-psa8.tar.gz
#auspacken
tar xfz qmail-1*
cd qmail-1.03
#bei Plesk 8 fehlt leider eine Datei:
echo "-lssl -lcrypto" >ssl.lib
vi local_scan.c
Datenbankeinstellungen anpassen:
Code:
#define MYSQLHOST "localhost"
#define MYSQLUSER "greylist"
#define MYSQLPASS "[b]passwort[/b]"
#define MYSQLDB "qmail"
#define BLOCK_EXPIRE 4 /* minutes until email is accepted */
#define RECORD_EXPIRE 1500 /* minutes until record expires */
#define RECORD_EXPIRE_GOOD 36 /* days until record expires after accepting email */
Code:
vi Makefile
Code:
vi tls.c
Folgende Zeile auskommentieren (mit // oder in /* ... */)
Code:
const char *strerror(int);
Installieren
Code:
make
# Email-Empfang stoppen:
/etc/init.d/inetd stop
#(Qmail selbst muß nicht beendet werden.)
# installieren:
cp -p /var/qmail/bin/qmail-smtpd /var/qmail/bin/qmail-smtpd.old
cp qmail-envelope-scanner /var/qmail/bin/.
chown root.qmail /var/qmail/bin/qmail-envelope-scanner
cp -pf qmail-smtpd /var/qmail/bin/.
chown root.qmail /var/qmail/bin/qmail-smtpd
# qmail wieder starten:
/etc/init.d/inetd start
Aufräum Skrip
Code:
vi /etc/cron.daily/qmail-greylist-cleanup.pl
Folgendes einfügen (und anpassen):
Code:
#!/usr/bin/perl -w
use strict;
use constant DBD => 'DBI:mysql:qmail:localhost:3306';
use constant DBUSER => 'greylist';
use constant DBPASS => '[b]passwort[/b]';
use DBI;
system ('cat /dev/null > /tmp/greylist_dbg.txt');
my $dbh = DBI->connect(DBD,DBUSER,DBPASS) or die "can't connect to db ", $DBI::errstr, ":$!";
$dbh->do("DELETE FROM relaytofrom WHERE record_expires < NOW() - INTERVAL 1 HOUR AND origin_type = 'AUTO'");
$dbh->do("OPTIMIZE TABLE relaytofrom");
$dbh->disconnect;
Ausführbar machen
Code:
chmod +x /etc/cron.daily/qmail-greylist-cleanup.pl
3. Clamav, Spamassassin, Razor, Pyzor, DCC, Qsheff-II
1. Pakete installieren
Code:
apt-get install spamassassin clamav clamav-daemon libclamav libclamav-dev razor pyzor spamc libsys-hostname-long-perl dcc-client
2. Pyzor
Code:
pyzor discover
3. DCC
Code:
cdcc "delete 127.0.0.1"
cdcc "delete 127.0.0.1 Greylist"
cdcc "IPv6 off"
4. Razor
Code:
rm /etc/razor/razor-agent.conf #alte config löschen
razor-admin -discover
razor-admin -create
#optional:
razor-admin -register -user=meinemail@meinedomain.tld #beim razor Server registrieren, bei Error 202 einfach wiederholen bis es klappt...
vi /root/.razor/razor-agent.conf #Debug auf 0 setzen
5. Spamassassin
Die Konfiguration anpassen:
Code:
vi /etc/spamassassin/local.cf
Mein Inhalt (Änderungen: Bayes, Whitelist, Razor, DCC, ...):
Code:
# SpamAssassin config file for version 3.x
# NOTE: NOT COMPATIBLE WITH VERSIONS 2.5 or 2.6
# See http://www.yrex.com/spam/spamconfig25.php for earlier versions
# Generated by http://www.yrex.com/spam/spamconfig.php (version 1.50)
# How many hits before a message is considered spam.
required_score 5.0
# Change the subject of suspected spam
rewrite_header subject *****SPAM*****
# Encapsulate spam in an attachment (0=no, 1=yes, 2=safe)
report_safe 0
# Auto WhiteList
auto_whitelist_path /var/spool/spamassassin/whitelist
auto_whitelist_file_mode 777
# Enable the Bayes system
use_bayes 1
# Enable Bayes auto-learning
bayes_auto_learn 1
bayes_path /var/spool/spamassassin/bayes
bayes_file_mode 777
# Enable or disable network checks
skip_rbl_checks 0
# Razor
use_razor2 1
razor_config /root/.razor/razor-agent.conf
# Pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
pyzor_max 3
# DCC
use_dcc 1
dcc_path /usr/bin/dccproc
dcc_home /var/lib/dcc
# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales all
Code:
mkdir /var/spool/spamassassin/
chown root:popuser /var/spool/spamassassin/
Evtl. vorhandene Lerndaten einspielen:
bayes_seen, bayes_toks, whitelist, bayes_journal
Code:
chmod 0777 /var/spool/spamassassin/ -R
sa-learn --sync
Die Startoptionen von spamd einstellen:
Code:
vi /etc/default/spamassassin
Folgende Änderungen vornehmen:
Code:
ENABLE=1
OPTIONS="--nouser-config --max-children 5 --helper-home-dir"
Code:
vi /etc/spamassassin/v310.pre
Code:
loadplugin Mail::SpamAssassin::Plugin::DCC
Spamassassin neu starten
Code:
/etc/init.d/spamassassin restart
6. Qsheff-II
Ripmime
Code:
cd /usr/local/src
wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.7.tar.gz
tar -xzvf ripmime-1.4.0.7.tar.gz
cd ripmime-1.4.0.7
make
make install
#Symlink setzten:
ln -s /usr/local/bin/ripmime /usr/bin/
Qsheff II
Code:
cd /usr/local/src
wget http://www.enderunix.org/qsheff/qsheff-II-2.1-r3.tar.gz
tar -xzvf qsheff-II-2.1-r3.tar.gz
cd qsheff-II-2.1-r3
./configure --disable-local-users --with-clamav \
--with-clamd-socket=/var/run/clamav/clamd.ctl
make
Code:
#qmail kurz anhalten:
/etc/init.d/qmail stop
#Backup der zu überschreibenenden qmail-queue:
cp -p /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue.bak
#erster Installationsschritt
make install
Code:
/usr/local/etc/qsheff-II/install-wrapper.sh
rm -f /var/qmail/bin/qmail-queue
echo '#!/bin/sh' >/var/qmail/bin/qmail-queue
echo '/usr/bin/spamc | /var/qmail/bin/qmail-qsheff' >>/var/qmail/bin/qmail-queue
chmod 4755 /var/qmail/bin/qmail-queue
#qmail wieder starten:
/etc/init.d/qmail start
Wer zu diesem Zeitpunkt noch Probleme mit dem Mailversand oder Horde haben sollte und derartige Zeilen in /var/log/mail.err (tail /var/log/mail.err) hat
Code:
imapd: /etc/courier-imap/shared/index: No such file or directory
Code:
/usr/local/psa/admin/bin/websrvmng -a -v
/etc/init.d/apache2 restart
Nun kann man das ganze Testen:
auf Test emails - Emailcheck - heise Security UK kann man sich eine Mail mit einem Virendummy zukommen lassen. Oder einfach den Testvirus selbst hier: Michael Schall - Testvirus Download laden.
Wenn man alles richtig gemacht hat kann man in der "/var/log/qsheff.log" so etwas in der Art wie:
Code:
15/02/2008 18:26:36: [qSheff] VIRUS, queue=q1203096392-318815-19883, recvfrom=91.186.3.11, from=`virustest@mtgsy.net', to=`meineemail@meinedomain.tld', subj=`Email virus test', size=4606, virus=`Eicar-Test-Signature',
4. Zusätzliches
1. PDO (PHP Data Objects) für PHP
Code:
apt-get install php5-dev libmysqlclient15-dev php-pear
In der cli - php.ini
Code:
vi /etc/php5/cli/php.ini
Code:
safe_mode = Off
PDO installieren
Code:
pear install pecl/pdo
In der php.ini
Code:
vi /etc/php5/apache2/php.ini
Code:
extension=pdo.so
Apache neustarten
Code:
/etc/init.d/apache2 restart
2. PDO_MYSQL
Code:
PHP_PDO_SHARED=1 pecl install PDO_MYSQL
In der php.ini
Code:
vi /etc/php5/apache2/php.ini
Code:
extension=pdo_mysql.so
Apache neustarten
Code:
/etc/init.d/apache2 restart
3. APC für PHP installieren
Wenn nach apxs gefragt wird mit nein/no antworten, sonst bricht die Installation ab (dank an ste_fan für den Hinweis)
Code:
pecl install apc
In der php.ini
Code:
vi /etc/php5/apache2/php.ini
Code:
extension=apc.so
Apache neustarten
Code:
/etc/init.d/apache2 restart
4. Fehlermeldungen von ProFTP loswerden
Wenn jetzt bei FTP Verbindungen in /var/log/daemon.log (oder /var/log/auth.log) solche Fehlermeldungen angezeigt werden:
Code:
Feb 18 11:15:55 hxxxxxx proftpd[5472]: hxxxxx.stratoserver.net (87.139.xx.xx[87.139.xx.xx]) - mod_delay/0.5: warning: unable to open DelayTable '/var/run/proftpd/proftpd.delay': No such file or directory
Code:
mkdir /var/run/proftpd/
touch /var/run/proftpd/proftpd.delay
5. Über updates per Mail informieren
Hinweis
Einfacher geht das mit cron-apt: 5.32 cron-apt. Danke an daseddy für den Hinweis .
Code:
vi /etc/cron.daily/update-check
Code:
#!/bin/sh
apt-get update
apt-get upgrade -u -s -y | grep -c '[1-9]\{1\}[0-9]* [aktualisiert|upgraded]'
if [ $result != 0 ]
then apt-get upgrade -u -s -y | mail -s "SERVER: Updates vorhanden" mail@domain.tld
fi
Code:
chmod +x /etc/cron.daily/update-check
6. Fesplattennutzungsanzeige in Plesk reparieren
(Falls in Plesk bei der Festplattennutzung 0.00 MB angezeigt wird)
Code:
mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -e"update misc set val='byte' where param='size_count_type'"
/usr/local/psa/admin/sbin/statistics
7. Logcheck installieren
Code:
apt-get install logcheck
vi /etc/logcheck/logcheck.conf # E-Mail Adresse anpassen
Code:
vi /etc/logcheck/ignore.d.server/qmail
Code:
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ relaylock:(.*)$
wer das auch so will fügt das noch ein:
Code:
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ qmail(.*)$
Code:
chown root:logcheck /etc/logcheck/ignore.d.server/qmail
8. Qmail Statistiken per Mail
qmailanalog source installieren:
Code:
apt-get install qmailanalog-installer
cd /usr/src/qmailanalog-installer
tar zxvf qmailanalog_0.70.orig.tar.gz
cd qmailanalog-0.70
anpassen:
Code:
vi error.h
Code:
extern int errno; # bei dieser Zeile extern entfernen
kompilieren
Code:
make
make setup check
cronskript erstellen
Code:
vi /etc/cron.daily/qmailstats
der Inhalt:
Code:
PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:$PATH
MAILLOG="/var/log/mail.info"
QMAILLOG="/tmp/qmail.$$"
/usr/bin/awk '{$1="";$2="";$3="";$4="";$5="";print}' < $MAILLOG | matchup > $QMAILLOG
(
echo "To: meinemail@meinedomain.tld"
echo "From: servermail@meinedomain.tld"
echo "Subject: Mail Statistiken"
echo ""
zoverall < $QMAILLOG
zfailures < $QMAILLOG
zdeferrals < $QMAILLOG
recipients < $QMAILLOG
senders < $QMAILLOG) | qmail-inject -f servermail@meinedomain.tld
rm -f $QMAILLOG
ausführbar machen:
Code:
chmod +x /etc/cron.daily/qmailstats
testen:
Code:
/etc/cron.daily/qmailstats
5. Referenzen:
Brent Meshier Adding Greylisting support to qmail on Plesk 8
Plesk & Qmail: Spamprotection mit Greylisting - huschi.net
Postfix Howto - Konfiguration - SpamAssassin
Postfix Spam Filter using Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC and ClamAV - Page 4 | HowtoForge - Linux Howtos and Tutorials
Plesk: Spamassassin und ClamAV per qsheff einbinden - huschi.net
http://www.enderunix.org/qsheff/docs/handbook.en.txt
HantsLUG Wiki: LinuxHints/FightingSpam
Debian - Fairly-Secure Anti-Spam
Getting PDO to work with Ubuntu’s 6.06 LTS (Dapper Drake) bhiv.com
Qmail Statistics - Megalinux
Horde geht nach 8.3.0 update nicht mehr
Last edited by a moderator: