GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

Serveur de messagerie Sendmail

Sur cette page, une introduction de base au courrier électronique est donnée, suivie d'une description du serveur de messagerie Sendmail et le module Webmin pour le configurer.

Le module de configuration de Sendmail

Sendmail est le MTA le plus utilisé sur Internet aujourd'hui, et ce depuis sa création. Il est inclus en standard avec presque toutes les variantes du système d'exploitation Unix et fonctionne de la même manière sur toutes. Il possède de nombreuses fonctionnalités utiles pour le routage et le traitement des e-mails, telles que les alias, le routage de domaine et les fichiers de transfert créés par l'utilisateur.

Sendmail a un mappage un à un entre les utilisateurs Unix et les boîtes aux lettres. Chaque utilisateur possède son propre fichier courrier, généralement dans le répertoire /var/mail ou /var/spool/mail. Chaque fois qu'un message est remis à un utilisateur, il est ajouté au fichier portant le même nom que l'utilisateur dans ce répertoire, tel que /var/mail/jcameron. Sendmail n'a pas de concept d'"utilisateurs de messagerie" - si vous souhaitez créer une nouvelle boîte aux lettres, vous devrez ajouter un nouvel utilisateur Unix comme expliqué dans Utilisateurs et groupes.

Sendmail peut accepter les e-mails de deux manières différentes - soit à partir d'une connexion SMTP, soit par un autre programme invoquant la commande sendmail avec les bons paramètres et lui envoyant l'e-mail en entrée. Dans les deux cas, le message est soit remis à la boîte aux lettres d'un utilisateur local, soit envoyé à un autre système. Comme vous vous en doutez, si le processus du serveur Sendmail n'est pas en cours d'exécution, il est impossible d'envoyer des e-mails à votre système via SMTP. De plus, tout e-mail en file d'attente ne sera pas livré.

Le fichier de configuration principal de Sendmail porte le nom approprié de sendmail.cf et se trouve dans le répertoire /etc ou /etc/mail. En outre, il existe des fichiers texte et DBM distincts pour les domaines locaux, les alias de transfert de courrier, les mappages d'adresses et d'autres fonctionnalités abordées plus loin dans ce chapitre. Presque tous ces fichiers supplémentaires sont en fait au format de base de données Unix DBM, mais sont construits à partir d'un fichier texte correspondant que l'administrateur système (et Webmin) peut modifier. Cependant, Sendmail ne lit que les fichiers DBM et les revérifie pour chaque message reçu afin que toute modification apportée à l'un des fichiers de la base de données devienne immédiatement active.

Pour configurer Sendmail à l'aide de Webmin, vous devrez visiter le module de configuration de Sendmail, qui se trouve dans la catégorie Serveurs. En supposant que le serveur est installé, la page principale du module ressemblera à l'exemple ci-dessous.

L'écran principal du serveur de messagerie Sendmail

Si le module ne trouve pas le programme du serveur Sendmail ou le fichier de configuration principal sur votre système, un message d'erreur à cet effet s'affichera à la place. Vérifiez votre CD de distribution Linux ou votre site Web pour le package sendmail et installez-le à l'aide du module Software Packages. Si d'autres packages dont le nom commence par sendmail- sont disponibles (tels que sendmail-cf ou sendmail-docs), installez-les également.

Cette erreur peut également se produire dans le cas peu probable où vous auriez installé Sendmail ou son fichier de configuration dans un emplacement différent de celui attendu par le module. Par défaut, il suppose que vous utiliserez les packages fournis avec votre système d'exploitation, mais ceux-ci sont souvent obsolètes. Pour cette raison, vous avez peut-être compilé et installé la dernière version dans un répertoire différent. Si c'est le cas, consultez le module Configuration du module de configuration de Sendmail section ci-dessous pour savoir comment modifier les chemins d'accès au programme et au fichier de configuration.

Sendmail a traversé de nombreuses versions différentes au fil des ans, et pendant ce temps, son fichier de configuration principal (généralement trouvé sur /etc/sendmail.cf) a changé. Si vous exécutez une version très ancienne ou utilisez un ancien fichier de configuration, la page principale du module affichera un message d'erreur indiquant que le format de fichier n'est pas pris en charge. Les configurations antérieures à la version 7 déclenchent cette erreur, mais heureusement, elles sont rarement trouvées sur les systèmes Unix modernes.

Si aucun message d'erreur n'apparaît sur la page principale, le tableau des icônes illustré dans l'image ci-dessus s'affichera. Chacun peut être cliqué pour accéder à l'une des fonctionnalités de Sendmail, telles que l'aliasing de messagerie, le routage de domaine ou la file d'attente de messagerie. Le reste de ce chapitre explique comment utiliser les pages et les formulaires sous chacune des icônes. À côté du nom de chaque icône (par exemple, Mappage d'adresses ) est le nom interne de la fonctionnalité de configuration Sendmail entre parenthèses qu'elle contrôle, comme virtuser. Ces noms sont surtout utiles aux administrateurs expérimentés qui veulent savoir comment les icônes du module se rapportent aux fichiers et directives de configuration réels.

Lorsque vous cliquez dessus, certaines icônes peuvent afficher un message du type *Votre configuration Sendmail n'a pas la fonction de mappage d'adresses (virtuser) activée*. Sur de nombreux systèmes d'exploitation, le fichier de configuration principal de Sendmail n'a pas toutes les fonctionnalités disponibles activées par défaut. Pour rendre disponibles les pages de l'icône choisie, suivez les instructions de la section *Ajout de fonctionnalités Sendmail avec M4* plus loin dans ce chapitre.

Si le processus du serveur Sendmail est en cours d'exécution, un bouton intitulé Arrêter Sendmail apparaîtra au bas de la page principale. Comme son nom l'indique, cliquer sur ce bouton éteindra le serveur afin que votre système n'accepte plus les connexions SMTP, et n'analyse plus la file d'attente du courrier. Inversement, lorsque Sendmail n'exécute pas un Démarrer Sendmail apparaîtra à la place, qui peut être utilisé pour démarrer le processus du serveur.

Si vous voulez que Sendmail fonctionne tout le temps, utilisez le module Bootup and Shutdown pour que son processus serveur démarre au démarrage. La plupart des packages incluront un script d'action qui peut être activé, et peut même être activé par défaut. Sinon, vous devrez créer une action qui exécute la commande /usr/sbin/sendmail -bd -q30m au démarrage.

Modification des domaines locaux et masquage de domaine

Lorsque Sendmail reçoit un e-mail via une connexion SMTP, il doit déterminer s'il doit être livré localement ou transféré vers un autre serveur. Cela se fait en examinant l'adresse À du message, en particulier la partie domaine après le @. Le domaine est comparé à une liste de domaines locaux, et si une correspondance est trouvée, l'e-mail est envoyé à la boîte aux lettres de l'utilisateur dont le nom se trouve à gauche du @ dans l'adresse À. Ou si aucun utilisateur de ce type n'existe, un message de rebond est généré et renvoyé à l'expéditeur d'origine.

