Exim4 et mauvais uid pour une adresse mail

Tags: #<Tag:0x00007f63e5177910>

Bonjour tout le monde :slight_smile:

Nous utilisons Debian Jessie 8.11 sur un serveur pour y héberger un forum et tout ce qui tourne autour. Nous avons donc aussi un serveur mail qui tourne avec Exim4 et Dovecot.

Nous avons trois adresses e-mail, et je me suis rendu compte la semaine passée avec effroi que l’une d’entre elle n’est pas accessible depuis l’extérieur. Or… c’est la boîte mail de contact depuis le forum, quand quelqu’un utilise le formulaire de contact :confused:

Pour remédier temporairement au souci, j’ai bien sûr modifié l’adresse mail de contact pour indiquer une des deux autres adresses qui fonctionnent, mais j’aimerais pouvoir refaire fonctionner l’adresse originelle…

Voilà la réponse par mail quand on contacte l’adresse mal configurée :

S’ensuit la copie de mon e-mail avec en-tête, etc.

Voici ce que j’obtiens dans /var/log/exim4/mainlog :

2020-04-07 11:36:26 1jLkef-00044z-NB DKIM: d=yahoo.fr s=s2048 c=relaxed/relaxed a=rsa-sha256 t=1586252178 [verification succeeded]
2020-04-07 11:36:26 1jLkef-00044z-NB <= monadressemail@yahoo.fr H=sonic304-21.consmr.mail.ir2.yahoo.com [77.238.179.146] P=esmtp S=3649 id=31460057-9bdd-fce7-19c9-4b9f91277ba2@yahoo.fr
2020-04-07 11:36:26 1jLkef-00044z-NB == /var/mail/mail (root@notreserveur.fr) <webmaster@notreserveur.fr> R=mail4root T=address_file defer (-6): mailbox /var/mail/mail has wrong uid (0 != 8)
2020-04-07 11:36:26 1jLkef-00044z-NB ** /var/mail/mail <root@notreserveur.fr>: retry timeout exceeded
2020-04-07 11:36:26 1jLkeg-000454-Og <= <> R=1jLkef-00044z-NB U=Debian-exim P=local S=4620
2020-04-07 11:36:26 1jLkef-00044z-NB Completed
2020-04-07 11:36:27 1jLkeg-000454-Og => monadressemail@yahoo.fr R=dnslookup T=remote_smtp H=mx-eu.mail.am0.yahoodns.net [188.125.72.74] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Sunnyvale,O=Oath Inc,CN=*.am0.yahoodns.net" C="250 ok dirdel"
2020-04-07 11:36:27 1jLkeg-000454-Og Completed

Voilà /etc/passwd :

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:104:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
bind:x:105:110::/var/cache/bind:/bin/false
mysql:x:106:111:MySQL Server,,,:/nonexistent:/bin/false
proftpd:x:107:65534::/run/proftpd:/bin/false
ftp:x:108:65534::/srv/ftp:/bin/false
Debian-exim:x:109:113::/var/spool/exim4:/bin/false
mornagest:x:1000:1000:,,,:/home/mornagest:/bin/bash
dovecot:x:110:114:Dovecot mail server,,,:/usr/lib/dovecot:/bin/false
dovenull:x:111:115:Dovecot login user,,,:/nonexistent:/bin/false
bureau:x:1001:8::/home/bureau:/bin/sh
administration:x:1002:8::/home/administration:/bin/sh
webmaster:x:1003:8::/home/webmaster:/bin/sh
monadressemail:x:1004:1004::/home/monadressemail:/bin/sh
beamium:x:112:116::/opt/beamium:/bin/false
noderig:x:1005:1005::/home/noderig:/bin/sh

Les trois adresses mails sont administration, bureau et webmaster ; elles sont donc toutes les trois dans le groupe mail (8).

Et c’est là que je coince : pourquoi les deux premières fonctionnent et pas la troisième ? Où puis-je modifier ce fameux uid pour webmaster ?

Si vous avez besoin d’autres infos pour trouver d’où vient le souci, n’hésitez pas à me demander !

Je n’ai pour ainsi dire aucune connaissance en serveur mail ; l’admin qui s’occupe de cela est souvent absent en ce moment, donc j’essaie de réparer ça en me basant sur mes connaissances générales en GNU/Linux, mais gérer un serveur, c’est pas tout à fait pareil ^^

Merci pour votre aide ! :slight_smile:

edit : purée, la mise en page du texte dans les balises CODE est illisible :confused: comment je peux améliorer ça ? Désolé, dans la fenêtre d’édition du message, c’est bien aligné, et au rendu final, pas de retour à la ligne :frowning:

avec Exim pour faire du mail avec un utilisateur lambda, il faut un alias avec root dans /etc/aliases
Mon petit mémo sur exim

Merci pour ta réponse :slight_smile: je me rends compte que j’ai ça dans /etc/aliases :

cat /etc/aliases
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root

ce qui veut dire que seule l’adresse défectueuse est liée à root via ce fichier. Et j’ose présumer que le souci vient de là… je me trompe ?

pas certain car à relecture tu as un problème de mail entrant, aliases me sert surtout pour utiliser le mail sortant

*mailbox /var/mail/mail has wrong uid (0 != 8)*

Quelles sont les boites mail définies pour les utilisteurs

ls -alrt /var/mail

quels sont les utilisateurs?

id 0
id 8

chez moi
id 0
uid=0(root) gid=0(root) groupes=0(root)
id 8
uid=8(mail) gid=8(mail) groupes=8(mail)

Merci pour ta réponse !

Voici ce que j’ai :

