HowTo - Ubuntu 8.04 Virtualserver

(Virtualbox – ISPCP – Maia Mailguard)

Beschreibt das Setup eines virtuellen Servers mittels Virtualbox auf einem Rootserver sowie die Installation von ISPCP in Verbindung mit MAIA Mailguard.


Wichtig: Vor einer Änderung an einem laufenden System ist es immer empfehlenswert ein komplettes Backup des Systems zu machen. Der Autor übernimmt keine Haftung durch bei der Anwendung dieses HowTo's entstandene Schäden!


Virtualbox

Zunächst brauchen wir Virtualbox. Wegs VRDP und anderen Features habe ich mich für die nicht opensource Variante entschieden. (Die OSE Installation kann gravierend von der folgend beschriebenenen abweichen)

Auf Grund der Downloadroutine war es einfacher das .deb Paket für Virtualbox zunächst lokal zu speichern und dann per securecopy auf den Server zu kopieren.


Download Virtualbox

http://www.virtualbox.org/wiki/Downloads


Virtualbox auf den Server kopieren

scp virtualbox_1.6.2-31466_Ubuntu_hardy_i386.deb root@SERVERIP:/root/

(bei anderem ssh port nach dem scp ein -P 234 einfügen)


Ausserdem brauchen wir ein Image der Ubuntu Installationscd. Wir wechseln also in das root Homeverzeichnis.


cd /root


Ubuntu-Server Image herunterladen

wget http://ftp.uni-kl.de/pub/linux/ubuntu.iso/hardy/ubuntu-8.04.1-server-i386.iso


Virtualbox installieren


dpkg -i virtualbox_1.6.2-31466_Ubuntu_hardy_i386.deb


Eventuelle Paketabhängigkeiten müssen zuerst mittels “apt-get install” gelöst werden.


Beispielpakete:

apt-get -f install psmisc libxt6 libxslt1.1 libxml2 libxcursor1 libx11-6 libsdl1.2debian libqt3-mt libidl0





