Was ist drin?
Was ist Postfix?
Postfix ist der im Mailsystem verwendete MTA (Mail Transfer Agent).
Ein MTA übernimmt den Transport von E-Mails. Postfix benutzt, wie auch MTAs das Protokoll SMTP.
Was ist amavisd-new?
AMaViS (A Mail Virus Scanner) ist ein Virus-Scanner für Emails. Es ist sehr weit verbreitet. AMaViS ist ein Perl-Skript, welches mit den verbreiteten Mailservern zusammenarbeitet (z.B. postfix), die Mails entgegennimmt und diese durch konfigurierte Virenscanner schickt (z.B. clamav, bitdefender). Mails, welche die Tests bestanden haben, werden danach weiter zugestellt, virus-verseuchte Mails gehen in einen Quarantäne-Ordner. AMaViS besitzt die Fähigkeit, gepackte Mailanhänge vor dem Scannen auszupacken. AMaViS kann nicht nur nach Viren, sondern auch nach Spam suchen. Wenn SpamAssassin installiert ist, braucht man ihn nicht per Postfix einzubinden, sondern lässt Spam ähnlich wie Viren von amavisd handhaben lassen.
Was ist ClamAv?
ClamAV (Clam AntiVirus) ist ein Antivirusprogramm. Er arbeitet im Mailsystem als Virenscanner und Phishing-Filter(gegen Mailwürmern, Phishing-E-Mails). Bei ClamAV handelt es sich um eine Bibliothek, die in eigene Software integriert werden kann (Daemon).
Was ist Bitdefender?
s.o. ähnlich wie ClamAv.
Was ist Spamassassin?
SpamAssassin ist ein Email-filterprogramm, welches ungewünschte E-Mails automatisch aussortieren kann.
Das Programm gibt jeder E-Mail nach bestimmten Regeln Punkte, die anzeigen, wie hoch die Spamwahscheinlichkeit bei der Email ist. Bei Überschreiten dieses Schwellenwertes wird die E-Mail als Spam markiert, sowie der „X-Spam-Flag“ auf „YES“ gesetzt.
Maßgebende Kriterien für die Punktevergabe bei Spamassassin sind:
• Statische Regeln, die nach Regulären Ausdrücken, welche typischer Weise in Spammails vorkommen, suchen
• Abfrage von Realtime Blackhole Lists (Schwarzes Brett der Spammer)
• Abfrage von „Collaborative Filtering Networks“ mittels Razor, Pyzor, DCC (Netzwerke welche Mails als Spam stufen)
• Bayes'scher-Filter, der eine statische Wahrscheinlichkeit berechnet, auf der Basis der bisher als Spam deklarierten Mails. Nach dieser Wahrscheinlichkeit wird überprüft ob es sich in der Mail um Spam oder Ham handelt. (Spam = Ungewollte Mails; Ham = Gewollte Mails)
Spamassassin hat zusätzlich zu der automatischen Punktevergabe eine Manuelle und eine Black- bzw. Whitelist. In der Manuellen Punktevergabe kann der Benutzer sich und seiner Umgebung vor Spam schützen, indem er einzelne (in Spam vorkommenden) Wörter oder Sätze mit einem selbst bestimmten Punktewert deklariert. Die manuell eingetragenen Black- und Whitelisten dienen dazu einzelne User oder Domains als Spam (Blacklist) oder als Ham (Whitelist) zu bestimmen.
1. Debian Installation
Hardware Vorraussetzung für Antispam sollten ein Pentium 233Mhz mit 256MB RAM sein (ca. 2500 Mails/Tag). Der Festplattenspeicher sollte mindestens 600 MB betragen.
Installiert wird ohne Graphische Oberfläche, also ohne GUI. Zunächst einmal wird die Net-Install CD benötigt. Die benötigte Version erhält man unter:
http://www.debian.org/devel/debian-installer/index
Nachdem das Image runtergeladen und gebrannt wurde legt man es ins Laufwerk ein und Bootet von der CD aus.
Die ersten Abfragen des Systems sind:
choose a language:
german - Deutsch
Land oder Gebiet wählen:
Deutschland
Wählen sie Ihre Tastaturbelegung aus:
Deutsch
Man sollte das Internetkabel jetzt vom Gerät entfernen, da es nicht über DHCP konfiguriert werden soll.
Daraufhin wählt man im nächsten Menü
Netzwerk manuell einrichten
aus.
IP-Adresse:
192.168.xxx.xxx
Netzmaske:
255.255.255.0
Gateway:
192.168.xxx.xxx
Adresse des DNS Servers:
192.168.xxx.xxx
Rechnername
antispam
Domainname:
example.local
Festplatten Partitionieren:
Gesamtes Laufwerk löschen: . . .
Partitionsschema:
Alle Dateien auf eine Partition
Partitionierung beenden und änderungen übernhmen
Änderungen auf die Festplatte schreiben?
Ja
Daraufhin wird das Debain Grundsystem installiert.
Den Grub-Bootloader in den Master Boot Record installieren?
Ja
CD entfernen
Weiter
Es wird Neugestartet.
Willkommen bei ihrem neuen Debian System
Ok
Ist die Hardware-Uhr auf GMT gesetzt?
Nein
Befinden sie sich in der Zeitzone . . .
Ja
Root-Passwort
**********
Nochmals zur Bestätigung
**********
Geben sie den vollen Namen für den Neuen Benutzer ein:
example
Geben sie den Benutzernamen für Ihr Konto ein:
example
Passwort für den neuen Benutzer:
**********
Nochmals zur Bestätigung:
**********
Apt Konfiguration
http
Land des Spielgel-Servers
Deutschland
Wählen sie einen Spiegelserver aus:
Xxxxxx
Daten Ihres http Proxys:
. . . (keine)
Debian Software Auswahl:
Wählen Sie Software aus die Installiert werden soll:
Keine Veränderungen vornehmen einfach nur
OK
Exim4 Konfiguration
Keine Konfiguration zum jetztigen Zeitpunkt
Soll das Emailsystem wirklich nicht konfiguriert werden?
Ja
Empfänger der Mails für Root und Postmaster:
. . .
OK
Debian System Konfiguration
Setup des Debian System ist komplett
OK
--------------------------------------------------------------------
--------------------------------------------------------------------
2. Debian Programm Installation & Konfiguration
1: System Uhrzeit richtig setzen:
apt-get install ntpdate ssh
setze CMOS Zeit gleich der Systemzeit:
hwclock --systohc
2: Konfiguriere Locales:
Um die Tatatureinstellungen festzulegen:
dpkg-reconfigure locales
[*] de_DE@euro ISO-8859-15
OK
Which locale should be the default in the system environment?
de_DE@euro
[reboot]
3: Grundprogramme installieren, deinstallation:
apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev libberkeleydb-perl vim lynx ncftp bzip2 unzip perl-doc libwww-perl ntp-simple zlib1g-dev unzoo arj zip lzop nomarch arc zoo ftp lsof less libdbi-perl libmail-spf-query-perl libconvert-binhex-perl gcc make autoconf automake1.7 libtool flex bison libldap2 libcompress-zlib-perl dnsutils rblcheck pax libmail-spf-query-perl libdbi-perl libnet-ident-perl cabextract
apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent
Abfragen immer mit JA beantworten.
4: Nachprüfen von Systemeinstellungen:
vi /etc/resolv.conf
Steht der Domainname in folgender Form da?
search example.local
Ist der Nameserver darunter richtig eingetragen?
nameserver 192.168.xxx.xxx
(Eintrag im DNS-Server)
vi /etc/hosts
Die ersten zwei zeilen sollten wie folgt aussehen:
127.0.0.1 localhost.localdomain localhost
192.168.xxx.xxx antispam.example.local antispam
[reboot]
5: Apt settings
Da Packete aus der Testing benötigt werden, muss man diese noch in die Apt-settings hinzufügen (später wird diese Einstellung wieder auf default=stable gestellt):
vi /etc/apt/preferences
-
Package: *
Pin: release a=testing
Pin-Priority: 600
Package: *
Pin: release a=stable
Pin-Priority: 550
Package: *
Pin: release a=unstable
Pin-Priority: 400
-
6: Backup der Sourcedatei / editieren der Sourcedatei
Um sicher zu gehen, dass die zusätzlichen Packete installiert werden können muss man sie noch in die source.list eintragen.
Sie sollte danach wie Folgt aussehen (hier am Beispiel vom http-Spiegel rwth-aachen):
cp /etc/apt/sources.list /etc/apt/sources.backup
vi /etc/apt/sources.list
-
#deb file:///cdrom/ sarge main
deb http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ stable main non-free contrib
deb-src http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ stable main
deb http://security.debian.org/ stable/updates main
deb http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ testing main non-free contrib
deb-src http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ testing main
deb http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ unstable main non-free contrib
deb-src http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ unstable main
deb http://security.debian.org/ testing/updates main
deb http://volatile.debian.net/debian-volatile sarge/volatile main
-
7: installation von Zusatzprogrammen:
apt-get update
apt-get install lha unrar unarj
8: Update Kernel (nicht unbedingt nötig):
(
Um herauszufinden, welche Kernelversion auf dem System existiert:
uname -r
Suche nach dem neusten Kernel:
apt-cache search kernel-image-2.6
Installation des neusten Kernels:
apt-get install kernel-image-2.x...
)
[reboot]
9: Firewall Regeln
In diesen Firewall Regeln werden nur folgende Ports offen gelassen, sowie der Netzinterne verkehr:
TCP Port 21 (FTP)
TCP Port 22 (SSH)
TCP Port 23 (Telnet)
TCP Port 25 (SMTP)
TCP Port 53 (DNS)
UDP Port 53 (DNS)
TCP Port 80 (HTTP)
TCP Port 7 (Razor)
TCP Port 2703 (Razor)
TCP Port 24441 (Pyzor)
UDP Port 6277 (DCC)
TCP Port 514 (Syslog)
TCP Port 123 (NTPd)
UDP Port 123 (NTPd)
#//Pc Interne Port Freigabe
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT
#//--state new
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#//Eingehende FTP Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 21 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende SSH Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 22 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Telnet Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 23 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende SMTP Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 25 --sport 1024:65535 -m state --state NEW -j ACCEPT
#//Eingehende DNS Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 53 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 53 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende HTTP Verbindung erlauben (Zum download spezifischer SARules)
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Razor Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 7 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 2703 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende pyzor Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 24441 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Webmin Verbindung erlauben
#//Pakete vom Client zum Server
#iptables -A INPUT -p tcp --dport 10000 --sport 1024:65535 -m state --state NEW,ESTABLISHED –j #DROP
#//Pakete vom Client zum Server
#iptables -A INPUT -p udp --dport 10000 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j #DROP
#//Eingehende DCC Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p udp --dport 6277 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Syslog Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p udp --dport 514 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende NTP DAEMON Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p udp --dport 123 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//NTP daemon
iptables -A INPUT -p tcp --dport 123 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Policy setzen - es wird alles verworfen
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables-save > /etc/firewall-rules
iptables-restore < /etc/firewall-rules
Um die Regeln nach der änderung anzeigen zu lassen:
iptables –L
10: Firewall Regeln eintragen:
vi /etc/network/interfaces
Folgendes genau unter der Zeile "iface lo inet loopback":
-
pre-up iptables-restore < /etc/firewall-rules
-
[reboot]
11: Deaktivieren von nicht genutzten Daemons:
Um die Arbeitenden Prozesse anzeigen zu lassen (nicht unbedingt notwendig):
top
ps afx
ps afxl
ps –A
ls -F /etc/rc2.d
lsof -i | grep LISTEN
grep -v "^#" /etc/inetd.conf | sort -u
netstat -pn -l -A inet
netstat -pn -l inet
lsconfig ist ein Script um anzuzeigen zu lassen was alles an Programmen auf dem PC ist:
cd /usr/bin
wget http://www200.pair.com/mecham/debian/lsconfig
chmod +x /usr/bin/lsconfig
lsconfig
Backup der init scripts:
cp -r /etc/init.d /etc/init.d-original
#Um die Daemons nun zu Stoppen und Deaktivieren:
/etc/init.d/lpd stop
update-rc.d -f lpd remove
/etc/init.d/nfs-common stop
update-rc.d -f nfs-common remove
/etc/init.d/portmap stop
update-rc.d -f portmap remove
/etc/init.d/pcmcia stop
update-rc.d -f pcmcia remove
/etc/init.d/ppp stop
update-rc.d -f ppp remove
/etc/init.d/exim4 stop
update-rc.d -f exim4 remove
update-rc.d -f ntpdate remove
update-inetd --disable time
update-inetd --disable daytime
update-inetd --disable echo
update-inetd --disable chargen
update-inetd --disable ident
update-inetd --disable discard
#Um inetd neu zu starten:
/etc/init.d/inetd restart
Damit die Aktiven daemons angezeigt werden:
lsof -i | grep LISTEN
Der eizige daemon sollte jetzt nur noch *:ssh sein.
12: Installation der Hauptprogramme:
Upgrade Stable zu Testing (zeitaufwendig):
apt-get upgrade
Vom System gestellte Fragen immer mit der Standartantwort (default answer) beantworten.
[reboot]
Welche versionen sind verfügbar?
apt-cache policy postfix spamassassin amavisd-new
Damit amavis in Stable Version installiert wird:
apt-get -t stable install amavisd-new
Dieser befehl installiert die zusatzmodule für den Spamassassin, razor und pyzor:
apt-get install razor pyzor
Die neuste Version von Spamassassin wird installiert mittels:
apt-get install spamassassin/testing
Die neuste Version von Postfix wird installiert mittels:
apt-get install postfix/testing
Die abfrage ob Postfix konfiguriert weden soll beantwortet man mit:
Nein
Zusätzliche module für postfix sind:
apt-get install postfix-pcre postfix-mysql postfix-ldap
13: Die installation Modifizieren:
Einige Ordner für Amavis einrichten:
mkdir /var/lib/amavis/tmp
mkdir /var/lib/amavis/db
mkdir /var/lib/amavis/var
mkdir /var/lib/amavis/home
#Amavis Rechte über /var/lib/amavis geben:
chown -R amavis:amavis /var/lib/amavis
chmod -R 750 /var/lib/amavis
ln -s /etc/amavis/amavisd.conf /etc/amavisd.conf
14: Amavis für Debian (+ update)
Ersetzen von amavis Version 20030616-p10 mit Version 2.3.2.:
amavisd-new stop
cd /usr/local/src
wget http://www.ijs.si/software/amavisd/amavisd-new-2.3.2.tar.gz
tar xzvf amavisd-new-2.3.2.tar.gz
rm amavisd-new-2.3.2.tar.gz
cp /usr/local/src/amavisd-new-2.3.2/amavisd /usr/sbin/amavisd-new-2.3.2
cp /usr/sbin/amavisd-new /usr/sbin/amavisd-new-20030616p10
cp /usr/sbin/amavisd-new-2.3.2 /usr/sbin/amavisd-new
cd /etc/amavis
mv amavisd.conf amavisd.conf-20030616p10
wget http://www200.pair.com/mecham/spam/amavisd.conf
15: Postfix konfiguration (Postfix für Debian):
Benötigt werden Postfix Beispieldateien:
cd /usr/local/src
apt-get source postfix
cp -i /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
cp -i /usr/local/src/postfix-2.2.10/conf/* /etc/postfix
cp -i /etc/postfix/header_checks /etc/postfix/body_checks
cp -i /etc/postfix/access /etc/postfix/sender_access
16: Editieren der Postfix master.cf (Download complete one)
Download einer fertigen master.cf, welche Amavis schon mit eingebunden hat:
postfix stop
cd /etc/postfix
mv master.cf master.cf-original
wget http://www200.pair.com/mecham/debian-postfix-2.2-amavisd/master.cf
17: Edit Postfix Main.cf (postconf)
Mit postconf -e kann man Postfix einstellungen eintragen oder verändern, mit postmap werden die eingetragenen Daten initialisiert und von Postfix verwendet.
postconf -e "alias_maps = hash:/etc/aliases"
postconf -e "myhostname = antispam.example.local"
postconf -e "mynetworks = 127.0.0.0/8, 192.168.xxx.0/24"
postconf -e "message_size_limit = 100485760"
postconf -e "mydestination = "
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
postconf -e "local_transport = virtual"
vi /etc/postfix/virtual
-
postmaster Postmaster@example.de
-
postmap /etc/postfix/virtual
postconf -e "relayhost = [192.168.xxx.xxx]"
postconf -e "relay_recipient_maps = hash:/etc/postfix/relay_recipients"
vi /etc/postfix/relay_recipients
-
example.de 1
@example.de ok
account@example.de
-
postmap /etc/postfix/relay_recipients
postconf -e "transport_maps = hash:/etc/postfix/transport"
vi /etc/postfix/transport
-
example.de smtp:192.168.xxx.xxx:25
-
postmap /etc/postfix/transport
postconf -e "relay_domains = example.de"
postconf -e "recipient_delimiter = "
#Router IP
postconf -e "proxy_interfaces = 192.168.xxx.xxx"
18: Postfix-Amavis Antispam
Postfix mitteilen, dass er amavisd-new auf port 10024 nutzen soll:
postfix stop
postconf -e "content_filter = smtp-amavis:[127.0.0.1]:10024"
postfix start
postfix reload
19: Configuring amavisd-new:
Orginal Konfiguration sichern:
cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-2.3.2-original
Zeilen suchen und ggf. ändern:
vi /etc/amavis/amavisd.conf
-
$mydomain = example.local';
$myhostname = 'antispam. example.local';
@bypass_virus_checks_maps = (1); #uncomment the line (disable VS)
@local_domains_maps = ( [".$mydomain" , '.example.de'] );
@mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10
192.168.xxx.xxx/24); # default
#$final_virus_destiny = D_DISCARD; # (defaults to D_DISCARD)
$final_virus_destiny = D_PASS; # (defaults to D_DISCARD)
$final_banned_destiny = D_PASS; # (defaults to D_BOUNCE)
$final_spam_destiny = D_PASS; # (defaults to D_BOUNCE)
$final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested
$mailfrom_notify_admin = "postmaster\@$mydomain";
$mailfrom_notify_recip = "postmaster\@$mydomain";
$mailfrom_notify_spamadmin = "postmaster\@$mydomain";
$hdrfrom_notify_sender = "amavisd-new <postmaster\@$mydomain>"; # without#
$virus_quarantine_to = 'virus-quarantine';
$banned_quarantine_to = undef;
$bad_header_quarantine_to = undef;
$spam_quarantine_to = undef;
$banned_filename_re = new_RE section
#Aussuchen, welch Files Banned sind
...
…
…
$recipient_delimiter = undef;
$sa_kill_level_deflt = undef;
$sa_tag_level_deflt = -9999.9;
$sa_local_tests_only = 0;
$sa_spam_subject_tag = 'Spam >';
$sa_tag2_level_deflt = 2.5;
-
Die neue Konfiguration auch sichern:
cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-10apr06
20: Pyzor, Razor and SpamAssassin configuration:
Pyzor configuration:
chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord
updatedb
??chmod -R a+rX /usr/lib/python2.3/site-packages/pyzor
chmod -R a+rX /usr/lib/site-python/pyzor
pyzor discover
su amavis -c 'pyzor discover'
pyzor ping
su amavis -c 'pyzor ping'
Syntax der local.cf überprüfen:
spamassassin --lint -D
cp -ir /root/.spamassassin /root/.spamassassin-backup
cp -ir /root/.spamassassin /var/lib/amavis
User_prefs einrichten (user-wide settings):
rm /root/.spamassassin/user_prefs
ln -s /var/lib/amavis/.spamassassin/user_prefs /root/.spamassassin/user_prefs
cd
rm /etc/razor/razor-agent.conf
razor-admin -create
razor-admin -register
vi /root/.razor/razor-agent.conf
-
debuglevel = 0
-
cp -r /root/.razor /var/lib/amavis
chown -R amavis:amavis /var/lib/amavis
vi /etc/spamassassin/local.cf
-
bayes_path /var/lib/amavis/.spamassassin/bayes
auto_whitelist_path /var/lib/amavis/.spamassassin/auto-whitelist
#Eintragen, welche Adressen nicht als Spam erkannt werden dürfen (-100.0)
whitelist_from spam-bin@example.com
#Eintargen, welche Adressen als Spam erkannt werden sollen (+100.0)
Blacklist_from xxx@xxx.de
Lock_method flock
bayes_auto_learn_threshold_nonspam -0.1
score BAYES_00 -2.500
score BAYES_05 -2.000
score BAYES_20 -1.700
score BAYES_40 -0.600
score BAYES_60 1.500
score BAYES_80 2.000
score BAYES_95 2.500
score BAYES_99 3.000
score RAZOR2_CF_RANGE_51_100 1.500
score URIBL_WS_SURBL 2.000
score URIBL_PH_SURBL 2.500
score RCVD_IN_SORBS_HTTP 1.000
score RCVD_IN_SBL 1.000
score RCVD_IN_NJABL_PROXY 1.000
score RCVD_IN_SORBS_MISC 0.500
score RCVD_IN_BL_SPAMCOP_NET 2.000
score RCVD_IN_NJABL_SPAM 2.200
score HTML_WEB_BUGS 1.500
-
Aktivieren der Plugins von Spamassassin:
vi /etc/spamassassin/v310.pre
-
loadplugin Mail::SpamAssassin:lugin:CC
loadplugin Mail::SpamAssassin:lugin::Razor2
-
Rechte von Amavis erneuern:
chown -R amavis:amavis /var/lib/amavis
chmod -R 750 /var/lib/amavis
su amavis -c 'sa-learn --sync'
su amavis -c 'spamassassin --lint -D'
chown -R amavis:amavis /var/lib/amavis
21: DCC installieren
cd /usr/local/src
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc- [tab]
./configure --with-uid=amavis && make && make install
cdcc "delete 127.0.0.1"
cdcc "delete 127.0.0.1 Greylist"
cd
ln -s /var/dcc/libexec/cron-dccd /usr/bin/cron-dccd
cdcc info
crontab -e
43 11 * * * /usr/bin/cron-dccd
su amavis -c 'spamassassin --lint -D'
amavisd-new stop
amavisd-new debug-sa
strg+c
[reboot]
22: ClamAV installieren und in amavisd-new integrieren
vi /etc/apt/sources.list
- wichtig
deb http://volatile.debian.net/debian-volatile sarge/volatile main
-
apt-get update
apt-get -t sarge install clamav clamav-daemon
gpasswd -a clamav amavis
vi /etc/amavis/amavisd.conf
-
# bypass viruschecks
$first_infected_stops_scan = 1; #uncomment
@av_scanners = (['ClamAV-clamd', +4 Zeilen # uncomment
-
Freshclam einstellen, so daß er am Tag 12 (alle 2 std) Virussignaturen einholt:
freshclam -d -c 12
[reboot]
amavisd-new stop
/etc/init.d/clamav-daemon stop
/etc/init.d/clamav-daemon start
amavisd-new start
Hat Amavis clamAV geladen?
tail -f /var/log/mail.log
23: Bitdefender installieren (antivirus)
cd /usr/local/src
wget http://download.bitdefender.com/linux/free/bitdefender-console/en/BitDefender-Console-Antivirus-7.1-3.linux-gcc3x.i586.deb
dpkg -i BitDefender-Console-Antivirus-7.1-3.linux-gcc3x.i586.deb
bdc -update
crontab -e
50 * * * * /usr/bin/bdc --update > /dev/null # mm e.g. 50
vi /etc/amavis/amavisd.conf
-
### http://www.bitdefender.com/
['BitDefender', 'bdc',
'--all --arc --mail {}', qr/^Infected files *:0+(?!\d)/,
qr/^(?:Infected files|Identified viruses|Suspect files) *:0*[1-9]/,
qr/(?:suspected|infected): (.*)(?:\033|$)/ ],
-
amavisd-new reload
tail -f /var/log/mail.log
------------------------------------------------------------------------
------------------------------------------------------------------------
3. Zusatzinstalltionen & Konfigurationen
How-to rules_du_jour (additional Spamassassin rules):
Das Ruleset Program runterladen, ausführbar machen und sich eine config Datei dafür erstellen.
cd /usr/local/sbin
wget http://sandgnat.com/rdj/rules_du_jour
chmod +x /usr/local/sbin/rules_du_jour
mkdir /etc/rulesdujour
touch /etc/rulesdujour/config
vi /etc/rulesdujour/config
-
TRUSTED_RULESETS="TRIPWIRE SARE_ADULT SARE_OBFU0 SARE_OBFU1 SARE_URI0 SARE_URI1 BLACKLIST RANDOMVAL SARE_BML SARE_RATWARE SARE_SPOOF SARE_OEM SARE_REDIRECT SARE_HIGHRISK"
-
rules_du_jour starten
rules_du_jour
Ein Cronjob erstellen, damit zu einem zeitpunkt die Regeln erneuert werden (Täglich um 2.33 Uhr)
crontab -e
-
33 2 * * * /usr/local/sbin/rules_du_jour
-
Postfix Virtuelle Domain & 2 Mailboxen (whitelist & blacklist)
Die folgenden Zeilen müssen in die main.cf eingetragen werden:
vi /etc/postfix/main.cf
-
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = /var/mail/virtual_domains
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
-
Den Später verwendeten Ordner für die Emails erstellen:
mkdir /var/mail/vhosts
mkdir /var/mail/vhosts/spamcheck.local
In die virtual_domains muss man den virtuellen Domainnamen eintragen:
vi /var/mail/virtual_domains
-
antispam.example.local 1
-
postmap /var/mail/virtual_domains
In die vmailbox muss man die virtuellen localen Mailboxen und Pfade eintragen:
vi /etc/postfix/vmailbox
-
whitelist@antispam.example.local spamcheck.local/whitelist/
blacklist@antispam.example.local spamcheck.local/blacklist/
-
postmap /etc/postfix/vmailbox
mkdir /var/mail/vhosts/spamcheck.local/whitelist
mkdir /var/mail/vhosts/spamcheck.local/blacklist
mkdir /var/mail/vhosts/spamcheck.local/root
Die Rechte für die Ordner müssen noch vergeben werden:
WinSCP3 rechtemaus
Den Telnet daemon installieren (telnetd)
apt-cache search telnetd
nicht Vorhanden?
update
apt-cache search telnetd
Vorhanden:
apt-get install telnetd
Installation Pure-ftpd server (Superserver):
vi /etc/apt/preferences
-
Package: *
Pin: release a=stable
Pin-Priority: 750
-
apt-get update
apt-get install pure-ftpd
cd /usr/local/sbin/
touch pure-start
vi pure-start
-
pure-ftpd -B -a 1001 -4 -k 90 -u 100 -c 20 -C 8 -I 5 -b -E -D -r -j -l puredb:/etc/pure-ftpd/pureftpd.pdb
-
chmod a+x pure-start
pure-start
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpusers
mkdir /home/ftpusers
chown ftpusers:ftpgroup /home/ftpusers
pure-pw useradd ftpuser -u ftpusers -D /home/ftpusers/ftpuser
pure-pw mkdb
pure-pw list
pure-pw show ftpuser
pure-pw usermod ftpuser -N 500 -T 60 -t 30 -y 5 -m
pure-pwconvert
pure-pwconvert >> /etc/pureftpd.passwd
pure-pw mkdb
vi /etc/inetd.conf (Rauten)
-
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
-
mkdir /home/ftpusers/ftpuser
Manueller Serverstart mittels:
pure-start
Sa-Learn (Spamassassin falsche Spam und Ham lernen lassen)
Erstellen des Scripts:
touch /usr/local/sbin/sascript
Im Script soll erst “gelernt” werden und anschließend der inhalt gelöscht.
vi /usr/local/sbin/sascript
-
sa-learn --spam /var/mail/vhosts/spamcheck.local/blacklist/new/
sa-learn --ham /var/mail/vhosts/spamcheck.loc/whitelist/new/
su amavis -c 'sa-learn --sync'
rm -f /var/mail/vhosts/spamcheck.local/blacklist/new/*
rm -f /var/mail/vhosts/spamcheck.local/whitelist/new/*
-
cd /usr/local/sbin
chmod +x /usr/local/sbin/sascript
sascript
crontab -e
-
59 * * * * /usr/local/sbin/sascript
-
--------------------------------------------------------------------
--------------------------------------------------------------------
4. Nach der Installation
Locate:
Um mit dem befehl
locate
Alle Dateien im System zu finden, muß der der folgende befehl ausgeführt werden:
updatedb
IP und Gateway Änderungen:
vi /etc/network/interfaces
-
# /etc/network/interfaces -- configuration file
# The loopback interface
auto lo
iface lo inet loopback
# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.1.2 # < Die IP Adresse
netmask 255.255.255.0 # < Die Netmask
network 192.168.1.0 # < Das Netz
broadcast 192.168.1.255 # < Die Broadcast Adresse
gateway 192.168.1.254 # < Der Default Gateway
-
Und anschliessend die neuer Werte mit folgendem Befehl uebernehmen:
/etc/init.d/networking restart
Die IP, Gw, DNS einstellungen überprüfen in:
vi /etc/resolv.conf
vi /etc/hosts
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Ende ^^
Lange Rede kurzer Sinn.
Die Maschiene Funktioniert, vielleicht findet ihr heraus, warum sie jedoch manchmal so langsam funktioniert
Gut ne hab ich alles selber gemacht ohne persönliche hilfe ^^
So jetzt sogar überarbeitet:
1. Die Punkte Stimmen jetzt überein
Weite anmerkungen erwünscht
Was ist Postfix?
Postfix ist der im Mailsystem verwendete MTA (Mail Transfer Agent).
Ein MTA übernimmt den Transport von E-Mails. Postfix benutzt, wie auch MTAs das Protokoll SMTP.
Was ist amavisd-new?
AMaViS (A Mail Virus Scanner) ist ein Virus-Scanner für Emails. Es ist sehr weit verbreitet. AMaViS ist ein Perl-Skript, welches mit den verbreiteten Mailservern zusammenarbeitet (z.B. postfix), die Mails entgegennimmt und diese durch konfigurierte Virenscanner schickt (z.B. clamav, bitdefender). Mails, welche die Tests bestanden haben, werden danach weiter zugestellt, virus-verseuchte Mails gehen in einen Quarantäne-Ordner. AMaViS besitzt die Fähigkeit, gepackte Mailanhänge vor dem Scannen auszupacken. AMaViS kann nicht nur nach Viren, sondern auch nach Spam suchen. Wenn SpamAssassin installiert ist, braucht man ihn nicht per Postfix einzubinden, sondern lässt Spam ähnlich wie Viren von amavisd handhaben lassen.
Was ist ClamAv?
ClamAV (Clam AntiVirus) ist ein Antivirusprogramm. Er arbeitet im Mailsystem als Virenscanner und Phishing-Filter(gegen Mailwürmern, Phishing-E-Mails). Bei ClamAV handelt es sich um eine Bibliothek, die in eigene Software integriert werden kann (Daemon).
Was ist Bitdefender?
s.o. ähnlich wie ClamAv.
Was ist Spamassassin?
SpamAssassin ist ein Email-filterprogramm, welches ungewünschte E-Mails automatisch aussortieren kann.
Das Programm gibt jeder E-Mail nach bestimmten Regeln Punkte, die anzeigen, wie hoch die Spamwahscheinlichkeit bei der Email ist. Bei Überschreiten dieses Schwellenwertes wird die E-Mail als Spam markiert, sowie der „X-Spam-Flag“ auf „YES“ gesetzt.
Maßgebende Kriterien für die Punktevergabe bei Spamassassin sind:
• Statische Regeln, die nach Regulären Ausdrücken, welche typischer Weise in Spammails vorkommen, suchen
• Abfrage von Realtime Blackhole Lists (Schwarzes Brett der Spammer)
• Abfrage von „Collaborative Filtering Networks“ mittels Razor, Pyzor, DCC (Netzwerke welche Mails als Spam stufen)
• Bayes'scher-Filter, der eine statische Wahrscheinlichkeit berechnet, auf der Basis der bisher als Spam deklarierten Mails. Nach dieser Wahrscheinlichkeit wird überprüft ob es sich in der Mail um Spam oder Ham handelt. (Spam = Ungewollte Mails; Ham = Gewollte Mails)
Spamassassin hat zusätzlich zu der automatischen Punktevergabe eine Manuelle und eine Black- bzw. Whitelist. In der Manuellen Punktevergabe kann der Benutzer sich und seiner Umgebung vor Spam schützen, indem er einzelne (in Spam vorkommenden) Wörter oder Sätze mit einem selbst bestimmten Punktewert deklariert. Die manuell eingetragenen Black- und Whitelisten dienen dazu einzelne User oder Domains als Spam (Blacklist) oder als Ham (Whitelist) zu bestimmen.
1. Debian Installation
Hardware Vorraussetzung für Antispam sollten ein Pentium 233Mhz mit 256MB RAM sein (ca. 2500 Mails/Tag). Der Festplattenspeicher sollte mindestens 600 MB betragen.
Installiert wird ohne Graphische Oberfläche, also ohne GUI. Zunächst einmal wird die Net-Install CD benötigt. Die benötigte Version erhält man unter:
http://www.debian.org/devel/debian-installer/index
Nachdem das Image runtergeladen und gebrannt wurde legt man es ins Laufwerk ein und Bootet von der CD aus.
Die ersten Abfragen des Systems sind:
choose a language:
german - Deutsch
Land oder Gebiet wählen:
Deutschland
Wählen sie Ihre Tastaturbelegung aus:
Deutsch
Man sollte das Internetkabel jetzt vom Gerät entfernen, da es nicht über DHCP konfiguriert werden soll.
Daraufhin wählt man im nächsten Menü
Netzwerk manuell einrichten
aus.
IP-Adresse:
192.168.xxx.xxx
Netzmaske:
255.255.255.0
Gateway:
192.168.xxx.xxx
Adresse des DNS Servers:
192.168.xxx.xxx
Rechnername
antispam
Domainname:
example.local
Festplatten Partitionieren:
Gesamtes Laufwerk löschen: . . .
Partitionsschema:
Alle Dateien auf eine Partition
Partitionierung beenden und änderungen übernhmen
Änderungen auf die Festplatte schreiben?
Ja
Daraufhin wird das Debain Grundsystem installiert.
Den Grub-Bootloader in den Master Boot Record installieren?
Ja
CD entfernen
Weiter
Es wird Neugestartet.
Willkommen bei ihrem neuen Debian System
Ok
Ist die Hardware-Uhr auf GMT gesetzt?
Nein
Befinden sie sich in der Zeitzone . . .
Ja
Root-Passwort
**********
Nochmals zur Bestätigung
**********
Geben sie den vollen Namen für den Neuen Benutzer ein:
example
Geben sie den Benutzernamen für Ihr Konto ein:
example
Passwort für den neuen Benutzer:
**********
Nochmals zur Bestätigung:
**********
Apt Konfiguration
http
Land des Spielgel-Servers
Deutschland
Wählen sie einen Spiegelserver aus:
Xxxxxx
Daten Ihres http Proxys:
. . . (keine)
Debian Software Auswahl:
Wählen Sie Software aus die Installiert werden soll:
Keine Veränderungen vornehmen einfach nur
OK
Exim4 Konfiguration
Keine Konfiguration zum jetztigen Zeitpunkt
Soll das Emailsystem wirklich nicht konfiguriert werden?
Ja
Empfänger der Mails für Root und Postmaster:
. . .
OK
Debian System Konfiguration
Setup des Debian System ist komplett
OK
--------------------------------------------------------------------
--------------------------------------------------------------------
2. Debian Programm Installation & Konfiguration
1: System Uhrzeit richtig setzen:
apt-get install ntpdate ssh
setze CMOS Zeit gleich der Systemzeit:
hwclock --systohc
2: Konfiguriere Locales:
Um die Tatatureinstellungen festzulegen:
dpkg-reconfigure locales
[*] de_DE@euro ISO-8859-15
OK
Which locale should be the default in the system environment?
de_DE@euro
[reboot]
3: Grundprogramme installieren, deinstallation:
apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev libberkeleydb-perl vim lynx ncftp bzip2 unzip perl-doc libwww-perl ntp-simple zlib1g-dev unzoo arj zip lzop nomarch arc zoo ftp lsof less libdbi-perl libmail-spf-query-perl libconvert-binhex-perl gcc make autoconf automake1.7 libtool flex bison libldap2 libcompress-zlib-perl dnsutils rblcheck pax libmail-spf-query-perl libdbi-perl libnet-ident-perl cabextract
apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent
Abfragen immer mit JA beantworten.
4: Nachprüfen von Systemeinstellungen:
vi /etc/resolv.conf
Steht der Domainname in folgender Form da?
search example.local
Ist der Nameserver darunter richtig eingetragen?
nameserver 192.168.xxx.xxx
(Eintrag im DNS-Server)
vi /etc/hosts
Die ersten zwei zeilen sollten wie folgt aussehen:
127.0.0.1 localhost.localdomain localhost
192.168.xxx.xxx antispam.example.local antispam
[reboot]
5: Apt settings
Da Packete aus der Testing benötigt werden, muss man diese noch in die Apt-settings hinzufügen (später wird diese Einstellung wieder auf default=stable gestellt):
vi /etc/apt/preferences
-
Package: *
Pin: release a=testing
Pin-Priority: 600
Package: *
Pin: release a=stable
Pin-Priority: 550
Package: *
Pin: release a=unstable
Pin-Priority: 400
-
6: Backup der Sourcedatei / editieren der Sourcedatei
Um sicher zu gehen, dass die zusätzlichen Packete installiert werden können muss man sie noch in die source.list eintragen.
Sie sollte danach wie Folgt aussehen (hier am Beispiel vom http-Spiegel rwth-aachen):
cp /etc/apt/sources.list /etc/apt/sources.backup
vi /etc/apt/sources.list
-
#deb file:///cdrom/ sarge main
deb http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ stable main non-free contrib
deb-src http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ stable main
deb http://security.debian.org/ stable/updates main
deb http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ testing main non-free contrib
deb-src http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ testing main
deb http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ unstable main non-free contrib
deb-src http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ unstable main
deb http://security.debian.org/ testing/updates main
deb http://volatile.debian.net/debian-volatile sarge/volatile main
-
7: installation von Zusatzprogrammen:
apt-get update
apt-get install lha unrar unarj
8: Update Kernel (nicht unbedingt nötig):
(
Um herauszufinden, welche Kernelversion auf dem System existiert:
uname -r
Suche nach dem neusten Kernel:
apt-cache search kernel-image-2.6
Installation des neusten Kernels:
apt-get install kernel-image-2.x...
)
[reboot]
9: Firewall Regeln
In diesen Firewall Regeln werden nur folgende Ports offen gelassen, sowie der Netzinterne verkehr:
TCP Port 21 (FTP)
TCP Port 22 (SSH)
TCP Port 23 (Telnet)
TCP Port 25 (SMTP)
TCP Port 53 (DNS)
UDP Port 53 (DNS)
TCP Port 80 (HTTP)
TCP Port 7 (Razor)
TCP Port 2703 (Razor)
TCP Port 24441 (Pyzor)
UDP Port 6277 (DCC)
TCP Port 514 (Syslog)
TCP Port 123 (NTPd)
UDP Port 123 (NTPd)
#//Pc Interne Port Freigabe
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT
#//--state new
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#//Eingehende FTP Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 21 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende SSH Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 22 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Telnet Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 23 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende SMTP Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 25 --sport 1024:65535 -m state --state NEW -j ACCEPT
#//Eingehende DNS Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 53 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 53 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende HTTP Verbindung erlauben (Zum download spezifischer SARules)
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Razor Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 7 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 2703 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende pyzor Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p tcp --dport 24441 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Webmin Verbindung erlauben
#//Pakete vom Client zum Server
#iptables -A INPUT -p tcp --dport 10000 --sport 1024:65535 -m state --state NEW,ESTABLISHED –j #DROP
#//Pakete vom Client zum Server
#iptables -A INPUT -p udp --dport 10000 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j #DROP
#//Eingehende DCC Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p udp --dport 6277 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende Syslog Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p udp --dport 514 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Eingehende NTP DAEMON Verbindung erlauben
#//Pakete vom Client zum Server
iptables -A INPUT -p udp --dport 123 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//NTP daemon
iptables -A INPUT -p tcp --dport 123 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#//Policy setzen - es wird alles verworfen
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables-save > /etc/firewall-rules
iptables-restore < /etc/firewall-rules
Um die Regeln nach der änderung anzeigen zu lassen:
iptables –L
10: Firewall Regeln eintragen:
vi /etc/network/interfaces
Folgendes genau unter der Zeile "iface lo inet loopback":
-
pre-up iptables-restore < /etc/firewall-rules
-
[reboot]
11: Deaktivieren von nicht genutzten Daemons:
Um die Arbeitenden Prozesse anzeigen zu lassen (nicht unbedingt notwendig):
top
ps afx
ps afxl
ps –A
ls -F /etc/rc2.d
lsof -i | grep LISTEN
grep -v "^#" /etc/inetd.conf | sort -u
netstat -pn -l -A inet
netstat -pn -l inet
lsconfig ist ein Script um anzuzeigen zu lassen was alles an Programmen auf dem PC ist:
cd /usr/bin
wget http://www200.pair.com/mecham/debian/lsconfig
chmod +x /usr/bin/lsconfig
lsconfig
Backup der init scripts:
cp -r /etc/init.d /etc/init.d-original
#Um die Daemons nun zu Stoppen und Deaktivieren:
/etc/init.d/lpd stop
update-rc.d -f lpd remove
/etc/init.d/nfs-common stop
update-rc.d -f nfs-common remove
/etc/init.d/portmap stop
update-rc.d -f portmap remove
/etc/init.d/pcmcia stop
update-rc.d -f pcmcia remove
/etc/init.d/ppp stop
update-rc.d -f ppp remove
/etc/init.d/exim4 stop
update-rc.d -f exim4 remove
update-rc.d -f ntpdate remove
update-inetd --disable time
update-inetd --disable daytime
update-inetd --disable echo
update-inetd --disable chargen
update-inetd --disable ident
update-inetd --disable discard
#Um inetd neu zu starten:
/etc/init.d/inetd restart
Damit die Aktiven daemons angezeigt werden:
lsof -i | grep LISTEN
Der eizige daemon sollte jetzt nur noch *:ssh sein.
12: Installation der Hauptprogramme:
Upgrade Stable zu Testing (zeitaufwendig):
apt-get upgrade
Vom System gestellte Fragen immer mit der Standartantwort (default answer) beantworten.
[reboot]
Welche versionen sind verfügbar?
apt-cache policy postfix spamassassin amavisd-new
Damit amavis in Stable Version installiert wird:
apt-get -t stable install amavisd-new
Dieser befehl installiert die zusatzmodule für den Spamassassin, razor und pyzor:
apt-get install razor pyzor
Die neuste Version von Spamassassin wird installiert mittels:
apt-get install spamassassin/testing
Die neuste Version von Postfix wird installiert mittels:
apt-get install postfix/testing
Die abfrage ob Postfix konfiguriert weden soll beantwortet man mit:
Nein
Zusätzliche module für postfix sind:
apt-get install postfix-pcre postfix-mysql postfix-ldap
13: Die installation Modifizieren:
Einige Ordner für Amavis einrichten:
mkdir /var/lib/amavis/tmp
mkdir /var/lib/amavis/db
mkdir /var/lib/amavis/var
mkdir /var/lib/amavis/home
#Amavis Rechte über /var/lib/amavis geben:
chown -R amavis:amavis /var/lib/amavis
chmod -R 750 /var/lib/amavis
ln -s /etc/amavis/amavisd.conf /etc/amavisd.conf
14: Amavis für Debian (+ update)
Ersetzen von amavis Version 20030616-p10 mit Version 2.3.2.:
amavisd-new stop
cd /usr/local/src
wget http://www.ijs.si/software/amavisd/amavisd-new-2.3.2.tar.gz
tar xzvf amavisd-new-2.3.2.tar.gz
rm amavisd-new-2.3.2.tar.gz
cp /usr/local/src/amavisd-new-2.3.2/amavisd /usr/sbin/amavisd-new-2.3.2
cp /usr/sbin/amavisd-new /usr/sbin/amavisd-new-20030616p10
cp /usr/sbin/amavisd-new-2.3.2 /usr/sbin/amavisd-new
cd /etc/amavis
mv amavisd.conf amavisd.conf-20030616p10
wget http://www200.pair.com/mecham/spam/amavisd.conf
15: Postfix konfiguration (Postfix für Debian):
Benötigt werden Postfix Beispieldateien:
cd /usr/local/src
apt-get source postfix
cp -i /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
cp -i /usr/local/src/postfix-2.2.10/conf/* /etc/postfix
cp -i /etc/postfix/header_checks /etc/postfix/body_checks
cp -i /etc/postfix/access /etc/postfix/sender_access
16: Editieren der Postfix master.cf (Download complete one)
Download einer fertigen master.cf, welche Amavis schon mit eingebunden hat:
postfix stop
cd /etc/postfix
mv master.cf master.cf-original
wget http://www200.pair.com/mecham/debian-postfix-2.2-amavisd/master.cf
17: Edit Postfix Main.cf (postconf)
Mit postconf -e kann man Postfix einstellungen eintragen oder verändern, mit postmap werden die eingetragenen Daten initialisiert und von Postfix verwendet.
postconf -e "alias_maps = hash:/etc/aliases"
postconf -e "myhostname = antispam.example.local"
postconf -e "mynetworks = 127.0.0.0/8, 192.168.xxx.0/24"
postconf -e "message_size_limit = 100485760"
postconf -e "mydestination = "
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
postconf -e "local_transport = virtual"
vi /etc/postfix/virtual
-
postmaster Postmaster@example.de
-
postmap /etc/postfix/virtual
postconf -e "relayhost = [192.168.xxx.xxx]"
postconf -e "relay_recipient_maps = hash:/etc/postfix/relay_recipients"
vi /etc/postfix/relay_recipients
-
example.de 1
@example.de ok
account@example.de
-
postmap /etc/postfix/relay_recipients
postconf -e "transport_maps = hash:/etc/postfix/transport"
vi /etc/postfix/transport
-
example.de smtp:192.168.xxx.xxx:25
-
postmap /etc/postfix/transport
postconf -e "relay_domains = example.de"
postconf -e "recipient_delimiter = "
#Router IP
postconf -e "proxy_interfaces = 192.168.xxx.xxx"
18: Postfix-Amavis Antispam
Postfix mitteilen, dass er amavisd-new auf port 10024 nutzen soll:
postfix stop
postconf -e "content_filter = smtp-amavis:[127.0.0.1]:10024"
postfix start
postfix reload
19: Configuring amavisd-new:
Orginal Konfiguration sichern:
cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-2.3.2-original
Zeilen suchen und ggf. ändern:
vi /etc/amavis/amavisd.conf
-
$mydomain = example.local';
$myhostname = 'antispam. example.local';
@bypass_virus_checks_maps = (1); #uncomment the line (disable VS)
@local_domains_maps = ( [".$mydomain" , '.example.de'] );
@mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10
192.168.xxx.xxx/24); # default
#$final_virus_destiny = D_DISCARD; # (defaults to D_DISCARD)
$final_virus_destiny = D_PASS; # (defaults to D_DISCARD)
$final_banned_destiny = D_PASS; # (defaults to D_BOUNCE)
$final_spam_destiny = D_PASS; # (defaults to D_BOUNCE)
$final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested
$mailfrom_notify_admin = "postmaster\@$mydomain";
$mailfrom_notify_recip = "postmaster\@$mydomain";
$mailfrom_notify_spamadmin = "postmaster\@$mydomain";
$hdrfrom_notify_sender = "amavisd-new <postmaster\@$mydomain>"; # without#
$virus_quarantine_to = 'virus-quarantine';
$banned_quarantine_to = undef;
$bad_header_quarantine_to = undef;
$spam_quarantine_to = undef;
$banned_filename_re = new_RE section
#Aussuchen, welch Files Banned sind
...
…
…
$recipient_delimiter = undef;
$sa_kill_level_deflt = undef;
$sa_tag_level_deflt = -9999.9;
$sa_local_tests_only = 0;
$sa_spam_subject_tag = 'Spam >';
$sa_tag2_level_deflt = 2.5;
-
Die neue Konfiguration auch sichern:
cp /etc/amavis/amavisd.conf /etc/amavis/amavisd.conf-10apr06
20: Pyzor, Razor and SpamAssassin configuration:
Pyzor configuration:
chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord
updatedb
??chmod -R a+rX /usr/lib/python2.3/site-packages/pyzor
chmod -R a+rX /usr/lib/site-python/pyzor
pyzor discover
su amavis -c 'pyzor discover'
pyzor ping
su amavis -c 'pyzor ping'
Syntax der local.cf überprüfen:
spamassassin --lint -D
cp -ir /root/.spamassassin /root/.spamassassin-backup
cp -ir /root/.spamassassin /var/lib/amavis
User_prefs einrichten (user-wide settings):
rm /root/.spamassassin/user_prefs
ln -s /var/lib/amavis/.spamassassin/user_prefs /root/.spamassassin/user_prefs
cd
rm /etc/razor/razor-agent.conf
razor-admin -create
razor-admin -register
vi /root/.razor/razor-agent.conf
-
debuglevel = 0
-
cp -r /root/.razor /var/lib/amavis
chown -R amavis:amavis /var/lib/amavis
vi /etc/spamassassin/local.cf
-
bayes_path /var/lib/amavis/.spamassassin/bayes
auto_whitelist_path /var/lib/amavis/.spamassassin/auto-whitelist
#Eintragen, welche Adressen nicht als Spam erkannt werden dürfen (-100.0)
whitelist_from spam-bin@example.com
#Eintargen, welche Adressen als Spam erkannt werden sollen (+100.0)
Blacklist_from xxx@xxx.de
Lock_method flock
bayes_auto_learn_threshold_nonspam -0.1
score BAYES_00 -2.500
score BAYES_05 -2.000
score BAYES_20 -1.700
score BAYES_40 -0.600
score BAYES_60 1.500
score BAYES_80 2.000
score BAYES_95 2.500
score BAYES_99 3.000
score RAZOR2_CF_RANGE_51_100 1.500
score URIBL_WS_SURBL 2.000
score URIBL_PH_SURBL 2.500
score RCVD_IN_SORBS_HTTP 1.000
score RCVD_IN_SBL 1.000
score RCVD_IN_NJABL_PROXY 1.000
score RCVD_IN_SORBS_MISC 0.500
score RCVD_IN_BL_SPAMCOP_NET 2.000
score RCVD_IN_NJABL_SPAM 2.200
score HTML_WEB_BUGS 1.500
-
Aktivieren der Plugins von Spamassassin:
vi /etc/spamassassin/v310.pre
-
loadplugin Mail::SpamAssassin:lugin:CC
loadplugin Mail::SpamAssassin:lugin::Razor2
-
Rechte von Amavis erneuern:
chown -R amavis:amavis /var/lib/amavis
chmod -R 750 /var/lib/amavis
su amavis -c 'sa-learn --sync'
su amavis -c 'spamassassin --lint -D'
chown -R amavis:amavis /var/lib/amavis
21: DCC installieren
cd /usr/local/src
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc- [tab]
./configure --with-uid=amavis && make && make install
cdcc "delete 127.0.0.1"
cdcc "delete 127.0.0.1 Greylist"
cd
ln -s /var/dcc/libexec/cron-dccd /usr/bin/cron-dccd
cdcc info
crontab -e
43 11 * * * /usr/bin/cron-dccd
su amavis -c 'spamassassin --lint -D'
amavisd-new stop
amavisd-new debug-sa
strg+c
[reboot]
22: ClamAV installieren und in amavisd-new integrieren
vi /etc/apt/sources.list
- wichtig
deb http://volatile.debian.net/debian-volatile sarge/volatile main
-
apt-get update
apt-get -t sarge install clamav clamav-daemon
gpasswd -a clamav amavis
vi /etc/amavis/amavisd.conf
-
# bypass viruschecks
$first_infected_stops_scan = 1; #uncomment
@av_scanners = (['ClamAV-clamd', +4 Zeilen # uncomment
-
Freshclam einstellen, so daß er am Tag 12 (alle 2 std) Virussignaturen einholt:
freshclam -d -c 12
[reboot]
amavisd-new stop
/etc/init.d/clamav-daemon stop
/etc/init.d/clamav-daemon start
amavisd-new start
Hat Amavis clamAV geladen?
tail -f /var/log/mail.log
23: Bitdefender installieren (antivirus)
cd /usr/local/src
wget http://download.bitdefender.com/linux/free/bitdefender-console/en/BitDefender-Console-Antivirus-7.1-3.linux-gcc3x.i586.deb
dpkg -i BitDefender-Console-Antivirus-7.1-3.linux-gcc3x.i586.deb
bdc -update
crontab -e
50 * * * * /usr/bin/bdc --update > /dev/null # mm e.g. 50
vi /etc/amavis/amavisd.conf
-
### http://www.bitdefender.com/
['BitDefender', 'bdc',
'--all --arc --mail {}', qr/^Infected files *:0+(?!\d)/,
qr/^(?:Infected files|Identified viruses|Suspect files) *:0*[1-9]/,
qr/(?:suspected|infected): (.*)(?:\033|$)/ ],
-
amavisd-new reload
tail -f /var/log/mail.log
------------------------------------------------------------------------
------------------------------------------------------------------------
3. Zusatzinstalltionen & Konfigurationen
How-to rules_du_jour (additional Spamassassin rules):
Das Ruleset Program runterladen, ausführbar machen und sich eine config Datei dafür erstellen.
cd /usr/local/sbin
wget http://sandgnat.com/rdj/rules_du_jour
chmod +x /usr/local/sbin/rules_du_jour
mkdir /etc/rulesdujour
touch /etc/rulesdujour/config
vi /etc/rulesdujour/config
-
TRUSTED_RULESETS="TRIPWIRE SARE_ADULT SARE_OBFU0 SARE_OBFU1 SARE_URI0 SARE_URI1 BLACKLIST RANDOMVAL SARE_BML SARE_RATWARE SARE_SPOOF SARE_OEM SARE_REDIRECT SARE_HIGHRISK"
-
rules_du_jour starten
rules_du_jour
Ein Cronjob erstellen, damit zu einem zeitpunkt die Regeln erneuert werden (Täglich um 2.33 Uhr)
crontab -e
-
33 2 * * * /usr/local/sbin/rules_du_jour
-
Postfix Virtuelle Domain & 2 Mailboxen (whitelist & blacklist)
Die folgenden Zeilen müssen in die main.cf eingetragen werden:
vi /etc/postfix/main.cf
-
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = /var/mail/virtual_domains
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
-
Den Später verwendeten Ordner für die Emails erstellen:
mkdir /var/mail/vhosts
mkdir /var/mail/vhosts/spamcheck.local
In die virtual_domains muss man den virtuellen Domainnamen eintragen:
vi /var/mail/virtual_domains
-
antispam.example.local 1
-
postmap /var/mail/virtual_domains
In die vmailbox muss man die virtuellen localen Mailboxen und Pfade eintragen:
vi /etc/postfix/vmailbox
-
whitelist@antispam.example.local spamcheck.local/whitelist/
blacklist@antispam.example.local spamcheck.local/blacklist/
-
postmap /etc/postfix/vmailbox
mkdir /var/mail/vhosts/spamcheck.local/whitelist
mkdir /var/mail/vhosts/spamcheck.local/blacklist
mkdir /var/mail/vhosts/spamcheck.local/root
Die Rechte für die Ordner müssen noch vergeben werden:
WinSCP3 rechtemaus
Den Telnet daemon installieren (telnetd)
apt-cache search telnetd
nicht Vorhanden?
update
apt-cache search telnetd
Vorhanden:
apt-get install telnetd
Installation Pure-ftpd server (Superserver):
vi /etc/apt/preferences
-
Package: *
Pin: release a=stable
Pin-Priority: 750
-
apt-get update
apt-get install pure-ftpd
cd /usr/local/sbin/
touch pure-start
vi pure-start
-
pure-ftpd -B -a 1001 -4 -k 90 -u 100 -c 20 -C 8 -I 5 -b -E -D -r -j -l puredb:/etc/pure-ftpd/pureftpd.pdb
-
chmod a+x pure-start
pure-start
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpusers
mkdir /home/ftpusers
chown ftpusers:ftpgroup /home/ftpusers
pure-pw useradd ftpuser -u ftpusers -D /home/ftpusers/ftpuser
pure-pw mkdb
pure-pw list
pure-pw show ftpuser
pure-pw usermod ftpuser -N 500 -T 60 -t 30 -y 5 -m
pure-pwconvert
pure-pwconvert >> /etc/pureftpd.passwd
pure-pw mkdb
vi /etc/inetd.conf (Rauten)
-
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
-
mkdir /home/ftpusers/ftpuser
Manueller Serverstart mittels:
pure-start
Sa-Learn (Spamassassin falsche Spam und Ham lernen lassen)
Erstellen des Scripts:
touch /usr/local/sbin/sascript
Im Script soll erst “gelernt” werden und anschließend der inhalt gelöscht.
vi /usr/local/sbin/sascript
-
sa-learn --spam /var/mail/vhosts/spamcheck.local/blacklist/new/
sa-learn --ham /var/mail/vhosts/spamcheck.loc/whitelist/new/
su amavis -c 'sa-learn --sync'
rm -f /var/mail/vhosts/spamcheck.local/blacklist/new/*
rm -f /var/mail/vhosts/spamcheck.local/whitelist/new/*
-
cd /usr/local/sbin
chmod +x /usr/local/sbin/sascript
sascript
crontab -e
-
59 * * * * /usr/local/sbin/sascript
-
--------------------------------------------------------------------
--------------------------------------------------------------------
4. Nach der Installation
Locate:
Um mit dem befehl
locate
Alle Dateien im System zu finden, muß der der folgende befehl ausgeführt werden:
updatedb
IP und Gateway Änderungen:
vi /etc/network/interfaces
-
# /etc/network/interfaces -- configuration file
# The loopback interface
auto lo
iface lo inet loopback
# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.1.2 # < Die IP Adresse
netmask 255.255.255.0 # < Die Netmask
network 192.168.1.0 # < Das Netz
broadcast 192.168.1.255 # < Die Broadcast Adresse
gateway 192.168.1.254 # < Der Default Gateway
-
Und anschliessend die neuer Werte mit folgendem Befehl uebernehmen:
/etc/init.d/networking restart
Die IP, Gw, DNS einstellungen überprüfen in:
vi /etc/resolv.conf
vi /etc/hosts
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Ende ^^
Lange Rede kurzer Sinn.
Die Maschiene Funktioniert, vielleicht findet ihr heraus, warum sie jedoch manchmal so langsam funktioniert
Gut ne hab ich alles selber gemacht ohne persönliche hilfe ^^
So jetzt sogar überarbeitet:
1. Die Punkte Stimmen jetzt überein
Weite anmerkungen erwünscht