ls -alrt /var/mail
total 118080
-rw-------  1 root            mail            104438340 nov.  14  2017 www-data
-rw-------  1 root            mail               874144 nov.  14  2017 root
-rw-------  1 root            mail                47010 nov.  14  2017 mail
-rw-------  1 webmaster       mail              3243103 févr. 24  2018 webmaster
drwxr-xr-x 11 root            root                 4096 août  28  2019 ../
-rw-------  1 monadressemail monadressemail   1455320 avril  3 00:50 monadressemail
-rw-------  1 bureau          mail             10802819 avril  7 10:28 bureau
-rw-------  1 administration  mail                29371 avril  7 12:02 administration
drwxrwsr-x  2 root            mail                 4096 avril  7 12:02 ./

Je me rends compte au passage que mon adresse mail (à mon nom) n’est pas activable puisque qu’elle ne fait pas partie du groupe “mail”. Je vais changer ça…

id 0
uid=0(root) gid=0(root) groupes=0(root)

id 8
uid=8(mail) gid=8(mail) groupes=8(mail)

De ce que je comprends, un mail envoyé à webmaster est redirigé vers root, qui affiche un uid de 0 au lieu du 8 pour le groupe des mails. Et du coup, le mail « se perd »…

J’ai trouvé ça : https://unix.stackexchange.com/questions/65013/understanding-etc-aliases-and-what-it-does

Apparemment, ce serait normal d’avoir webmaster : root dans /etc/aliases mais dans ce cas, ça n’explique toujours pas pourquoi l’uid ne serait pas correct. Sauf si mon hypothèse ci-dessus est la bonne ?

le probleme est que webmaster est aliasé sur root et qu’on ne peust pas lire le mail de root puisque root ne fait normalement pas parti du groupe mail

ls -alrt /var/mail
total 72
drwxr-xr-x 11 root      root  4096 juin  20  2018 ..
-rw-------  1 mail      mail 27210 févr. 21 11:31 mail
-rw-rw----  1 bidon1000 mail 30643 févr. 21 14:13 bidon1000
cat /etc/group | grep mail
mail:x:8:bidon1000

Dans mon cas , j’ai aliasé root sur mon user ordinaire. ce qui me permets de lire les mails systeme destinés à root qui sont redirigé vers mon user ordinaire et que donc je peux lire puisque mon user ordinaire fait parti du groupe mail

Ta configuration a été serieusement bricolée

voir la doc
/usr/share/doc/exim4-base/README.Debian.html

4.3. No deliveries to root!

No Exim 4 version released with any Debian OS can run deliveries as root. If you don’t redirect mail for root via /etc/aliases to a nonprivileged account, the mail will be delivered to /var/mail/mail with permissions 0600 and owner mail:mail.

This redirection is done by the mail4root router which is last in the list and will thus catch mail for root that has not been taken care of earlier.

OK, merci pour les infos :slight_smile: j’ai cependant encore quelques questions parce que je pense que je prends le problème sous le mauvais angle…

cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:mon_adresse_mail
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
input:x:101:
systemd-journal:x:102:
systemd-timesync:x:103:
systemd-network:x:104:
systemd-resolve:x:105:
systemd-bus-proxy:x:106:
netdev:x:107:
crontab:x:108:
ssh:x:109:
bind:x:110:
mysql:x:111:
ssl-cert:x:112:
Debian-exim:x:113:
mornagest:x:1000:
dovecot:x:114:
dovenull:x:115:
bureau:x:1001:
mon_adresse_mail:x:1004:
beamium:x:116:
noderig:x:1005:

Ici, on voit que mon adresse mail (à mon nom) est bien ajoutée au groupe 8 (mail, donc), mais pas les deux autres. bureau est dans la liste, mais pas administration ! C’est un peu un casse-tête, en effet, car dans chaque fichier, on retrouve une adresse ou deux, mais jamais les trois (administration, bureau et webmaster (faisons l’impasse sur la mienne perso pour l’instant, c’est très annexe vu que je ne m’en suis jamais servi)).

Du coup, je me perds un peu et je ne sais pas dans quel ordre je dois changer les choses. Comment puis-je aliaser root vers webmaster, alors que dans /etc/aliases j’ai déjà webmaster: root ? :blush:

Et aussi, quelle est la meilleure façon de procéder pour remettre de l’ordre dans tout ça, notamment dans /etc/group où il manque administration ET webmaster ?

Merci pour ton aide ! :slight_smile:

faut surtout faire un choix de l’utilisateur qui reçoit les mails

je ne comprends pas bien pourquoi il y en aurait plusieurs

exemple l’utilisateur contact , appartenant au group mail, gère la réception des mails

cat /etc/aliases
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: contact

En fait on a une adresse de contact pour le forum (demande technique en cas de compte défaillant par exemple), mais aussi une adresse spécifique pour le contact des adhérents de notre association, et qu’on ne souhaite pas voir se faire pourrir de spams.

L’adresse administration nous sert plutôt pour le contact vers l’extérieur (international, même si ça paraît prétentieux de dire ça, mais ça nous arrive d’envoyer des mails à des contacts non francophones et on s’était dit que ça ferait plus sérieux une adresse administration plutôt que webmaster).

Donc, même si les utilisations peuvent paraître un peu similaires, on a tout de même des usages assez différents pour chacune de ces trois adresses.

J’ai voulu essayer et ça a fonctionné : j’ai ajouté

root: webmaster

dans /etc/aliases, puis j’ai mis à jour avec newaliases

Mails reçus depuis l’extérieur, ainsi que via le formulaire de contact de notre forum.

A priori, le problème est donc résolu :slight_smile: un grand merci à toi, Grandtoubab ! :+1: