Maniatux's Blog

Welcome to the internet

NetBSD : Serveur SMTP

Rédigé par Xavier - -

J'ai ressorti mon Alix il y a peu de temps pour en faire un serveur mail. Mais j'ai envie de découvrir un peu l'univers *BSD (bien que chaque système soit différent) donc je me tourne vers NetBSD.

Installation

Elle est assez simple il n'y a que très peu de points à détailler. Demandez une installation minimale. La maximale installe plein de choses dont nous n'avons pas besoin, comme les outils de compilation, les sources et les jeux. L'install minimale prend environ 90 Mo d'espace disque, ce qui est quand même intéressant pour faire tourner un serveur sur une Alix avec sa carte Compact Flash de 1-4 GB !

Entrons ensuite dans le partitionnement. Validez tout et demandez à entrer la taille des partitions NetBSD. Set sizes of NetBSD partitions. Voici le schéma de partitionnement pour ma carte CF de 4GB:

  • Partition / de 3710MB
  • Partition swap de 128MB
  • Partition /tmp de 128MB
  • Partition /var de 256MB

Le reste de l'installation ne devrait pas poser de problèmes particuliers.

Configuration de base

Nous devons commencer par configurer un peu notre machine et surtout notre réseau. Tout se fait dans le fichier /etc/rc.conf donc ouvrez-le avec vi.

# vi /etc/rc.conf

Ajoutez les options suivantes et consultez l'explication en dessous:

hostname=src001.no-ip.org
sshd=YES
  1. hostname: Le FQDN du serveur. Par exemple j'ai réservé src001.no-ip.org chez no-ip (gratuitement). Le nom du serveur sera "src001" (NetBSD sait séparer le nom de machine et le domaine)
  2. sshd=YES: Pour activer l'accès SSH

Pour le réseau, commencez par regarder le nom de votre carte réseau avec:

# ifconfig -a

Dans mon cas, c'est wm0 (VirtualBox). Si vous êtes en DHCP il suffit d'ajouter l'option suivante dans le rc.conf:

dhclient=YES

Pour du statique, voici les lignes à ajouter (et à adapter à votre configuration bien entendu):

auto_ifconfig=YES
ifconfig_wm0="inet 192.168.56.10 netmask 255.255.255.0"
defaultroute=192.168.56.1

Vous devez ensuite ajouter votre FQDN dans le fichier hosts.

# vi /etc/hosts

Sur la ligne 127.0.0.1 ajoutez votre FQDN suivi d'un point (ici src001.no-ip.org.)

Et dernièrement, vous devez spécifier un serveur DNS dans le fichier /etc/resolv.conf:

# vi /etc/resolv.conf

La plupart des *box ont un serveur DNS. Vous pouvez donc mettre l'adresse de la box. Sinon vous pouvez utiliser les OpenDNS ou le DNS de Google en 8.8.8.8. A mettre dans le fichier:

nameserver 192.168.1.1

Pour appliquer ces modifications, redémarrez NetBSD:

reboot

Configuration de Postfix pour la réception

Configuration ? Déjà ? Ai-je oublié de vous parler de l'installation de Postfix ? Eh bien non, il est déjà fourni dans le système de base ! NetBSD pèse 90 Mo et il intègre quand même un SMTPD, HTTPD, FTPD...

Le fichier de configuration de Postfix est /etc/postfix/main.cf et il contient énormément de commentaires pour vous aider. Alors que faut-il modifier ? En théorie, rien. En effet, ça fonctionne déjà par défaut, avec les comptes système. Nous allons le vérifier.

Créez un compte pour l'utilisateur qui veut sa boite mail, par exemple "xavier".

# useradd -m -G wheel xavier
# passwd xavier

Note importante: l'option -G wheel permet à l'utilisateur de passer root (avec la commande "su", si il connait le mot de passe). Pour moi, cela aura une utilité. Mais si ce n'est pas votre cas, attention.

Dans le rc.conf, ajoutez la ligne postfix=YES . Puis lancez ce dernier avec la commande suivante (essayez "restart" au lieu de "start" si un message vous dit qu'il est lancé):

# /etc/rc.d/postfix start

Ensuite, écrivez un mail de test à l'utilisateur (avec son adresse complète) à l'aide de la commande sendmail (Tapez un texte et allez à la ligne pour faire un point afin de valider):

# sendmail xavier@src001.no-ip.org

Allez ensuite jeter un œil dans /var/mail. Surprise ! Il y a un fichier "xavier" qui contient le mail en question !

# cat /var/mail/xavier

Alors le souci c'est que là les mails sont rangés en vrac dans un seul fichier (façon Mbox), lui-même situé sur la partition /var qui est limitée à 128 Mo dans notre cas :/ on va donc modifier un peu la configuration pour utiliser le home de l'utilisateur et trier tout ça façon Maildir/.

Ouvrez le fichier /etc/postfix/main.cf et recherchez les lignes suivantes:

#home_mailbox = Mailbox
#home_mailbox = Maildir/

Et bien entendu, il suffit d'enlever le # pour activer l'option désirée. Dans notre cas, vous devez obtenir ceci:

#home_mailbox = Mailbox
home_mailbox = Maildir/

Maintenant, enregistrez et relancez ou rechargez postfix avec un restart ou reload. Testez à nouveau un envoi de mail avec sendmail.

Vous pouvez maintenant constater que le mail est arrivé dans le répertoire /home de l'utilisateur, dans un dossier Maildir/

Configuration de Postfix pour l'envoi

Si vous avez bien accès à internet, vous êtes normalement en mesure d'envoyer des mail. Malheureusement la plupart des FAI bloquent le port 25 sortant afin d'empêcher les PC-Zombies de diffuser du spam. Donc notre serveur ne peut pas envoyer de mail et nous allons devoir passer par un relais.

Honnêtement je pensais rédiger un exemple avec le SMTP de Orange, mais il faut maintenant utiliser un login de boite mail chez eux pour pouvoir l'utiliser, ce qui est inacceptable.

Ouvrez le main.cf et trouvez la ligne:

#relayhost = [mail.isp.tld]

Décommentez et spécifiez l'adresse du SMTP à utiliser en relais:

relayhost = smtp.relais.com:587

Faites des vérifications avec sendmail et visualisez le fichier /var/log/maillog pour voir ce qui se passe exactement.

# tail /var/log/maillog

Classé dans : Sysadmin - Mots clés : aucun