Article Index

Her er hvordan jeg har opbygget et par Debian baseret Exim4 antispam Gateways.

Først og fremmest skal exim4 heavy pakken installerets

# apt-get install exim4-daemon-heavy

Tilpas det navn du ønsker at serveren skal hedde i forbindelse med mail udveksling i /etc/mailname filen, dvs. hvis serveren logisk på netværket hedder server48.corp.local eller lenny.it-geek.dk, kan dette ændres til smtp.net-help.dk f.eks.

# vi /etc/mailname

smtp.net-help.dk

Herefter skal selve exim4 konfigureres, hvilket sker i /etc/exim4/update-exim4.conf.conf filen

# vi /etc/exim4/update-exim4.conf.conf

Default vil der stå noget al'a:

dc_eximconfig_configtype='local'
dc_other_hostnames='lenny.it-geek'
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

Det ændre jeg normalt til:

dc_eximconfig_configtype='internet'
dc_other_hostnames='lenny.it-geek.dk'
dc_local_interfaces='127.0.0.1.25;192.168.1.3.25;9x.8x.7x.6x.25'
dc_readhost=''
dc_relay_domains='net-help.dk;it-geek.dk;it-nerd.dk'
dc_minimaldns='false'
dc_relay_nets='192.168.1.0/24'
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_home'

Et par enkelte kommentare til denne config files opbygning.

dc_local_interfaces: port angives efter ipadressen via et punktum . (y=port), xxx.xxx.xxx.xxx.yyy, flere ipaddresser deles via semikolon ; ofte vil der her stå den eksterne ip, den interne ip samt localhost og eventuelle ekstra porte som mails routes igennem i forbindelse med anti vira / spam.

dc_relay_domains: er de domains som exim4 skal håndtere emails for, igen semikolon; er seperator mellem domain navne.

dc_use_split_config: jeg køre altid split config, da jeg syndes at det er mere overskueligt.

dc_relay_nets: brugres til at definere hosts eller netværk der har åben relay via denne smtp server.

dc_smarthost: kan bruges til at route ALT email via en bestemt mailgateway, f.eks en ISP mailgateways så som pasmtp.tele.dk, dette kan dog også gøres via andre metoder f.eks hubbed_hosts

For at udfra disse informationer at danne den exim4 configurations file som servicen benytter skal man nu køre update-exim4.conf og herefter bør man egnetlige have en kørrende smtp server, der vil kunne håndtere mailflow mellem sit interne netværk og den store onde SMTP verden.

# update-exim4.conf

# /etc/init.d/exim4 restart

# telnet 127.0.0.1 25
ehlo d
quit

hvis ovenstående går godt, er mta'en kørende



# /usr/share/doc/exim4-base/examples/exim-gencert

[*] Creating a self signed SSL certificate for Exim!
This may be sufficient to establish encrypted connections but for
secure identification you need to buy a real certificate!

Please enter the hostname of your MTA at the Common Name (CN) prompt!


Generating a 1024 bit RSA private key

.................++++++
..........++++++
writing new private key to '/etc/exim4/exim.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Code (2 letters) [US]:dk
State or Province Name (full name) []:Jylland
Locality Name (eg, city) []:Silkeborg
Organization Name (eg, company; recommended) []:net-help.dk
Organizational Unit Name (eg, section) []:smtp.net-help.dk
Server name (eg. ssl.domain.tld; required!!!) []:smtp.net-help.dk
Email Address []:This email address is being protected from spambots. You need JavaScript enabled to view it.
[*] Done generating self signed certificates for exim!
Refer to the documentation and example configuration files
over at /usr/share/doc/exim4-base/ for an idea on how to enable TLS
support in your mail transfer agent.

herefter vil man under /etc/exim4/ kunne finde en exim.key og exim.crt

Enable tls ved at editere i /etc/exim4/conf.d/main/03_exim4-config_tlsoptions filen

# vi /etc/exim4/conf.d/main/03_exim4-config_tlsoptions

Sæt nedenstående linje lige over denne linje .ifdef MAIN_TLS_ENABLE

MAIN_TLS_ENABLE=1 

opdatere exim configurationen igen.

# update-exim4.conf

# /etc/init.d/exim4 restart

Test at exim4 nu understøtter TLS.

# telnet 127.0.0.1 25

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 lenny.it-geek ESMTP Exim 4.69 Tue, 28 Dec 2010 17:21:06 +0100
ehlo d
250-lenny.it-geek Hello localhost.localdomain [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-STARTTLS
250 HELP
quit
221 lenny.it-geek closing connection
Connection closed by foreign host.



# vi /etc/exim4/conf.d/acl/00_exim4-config_header

CHECK_RCPT_IP_DNSBLS = bl.spamcop.net:xbl.spamhaus.org:dnsbl.sorbs.net

CHECK_RCPT_DOMAIN_DNSBLS = dnsbl.njabl.org:blackholes.five-ten-sg.com:cbl.abuseat.org:smtp.dnsbl.sorbs.net:spam.dnsbl.sorbs.net:zombie.dnsbl.sorbs.net

Med fordel kan man også tilføje følgende checks til den samme file samtidig

CHECK_RCPT_REVERSE_DNS = yes
CHECK_RCPT_VERIFY_SENDER = yes
CHECK_DATA_VERIFY_HEADER_SENDER = yes

# update-exim4.conf

# /etc/init.d/exim4 restart


# apt-get install sa-exim spamassassin

Enable spamassassin vi /etc/default/spamassassin

# vi /etc/default/spamassassin

Ændre linjen ENABLED=0 til ENABLED=1

samt i bunden

CRON=0 til CRON=1

Start Spamassassin

/etc/init.d/spamassassin start

nu til opsætning af sa-exim som sker i /etc/exim4/sa-exim.conf filen

# vi /etc/exim4/sa-exim.conf

find linjen SAEximRunCond: 0 ændre denne til #SAEximRunCond: 0, dvs. denne skal udkommenteres for at sa-exim køre.

Der er også andre linjer jeg bestemt mener man skal tweeke på, men da det er nødvendig at forstå hvordan disse virker, syndes jeg at i selv bør læse filen igennem og afslut med at dan en ny config fil til exim.

# update-exim4.conf

# /etc/init.d/exim4 restart

test af SA-Exim køre ved at sende en email til dig selv på serveren, f.eks via telnet og se output i /var/log/exim4/mainlog

# cat /var/log/exim4/mainlog

hvis du ser linjer som disse køre sa-exim:

2010-12-28 21:57:00 1PXgbC-0001X0-0g SA: Debug: SAEximRunCond expand returned: ''
2010-12-28 21:57:00 1PXgbC-0001X0-0g SA: Action: Not running SA because SAEximRunCond expanded to false (Message-Id: 1PXgbC-0001X0-0g).

Generalt kan spamassassin tweekes meget mere end jeg gør her, men der findes mange gode guides for spamassassin, blot husk at holde dine SA regler regler opdateret for at disse skal være effiktive.