nerdstock.org

PROJECTEN | HANDLEIDINGEN | OVERIGE
Nederlands

E-mail

Auteur: Rob la Lau <rob[at]nerdstock.org>

Omdat ik mijn eigen server heb waarop ik mijn domeinen host, laat ik de e-mail voor die domeinen gewoon afleveren op die server; de hieronder beschreven procedure zou echter niet anders werken als ik mijn e-mail liet ophalen door fetchmail (fetchmail geeft de opgehaalde mail namelijk ook gewoon af aan je smtp-server).

Als de zin hierboven abracadabra voor je is, maak je waarschijnlijk geen gebruik van Linux of een andere Unix-variant, en heb je niets aan de beschrijving hieronder. In dat geval kan ik je van harte aanraden Windows uit het raam te kieperen en over te schakelen op Linux. Tot die tijd: succes!

Goed, verder voor de mensen die niet met Bill Gates getrouwd zijn...

Inhoudsopgave:

Inleiding

Ik ben nogal gelukkig met m'n e-mail-configuratie: gemiddeld glipt er hooguit eens in de maand een spam tussendoor (terwijl mijn server er een paar honderd per dag weggooit) en vrijwel alle mail wordt netjes in de mapjes gedumpt waar ik het wil hebben.
Omdat ik vind dat iedereen gelukkig moet zijn met z'n e-mail, beschrijf ik hieronder hoe ik dat voor elkaar gekregen heb.

Mijn configuratie:

Om te beginnen verwijs ik je graag naar de man pages van de hierboven genoemde applicaties; dan hoef ik daar straks niet meer aan te denken...
Ik ga er hieronder dan ook vanuit dat je die man pages hebt gelezen, zodat ik de beginselen niet meer uit hoef te leggen.

In de voorbeelden van configuratiebestanden die ik hieronder geef, zul je regelmatig engelstalige commentaren aantreffen; dit komt doordat ik ooit het idee had mijn configuratie ergens op een website te documenteren.

Verder verwijzen alle paden hieronder naar paden zoals ze onder FreeBSD gebruikt worden; onder Linux kan dit iets verschillen.

fetchmail

Zoals gezegd maak ik geen gebruik van fetchmail. Zou ik dat wel doen, dan zou ik een regel als deze in mijn crontab hebben:

*/5 * * * * fetchmail -U -s -f ~/.fetchmailrc

Waarbij mijn ~/.fetchmailrc er ongeveer zo uit zou zien:

poll pop3.example.com proto pop3
        user "rob" with pass "mypass" is "rob" here;

(Met bovenstaand voorbeeld zou ik elke 5 minuten de mail voor rob@example.com ophalen en afgeven aan mijn SMTP-server.)

sendmail

Mijn SMTP-server is sendmail. Waarschijnlijk is sendmail de slechtst gedocumenteerde applicatie ter wereld; ik heb op de sendmail website nog nooit kunnen vinden wat ik zocht...
Op een aantal van mijn andere machines gebruik ik inmiddels exim en postfix, en ik moet zeggen dat ik daar erg van gecharmeerd ben. Mocht je dus nog op zoek zijn naar een fatsoenlijke mail-server, kijk ook eens naar die twee.
Maar goed, op mijn server draait sendmail en omdat ik dat al jaren gebruik, ben ik eraan gewend geraakt, dus we gaan verder over sendmail.

Dit is mijn sendmail.mc:

VERSIONID(`v2.1')
OSTYPE(freebsd6)
FEATURE(use_cw_file)
FEATURE(access_db, `hash -o -T /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_procmail)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
FEATURE(dnsbl, `sbl-xbl.spamhaus.org', `"Message from " $&{client_addr} " rejected - see http://www.spamhaus.org/query/bl?ip="$&{client_addr}')
FEATURE(dnsbl,`combined.njabl.org',`"Message from " $&{client_addr} " rejected - see http://njabl.org/lookup?"$&{client_addr}')
FEATURE(dnsbl, `bl.spamcop.net', `"Message from " $&{client_addr} " rejected - see: http://spamcop.net/bl.shtml?"$&{client_addr}')
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
define(`confMILTER_MACROS_CONNECT',`b, j, _, {daemon_name}, {if_name}, {if_addr}')
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')
define(`confINPUT_MAIL_FILTERS', `clmilter,spamassassin')
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
define(`confCW_FILE', `-o /etc/mail/local-host-names')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
define(`confMAX_DAEMON_CHILDREN', `10')
MAILER(local)
MAILER(smtp)

Een kleine toelichting.

De regels

FEATURE(local_procmail)
MAILER(local)

zorgen dat sendmail de mails afgeeft aan procmail, dat er vervolgens voor zorgt dat de mails naar de juiste mappen gefilterd wordt.

De regels

FEATURE(dnsbl, `sbl-xbl.spamhaus.org', `"Message from " $&{client_addr} " rejected - see http://www.spamhaus.org/query/bl?ip="$&{client_addr}')
FEATURE(dnsbl,`combined.njabl.org',`"Message from " $&{client_addr} " rejected - see http://njabl.org/lookup?"$&{client_addr}')
FEATURE(dnsbl, `bl.spamcop.net', `"Message from " $&{client_addr} " rejected - see: http://spamcop.net/bl.shtml?"$&{client_addr}')

zorgen dat sendmail de afzenders checkt bij de genoemde RTBLs. Met name spamhaus maakt me erg gelukkig: ik schat dat driekwart van de mails die geweigerd worden door spamhaus geweigerd worden.

De regel

INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')

geeft aan welke virusscanner gebruikt moet worden, en de regel

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')

geeft aan welke spamfilter gebruikt moet worden.
De regel

define(`confINPUT_MAIL_FILTERS', `clmilter,spamassassin')

zorgt dat deze 2 ook daadwerkelijk aangeroepen worden.

De overige regels moet je maar gewoon van me aannemen, want die zijn in dit verhaaltje niet belangrijk.
Voor meer informatie verwijs ik je graag naar de sendmail website ;) .

clamav

clamav is een virusscanner. clamav-milter is de clamav extensie die als sendmail plugin gebruikt kan worden om e-mails 'on-the-fly' op virussen te scannen. freshclam zorgt dat clamav altijd beschikt over de meest actuele virusdefinities.
Als clamav-milter denkt dat de mail een virus bevat, wordt deze door sendmail geweigerd.

spamassassin

spamassassin is geen spamfilter; je kunt spamassassin beter een spam detector noemen. spamassassin voegt namelijk alleen maar een header toe aan de mail waaruit opgemaakt kan worden hoe groot de kans is dat deze mail spam is. spamassassin kan wel ingesteld worden om mail boven een bepaald 'level' ('waarschijnlijkheid') naar /dev/null te sturen.

Ik maak gebruik van de default configuratie van spamassassin.

procmail

Na al deze checks geeft sendmail de mail af aan procmail. En dat is waar deze tutorial wat mij betreft interessant wordt, want op mijn procmail-configuratie ben ik best trots...

Al tikkende bedenk ik me dat nu waarschijnlijk een behoorlijk warrig verhaal gaat komen over de configuratie van procmail; de configuratie op mijn server bestaat namelijk uit zo'n 30-40 bestanden...

Nee, wacht even... Stop... Niet gelijk afhaken...
Ik zal je straks uitleggen waarom dit het juist overzichtelijk maakt. Ik had al die bestanden namelijk ook in 1 bestand kunnen proppen, maar dan had ik waarschijnlijk de moed allang verloren.

Eerst even een beetje geek-speak: procmail is een MDA en zit dus tussen de MTA en je MUA (linkje).

Mails worden door een MTA (in mijn geval sendmail) afgegeven aan procmail en vervolgens beslist procmail aan de hand van zijn configuratie wat er met die mail moet gebeuren. En wat er met die mail kan gebeuren is echt alles wat je kunt verzinnen: procmail kan de mail in een mapje dumpen, maar het ook aan een ander programma geven, of het 'even' aan een ander programma geven en het vervolgens weer terugkrijgen om verder te verwerken.

Als procmail een mail toegestopt krijgt van de MTA, leest het 2 configuratiebestanden: eerst /usr/local/etc/procmailrc (da's FreeBSD, onder Linux is dat /etc/procmailrc) en dan ${HOME}/.procmailrc. De eerste wordt uitgevoerd met root-rechten, de tweede met de rechten van de gebruiker.
De filter-regels van procmail worden in de man page 'recipes' genoemd; ik zal ze dus hieronder 'recepten' noemen.

Het enige dat ik doe in /usr/local/etc/procmailrc is het definiëren van een aantal variabelen, en het toevoegen van een paar headers aan de mail; het 'echte' filteren gebeurt pas in ${HOME}/.procmailrc..
Dit is mijn /usr/local/etc/procmailrc:

# /usr/local/etc/procmailrc
#
# This file only sets some vars and adds some headers to the messages.
# The 'real' filtering is done in ${HOME}/.procmailrc

# set to YES to add a header for each procmailrc
DEBUG=NO

# default paths
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=/data/mail/${LOGNAME}/
#DEFAULT=${MAILDIR}
#ORGMAIL=${MAILDIR}
#LOGFILE=${MAILDIR}/logfiles/`date '+%Y-%m'`
#
# includes
RCDIR_SYS=/usr/local/etc/procmailrcs
RCDIR=${HOME}/.procmailrcs
#
# commands
ECHO=/bin/echo
FORMAIL=/usr/local/bin/formail
SED=/usr/bin/sed
SENDMAIL=/usr/sbin/sendmail
SPAMC=/usr/local/bin/spamc
WC=/usr/bin/wc

# tab & newline
TAB="	"
NL="
"

# this matches any username
ANYUSER="[^<@]+"

# this matches any TLD
ANYTLD="[a-z\.]+"

# this matches any domain
ANYDOM="[a-z0-9\._-]+\.${ANYTLD}"

# this matches any mimetype
ANYMIME="[a-z]+/[-a-z\.]+"

# 'To' header
# syntax:
# * $ ${TO0} ${TO1}rob@OhReally\.nl${TO2}
# * $ ${TO0} ${TO1}${ANYUSER}@(mail\.)?kde\.org${TO2}
TO0="^((Apparently|X-Envelope)-)?(To|Cc|Bcc):"
TO1="(([^<]+ )?<?[^@]+@[^>]+\.[^>]+>?, )*([^<]+)?<?"
TO2=">?(, ([^<]+ )?<?[^@]+@[^>]+\.[^>]+>?)*"

# 'From' header
# syntax:
# * $ ${FROM0} ${FROM1}rob@OhReally\.nl${FROM2}
# * $ ${FROM0} ${FROM1}${ANYUSER}@OhReally\.nl${FROM2}
FROM0="^From:"
FROM1="([^<]+)?<?"
FROM2=">?"

# scan for X-OhReally-* headers before doing anything else
:0 fhw
* ^X-OhReally-*
| ${FORMAIL} -i "X-OhReally-headers: YES"

# filter message through SpamAssassin (for importing archives; normally invoked by sendmail)
###UPDATE
# Removed SA from sendmail config. 20091217 - RL
:0 fw: spamassassin.lock
* ! X-Spam-Checker-Version: SpamAssassin .* on nanda\.ohreally\.nl$
* < 256000
| ${SPAMC} -u ${LOGNAME}

# print debugging info
:0 fhw
* DEBUG ?? YES
| ${FORMAIL} -A "X-OhReally-Procmailrc: /usr/local/etc/procmailrc"

# html (not multipart)
:0 fhw
* ^Content-Type: text/html;?.*
| ${FORMAIL} -i "X-OhReally-html: YES"

# attachments
:0
* $ ^Content-Type: multipart/[a-z]+;(${NL}?.*;)?${NL}?[ ${TAB}]+boundary=\/".*"
{
	###FIXME
	# boundary kan ook weleens gevolgd worden door een ; en wat gegevens
	# zie mail Arnoud
	BOUNDARY=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`
	INCLUDERC=${RCDIR_SYS}/attachment
}

Laten we daar even doorheen lopen...

De eerste 'echte' regel die je ziet is

DEBUG=NO

Als ik hier van 'NO' 'YES' zou maken, zou dat wat extra informatie in de headers van elke e-mail zetten, die ik kan gebruiken om mijn procmail configuratie te debuggen. Dit is geen procmail feature; bijna onderaan het bestand zie je het recept

:0 fhw
* DEBUG ?? YES
| ${FORMAIL} -A "X-OhReally-Procmailrc: /usr/local/etc/procmailrc"

Deze regels zorgen ervoor dat, als DEBUG op YES is gezet (DEBUG=YES), er een header wordt toegevoegd aan de mail, die aangeeft in welk procmail configuratiebestand we nu zitten. Dit lijkt nu nog redelijk zinloos, maar zoals ik al zei bestaat mijn configuratie uit zo'n 30-40 bestanden, en neem van mij aan dat het dan wel prettig kan zijn als je in de headers van je mail kunt teruglezen via welke bestanden je mail gereisd heeft.

In dit voorbeeld zie je ook gelijk dat ik de variabele ${FORMAIL} gebruik. Deze variabele definieer ik eerder in het bestand (FORMAIL=/usr/local/bin/formail); dit is het pad naar formail, en op deze manier voorkom ik dat procmail elke keer weer het hele pad moet afzoeken naar formail, en dat ik iedere keer het pad naar formail helemaal moet uittikken (en als ik een keer iets anders zou willen proberen dan formail, hoef ik het pad ook maar op 1 plaats aan te passen).

Voor het gebruik van formail verwijs ik je graag naar de man page. En lees die, want formail zul je nog een paar keer tegenkomen (formail kan de headers van een e-mail herschrijven of er headers aan toevoegen).

De variabelen die ik hier definieer (bijvoorbeeld ${FORMAIL}), kan ik trouwens ook nog gebruiken in ${HOME}/.procmailrc.

Verder zie je in dit bestand de definitie van nog een hoop andere variabelen. Als je niet begrijpt wat er staat, moet je het maar gewoon van me aannemen, want ik heb geen zin om ze stuk voor stuk uit te leggen. Zorg wel dat je even de paden controleert van de variabelen die over applicaties gaan.
Alle procmail-recepten in /usr/local/procmailrcs (${RCDIR_SYS}) hebben permissies 644 (-rw-r--r--), zodat ze door alle gebruikers gebruikt kunnen worden.

Op een gegeven moment kom je dan ook het recept

:0 fhw
* ^X-OhReally-*
| ${FORMAIL} -i "X-OhReally-headers: YES"

tegen. Alle headers die ik toevoeg in mijn procmail configuratie beginnen met X-OhReally- (ook dit is weer geen procmail of formail feature; je mag hier kiezen wat je wilt; het is wel een soort ongeschreven regel dat je eigen headers beginnen met X-). Als ik een dergelijke header tegenkom in een binnenkomende mail, vind ik dat dus verdacht; vandaar dat ik een extra header toevoeg als ik dergelijke headers tegenkom, die gebruik ik als waarschuwing (het zou kunnen zijn dat iemand dergelijke headers toevoegt om mijn filters voor de gek te houden).

Daarna zie je een spamassassin recept. Dit recept wordt alleen gebruikt als ik mails direct aan procmail afgeef (bijvoorbeeld om een digest van een mailing list te importeren). Ik verwijs je dan ook graag naar de diverse man pages als je daar meer over wilt weten.

Dan zie je de debug regels die ik al eerder behandeld heb, en vervolgens een paar regels die headers toevoegen als het een HTML mail of een mail met attachments betreft.
Het eerste recept van de 2 spreekt redelijk voor zich; het tweede behoeft wat uitleg.

Allereerst zie je dat ik nog niet helemaal tevreden ben met dit recept (###FIXME); de headers van de mails die ik van Arnoud krijg, zien er niet helemaal zo uit als ik verwachtte, ik heb nog geen tijd gehad om hier verder op in te gaan.
Daarna haal ik de regel uit de headers die gebruikt wordt om de verschillende delen van elkaar te scheiden (BOUNDARY=...).
De regel die daarna komt, is wel bijzonder: iedere keer als ik INCLUDERC definieer, interpreteert procmail dit als 'plak het genoemde bestand op deze plek in het huidige bestand'.

Het bestand ${RCDIR_SYS}/attachment voegt headers toe aan de mail over de attachments die die bevat. Verderop in de filtering hoef ik dan alleen nog naar die headers te kijken en niet meer naar de attachments zelf, als ik iets met de attachments wil doen. Ik doe dit hier (en niet in ${HOME}/.procmailrc) zodat iedere gebruiker gebruik kan maken van deze functionaliteit.
Dit is het bestand /usr/local/etc/procmailrcs/attachment:

# /usr/local/etc/procmailrcs/attachment

:0 fhw
* DEBUG ?? YES
| ${FORMAIL} -A "X-OhReally-Procmailrc: /usr/local/etc/procmailrcs/attachment"

# looks like it's standard to prepend 2 dashes to the boundary
# also looks like multipart/alternative parts are sometimes split by
# just 2 dashes (without the boundary)
BOUNDARY_RE="--(${BOUNDARY})?"

:0 fhw
| ${FORMAIL} -i "X-OhReally-boundary: ${BOUNDARY}"

# RFC 822
:0 B fhw
* $ ^${BOUNDARY_RE}${NL}Content-Type: message/rfc822(; .*)?
| ${FORMAIL} -A "X-OhReally-attachment: RFC822"

# Evolution sends pgp sigs as attachment
:0 fhw
* ^Content-Type: multipart/signed;
| ${FORMAIL} -i "X-OhReally-signed: YES"

# viri
VIR_SFX="\.(bat|cmd|com|cpl|exe|hta|pif|scr|vbs)"
:0 B
* $ ^${BOUNDARY_RE}${NL}Content-Type: ${ANYMIME};${NL}?[ ${TAB}]+name=\/\".*${VIR_SFX}\"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -A "X-OhReally-attachment: virus" -A "X-OhReally-filename: ${FILENAME}" -i "X-OhReally-virus: YES"
}

# pdfs
PDF_SFX="\.pdf"
:0 B
* $ ^${BOUNDARY_RE}${NL}Content-Type: ${ANYMIME};${NL}?[ ${TAB}]+name=\/\".*${PDF_SFX}\"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -A "X-OhReally-attachment: pdf" -A "X-OhReally-filename: ${FILENAME}"
}


# archives
ARC_SFX="\.(bz2?|gz|tar|tbz|tgz|Z|zip)"
:0 B
* $ ^${BOUNDARY_RE}${NL}Content-Type: ${ANYMIME};${NL}?[ ${TAB}]+name=\/\".*${ARC_SFX}\"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -A "X-OhReally-attachment: archive" -A "X-OhReally-filename: ${FILENAME}"
}

# ms
MS_ACCESS="mda|mdb|mde"
MS_EXCEL="xlc|xll|xlm|xls|xlw"
MS_POWERPOINT="pot|pps|ppt|ppz"
MS_WORD="doc"
MS_SFX="\.(${MS_ACCESS}|${MS_EXCEL}|${MS_POWERPOINT}|${MS_WORD})"
:0 B
* $ ^${BOUNDARY_RE}${NL}Content-Type: ${ANYMIME};${NL}?[ ${TAB}]+name=\/\".*${MS_SFX}\"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -A "X-OhReally-attachment: MS" -A "X-OhReally-filename: ${FILENAME}"
}

# code samples
CODE_SFX="\.(c(pp)?|pl)"
:0 B
* $ ^${BOUNDARY_RE}${NL}Content-Type: ${ANYMIME};${NL}?[ ${TAB}]+name=\/\".*${CODE_SFX}\"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -A "X-OhReally-attachment: code" -A "X-OhReally-filename: ${FILENAME}"
}

# images
:0 B
* $ ^${BOUNDARY_RE}${NL}Content-Type: image/[-a-z\.]+;${NL}?[ ${TAB}]+name=\/\".*\"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -i "X-OhReally-img: YES" -A "X-OhReally-attachment: image" -A "X-OhReally-filename: ${FILENAME}"
}

# html
:0 B fhw
* $ ${BOUNDARY_RE}${NL}Content-Type: text/html(${NL}?[ ${TAB}]charset=.*)?$
| ${FORMAIL} -i "X-OhReally-html: YES"

# plaintext
:0 B fhw
* $ ^${BOUNDARY_RE}${NL}Content-Type: text/plain(;${NL}?[ ${TAB}]charset=.*)?$
| ${FORMAIL} -i "X-OhReally-txt: YES"

# none of the above
:0
* ! ^X-OhReally-img: YES$
* ! ^X-OhReally-attachment:
* B $ ^${BOUNDARY_RE}${NL}Content-Type: ${ANYMIME};${NL}?[ ${TAB}]+name=\/".*"$
{
	FILENAME=`${ECHO} ${MATCH} | ${SED} -e 's/"//g'`

	:0 fhw
	| ${FORMAIL} -A "X-OhReally-attachment: unknown" -A "X-OhReally-filename: ${FILENAME}"
}

Deze headers kan ik vervolgens in mijn persoonlijke .procmailrc weer als volgt gebruiken:

:0 Efhw
* ^X-OhReally-attachment:
* ^Subject: \/.*$
| ${FORMAIL} -i "Subject: [ATTACHMENT] ${MATCH}"

om de subject van mijn mails te wijzigen, of als volgt:

:0 fhw
* ^X-OhReally-Virus: YES$
* ^Subject: \/.*$
| ${FORMAIL} -i "Subject: [VIRUS] ${MATCH}"

om het onderwerp te wijzigen van mails die ik niet wil vertrouwen (deze mails zijn niet afgevangen door ClamAv, die ik vanuit sendmail aanroep, dus ik wil ze niet direct als virus weggooien, maar ik vertrouw ze niet; ik moet trouwens zeggen dat ik deze regel nog nooit nodig gehad heb: ClamAv vangt alle virussen keurig voor me).

[…]

dovecot

En dan tenslotte dovecot...

De keuze 'dovecot' zijn 2 keuzes: eerst IMAP, dan dovecot.

De keuze IMAP heb ik gemaakt omdat ik overal mijn mail wil kunnen lezen; ik zou echt niet meer zonder IMAP kunnen. Of ik nou thuis ben, of bij mijn vriendin, of bij een klant: ik stel de e-mailclient in en kan mijn mail lezen, en hoef nooit bang te zijn dat er per ongeluk mails achterblijven op de betreffende pc.

De 2e keuze is dovecot. Ik heb een aantal IMAP-servers geprobeerd, en die waren allemaal een hel om te configureren. En toen kwam ik dovecot tegen...
Het configuratiebestand van dovecot is zo kort als een configuratiebestand kan zijn, en beter gedocumenteerd dan je je kunt wensen. Er zal vast een reden zijn dat veel internet-providers kiezen voor andere IMAP-servers, maar ik heb die nog niet kunnen vinden. Voor mij is er geen andere IMAP-server dan dovecot.

encrypted cron

En als laatste nog een leuk trucje om je cron output versleuteld te versturen:

35  4   *   *   *   /usr/local/sbin/chkrootkit -q | /usr/local/bin/gpg -ear D68C3EC9 | mail -s "chkrootkit output" root

Uiteraard moet je hierbij wel even het ID van mijn sleutel vervangen door het ID van je eigen sleutel, anders kun je de mail nooit meer lezen…

Reacties zijn welkom:
rob[at]nerdstock.org
Creative Commons License
http://creativecommons.org/licenses/by-nc-sa/3.0/nl/deed.nl

 


-i *.nerdstock.org/*
Nerds don't google, they grep.

HoudtVan.je
http://www.houdtvan.je
Setara
http://setara.org
Dannik
http://dannik.nl
FaciliPro
http://facilipro.nl
OhReally.nl
http://OhReally.nl
Ads by Nerdstock.org

Link: Op deze site gebruikte handelsmerken