Tags

arm arpaname bin_sh blocage blosxom bsd bsdfrance cblog certification chroot cluster dg834 dhcp diffusion dns dnsmasq domU dovecot fail-over fail2ban firefox freebsd ftp git guruplug install ipv6 jail kernel kimsufi lex libre linutop liste makefile mikrotik ml150 mohawk nanojail netbook netbsd nginx ntp ntp.org openbsd openntpd openrd opensmtpd openwrt orke pkgng poudriere privee proxy python rescue reverse rmll route rrdcgi sendmail sieve sjail sl2009 ssd symon update usb var_empty vimperator world xen yacc zfs

Powered by

blOg
maRkdown
awK
shEll

26/12/2013

[ liste diffusion privee sendmail opensmtpd ]

201312261800 liste diffusion privee sendmail opensmtpd

Liste de diffusion privée

De nos jours, utiliser sendmail n'est pas très courant. C'est pourtant le serveur de courriel que j'utilise le plus car il est livré de base avec FreeBSD. Grand consommateur de jail, j'ai naturellement mis en place cette solution quand j'ai dû m'occuper de la partie courrier électronique d'une association.

Je pars du postulat que la configuration DNS est au point, que l'association a pour nom lassau, que la jail est prête (un simple tar xpf base.txz -C /chemin/vers/ma/jail fera parfaitement l'affaire), qu'elle a pour nom mail.lassau.org et qu'elle est démarrée.

Je commence par préparer la configuration de sendmail:

$ sudo jexec mail.lassau.org /bin/csh 
# cd /etc/mail
# make

Je prépare un fichier d'alias dédié:

# cat /etc/mail/lassau
## Association lassau, l'association qu'il vous faut ! ##
ca: president,secretaire
owner-ca: ca-request
ca-request: president

contact: president
info: president
paypal: tresorier,secretaire

secretaire: matignon@gouv.fr
tresorier: bercy@gouv.fr
president: elysee@gouv.fr

## Mailing list asso ##
asso: :include:/etc/mail/asso_lassau.org
asso-request: president
asso-help: president
asso-list: president
asso_owner: president
owner_asso: president

## Alias des adherents qui veulent une adresse en @lassau.org ##

foo: foo@example.com
bar: bar@example.com
truc: bidule@machin.com

L'alias asso comprend la liste des adhérents:

# cat /etc/mail/asso_lassau.org
foo@example.com
bar@example.com
bidule@machin.com
chose@pouet.fr
jesaispas@la.bas

Je rajoute les lignes suivantes au fichier /etc/mail/mail.lasso.org.mc (généré par la commande make précédente):

define(`ALIAS_FILE', `/etc/mail/aliases,/etc/mail/lassau')
define(`confMAX_MESSAGE_SIZE', `2000000')

Qui dit make dit Makefile:

# grep ^SENDMAIL_ALIASES Makefile
SENDMAIL_ALIASES?=      /etc/mail/aliases /etc/mail/lassau
# make
# make aliases
# make install
# make restart

Seul point noir: l'alias asso@lassau.org est accessible par tout le monde, et surtout par des vilains qui veulent nous vendre au large des péniches de vinaigre. Idéalement, seules les adresses contenues dans le fichier /etc/mail/asso_lassau devraient avoir le droit d'envoyer du courriel à asso@lassau.org. Les afficionados de Postfix utilisent une recette à base de check_recipient_access et de smtpd_recipient_restrictions. Avec sendmail, c'est un poil plus ... ardu:

# tail -n 14 mail.lassau.org.mc | cat -n
 1  dnl Config lassau
 2  LOCAL_CONFIG
 3  F{ASSO}/etc/mail/asso_lassau.org
 4  LOCAL_RULESETS
 5  SLocal_check_rcpt
 6  R$*                     $: $>canonify $1
 7  Rasso <@ $=w . > $*     $: $>from_laussau $&f
 8  RBAD                    $#error $@ 5.7.1 $: "554 Go die "
 9  R$*                     $@ OK
10
11  Sfrom_lassau
12  R$={ASSO}               $@ GOOD
13  R$*                     $: BAD

Je suis d'accord, ça pique un peu les yeux. Revoyons la scène au ralenti:

Il est certain que même avec la traduction, on ne peut pas dire que cela soit clair comme de l'eau de roche. En ce moment je fait mumuse avec des jails taillées sur mesure (lire ici et ). Je n'avais pas trop envie d'utiliser sendmail dans ce cas précis et il y a quelques temps qu'opensmtpd me fait de l'oeil. Pour ceux qui veulent du lisible et compréhensible:

listen on lo1

table lassau db:/etc/mail/lassau.db
table asso_lassau db:/etc/mail/asso_lassau.org.db

reject from any sender !<asso_lassau> for domain "lassau.org" recipient "asso@lassau.org"
accept from any for domain "lassau.org" alias <lassau>
accept for any relay

Je ne suis pas un pro de Postfix mais je doute qu'on puisse faire aussi concis, simple et lisible (et non, "accept for any relay" ne correspond pas à un open-relay).


Lien vers ce billet