Maniatux's Blog

Welcome to the internet

Planet-Libre

OpenBSD + MySQL

Rédigé par Xavier - - Aucun commentaire

Petit aide-mémoire pour installer MySQL server sur OpenBSD.

# export PKG_PATH=http://ftp.fr.openbsd.org/pub/OpenBSD/5.1/packages/i386/
# pkg_add -v mysql-server
# /usr/local/bin/mysql_install_db
# /etc/rc.d/mysqld start
# /usr/local/bin/mysql_secure_installation

Vérifications :

# mysql -u root -p
mysql› show DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.01 sec)

mysql›

Fini !

OpenSMTPD : réception port 25, authentification SSL/TLS port 465

Rédigé par Xavier - - Aucun commentaire

Dans un précédent article nous avons vu comment mettre en place OpenSMTPD sur OpenBSD, avec l'authentification pour le relay. Seulement, nous vivons dans des pays où internet n'est pas neutre, le port 25TCP sortant est très souvent bloqué sur les connexions à internet. Ainsi, bien que votre serveur soit en mesure de recevoir la connexion sur le port 25, vous ne pourrez pas l'émettre. Il est donc préférable de mettre en place l'écoute sur un autre port.

Voici la configuration à utiliser dans OpenSTMPD afin d'obtenir le fonctionnement suivant :

  • Le serveur écoute toujours sur le port 25 pour la réception de messages
  • Le serveur écoute maintenant sur le port 465 pour l'authentification

A mettre dans votre smtpd.conf :

# Interfaces
listen on lo0
listen on vr0
listen on vr0 smtps enable auth

smtps indique qu'on demande une authentification SSL/TLS sur le port 465. N'oubliez pas de rediriger ce port sur votre routeur. Dans Thunderbird, paramètres SMTP, il faut spécifier l'authentification SSL/TLS, mot de passe normal, port 465 (par défaut). Et voilà !

Vous voulez pas de l'internet neutre tant que vous y êtes ?

Rédigé par Xavier - - Aucun commentaire

Orange et tout un tas d'autres FAI bloquent le port 25 TCP sortant sur les connexions à internet des particuliers. Par conséquent il est impossible d'héberger un serveur mail qui envoie lui-même son courrier.

Les "solutions de contournement" que l'on trouve sur les blogs n'en sont pas, elles consistent à passer par un SMTP relais sur port 465 ou 587, mais le problème de base est toujours là : notre port 25 n'est pas débloqué, et on dépend toujours de quelqu'un d'autre. Ces pratiques constituent à mon sens une violation de la neutralité d'internet. Si l'explication technique est valable, c'est à dire bloquer le spam, je ne comprends pas pourquoi ça n'est pas fait à travers une option (désactivable) dans le routeur.

Ce soir j'ai tenté avec etenil de mettre en place un backup mx. C'est tout simplement impossible. Si le serveur principal est en rade, c'est moi qui reçoit le message car je suis le secondaire. Mon serveur le réexpédie immédiatement donc via le relay, mais celui-ci me le renvoie car le serveur principal n'est pas disponible. On entre donc dans une boucle, le message rebondit entre deux serveurs jusqu'à ce que l'hôte principal revienne en ligne. Si l'explication n'est pas claire je vous invite à essayer, quand on aura des boucles faisant crasher leurs serveurs, peut-être qu'ils accepteront de nous débloquer le port 25...

Après la box qui n'autorise pas le PAT vers une IP personnalisée, l'IP dynamique qui vous casse les pieds et qui permet aux commerciaux de vendre l'option IP fixe à 19 euros / mois, voici l'internet Orange plus propre pour mieux nous servir, parce que de toutes manières nous devrions rester passifs et utiliser le web 2.0 comme tout le monde au lieu de faire de l'auto-hébergement.

Serveur mail sur CentOS

Rédigé par Xavier - - Aucun commentaire

Comme promis voici un petit article expliquant la mise en place d'un serveur mail sur CentOS avec accès IMAP sécurisé (chiffrement SSL). Nous parlons ici d'une situation très simple, les utilisateurs sont les comptes locaux du système, les messages sont enregistrés dans leur répertoire personnel. C'est ce que vous devriez faire pour un serveur perso ou avec peu d'utilisateurs.

Pour la fonction SMTP (envoi/réception) nous allons utiliser Postfix, et pour l'accès IMAP (consultation du courrier via un client de messagerie distant) ce sera Dovecot. Le serveur sera capable de recevoir du courrier, mais nous ne traiterons pas la partie envoi (vous pouvez passer par n'importe quel SMTP, par exemple celui de votre FAI) car de toutes manières le port 25 sortant est bloqué à l'extérieur.

Cas et pré requis

Vous devez disposer d'un nom de domaine sur internet redirigé chez vous (sans quoi la réception de courriers sera impossible). Si vous passez par un routeur avec une couche de NAT n'oubliez pas de rediriger le port 25 sur votre serveur.

Dans ce tuto nous prendrons comme domaine (fictif) : freeman.org

Installation

L'installation ne requiert pas de manipulation particulière. Si vous passez par le DVD, vous aurez le choix des "rôles", sélectionnez "Minimal".

Réseau

La configuration du réseau est détaillée sur cette page, ou alors sur la documentation de CentOS.