Si le domaine n'est pas local, Sendmail recherchera le serveur de messagerie du domaine et tentera de s'y connecter afin de transférer le message. C'est ce qui se passe généralement lorsqu'un client sur le même réseau se connecte pour envoyer des e-mails. Cependant, un problème surviendra si Sendmail tente de se reconnecter, ce qui peut arriver si le DNS indique qu'il s'agit du serveur de messagerie d'un domaine qui ne figure pas sur sa liste de domaines locaux. Si cela se produit, un message de rebond sera renvoyé à l'expéditeur, contenant du texte comme des boucles de courrier vers moi.

Par défaut, cette liste de domaines locaux ne contient que le nom d'hôte complet de votre système, tel que server.example.com . Si vous configurez un serveur pour recevoir des e-mails d'Internet pour un domaine (comme example.com ), il devra être ajouté à la liste. Les étapes pour ce faire sont :

  1. Sur la page principale du module, cliquez sur Domaines locaux icône. Une page contenant une zone de texte dans laquelle tous les domaines locaux actuels sont répertoriés s'affichera.
  2. Ajoutez autant de domaines ou de noms d'hôte supplémentaires à la liste que vous le souhaitez, un par ligne. Il est tout à fait possible qu'un serveur accepte du courrier pour plusieurs domaines, surtout s'il va être utilisé pour l'hébergement virtuel. Comme l'explique l'introduction, le courrier ne sera envoyé à votre système en premier lieu que si un enregistrement DNS MX approprié existe pour chaque domaine.
  3. Cliquez sur Enregistrer bouton en bas de la page pour les rendre actifs.

Sendmail acceptera toujours pour livraison locale les messages électroniques dans lesquels l'adresse À ne contient pas de domaine, juste un nom d'utilisateur. Ceux-ci sont souvent envoyés par des programmes exécutés sur le système lui-même, tels que le démon Cron ou la commande mail.

Le revers de la liste des domaines locaux est le masquage de domaine. Cette fonction Sendmail vous permet de définir le domaine qui est ajouté aux e-mails envoyés depuis votre système lorsqu'aucun n'est spécifié, comme par la commande mail. Il est également possible que Sendmail modifie les domaines d'adresse De des messages reçus via SMTP, tels que ceux envoyés par les clients de messagerie.

Pour configurer le masquage de domaine, les étapes à suivre sont :

  1. Sur la page principale du module, cliquez sur Domain Masquerading icône.
  2. Remplissez le champ Mascarade comme domaine champ avec le nom du domaine qui doit être ajouté aux adresses d'expéditeur sortantes qui n'en ont pas, telles que example.com . Si le champ est laissé vide, aucune modification de domaine ne sera effectuée par Sendmail.
  3. Pour que Sendmail réécrive les adresses De des messages provenant d'autres domaines, remplissez les Domaines à masquer domaine. Cela peut être utile si certains des clients de messagerie qui envoient des messages via votre serveur insistent pour utiliser le mauvais domaine.
  4. Cliquez sur Enregistrer bouton pour activer le masquage.

Sur la plupart des serveurs de messagerie, vous n'avez pas besoin de configurer le masquage car tous les messages sont envoyés par des programmes clients utilisant SMTP. Tous les clients de messagerie permettent à l'utilisateur de spécifier une adresse d'expédition complète, qui doit inclure le domaine correct.

Gestion des alias d'e-mail

Un alias de messagerie spécifie que les e-mails reçus par votre serveur pour une boîte aux lettres particulière doivent être transférés vers une destination différente à la place. Cette destination peut être une autre adresse e-mail, un fichier d'adresses, un fichier local ou même l'entrée d'un programme. Ils peuvent être utiles pour configurer des pseudo-boîtes aux lettres qui envoient réellement des e-mails à une personne réelle, comme [email protected] ou [email protected] . Un alias peut avoir le même nom qu'un utilisateur Unix, auquel cas il interceptera tout le courrier destiné à cet utilisateur et le transférera vers une destination différente à la place.

Sur la plupart des systèmes d'exploitation, Sendmail a plusieurs alias définis par défaut pour les utilisateurs du système comme bin, persons et uucp, qui transfèrent tous le courrier à root. Il y aura également un alias postmaster, que chaque serveur de messagerie doit avoir, et qui devrait transférer les messages à une personne responsable du serveur de messagerie. En règle générale, il s'agira également de l'utilisateur root.