(Anmerkung: Für das Einrichten einer Bridge oder einer virtuellen Netzwerkkarte muss man die Pakete “bridge-utils ” und “uml-utilities” für #brctl und #tunctl installieren)



Wurde Virtualbox erfolgreich installiert, kann man nun beginnen eine virtuelle Maschine zu erstellen. Unsere nennen wir “office” .


Verzeichnis vorbereiten

mkdir /root/vserveroffice


Virtuelle Maschine im definierten “basefolder” erstellen und registrieren

VBoxManage createvm -name "office" -basefolder /root/vserveroffice -register


Virtuelle Maschine konfigurieren

VBoxManage modifyvm "office" -memory "1500MB" -acpi on -boot1 dvd -nic1 hostif -hostifdev1 tap0 -cableconnected1 on -ostype ubuntu


VDI Image erstellen und registrieren

VBoxManage createvdi -filename /root/vserveroffice/office.vdi -size 50000 -register

(Per Default ist dieses Image dynamisch und wächst bis zu dieser Maximalgrösse heran)



Imagedatei der virtuellen Maschine “office” zuweisen

VBoxManage modifyvm office -hda /root/vserveroffice/office.vdi


Ubuntu Image als DVD an die virtuelle Maschine hängen

VBoxManage registerimage dvd /root/ubuntu-8.04.1-server-i386.iso

(dieses Image sollte man bis zu dem Zeitpunkt an dem man es korrekt “released” an der selben Stelle liegen lassen)


Ubuntu Image einhängen

VBoxManage modifyvm office -dvd /root/ubuntu-8.04.1-server-i386.iso


Virtuelle Maschine starten.

VBoxVRDP --startvm office&

(Achtung! Unkonfiguriert erlaubt der Start mittels VboxVRDP jedem von aussen unverschlüsselten Zugriff auf die virtuelle Maschine)


Man sollte in erwägung ziehen die “authtype” auf external zu stellen um nur am Rootserver existierende Userkonten zuzulassen.

VBoxManage modifyvm office -vrdp on -vrdpauthtype external





Rdesktop lokal installieren

sudo apt-get install rdesktop

(rdesktop dient dazu auf die virtuelle Maschine vom lokalen PC aus zuzugreifen)


Mittels rdesktop auf die virtuelle Maschine zugreifen

rdesktop -a 16 -k de -g 800x600 xxx.xxx.xxx.xxx


(Mit authtype “external”)

rdesktop -a 16 -k de -g 800x600 -u root -p - 85.10.196.19



Man sollte breits bei der Installation darauf achten dass man als Hostname einen FQDN wählt. Einen Namen mit welchem man später auch tatsächlich auf diesen Server über http zugreifen kann.

Zudem sollte man bei der Netzwerkkonfiguration bereits Manuell die entgültige IP des vServers angeben können und während dessen am Mainserver die Konfiguration den virtuellen Devices “tap0” welches nach dem Start der VM existiert vornehmen. Die Installation des LAMP kann an dieser Stelle noch ausgelassen werden.


Virtuelles Netzwerk konfigurieren (auszug aus dem Skript [siehe Anhang])


WANIF="eth0"

WANIFIP="xxx.xxx.xxx.xxx" #IP des rootservers

TAP0="tap0"

TAP0IP="10.0.0.1"

VSERVEROFFICE="10.0.0.100"



#internetforwarding aktivieren

iptables --table nat --append POSTROUTING --out-interface $WANIF -j MASQUERADE

iptables --append FORWARD --in-interface $TAP0 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward


ifconfig $TAP0 $TAP0IP up


#route einrichten für tap0 device ("office"

bash -c 'echo 1 > /proc/sys/net/ipv4/conf/'$TAP0'/proxy_arp'

route add -host $WANIFIP dev $TAP0

arp -Ds $WANIFIP $WANIF pub



Nach dem Setup wird der reboot nicht durchlaufen da das linux-image-2.6.24-server unter Virtualbox nicht funtktioniert. Man muss nun die virtuelle Maschine neustarten um erneut von der Installationscd zu booten und in den “rescue mode” (Rescue a broken system) wechseln.


Virtuelle Maschine neustarten

VBoxManage controlvm office reset



Nun wählt man sda1 als root filesystem und öffnet eine rootshell und installiert den linux kernel “generic” (die aktuellen Paket namen lassen sich mittels “apt-cache search linux-image” bzw. das installierte Paket mittels “dpkg -l | grep linux-image” herausfinden)


Linux image austauschen

apt-get install linux-image-2.6.24-19-generic

apt-get remove linux-image-2.6.24-19-server



Nun schalten wir die virtuelle Maschine ab um “die DVD aus dem Laufwerk zu nehmen”.

(diese Prozedur hat viele Gesichter)


Virtuelle Maschine abschalten

VBoxManage controlvm office poweroff




DVD-Laufwerk von der virtuellen Maschine abhängen

VBoxManage modifyvm office -dvd none


Ubuntu Image deregistrieren

VBoxManage unregisterimage dvd /root/ubuntu-8.04.1-server-i386.iso



Disk (.vdi Image) als erstes Bootdevice definieren

VBoxManage modifyvm office -boot1 disk


Nun kann die VM erneut gestartet werden. Als erstes sollte man den openssh-server installieren und von nunan per ssh weiterarbeiten.


Ist dies geschehen kann sollte man sofern man bisher unverschlüsselt gearbeitet hat die “authtype” auf external stellen damit anderen der zugang verweigert wird.

VBoxManage modifyvm office -vrdp on -vrdpauthtype external


An dieser Stelle wäre es sinnvoll von der .vdi eine Sicherungskopie anzulegen.














ISPCP


Dein Server muss mit einem auflösbaren FQDN (fully qualified domain name) konfiguriert sein.


Stell sicher dass du mit einem Benutzer mit root-Rechten eingeloggt bist.


Wir gehen davon aus dass bis jetzt kein LAMP am laufen ist und daher auch diese Dienste konfiguriert werden müssen. Falls dies nicht der Fall ist kann es vorkommen, dass der eine oder andere Punkt wegfällt oder ausgelassen werden kann.


1. Vorbereitung

apt-get update

apt-get upgrade

apt-get install tar bzip2 wget

mkdir -p /ispcp/

cd /ispcp/

wget http://www.isp-control.net/downloads/snapshots/ispcp-omega-trunk-YYYYMMDD.tar.bz2

tar -xjvf ispcp-omega-trunk-YYYYMMDD.tar.bz2

cd ./web/svn/nightly

2. Benötigte Module/Programme installieren

apt-get install $(cat ./docs/Ubuntu/ubuntu-packages-hardy)


'New password for the MySQL "root" user'

gutes root passwort für sql zugang eintragen..


'Create directories for web-based administration?'

Bei der Frage zu „courier“ wähle no aus um die Anlegung von Verzeichnissen zur webbasierten Verwaltung zu deaktiviern..


'General type of mail configuration'


Bei den Fragen zu „postfix“ wähle internet site und als Empfänger von Systemmails „root“ ein.
Falls dein Ubuntu Setup korrekt ist, sollte der Domainname für das Mailsystem bereits angezeigt werden. Ist dies nicht der Fall trage deinen Domainnamen ohne „www.“ in dem entsprechenden Feld ein.

----------

hetzner-server: xxx-xxx-xxx-xxx.clients.your-server.de

server4you: echo847.server4you.de


'Run proftpd'

Bei der Frage zu „proftpd“ wähle standalone als Betriebsmodus


3. Kompillieren/Vorbereiten des Systems



make install

4. Die erstellten Verzeichnisse ins System kopieren

Es wird empfohlen den aktuellen Systemstatus vor diesem Schritt zu sichern. Im Falle eines virtualisierten Images.. Kopie des Image anlegen!!!

Das ist mein voller ernst.. gerade die nightly builds gehn oft nicht durch bei der Installation und ein Neustart des Setups gelingt meist nicht und bricht mit dubiosen Fehlermeldungen ab .. Ispcp kopiert sich an diesem Schritt überall ins System und ist danach kaum mehr wegzubringen.

cp -Rv /tmp/ispcp/* /


5. Einrichten des System


cd /var/www/ispcp/engine/setup


(Falls das Kennwort nicht bereits gesetzt wurde ist jetzt der richtige zeitpunkt es zu tun!!)



mysqladmin -u root password DEIN_PASSWORT

6. ispCP Setup starten


perl ./ispcp-setup



Alle Fragen sollten selbsterklärend sein. Falls du nicht weist was du bei einer spezifischen Frage antworten sollst, kannst du gerne im ispCP Forum nachfragen. Der erste Schritt kann auf einem Server an dem keine Maus angesteckt ist schonmal 20 Minuten dauern wenn du wirklich Pech hast.. die Zufallszahlen benötigen Entropie.. sprich.. random Benutzereingaben.. eine zweite Shell aufmachen und dort viel arbeiten, pingen und nach > /dev/urandom umleiten hilft meist - auf einem Vserver jedoch nicht.


Hat man die Keys einmal erstellt so sollte man sich am besten gleich eine Sicherung davon anlegen um für den Fall dass das Setup erneut ausgeführt werden muss diesen Schritt umgehen zu können.


Keys sichern

cd /var/www/

mkdir backup

cd backup

cp ../ispcp/engine/ispcp-db-keys.pl .

cp ../ispcp/gui/include/ispcp-db-keys.php .

cp ../ispcp/gui/tools/pma/config.inc.php .


Keys rückspielen (vor dem ausführen von perl ./ispcp-setup)

cd /var/www/backup/

cp ispcp-db-keys.pl ../ispcp/engine/

cp ispcp-db-keys.pl ../ispcp/engine/messager/

cp ispcp-db-keys.php ../ispcp/gui/include/

cp config.inc.php ../ispcp/gui/tools/pma/




Bei Fehlern empfehle ich die Ticket-Datenbank von ispcp zu durchsuchen (bei nightly builds kann es vorkommen dass man in einer .pl Datei ein oder zwei Zeilen ändern muss damit das Setup durchläuft)

http://isp-control.net/ispcp/search


auf einem Server bei dem der erste Schritt bereits zu lange gedauert hat sollte man vielleicht darauf verzichten die Passwörter für vftp und pma automatisch zu generieren.



7. Temp Verzeichnis bereinigen

rm -fR /tmp/ispcp



8. Test

Firefox öffnen (opera und konsorten sind auch erlaubt ^^) und mit der im Verlauf des Setups bereits festgelegten Adresse auf denControlpanel zugreifen und als “admin” einloggen.

(http://xxx-xxx-xxx-xxx.clients.your-server.de)













9.Konfiguration von proftpd an Umgebung mit NAT und Masquerading anpassen.

Die Konfiguration von Proftpd insbesondere die proftpd.conf im Verzeichnis /etc/proftpd muss für den Betrieb in einem Vserver hinter NAT angepasst werden. Eine Portrange für passiveftp sowie die externe Ipadresse des root-Servers müssend definiert werden

nano /etc/proftpd/proftpd.conf

PassivePorts 20000 30000

MasqueradeAddress 85.10.196.19



/etc/init.d/proftpd restart





Selbstverständlich muss im nachfolgenden Netzwerksetup (siehe Anhang) diese Portrange auch an den entsprechenden Vserver weitergeleitet werden



MAIA antispam/antivir Mailguard


Wichtig: Legen Sie bitte von allen Konfigurationsdateien, welche im Folgenden verändert

werden eine Sicherungskopie an. So können Sie bei einer Fehlkonfiguration auf diese

zurückgreifen.


Notwendige Pakete installieren


/etc/init.d/postfix stop


apt-get install libossp-uuid-perl libphp-jpgraph razor pyzor libcrypt-openssl-rsa-perl libtemplate-perl subversion bcabextract pax libsqlite0 php5-sqlite php5-gd php5-sqlite smarty


pear upgrade-all

pear install Log Mail_Mime File Date DB DB_Pager Net_Sieve Net_Pop3

pear -d preferred_state=alpha install Image_Color Image_Canvas Image_Graph Numbers_Roman Numbers_Words

pear install Net_SMTP

pear install Net_IMAP

pear install Auth_SASL

pear install Pager




apt-get install amavisd-new spamassassin clamav clamav-daemon




User amavis ein passwort zuweisen

passwd amavis


Gruppenzugehörigkeit erweitern

usermod -G amavis clamav


Spamassassin benutzt automatisch die installierten Spamfilter razor und pyzor, ohne dass eine Konfiguration notwendig ist. Es muss lediglich der Daemon aktiviert werden. Hierzu wird die Datei /etc/default/spamassassin entsprechend angepasst

nano /etc/default/spamassassin

# Change to one to enable spamd

ENABLED=1






Maia Mailguard herunterladen und vorbereiten


mkdir /usr/local/src/maia

cd /usr/local/src/maia

svn checkout https://www.maiamailguard.com/svn/branches/1.0




mkdir /var/lib/amavis/db

mkdir /var/lib/amavis/maia
mkdir /var/lib/amavis/maia/scripts


cd /var/lib/amavis/maia/scripts


cp /usr/local/src/maia/1.0/scripts/* .
cp load-sa-rules.pl 1
cp process-quarantine.pl 2
cp send-quarantine-digests.pl 3


sed 's/var\/amavisd/var\/lib\/amavis/g' 1 > load-sa-rules.pl
sed 's/var\/amavisd/var\/lib\/amavis/g' 2 > process-quarantine.pl
sed 's/var\/amavisd/var\/lib\/amavis/g' 3 > send-quarantine-digests.pl
rm 1 2 3


test -e /etc/maia.conf && cp /etc/maia.conf /etc/maia.conf-backup
cp /usr/local/src/maia/1.0/maia.conf.dist /etc/maia.temp
sed 's/var\/amavisd/var\/lib\/amavis/g' /etc/maia.temp > /etc/maia.conf
cp -r /usr/local/src/maia/1.0/templates /var/lib/amavis/maia/templates



chown -R amavis:amavis /var/lib/amavis
chmod -R 750 /var/lib/amavis
chmod 640 /var/lib/amavis/maia/templates/*.tpl



nano /etc/maia.conf

(folgende Werte anpassen)

# Your Maia database user's password

$password = "youramavisuserpassword";


# Base URL to Maia's PHP scripts

$base_url = "http://admin.your-server.de/tools/antispam";





Create Database



mysql -u root -p mysql

CREATE DATABASE maia;

quit

mysql -u root -p maia < /opt/sources/maia-1.0.2/maia-mysql.sql

quit


mysql -u root -p maia

GRANT CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE ON maia.* TO amavis@localhost IDENTIFIED BY 'youramavisuserpassword';

quit
















Konfiguration überprüfen...

cd /var/lib/amavis/maia/scripts/

./configtest.pl


Application/Module Version Status

========================================================================

Perl : 5.8.8 : OK

file(1) : 4.21 : OK

Archive::Tar : 1.36 : OK

Archive::Zip : 1.18 : OK

BerkeleyDB : 0.32 : OK

Compress::Zlib : 2.008 : OK

Convert::TNEF : 0.17 : OK

Convert::UUlib : 1.09 : OK

Crypt::Blowfish : 2.10 : OK

Crypt::CBC : 2.24 : OK

Crypt::OpenSSL::RSA : 0.24 : OK

Data::UUID : 1.0501 : OK

DB_File : 1.814 : OK

DBD::mysql : 4.005 : OK

DBD::Pg : 1.49 : OK

DBI : 1.601 : OK

Digest::MD5 : 2.36 : OK

Digest::SHA1 : 2.11 : OK

File::Spec : 3.12 : OK

HTML::Parser : 3.56 : OK

HTTP::Date : 1.47 : OK

IO::Stringy : 2.110 : OK

IO::Zlib : 1.04 : OK

IP::Country : N/A : NOT INSTALLED (SpamAssassin's optional RelayCountry plugin requires this)

LWP::UserAgent : 2.036 : OK

Mail::Address : 2.02 : OK

Mail::DomainKeys : N/A : NOT INSTALLED (SpamAssassin's optional DomainKeys plugin requires this)

Mail::Internet : 2.02 : OK

Mail::SpamAssassin : 3.2.4 : OK

Mail::SPF::Query : N/A : NOT INSTALLED (SpamAssassin's optional SPF plugin requires this)

MIME::Base64 : 3.07 : OK

MIME::Parser : 5.425 : OK

MIME::QuotedPrint : 3.07 : OK

Net::CIDR::Lite : N/A : NOT INSTALLED (SpamAssassin's optional SPF plugin requires this)

Net::DNS : 0.63 : OK

Net::Server : 0.97 : OK

Net::SMTP : 2.29 : OK

Pod::Usage : 1.33 : OK

Template : 2.19 : OK

Time::HiRes : 1.86 : OK

Unix::Syslog : 1.0 : OK

URI : 1.35 : OK


Database DSN test : PASSED


Optionale plugins können vernachlässigt werden..



Copy SpamAssassin's rules to the MySQL database

(stellen sie sicher dass 'spamassassin --lint' keine Fehler zurückgibt; korrigieren sie eventuelle Fehler bevor sie fortsetzen)


spamassassin --lint

su amavis -c 'spamassassin --lint'


sa-update --nogpg

cd /var/lib/amavis/maia/scripts

./load-sa-rules.pl


(Sie sollten eine Menge Regeln angezeigt bekommen die geladen werden. Falls es damit Probleme gibt überprüfen sie ob das Skript auch zu den korreten Ordnern zeigt).


Copy the web interface files to the web site.


mkdir /var/www/ispcp/gui/tools/antispam

cp -r /usr/local/src/maia/1.0/php/* /var/www/ispcp/gui/tools/antispam

cd /var/www/ispcp/gui/tools/antispam

cp config.php.dist config.php



folgende Werte in der “config.php” anpassen:


nano config.php


$maia_sql_dsn = "mysql://amavis:passwd@tcp(localhost:3306)/maia";

#passwd durch das Passwort des Users amavis ersetzen

$address_rewriting_type = 4;

$auth_method = "pop3";

$smarty_path = "/var/www/ispcp/gui/tools/antispam/libs/Smarty";


Smarty installiern


cd /opt/sources/

wget http://www.smarty.net/do_download.php?download_file=Smarty-2.6.19.tar.gz

tar -xzvf Smarty-2.6.19.tar.gz

cd Smarty-2.6.19/libs

mkdir /var/www/ispcp/gui/tools/antispam/libs/Smarty

cp -R ./* /var/www/ispcp/gui/tools/antispam/libs/Smarty


cd /opt/sources/

wget http://ratsnet.org/vhcs/maia_vhcs_theme_v2.12.tar.bz2

tar -xjvf maia_vhcs_theme_v2.12.tar.bz2

mkdir /var/www/ispcp/gui/tools/antispam/themes/modern_blue


cp -R /opt/sources/modern_blue/* /var/www/ispcp/gui/tools/antispam/themes/modern_blue





rechte setzen

chown -R vu2000:www-data /var/www/ispcp/gui/tools/antispam

chmod -R 555 /var/www/ispcp/gui/tools/antispam

chmod -R 755 /var/www/ispcp/gui/tools/antispam/themes


chgrp amavis /var/www/ispcp/gui/tools/antispam/themes/*/compiled

chmod 775 /var/www/ispcp/gui/tools/antispam/themes/*/compiled

gpasswd -a www-data amavis



php.ini bearbeiten

nano /var/www/fcgi/master/php5/php.ini


folgende Zeilen hinzufügen bzw. auskommentieren


extension=mysql.so
extension=gd.so



cd /etc/amavis
wget http://www200.pair.com/mecham/amavisd.conf.maia
mv amavisd.conf.maia amavisd.conf-maia



amavis.conf

nano /etc/amavis/amavisd.conf-maia


First, change '$mydomain' and '$myhostname' to yours. Then search for these entries:


$ final_virus_destiny = D_DISCARD;

$ final_spam_destiny = D_DISCARD;

$ final_banned_destiny = D_DISCARD;

$ final_bad_header_destiny = D_DISCARD;



and add this text block after it:

$ warnvirussender = 1;

$ warnspamsender = 0;

$ warnbannedsender = 1;

$ warnvirusrecip = 1;

$ warnbannedrecip = 1;



search for this line and enter a new AMaVis password

lookup_sql_dsn = ( ['DBI:mysql:maia:localhost', 'amavis', '_YOUR_PASS_'] );





and after

$ X_HEADER_TAG = 'X-Virus-Scanned';

$ X_HEADER_LINE = "Maia Mailguard 1.0.2";


copy these lines


use DBI;

my $db = "ispcp";

my $user="root"; # Type here your ispCP MySQL User

# (is the same you typed during the setup)

my $host="localhost";

my $password="_YOUR_PASS"; # Type here your ispCP MySQL Password

#(is the same you typed during the setup)


my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host", $user, $password, {RaiseError => 1});

my $arr = $dbh->selectcol_arrayref('SELECT domain_name, 1 FROM domain', {Columns=>[1,2]});

my $arre = $dbh->selectcol_arrayref('SELECT alias_name, 1 FROM domain_aliasses', {Columns=>[1,2]});


my $lis = ($arre,$arr);

%local_domains = (@$arr,@$arre);






Maia dateien über amavis-new kopieren


amavisd-new stop


cp /usr/local/src/maia/1.0/amavisd-maia /usr/sbin/amavisd-new-maia
cp /usr/sbin/amavisd-new-maia /usr/sbin/amavisd-new
cp /etc/amavis/amavisd.conf-maia /etc/amavis/amavisd.conf


chown root /usr/sbin/amavisd-new

chmod 755 /usr/sbin/amavisd-new


Danach starten sie amavisd-new (Maia) (beim allerersten mal empfiehlt sich maia mit 'amavisd-new debug' zu starten um eventuelle Fehler erkennen zu können):


amavisd-new start










Postfix-Konfiguration

Wichtig: einige Zeilen können schon vorhanden sein und müssen nur auskommentiert werden.

Der Rest muss hinzugefügt werden!


Zur Integration von Amavis in Postfix muss in der Datei /etc/postfix/main.cf folgende Zeile eingefügt werden:


nano /etc/postfix/main.cf

content_filter=smtp-amavis:[127.0.0.1]:10024



Weitere Anpassungen sind in der Datei /etc/postfix/master.cf erforderlich. Am Ende:


nano /etc/postfix/master.cf

smtp-amavis unix - - - - 2 smtp

-o smtp_data_done_timeout=1200

-o smtp_send_xforward_command=yes

-o disable_dns_lookups=yes

-o max_use=20



Unmittelbar hinter der Zeile mit dem Dienst pickup (relativ am Beginn der Datei) einfügen:

-o content_filter=

-o receive_override_options=no_header_body_checks



Nun noch ans Ende der Datei folgende Zeilen hängen:

trace unix - - - - 0 bounce

verify unix - - - - 1 verify


cp /etc/passwd /var/spool/postfix/etc/passwd

postfix reload



Indianer meets Maia


cd /etc/apache2/sites-available/

nano 00_master.conf


nach

Alias /ftp /var/www/ispcp/gui/tools/filemanger/

folgendes einfügen:

Alias /antispam /var/www/ispcp/gui/tools/antispam/


apache neu starten


/etc/init.d/apache2 restart




Patch Image graph (maia wird die änderung dennoch nicht anzeigen)


cd /usr/share/php/Image/Graph/Plot/

mv Pie.php Pie.php.orig

wget http://www200.pair.com/mecham/Pie.php.txt

mv Pie.php.txt Pie.php


PHP5 patch to a Net_IMAP file:

cd /usr/share/php/Net/
cp IMAPProtocol.php IMAPProtocol-orig.php
wget http://www200.pair.com/mecham/spam/IMAPProtocol.php.patch.txt
patch IMAPProtocol.php < IMAPProtocol.php.patch.txt



nun kann man die installation testen

http://admin.yourserver.tld/tools/antispam/admin/configtest.php


Does not need a OK:

PostgreSQL Support

PEAR::Net_IMAP

IMAP library

LDAP library

MCrypt library


Eventuelle “basedir restrictions” kann man beheben – scheinen aber nur für die Funtkionalität der Testseite relevant zu sein.


MySQL must start before AMaVis

update-rc.d -f mysql remove

update-rc.d mysql start 18 2 3 4 5 . stop 22 0 1 6 .
















The Spamassasin config

Please create a config with the generator at http://www.yrex.com/spam/spamconfig.php and save it under ”/etc/spamassassin/local.cf”


nano /etc/spamassassin/local.cf


# Bayes database configuration

use_bayes 1

bayes_store_module Mail::SpamAssassin::BayesStore::SQL

bayes_sql_dsn DBI:mysql:maia:localhost

nano

bayes_sql_username amavis

bayes_sql_password _YOUR_AMaViS_PASS_ # <-- change '_YOUR_AMaViS_PASS_ to your Pass

bayes_sql_override_username amavis

bayes_auto_learn 1

bayes_auto_learn_threshold_nonspam 0.1

bayes_auto_learn_threshold_spam 10.0

bayes_use_hapaxes 1

#bayes_use_chi2_combining 1

bayes_ignore_header ReSent-Date

bayes_ignore_header ReSent-From

bayes_ignore_header ReSent-Message-ID

bayes_ignore_header ReSent-Subject

bayes_ignore_header ReSent-To

bayes_ignore_header Resent-Date

bayes_ignore_header Resent-From

bayes_ignore_header Resent-Message-ID

bayes_ignore_header Resent-Subject

bayes_ignore_header Resent-To

bayes_ignore_header X-Received-From-IP

bayes_ignore_header X-Virus-Scanned

bayes_ignore_header X-Spam-Status

bayes_ignore_header X-Spam-Level

bayes_ignore_header X-Sender

bayes_ignore_header X-Mailer

# Auto-Whitelist configuration

auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList

user_awl_dsn DBI:mysql:maia:localhost


user_awl_sql_username amavis

user_awl_sql_password _YOUR_AMaViS_PASS_ # <-- change '_YOUR_AMaVis_PASS_ to your Pass



ln -s /etc/amavis/amavisd.conf /etc/amavisd.conf


/etc/init.d/amavis restart

/etc/init.d/clamav-daemon restart

/etc/init.d/postfix restart


Anhang:

Ein kleines Beispielscript welches man am root server dazu nutzen könnte die Netzwerkeinstellungen durchzuführen. Vorsicht: Dieses Skript ist nicht einsatzbereit und soll lediglich an Basisidee für die Konfiguration dienen. Die einzelnen Adressen, Ports und Devicenamen müssen selbstredend angepasst werden.

virtual.net.sh


#!/bin/bash


### BEGIN INIT INFO

# Provides: packet filter rules

# Required-Start: $network $syslog

# Required-Stop: $network $syslog

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Description: Start virtual.net

### END INIT INFO




##--------------------Variablen setzen--------------------##


TAP0="tapX" #virtuelles device für vserver office

TAP1="tapY" #virtuelles device für vserver playground

WANIF="ethX" #externes device

WANIFIP="xxx.xxx.xxx.xxx" #wan ip des root servers


BR0="brX" #bridge

BR0IP="10.0.0.x"



VSERVEROFFICE="10.0.0.y"

VSERVERPLAYGROUND="10.0.0.z"



DNS1="uxx.xxx.xxx.xxu" #dns server

DNS2="vxx.xxx.xxx.xxv"

DNS3="wxx.xxx.xxx.xxw"




#dns function schreibt dns server in /etc/resolv.conf

dns() {

echo "nameserver $DNS1

nameserver $DNS2

nameserver $DNS3" > /tmp/resolv.conf #nameserver setzen


cp /tmp/resolv.conf /etc/resolv.conf

}






case $1 in

start)

echo "Starting virtual.net"


dns #funktion ausfuehren


#vserer office starten

exec VBoxVRDP --startvm office&

exec VBoxVRDP --startvm playground&

sleep 5 #pause um sicherzugehn dass die virtuellen devices bereits erstellt wurden


brctl addbr $BR0 #add bridge


ifconfig $BR0 0.0.0.0 promisc up #devices in promiscious mode schalten

ifconfig $TAP0 0.0.0.0 promisc up

ifconfig $TAP1 0.0.0.0 promisc up


brctl addif $BR0 $TAP0 #add virtual devices on bridge

brctl addif $BR0 $TAP1

ifconfig $BR0 $BR0IP #configure bridge



# WAN zum vServer

iptables --table nat --append POSTROUTING --out-interface $WANIF -j MASQUERADE

iptables --append FORWARD --in-interface $BR0 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward



# WAN vom vServer

bash -c 'echo 1 > /proc/sys/net/ipv4/conf/'$BR0'/proxy_arp'

route add -host $WANIFIP dev $BR0

arp -Ds $WANIFIP $WANIF pub



###--------PORT Weiterleitung--------###

###----------------------------------###

###----------office vserver----------###

#port 80 an "office" weiterrouten

iptables -t nat -A PREROUTING -i $WANIF -p tcp --dport 80 -j DNAT --to $VSERVEROFFICE

#port 21 ftp

iptables -t nat -A PREROUTING -i $WANIF -p tcp --dport 21 -j DNAT --to $VSERVEROFFICE

iptables -A FORWARD -i $WANIF -p tcp --dport 21 -j ACCEPT

#port 20 ftp

iptables -t nat -A PREROUTING -i $WANIF -p tcp --dport 21 -j DNAT --to $VSERVEROFFICE

iptables -A FORWARD -i $WANIF -p tcp --dport 21 -j ACCEPT

#portrange 20000:30000 für passivFTP hinter NAT

iptables -t nat -A PREROUTING -i $WANIF -p tcp -m multiport --dports 20000:30000 -j DNAT --to $VSERVEROFFICE



###----------playground vserver----------###

#port 1234 test

iptables -t nat -A PREROUTING -i $WANIF -p tcp --dport 1234 -j DNAT --to $VSERVERPLAYGROUND

iptables -A FORWARD -i $WANIF -p tcp --dport 1234 -j ACCEPT





;;



########################

stop)

echo "Stopping VirtualNET"

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -F

iptables -t nat -F

iptables -X


################ Routing aus

echo 0 > /proc/sys/net/ipv4/ip_forward


ifconfig $BR0 down

brctl delif $BR0 $TAP0

brctl delif $BR0 $TAP1

brctl delbr $BR0



;;

status)

echo "Die gesetzten Iptables regeln: "

iptables -L -v

iptables -v -t nat -L POSTROUTING

iptables -v -t nat -L PREROUTING

;;


*)

echo "Usage: $0 [start|stop|status]"

exit 1

;;

esac