Dans system-config-network-tui, n'oubliez pas d'aller faire un tour dans "Configuration DNS" afin d'entrer votre nom d'hôte (par exemple mail.freeman.org).

Mise à jour et installation

Effectuez tout d'abord une mise à jour du système puis installez Postfix et Dovecot :

# yum update -y
# yum install postfix dovecot

Puis on ajoute au démarrage ces deux daemons :

# chkconfig postfix on
# chkconfig dovecot on

SSL

Avant d'aller plus loin on va devoir obtenir ou créer un certificat et une clé privée SSL. Vous pouvez le faire vous-même avec openssl, ou en demander gratuitement sur cacert.org (Linuxfr utilise ces certificats).

  • La clé (freeman.key) est à mettre dans /etc/pki/tls/private/
  • Le certificat (freeman.crt) est à mettre dans /etc/pki/tls/certs/

Puis on leur donne les bons droits :

# chmod 0400 /etc/pki/tls/private/freeman.key
# chmod 0444 /etc/pki/tls/certs/freeman.crt

Nous verrons après que Dovecot se charge en root, il a donc théoriquement les droits de lecture sur freeman.key, mais SELinux le bloque. Pour palier à ça il faut effectuer la manipulation suivante :

# restorecon -RvF /etc/pki

Configuration de Postfix

La configuration se fait dans le fichier main.cf qui est situé dans /etc/postfix. Il faudra ensuite définir quelques alias dans /etc/aliases mais nous verrons plus tard.

# vi /etc/postfix/main.cf

Chaque paramètre est largement commenté et humainement compréhensible. Voici, dans le cadre de notre tutoriel, les paramètres à modifier :

myorigin = freeman.org
inet_interfaces = all
inet_protocols = ipv4
mydestination = freeman.org
home_mailbox = Maildir/

Enregistrez et refermez. Nous allons ensuite définir les alias. Nous allons rediriger les mails destinés à root vers l'utilisateur "xavier" :

# vi /etc/aliases
# Person who should get root's mail
root:         xavier

Appliquez les alias et lancez postfix :

# newaliases
# service postfix start

Créer un compte

Comme vu précédemment nous allons faire le compte "xavier" :

# useradd -m xavier
passwd xavier

L'adresse de ce compte est xavier@freeman.org. Astuce : pour avoir une adresse xavier.chotard@freeman.org, utilisez un alias (xavier.chotard: xavier).

Configuration de Dovecot

La configuration est astucieusement répartie dans plusieurs fichiers de configuration :

# vi /etc/dovecot/dovecot.conf
protocols = imap
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
# vi /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/tls/certs/freeman.crt
ssl_key = </etc/pki/tls/private/freeman.key

Lancez dovecot :

# service dovecot start

Configuration du parefeu

Par défaut, CentOS dispose d'une configuration assez restrictive de son parefeu. Vous allez devoir ouvrir les ports 25 (smtp) et 993 (imap-ssl). Pour faire cela simplement, utilisez l'outil system-config-firewall-tui. Si vous ne l'avez pas, reportez-vous à cet article.

Essais

Il va falloir tout d'abord tester le service SMTP, pour voir si les courriers sont bien reçus. Ensuite ce sera l'IMAP, pour vérifier si on peut configurer notre compte sur un Thunderbird distant.

Test SMTP

Le test le plus simple, c'est d'envoyer un mail sur votre nouvelle adresse. Vérifiez ensuite que le répertoire Maildir s'est bien créé dans /home/xavier. Autrement il est possible de procéder en telnet depuis une autre machine :

$ telnet IPSERVER 25
220 mail.freeman.org ESMTP Postfix
HELO galactica
250 mail.freeman.org
MAIL FROM:
250 2.1.0 Ok
RCPT TO:
250 2.1.5 Ok
DATA
354 End data with .
TEST
.
250 2.0.0 Ok: queued as C0BB6A0116
QUIT

Test IMAP

Ajoutez votre compte IMAP dans votre client de messagerie favori...

Vous devez voir apparaitre votre mail de test dans la liste (après un message de validation du certificat de sécurité).

Les utilitaires de configuration en mode texte sur CentOS

Rédigé par Xavier - - Aucun commentaire

CentOS propose en mode texte des utilitaires permettant de configurer de manière simple le réseau et le parefeu. or selon l'installation que vous faites il se peut que ces utilitaires ne soient pas présents.

Voici donc un petit article détaillant la mise en place de ces outils (en version texte) de A à Z avec la configuration manuelle du réseau au passage. Cela me sert principalement de pense-bête car je n'ai pas l'habitude de CentOS.

Configurer son réseau à la main

Il arrive souvent que le réseau ne soit pas fonctionnel, ce qui est assez embêtant vu que nous avons besoin d'internet pour installer l'outil permettant de le configurer... voici donc la manipulation à faire pour y remédier.

Note : Il s'agit de configurations volatiles qui seront perdues au démarrage, mais dans notre cas c'est parfait.

Configuration DHCP

# dhclient eth0

Configuration statique

# ifconfig eth0 192.168.1.10 netmask 255.255.255.0
# route add default gw 192.168.1.1 eth0
# echo "nameserver 8.8.8.8" > /etc/resolv.conf

Installation des outils

# yum install system-config-network-tui
# yum install system-config-firewall-tui

Et voilà !