Pour créer votre propre alias de messagerie à l'aide de Webmin, les étapes à suivre sont :

  1. Sur la page principale du module, cliquez sur Alias ​​de messagerie icône. Vous serez redirigé vers une page répertoriant tous les alias existants et leurs destinations, avec un formulaire en haut pour en ajouter un nouveau. La capture d'écran ci-dessous montre un exemple.
  2. Dans l'Adresse champ du champ Créer un alias , entrez le nom d'utilisateur ou de boîte aux lettres pour cet alias (la partie de l'adresse à gauche du @). Si votre serveur héberge plusieurs domaines, l'alias transmettra les e-mails envoyés au nom saisi sur l'un de ces domaines. Par exemple, si votre serveur accepte le courrier pour foo.com et bar.com , puis un alias nommé sales transmettra l'e-mail à la fois à [email protected] et [email protected] . Si vous souhaitez pouvoir transférer différemment le même nom de boîte aux lettres sur plusieurs domaines, consultez la section ci-dessous intitulée *Gestion des mappages d'adresses virtuelles*.
  3. En supposant que vous souhaitiez réellement que cet alias soit utilisé par Sendmail, laissez l'option Activé ? champ défini sur Oui . Changez-le en Non entraînera l'ignorance de l'alias. Ce champ peut être utilisé lors de la modification d'un alias pour le désactiver temporairement plutôt que de le supprimer totalement.
  4. L'alias vers champ détermine où les e-mails vers cet alias seront envoyés. Les options suivantes sont disponibles dans le menu :
    Rien ne sera fait avec les e-mails reçus. Cela n'a aucun sens de sélectionner cette option lors de la création d'un nouvel alias.
    Adresse e-mail
    L'e-mail sera transmis à l'utilisateur ou à l'adresse saisis dans le champ adjacent. Attention à ne pas mettre en place une boucle de redirection en renvoyant à nouveau l'email à l'adresse de l'alias ! Si vous créez un alias qui a le même nom qu'un utilisateur Unix et que vous voulez vraiment que le courrier électronique soit livré à sa boîte aux lettres ainsi qu'à d'autres destinations, entrez le nom d'utilisateur précédé d'une barre oblique inverse (comme \jcameron ) dans ce champ. La barre oblique inverse indique à Sendmail de contourner la vérification des alias.
    Adresses dans le fichier
    L'e-mail vers l'alias sera envoyé à toutes les adresses du fichier texte dont le chemin d'accès au fichier est entré dans le champ de texte adjacent. Chaque adresse doit figurer sur une ligne distincte. Cette option peut être utile pour créer une liste de diffusion simple, et les alias de ce type sont utilisés par le gestionnaire de liste Majordomo (couvert sur MajordomoListManager).
    Écrire dans un fichier
    Le texte intégral, y compris tous les en-têtes des e-mails reçus par l'alias, sera ajouté au fichier dont le chemin est entré dans la zone de texte.
    Passer au programme
    Le programme dont le chemin et les paramètres sont saisis dans la zone de texte sera exécuté, et le texte intégral, y compris tous les en-têtes de courrier électronique reçus par l'alias, lui sera transmis en tant qu'entrée. Ce type d'alias est particulièrement utile aux programmeurs qui souhaitent effectuer leur propre traitement ou filtrage personnalisé des messages électroniques. Le programme est généralement exécuté en tant que démon utilisateur Unix, et non root ou l'utilisateur portant le même nom que l'alias.
    Réponse automatique à partir du fichier
    Lorsqu'un e-mail est envoyé à l'alias, le contenu du fichier spécifié dans la zone de texte adjacente est renvoyé à l'expéditeur d'origine. Consultez la section *Création d'alias de réponse automatique* ci-dessous pour plus d'informations sur l'utilisation d'alias de ce type.
    Appliquer le fichier de filtre
    Les e-mails envoyés à l'alias seront traités conformément aux règles du fichier de filtre entré dans la zone de texte, qui peut être transféré vers différentes destinations en fonction du contenu du message. Voir la section *Créer des alias de filtre* plus loin dans le chapitre pour plus de détails. Il est possible qu'un alias ait plusieurs destinations. Pour en ajouter plusieurs, vous devrez rééditer cet alias après l'avoir enregistré et remplir la ligne avec sélectionné en bas de l'Alias ​​vers table.
  5. Cliquez sur Enregistrer pour que l'alias soit ajouté à la liste et immédiatement rendu actif.


La liste des alias de messagerie

Comme d'habitude dans Webmin, vous pouvez modifier un alias existant en cliquant sur son nom dans la liste de la page Mail Aliases. Cela fera apparaître un formulaire d'édition contenant tous les mêmes champs que le formulaire de création, mais avec Enregistrer et Supprimer boutons en bas à la place. Le premier d'entre eux mettra à jour l'alias avec toutes les modifications que vous avez apportées, tandis que le second le supprimera définitivement.

Si un utilisateur Unix a un fichier nommé .forward dans son répertoire personnel, le courrier électronique qui serait normalement envoyé à son fichier de courrier sera envoyé aux adresses répertoriées dans le fichier .forward à la place. À bien des égards, ces fichiers sont équivalents à des alias qui peuvent être créés par des utilisateurs individuels plutôt que par l'administrateur système. Il est même possible qu'un fichier .forward contienne des entrées qui indiquent à Sendmail d'envoyer un e-mail à une liste d'adresses dans un autre fichier, de l'alimenter en entrée d'un programme ou de l'ajouter à un fichier.

Ce module ne prend cependant pas en charge l'édition des fichiers .forward. Cependant, Usermain permet aux utilisateurs normaux de modifier leurs propres fichiers de transfert à l'aide d'une interface Web presque identique à celle décrite dans cette section.

Configurer le relais

Aux débuts d'Internet, les serveurs de messagerie pouvaient livrer en toute sécurité le courrier aux domaines locaux et transférer tous les autres courriers électroniques vers un autre MTA, quelle que soit sa source. Aujourd'hui, autoriser votre serveur à transférer n'importe quel e-mail qu'il reçoit est une invitation aux spammeurs à utiliser votre système comme relais. Un serveur bien configuré ne doit accepter que les e-mails pour les domaines non locaux provenant d'hôtes clients de confiance, tels que ceux du réseau de l'entreprise ou du LAN domestique. Les e-mails envoyés aux domaines locaux sont sûrs et peuvent être acceptés de n'importe où.

Si Sendmail sur votre système est un relais ouvert (qui accepte les e-mails non locaux de n'importe où), les personnes qui envoient des millions de spams peuvent l'utiliser pour brouiller les pistes. Même si vous utilisez un petit serveur de messagerie pour une petite entreprise dont vous pensez qu'aucun spammeur ne sera jamais au courant, c'est toujours une très mauvaise idée de laisser votre système ouvert au relais.

Pour cette raison, les packages Sendmail fournis avec les distributions Linux modernes sont configurés par défaut pour empêcher le serveur d'accepter des e-mails non locaux de n'importe où sauf sur le même système. Si vous configurez un serveur de messagerie pour une entreprise ou pour votre réseau local domestique, vous devrez également autoriser d'autres hôtes à relayer le courrier :

  1. Sur la page principale du module, cliquez sur Domaines relais icône pour faire apparaître un formulaire de saisie des réseaux relais et des domaines.
  2. Dans les Domaines vers lesquels relayer est autorisé, ajoutez l'adresse du réseau à partir duquel vous souhaitez autoriser les clients à se relayer. Il doit être saisi sans aucun zéro à la fin, par exemple 192.168.1 . Plusieurs réseaux peuvent être entrés, ainsi que des adresses IP spécifiques. Vous pouvez également entrer des noms de domaine comme foo.com que Sendmail permettra de relayer. Tout message électronique reçu (quelle que soit sa source) destiné à un domaine spécifié sera remis au serveur approprié. Cela peut être utile si votre système est une passerelle de messagerie pour d'autres domaines qui ne peuvent pas être atteints directement par le reste d'Internet, comme expliqué dans la section *Configuration du routage de domaine*.
  3. Cliquez sur Enregistrer bouton pour activer la nouvelle liste de domaines relais.

Un effet secondaire des restrictions de relais de Sendmail est qu'il n'y a aucun moyen d'utiliser votre système comme serveur pour les e-mails sortants lorsque vous vous connectez à partir d'un réseau non fiable - en fait, c'est tout l'intérêt. Parfois, cependant, cela peut être ennuyeux, par exemple si vous vous connectez à de nombreux FAI différents et que vous ne souhaitez pas reconfigurer votre client de messagerie pour utiliser un serveur de messagerie sortant différent pour chacun. Dans un monde idéal, il serait possible d'utiliser votre propre serveur de messagerie pour les e-mails sortants, peu importe d'où vous vous connectez, mais cela est normalement impossible sans désactiver complètement les restrictions de relais.

La meilleure solution à ce problème est l'authentification SMTP, dans laquelle les clients se connectent à Sendmail avant de relayer les e-mails. Malheureusement, Webmin n'a pas encore de moyen simple de le configurer. Une autre solution consiste à faire confiance aux clients qui établissent une connexion POP3 avant SMTP, ce que font la plupart des programmes clients de messagerie. Cependant, cela nécessite une coopération entre le serveur POP3 et Sendmail, qui sont généralement des programmes indépendants. Au moment de la rédaction, Webmin ne prend pas non plus en charge sa configuration.

Gestion des mappages d'adresses virtuelles

Les mappages d'adresses sont similaires aux alias, sauf qu'ils s'appliquent uniquement aux e-mails envoyés à un utilisateur et à un domaine spécifiques, plutôt qu'à un utilisateur de n'importe quel domaine, comme le font les alias. Une autre différence est que les mappages d'adresses ne peuvent transférer les e-mails qu'à une seule adresse, plutôt qu'à un programme, un fichier ou une liste d'adresses. Cependant, cette limitation peut être surmontée en combinant à la fois les mappages et les alias.

Vous pouvez utiliser des mappages d'adresses pour envoyer un e-mail à [email protected] et [email protected] envoyés vers des destinations finales différentes, même si les deux domaines sont hébergés par votre serveur. Ceci est particulièrement utile si vous gérez un grand nombre de domaines de messagerie pour différents clients, dont beaucoup souhaitent avoir des adresses similaires (telles que ventes ) dans leurs domaines.

Les mappages d'adresses peuvent également être utilisés pour rediriger tous les e-mails vers un domaine particulier vers les mêmes utilisateurs d'un domaine différent, de sorte que, par exemple, envoyez un e-mail à [email protected] et [email protected] sera envoyé à [email protected] et [email protected] respectivement. Mieux encore, vous pouvez envoyer tous les e-mails à n'importe quelle adresse d'un domaine à une seule autre adresse, ce qui est utile pour le client de messagerie POP3 Fetchmail Mail Retrieval. Pour créer un nouveau mappage d'adresses, les étapes à suivre sont :

  1. Sur la page principale du module, cliquez sur Mappages d'adresses icône. Une page répertoriant tous les mappages existants s'affichera, avec un formulaire en haut intitulé Créer un mappage pour en ajouter un nouveau.
  2. Si vous souhaitez créer un mappage pour les e-mails vers une seule adresse, sélectionnez Adresse dans le Courrier pour champ et entrez l'adresse dans la zone de texte adjacente. Contrairement à un alias, il doit être saisi en entier comme [email protected] . Si vous créez un mappage pour tous les e-mails vers un domaine, sélectionnez le Domaine option et entrez le domaine ou le nom d'hôte complet dans le champ de texte à côté, comme example.com . Dans tous les cas, le domaine de l'adresse ou le domaine saisi doit apparaître dans la liste des domaines locaux de Sendmail, expliquée dans la section Modifier les domaines locaux section plus haut dans ce chapitre.
  3. Si la destination du mappage est une adresse unique, dans le champ Envoyer à champ sélectionnez Adresse et remplissez la zone de texte à côté avec une adresse complète (comme [email protected] ) ou un nom de boîte aux lettres (comme juste jcameron ). Si Domaine a été sélectionné pour le Courrier pour champ, vous êtes autorisé à sélectionner le Domaine option pour ce champ également. Si c'est le cas, vous devez entrer un nom de domaine (comme foo.com ) dans la zone de texte adjacente vers laquelle tous les e-mails envoyés au domaine d'origine seront transférés. La dernière erreur de retour dans l'option Envoyer vers peut être sélectionné si vous souhaitez qu'un message d'erreur spécifique soit renvoyé aux expéditeurs à la place. S'il est choisi, un type d'erreur doit être sélectionné dans le menu à côté et un message d'erreur plus détaillé doit être saisi dans la zone de texte. Cette option peut être utile pour renvoyer des messages de rebond expliquant pourquoi une adresse particulière ou un domaine entier n'est plus accessible.
  4. Cliquez sur Créer pour ajouter le mappage d'adresses à la liste de celles affichées sous le formulaire. Il sera rendu immédiatement actif.

Comme pour les alias, vous pouvez modifier ou supprimer des mappages existants en cliquant sur leurs adresses dans la liste. Cela fera apparaître un formulaire identique à celui utilisé pour créer un mappage, mais avec Enregistrer et Supprimer boutons en bas.

Si un mappage existe à la fois pour un domaine et une adresse dans ce domaine, Sendmail utilisera le second pour les e-mails vers cette adresse spécifique, et le premier pour les e-mails vers toute autre boîte aux lettres du domaine. En effet, les mappages d'adresses plus spécifiques ont priorité sur ceux qui sont plus généraux. Leur ordre dans la liste de la page Mappages d'adresses n'a aucune importance.

Si vous souhaitez créer un mappage qui transfère les e-mails vers un programme, un fichier ou une liste d'adresses, vous devrez également créer un alias. Le mappage d'adresse enverra un e-mail à l'alias, puis l'alias le transmettra à la destination réelle. En règle générale, l'alias doit nommer un nom lié au mappage d'adresse, tel que jcameron-example-com pour le mappage de l'adresse virtuelle [email protected] .

Sur un système avec de nombreux domaines et utilisateurs, il est fort probable que deux personnes voudront avoir le même nom de boîte aux lettres dans différents domaines, comme [email protected] et [email protected] . Étant donné que Sendmail ne délivre finalement que des e-mails aux fichiers de messagerie des utilisateurs Unix et que deux utilisateurs Unix ne peuvent pas avoir le même nom, cela peut poser problème. La solution habituelle est de créer des utilisateurs nommés comme bob-foo et bob-bar , et configurez les mappages d'adresses appropriés pour leur transférer les e-mails. Le seul inconvénient est que les utilisateurs devront se connecter au serveur POP3 en tant que bob-foo ou bob-bar au lieu de simplement bob .

Configuration du routage de domaine

La fonctionnalité de routage de domaine de Sendmail peut être utilisée pour transférer tous les e-mails d'un domaine particulier vers un serveur différent. C'est très utile si le DNS est configuré pour envoyer des e-mails pour certains domaines à votre système, qui doivent ensuite être transmis à un autre MTA inaccessible par le reste d'Internet. Le routage peut également être utilisé pour remplacer la méthode normale par laquelle Sendmail détermine à quel hôte envoyer des e-mails, ce qui peut être pratique sur les réseaux dans lesquels la connectivité est incomplète ou certaines informations DNS ne sont pas disponibles pour tous les hôtes.

Pour ajouter une nouvelle règle de routage de domaine, suivez les étapes ci-dessous :

  1. Sur la page principale du module, cliquez sur Domain Routing icône. Une page répertoriant les routages existants (le cas échéant) s'affichera, au-dessus de laquelle se trouve un formulaire pour en ajouter un nouveau.
  2. Pour que les e-mails soient uniquement dirigés vers un domaine ou un hôte spécifique, sélectionnez l'Hôte dans l'option Courrier pour et entrez le domaine ou le nom d'hôte dans le champ adjacent. Sinon, si vous souhaitez que les e-mails de tous les hôtes d'un domaine soient acheminés, sélectionnez Domaine à la place et entrez le nom de domaine dans son champ. Un routage de ce type pour le domaine example.com n'affectera pas l'envoi d'e-mails à une adresse du domaine (comme [email protected] ), mais uniquement aux adresses des hôtes sous le domaine (comme [email protected] ). Normalement, ce n'est pas ce que vous voulez. Tout domaine ou nom d'hôte que vous entrez doit figurer sur la liste pour laquelle Sendmail autorise le relais, comme expliqué dans la section Configuration du relais section plus haut dans ce chapitre.
  3. Dès la Livraison menu, sélectionnez SMTP . Ce champ indique à Sendmail quel protocole utiliser lors du routage des e-mails pour le domaine. La plupart des autres options sont inutiles, car elles concernent UUCP qui n'est plus guère utilisé.
  4. Dans le champ Envoyer à , entrez le nom d'hôte du système vers lequel le courrier doit être transféré. L'option Ignorer MX pour la livraison SMTP doit également être cochée, afin que Sendmail livre toujours directement à cet hôte au lieu d'essayer une autre recherche DNS pour déterminer la bonne destination.
  5. Cliquez sur Créer bouton pour ajouter et activer le nouveau routage de domaine. Vous devriez le tester pour vous assurer qu'il fonctionne vraiment, car de petites erreurs (telles que la sélection de Domaine au lieu de Hébergeur ) peut empêcher une route de fonctionner.

Comme sur les autres pages similaires du module, une règle de routage existante peut être modifiée ou supprimée en cliquant sur son nom de domaine dans la liste de la page Domain Routing. Cependant, il n'y a aucun moyen de désactiver temporairement une règle, comme c'est le cas avec les alias.

Sendmail peut également être configuré pour transférer tous les e-mails non locaux vers un serveur spécifique, plutôt que simplement les e-mails vers des domaines particuliers. Ceci est utile si votre entreprise ou votre FAI dispose d'un serveur de messagerie central auquel vous souhaitez transférer des e-mails, plutôt que de laisser votre système se connecter au véritable serveur de destination. La section suivante explique comment configurer cela.

Modification des options globales de Sendmail

Les options globales contrôlent des éléments tels que la taille maximale des messages, le nombre de jours pour réessayer le courrier électronique, les limites moyennes de charge et le serveur de courrier sortant. Les étapes ci-dessous expliquent comment modifier certaines des plus utiles :

  1. Sur la page principale du module, cliquez sur les Options Sendmail icône. Un formulaire de modification des options globales (illustré ci-dessous) s'affiche.
  2. Lorsque Envoyer le courrier sortant via l'hôte est défini sur *Livraison directe*, Sendmail recherchera le bon serveur de messagerie pour les messages non locaux et s'y connectera pour livrer les e-mails. Toutefois, si vous sélectionnez la deuxième option et entrez un nom d'hôte dans la zone de texte, tous les messages, à l'exception de ceux destinés aux utilisateurs locaux, seront envoyés à cet hôte à la place. En règle générale, il s'agira d'un serveur de messagerie central chez votre FAI ou sur le réseau de votre entreprise. Si une règle de routage de domaine existe pour une adresse, elle prévaudra sur tout serveur défini à l'aide de ce champ.
  3. Le mode de livraison contrôle la façon dont Sendmail traite les messages entrants. Les options disponibles sont :Arrière-plan ou *Par défaut *Dans ce mode, les e-mails sont immédiatement acceptés par les clients, puis livrés à la destination par un processus d'arrière-plan distinct. C'est généralement ce que vous voulez. *File d'attente uniquement* ou *Différé *Lorsque l'un de ces modes est choisi, Sendmail ajoutera simplement les messages entrants à sa file d'attente de messagerie. Ce n'est que lorsque la file d'attente est explicitement vidée qu'ils seront envoyés à leurs destinations. Cela peut être utile si votre système n'est pas toujours connecté à Internet ou si vous souhaitez un contrôle explicite sur le moment où le serveur envoie des messages. Lorsqu'un message est reçu dans l'un de ces modes, Sendmail n'effectue aucune validation de l'adresse source ou de destination, ce qui entraînerait des problèmes si votre système est déconnecté du réseau. *Interactif *Ce mode est similaire à l'arrière-plan, sauf que le courrier électronique est livré par le même processus qui l'accepte du client. Cela signifie que les clients doivent attendre que Sendmail ait transféré leurs messages vers le serveur suivant ou de destination, ce qui peut prendre un certain temps. Cependant, cela réduit le nombre de processus que Sendmail doit démarrer.
  4. Les options de port SMTP peut être utilisé pour définir les ports TCP sur lesquels Sendmail écoute les connexions SMTP. La valeur réelle pouvant être saisie peut être assez complexe, mais si vous souhaitez que votre système accepte les connexions de n'importe où sur le port SMTP standard, vous devez saisir uniquement Nom=MTA. Sur certains systèmes d'exploitation, ce n'est pas la valeur par défaut et Sendmail n'accepte que les connexions de localhost.
  5. La charge moyenne maximale pour l'envoi peut être utilisé pour définir une charge moyenne au-dessus de laquelle Sendmail n'enverra pas de messages. La charge moyenne est une estimation approximative du nombre de processus en cours d'exécution sur votre système à un moment donné, comme expliqué au chapitre 11. Cette option et la suivante sont utiles pour limiter la quantité de temps CPU que Sendmail peut utiliser sur votre système. , bien que ce dernier soit plus utile. Si par défaut est sélectionné, le serveur continuera à traiter la file d'attente de courrier et à envoyer des messages quelle que soit la charge moyenne.
  6. Pour définir une charge moyenne au-dessus de laquelle Sendmail n'acceptera plus de nouveaux messages, saisissez une valeur pour la Charge moyenne maximale pour la réception domaine. Lorsque ce niveau est atteint, le serveur ferme le port SMTP jusqu'à ce que la charge redescende en dessous. En règle générale, tout ce que vous saisissez doit être inférieur à la limite définie pour la charge moyenne maximale pour l'envoi , de sorte que la file d'attente de courrier soit toujours traitée même lorsque la charge est élevée. Lorsque Par défaut est sélectionné, Sendmail acceptera les nouvelles connexions quelle que soit la charge moyenne.
  7. Le temps avant d'abandonner Le champ spécifie la durée pendant laquelle Sendmail tentera d'envoyer un e-mail à un serveur distant non joignable avant de renvoyer un message de rebond à l'expéditeur. La valeur que vous saisissez doit être un nombre suivi de d pour les jours ou de h pour les heures. Il ne doit être modifié que si votre système est susceptible d'être déconnecté d'Internet pendant une durée supérieure à la durée par défaut de 5 jours et que vous ne voulez pas que les messages de la file d'attente rebondissent.
  8. Le même Délai avant l'envoi d'un avertissement spécifie la durée pendant laquelle Sendmail conservera un message dans la file d'attente avant d'envoyer un avertissement à l'expéditeur d'origine. Si votre système est un serveur de messagerie secondaire pour un domaine ou est souvent déconnecté du réseau, il doit être augmenté à la même heure que le champ précédent.
  9. Pour modifier l'adresse à laquelle Sendmail envoie les messages fatals ou à double rebond, saisissez une nouvelle adresse dans le champ *Envoyer les messages d'erreur à*. Quand le maître de poste est sélectionné, ils seront envoyés à la boîte aux lettres Postmaster à la place, qui est généralement un alias pour root.
  10. To limit the amount of disk space that Sendmail will use up for queued messages, fill in the Min free disk space domaine. If the number of free blocks drops below this level, new incoming messages will no longer be accepted. The exact size of a block depends on the type of filesystem in use, but they are typically
  11. kB or 512 bytes in size.
  12. To stop large messages being sent via your mail server, fill in the Max message size domaine. Any email larger than the number of bytes entered will be rejected when it is received. If you have a slow network connection and un-trusted client users, this option can be useful to save on bandwidth.
  13. Finally, click Save and Apply to save the new global options. Webmin will automatically re-start Sendmail for you to activate them.


The Sendmail options page

Viewing the mail queue

When Sendmail receives a message, it is placed into the mail queue. If it can be send to its destination immediately, then it will be removed from the queue almost at once - however, if some temporary error occurs when ending then it will remain queued for later processing. The Sendmail server process makes periodic checks of messages in the queue, re-trying each one at longer and longer intervals. Finally after a message has been in the queue for too long (usually 5 days), it will be removed and a bounce email sent back to the original sender.

Most messages that are in the queue for a long time are there because the destination mail server is down or unreachable. Another common cause is a temporary error reported by the remote MTA, such as a lack of disk space. Webmin allows you to view messages in the queue and even delete them by following these steps :

  1. On the module's main page, click on the Mail Queue icon to go to a page listing the details of queued messages. The number of emails in the queue is displayed below the icon, so that you can see how long it is at a glance.
  2. On the mail queue page the ID, sender, destination, subject and size of all queued messages are displayed in a table. In the final column is the current status, which indicates what Sendmail is trying to do with the message at the moment. Sending will appear when Sendmail is trying to connect to the remote server, and Deferred will be shown along with a reason when a connection has been tried and failed. If the queue contains more than 20 messages, only the first 20 will be displayed. To page through the rest, use the left and right arrow buttons that appear above the list.
  3. To view the actual contents of an email, click on its ID in the queue listing. All headers, the text body and any attachments will be displayed. To view an attachment, just click on its icon. To remove just this message from the queue, hit the Delete bouton en bas de la page. If the email is locked because it is currently being sent, Webmin will display an error message along with a button labelled Force deletion anyway that you can click to override the lock. This may cause the message to be only partially sent though, and so is not recommended.
  4. To remove multiple messages from the queue, first select them using checkboxes next to their IDs and the Select all and Invert selection links on the queue list page. Then click the Delete selected messages button to get rid of those that you have chosen. To override any locks on the selected emails, check the Even if locked box first. After you hit the Delete button, a page listing the ID and deletion result of each chosen message will be displayed. Deletion can fail if the message is no longer in the queue, or if it is currently locked.

Even though Sendmail will re-try messages in the queue automatically, you can force it to attempt delivery of all queued messages immediately using Webmin. This can be useful if you have a dial-up Internet connection and have queued up several emails while disconnected. The steps to flush the queue are:

  1. On the module's main page, click on the Mail Queue icon to bring a list of queued messages.
  2. As long as the queue is not empty, a button labelled *Flush Mail Queue* will be visible at the bottom of the page. Click it begin immediate processing of all waiting messages.
  3. A page showing the output from Sendmail as it attempts to deliver queued email will be displayed. If you have a large queue containing messages for down remote servers, it may take a long time to completely appear.

Reading users' email

As the introduction explains, Sendmail stores messages received by users in files in the /var/mail or /var/spool/mail directory. These are read and emptied by the POP3 server, command-line mail clients like pine or elm, or web-based mail clients like Usermin. However, this Webmin module can also act as a simple mail client, allowing you the system administrator to read any user's email.

This feature is useful for deleting large messages is user mailboxes that would otherwise take a long time to download over a dialup POP3 connection. It also allows you to read email for system users such as root without needing to telnet in or run a separate mail client. More controversially, on a multi-user system you can even invade people's privacy by reading their personal email - assuming they have not downloaded and deleted it via POP3 yet.

The steps to check the contents of a user's mailbox are:

  1. On the module's main page, click on the User Mailboxes icône. A page listing all of the users on your system and the sizes of their mailboxes will be displayed, unless you have more than 200 users. In that case, a small form for entering a username will appear instead.
  2. Click on the name of a user to bring up a list of messages in his mailbox, an example of which is shown in Figure 37-4. By default, the most recent messages are shown first, even though they are actually at the end of the actual mail file. If the mailbox contains more than 20 emails, only the first 20 will be displayed. To page though the rest, use the left and right arrow buttons above the list.
  3. To view an actual message, click on the sender's name in the From colonne. A page showing the important headers, body text and attachments will appear. Click on an attachment icon to view it, assuming that the data type is supported by your browser or some external program. To remove just this email from the user's mailbox, click the Delete bouton en bas de la page. This can take quite some time if the mailbox is extremely large (over 10 MB) or contains lots of messages, as Webmin needs to re-write the entire mail file.
  4. To delete multiple messages, first select them using the checkboxes and Select all and Invert selection links on the mail list page. Then click the Delete button above or below the list - once again, this can take a while for large mailboxes.
  5. To search the user's mailbox for messages matching some criteria, use the Find messages where form below the list. The following types of search can be selected from the menu :From:matches , Subject:matches , To:matches or Cc:matches Finds messages in which the From, Subject, To or Cc field contains the text entered into the adjacent text box. The comparison is case-insensitive, but regular expression characters cannot be used. Date:matches Finds messages in which the sending date header contains the entered text. This header will not be converted to local format, so whatever you enter must match the date format used by the sender. Body matches Finds messages whose body contains the entered text. The body includes all attachments in their un-encoded form, not just the text that is shown when you read an email. *Size is greater than* Finds messages whose total size is greater than the number of bytes entered into the adjacent field. For each of the above search types, an inverse type is also available, such as From:doesn't match or *Size is less than*. After choosing your search type and entering text to match, hit the Search bouton. A page listing all matching messages will be displayed, from which you can view the contents of emails or select some or all to delete, just like in the normal mail list.


The contents of a user's mailbox

The mail reading section of the module actually allows you to compose new messages and reply to or forward existing ones. In fact, it can be used as a full-featured email client, although it is not the best program for the job. The default From address for sent messages is determined from the mailbox user's name and the system hostname, but this can be changed on the module access control page on a per-Webmin user basis. It is even possible to create Webmin users who can use this module to read only their own mailbox and send email from only their address. However, you should really use a program like Usermin if you want to give the same mail-reading web interface to a large number of users on your system.

By default, the module assumes that that mail for each user will be stored in a file with the user's name in the /var/mail or /var/spool/mail directory. It is possible to configure Sendmail to use a different file path instead though, such as the mbox file in each user's home directory. If this is the case on your system, you will need to re-configure the module, as explained in the section Sendmail Configuration module. Otherwise all the mailbox will show up empty, because Webmin is looking in the wrong place for them.

Adding Sendmail features with M4

The primary Sendmail configuration file sendmail.cf is extremely complex, and almost impossible to edit manually. Fortunately, it is usually built from a series of M4 macro files that are much simpler and can be modified using this module or by manual editing. M4, for those who have not heard of it before, is a program that parses text files and expands macros in them. These macros can include other text files, define variables and functions or exclude text based on certain conditions. M4 is very similar to the pre-processor used by the C programming language which handles #include and #define statements. Fortunately, this module hides most of the complex details from you.

Often, the default Sendmail configuration that comes with your operating system will not have some features enabled, such as address mapping or domain routing. Webmin can detect this, and will display an error message if you try to use a module page for a Sendmail feature that is not enabled in the primary configuration file. To turn on a missing feature, an entry must be added to the primary M4 configuration file, from which sendmail.cf is re-built. Then Sendmail will be able to use it, and this module will be able to configure it.

Before you can manage your Sendmail M4 configuration, this module must know where to find the M4 files. To check if it has the correct paths and to set them if not, follow these steps:

  1. On the module's main page, click on the Sendmail M4 Configuration icône.
  2. If an error message like *The Sendmail M4 configuration file /etc/sendmail.mc was not found* or The locations of the Sendmail M4 base directory and M4 config* files have not been set* is displayed, then module cannot find the M4 files. However, if a table of entries from the file is displayed instead then everything is configured OK and you can skip the rest of these steps.
  3. If you are running Linux, check your distribution CD or website to make sure that all the packages whose names start with sendmail are installed. Sometimes the M4 files are in a separate package named something like sendmail-cf. If you do find and install such as package, go back to step 1 and check again to see if the module has found the configuration files.
  4. If you are using the Sendmail package that came with your version of Unix and cannot find any M4 files on your system, then this feature of the module cannot be used. This is unfortunately the case on some operating systems.

Once the Sendmail M4 Configuration page displays the contents of your primary M4 file, you can use it to add new features such as address mapping or domain routing. The page can in fact be used to modify any of the M4 macros in the file, but unless you are any experienced Sendmail administrator it is best to stick to these instructions for adding features:

  1. From the menu next to the Add new entry of type button at the bottom of the page, select Feature and then hit the button to go to the feature creation form.
  2. Select the one that you want to add from the Feature menu. The most commonly used features have names next to them in brackets that correspond to their icons on the module's main page.
  3. In the Parameters field, enter hash -o followed by the path that should be used for the feature's text and DBM files. For example, if adding a virtusertable feature you should enter hash -o /etc/mail/virtusertable (assuming your system has an /etc/mail directory).
  4. Login to your system as root via SSH, telnet or at the console and create the empty text file with a command like touch /etc/mail/virtusertable. Naturally, this is not necessary if it already exists.
  5. Click the Create button to update the M4 file and be returned to the previous page.
  6. At the very bottom of the M4 file contents list, click the *Rebuild Sendmail Configuration* button. A confirmation page showing the exact changes that will be made to your sendmail.cf file will be displayed - typically they will be limited to directives for the new feature. If the confirmation form indicates that a huge number of lines are going to be changed, it is likely that the M4 file being edited was not originally used to built your current sendmail.cf file, and so should not be used in future.
  7. To go ahead and use the newly rebuilt Sendmail configuration, click the Yes, replace it now bouton. Your sendmail.cf file will be updated and the server process re-started to immediately activate it.
  8. Go back to the module's main page, and click on the icon for the feature that you have just enabled. You will not be able to add and edit address mappings or whatever it was that you added support for.

As you can see from looking at the existing M4 file entries, editing or adding to it can still be quite complex. For this reason, the book does not cover all of the possible features or other macro types that you can add. However, for most people the defaults will work just fine - at most, all you should need to do is add a feature or two as explained above. If you want to learn more about editing the M4 configuration, you should buy a book dedicated to Sendmail administration.

One problem with using the M4 page to re-build your Sendmail configuration is that any changes that have been made directly to sendmail.cf will be overwritten. The module's Sendmail Options page unfortunately does precisely this, so if you follow the instructions above to add a new feature any changes made on that page will be lost! The only real solution is to edit the entries in the M4 file that correspond to those on the Sendmail Options page - for example, the Send outgoing mail via host field is set by the SMART_HOST define.

Creating autoreply aliases

The Sendmail Configuration module lets you easily create an alias that triggers an automatic reply to anyone who sends email to it. When you do this, Webmin creates a simple script that is run from the alias and receives the contents of email sent to it as input, just like a command specified using the Feed to program alias type.

To set up an autoreply alias, follow these steps:

  1. On the module's main page, click on the Mail Aliases icône.
  2. In the Create Alias form, enter a name for the alias and select Autoreply from file from the type menu. The name can be that of an existing Unix user if you want to set up an automatic reply to any message send to him, for example if he is on holidays.
  3. In the field next to the type menu, enter the path to a file that will contain the autoreply message, such as /home/someuser/autoreply.txt . The file does not have to exist yet.
  4. Click the Create button to add the alias, and then click on its name in the list to edit again.
  5. Follow the Edit link next to the autoreply filename field. This will bring up a page containing a large text box for entering the contents of the reply message.
  6. After entering the text that you want sent back to any sender, click Save at the bottom of the page. The autoreply alias is now fully active.

The reply text can contain several special macros that start with $, such as $SUBJECT, $TO, $FROM, $DATE and $BODY. When the reply is sent, these will be replaced with the original message's subject, destination address, sender address, sending date or body respectively. Be careful using the $BODY macro though, as it will be replaced with the entire un-encoded contents of the email being replied to.

You can also add to or override the headers used in the reply message by starting the autoreply text with one or more lines in standard SMTP header format, followed by a blank line. For example, to set the subject of the automatic reply you could enter _Subject:This is an automatic reply_ at the top of the text box, with an empty line after it.

One problem with Webmin's autoreply script is its inability to reliably determine the From address to use when sending the reply. Normally this is just taken from the To address of the original message, but this is not possible when replying to a message that was sent to multiple people. Even though the code attempts to find the right address automatically, it can sometimes get the wrong one and send an automatic reply that appears to be from the wrong person. For this reason, you should include a header line like From:Jamie Cameron at the top of your reply text to set the correct address.

If you are setting up an automatic reply alias for a Unix user, it is usually a good idea to have a copy of all email sent to the user stored in his mailbox as well. To do this, re-edit the alias and select Email address from the second type menu. Then enter the user's name preceded by a backslash into the text field next to it (like \jcameron ) and hit Save .

Creating filter aliases

Sendmail aliases normally forward email messages to their destinations regardless of their content. However, it is possible to use this Webmin module to create an alias that forwards to different addresses or files depending on the headers or body of a message send to it. When you create an alias like this, the module internally creates a script that is passed the contents of email to the alias as input, just like a command specified using the Feed to program alias type.

A filter consists of a series of rules, each of which has a condition and action. The condition specifies a header to check and text to check if the header contains, while the action specifies an address to forward to or a file to append the message to. When a message is received by the filter, it is checked against the rules in order until one that matches is found and its action performed. At the end of the list is a default action, which determines where to forward email that does not match any of the conditions.

Compared to other mail filtering or classification programs like Procmail Mail Filter and SpamAssassin Mail Filter, Webmin's filters are limited in their functionality and flexibility. However, they are easy to create and require no additional software. To create one, the steps to follow are:

  1. On the module's main page, click on the Mail Aliases icône.
  2. In the Create Alias form, enter a name for the alias and select Apply filter file from the type menu. The alias name can be that of an existing Unix user if you want to filter his email before delivery.
  3. In the field next to the type menu, enter the path to a file that will contain the filter rules, such as /home/someuser/filter.rules . Because the file format is fairly complex, you should not enter the name of any existing file unless it was created by following these same steps.
  4. Click the Create button to add the alias, and then click on its name in the list to edit again.
  5. Follow the Edit link next to the filter rules file field. This will take you to the form shown in Figure 37-5, which contains a table of empty rows for entering new rules and a text field for the default action address.
  6. In the first row, select the header that you want to filter on from the menu next to If the . Or to check the entire un-decoded email body, select body from the list instead. To have the action performed if some text is found in the header or body, select matches from the second menu. Alternately, to perform the action only when some text is not found, choose *doesn't match* instead. In the field next to this menu, enter the text that the filter should check the header or body for. The comparison will always be case-insensitive, and Perl regular expression characters like [, ., + and * can be used. In the *then forward to* field, enter the email address or mailbox name to which messages matching the condition that you specified will be sent. It is also possible to enter an absolute file path like /home/someuser/mail/somefolder to which email will be appended instead. This could be another user's mail file, or a mail folder - however, it must be writable by the Unix user daemon that Sendmail runs as.
  7. To enter another rule, fill in the second blank row by repeating the instructions in the previous step again. Only five empty rows are displayed, but you can create more than five rules by saving and re-editing the filter file.
  8. In the Otherwise forward to field at the bottom of the table, enter an address or filename to which messages that do no match any of the rules will be sent or appended. If this is left blank, unmatched email will be thrown away!
  9. Finally, click the Save button to activate the new filter rules. To make sure they are really working, you should send a few text messages to the alias and check that they are delivered correctly.


The filter creation form

To have email forwarded to multiple addresses by a single rule or the default action, just enter them separated by commas into one of the forward to fields. Or enter the name of another alias as the destination, which can then send messages to multiple files, addresses and/or programs.

When creating a filter alias with the same name as a Unix user, it is often useful to specify that messages matching some rule be delivered to the user's normal mailbox. However, just entering the user's name as the destination would be a big mistake, as this would trigger an endless loop through the filter! Instead, you should prepend a backslash to the username, like \jcameron . As with aliases, this tells Sendmail to ignore any aliases for this mailbox.

Because it can often be difficult to work out what a filter alias is doing and why it is doing it, the filter script creates a log file in the same directory as the rules file. The log has the same name as the filter file, but with .log appended. Every message received by the alias and delivered to some destination by the filter causes a line to be added to the log, containing the date, time, sender, destination and rule matched. The log file will only be created if the directory or log itself is writable by the daemon user though.

Contrôle d'accès aux modules

The Sendmail Configuration module probably has the most powerful access control features of any module in Webmin. You can use them to limit the aliases and virtual addresses a Webmin user can edit, or restrict him to reading only the mailboxes of certain Unix users. These features are most useful in a virtual hosting environment, where customers own email domains and the user accounts. On this kind of system, you can create one Webmin user per customer who can only manage the address mappings, aliases and mailboxes for his own domains, while not being able to use other features of the module or touch other customers' information.

Once you have created a Webmin user who has access to the module (as explained in WebminUsers), follow these steps to restrict what he can do:

  1. In the Webmin Users module, click on Sendmail Configuration next to the name of the user that you want to restrict.
  2. Modifier le Peut modifier la configuration du module ? champ sur Non , so that he cannot modify paths to Sendmail programs and files.
  3. Set all of the Yes/No fields in the second section to No , which will prevent the user from seeing most of the module's icons.
  4. Sélectionnez Non from the Can manage mail queue? menu, or *View only* if you just want the module user to be able to see the contents of the queue. Selecting Yes would be a bad idea, as it would allow him to delete queued email belonging to other domains.
  5. For the Address mappings this user can edit field, select the Matching option and enter a Perl regular expression for allowable mapping sources into the text field next to it. For example, to let him create and edit mappings in the domains foo.com and example.com , you should enter (@foo.com|@bar.com)$.
  6. It is safe to select all of the checkboxes in the *Address mapping types this user can edit* field.
  7. To limit the number of mappings that the user can create, select the second radio button in the *Maximum number of address mappings* field and enter a number into the box next to it. This can be useful for preventing a single customer from more address mappings than he has paid for.
  8. In the Aliases this user can edit field, select Matching and enter a regular expression that only lets him modify or create aliases starting with the customer's domain names. For example, if the user owns the domains foo.com and example.com you should enter ^(foo|example)- to limit him to aliases like foo-jcameron or example-fred . This naming convention ensures that users cannot step on each others' aliases.
  9. In the Alias types this user can edit field, de-select the checkboxes for types of aliases that the Webmin user should not be allowed to create. Good candidates to deny access to are Write to file , Feed to program , Autoreply and *Filter file*, as they use the permissions of the Sendmail daemon user and thus may be a security risk.
  10. To limit the number of aliases that the customer can create, select the second radio button in the Maximum number of aliases field and enter the maximum into the box next to it.
  11. To stop the Webmin user creating aliases that run programs, append to files or use address files outside a certain directory, enter it into the Limit files and program to directory domaine. Unfortunately, this can be subverted by the clever use of symbolic links and so is not a very strong security measure.
  12. In the Outgoing addresses this user can edit field, select Matching and enter the same regular expression as in the Address mappings this user can edit domaine. This will limit the user to re-writing addresses for only his own domains. Or to prevent the editing of outgoing addresses at all, select None - in most cases, there is no need for a Sendmail administrator to edit them anyway.
  13. In the Users whose mail can be read field, select one of the last five options to limit the customer to only those Unix users who belong to him. If he has been given limited access to the Users and Groups module as well, then you should allow him to read the email of the same users that he can create an edit in that module.
  14. Leave the rest of the fields on the form set to their defaults - they are only really useful if you are setting up the module as a web- based mail reading interface. Although this is possible, there are much better alternatives such as Usermin.
  15. Cliquez sur Enregistrer button to make the restrictions for the user active.

Even though it is possible to configure this module to limit a user to certain domains, the module's interface is not particularly friendly compared to products like Plesk or Cpanel. These are web-based virtual server management interfaces that have been designed from the ground up for that purpose, unlike Webmin which was design to allow the management of everything on a system.

Configuring the Sendmail Configuration module

The Module Config link on the main page takes you to a form seen in many other modules for editing settings that apply to the operation of the module itself. Those listed under Configurable options relate to its user interface, while those under System configuration define the paths to the Sendmail programs and files.

Settings in the latter group do not usually need to be changed, as by default they are set to match the Sendmail package supplied with your operating system. However, if you have compiled and installed the MTA yourself from the source code, then it is quite possible that they will be incorrect.

Contenu

See also

  • Introduction to Internet Mail

Webmin
  1. Comment installer DKIM sur le serveur Ubuntu

  2. Guide de l'administrateur système pour la configuration d'un serveur de messagerie

  3. Serveur de messagerie QMail

  4. Préparer un Serveur Cloud pour être un serveur de messagerie

  5. Service d'exploitation Linux "sendmail"

Configuration de l'utilisateur min

Serveur IMAP/POP3 de Dovecot

Serveur de messagerie Postfix

Comment installer le serveur de messagerie Exim sur CentOS 6

Configuration du serveur de messagerie Postfix sur Ubuntu 14.04

Configuration du serveur de messagerie Postfix sur Ubuntu 20.04