Posted On 24/07/2007 at 14:46 in Geekage
Comme vous le savez peut-être (ou pas…), ce magnifique produit qu’est postfix offre la possibilité de vérifier l’existence d’une adresse dans un domaine depuis un relais.
Grâce à l’option relay_recipient_maps, une ou plusieurs tables de recherche (lookup tables) peuvent être indiquées afin de filtrer les mails reçus. Plusieurs backend sont proposés (db4, mysql, ldap, etc.).
Prenons un cas relativement courant :
- Un serveur exchange (2000/2003) pour gérer les boîtes mail,
- Un relais postfix en frontal pour effectuer un certain nombre de filtrages.
Il serait bien sympa que le relais puisse intérroger l’exchange pour vérifier l’existence des destinataires. Rien de plus simple! Avec un postfix supportant ldap, créer par exemple le fichier /etc/postfix/ldap_users.cf et y coller les quelques lignes suivantes :
server_host = monserveurexchange
domain = mondomaine.tld
search_base = dc=mondomaine,dc=tld
query_filter = (|(mail=%s)(mailAlternateAddress=%s))
result_attribute = mail
ldap_cache = yes
ldap_cache_expiry = 600
ldap_cache_size = 64256
bind = yes
bind_dn = MONDOMAINEmonuser
bind_pw = monmotdepasse
version = 3
Avec ces quelques lignes (qu’il faut évidemment adapter en fonction de votre configuration), on indique à postfix de comparer une adresse de la forme user@mondomaine.tld avec les attributs mail et mailAlternateAddress des enregistrements LDAP du serveur exchange. L’activation du cache est nécessaire pour éviter de surcharger les différents serveurs. Le bind est optionnel (il dépend de votre configuration).
Pour tester la configuration avant de l’activer, y’a qu’à faire ça :
# postmap -q user@mondomaine.tld ldap:/etc/postfix/ldap_users.cf user@mondomaine.tld
Si la requête renvoie un résultat, c’est tout bon ^^. Si c’est pas le cas… c’est tout mauvais. (aie!)
Pour activer le filtrage de façon permanente, coller la ligne suivante dans le fichier /etc/postfix/main.cf :
relay_recipient_maps = ldap:/etc/postfix/ldap_users.cf
Puis recharger postfix.
A: Cool ??
B: ooouuuueeeep!! ^^
Posted by Antoine Nguyen · Tags: exchange, ldap, postfix · 3 Comments »
Posted On 23/07/2007 at 15:14 in Geekage
Dans ma série d’articles « OpenBSD ca déchire tout! » (bon ok c’est le premier… les autres vont pas tarder ^^), voici un moyen simple de gérer deux connexions Internet (pour les chanceux) en mode failover. (une tombe, l’autre prend le relais).
Depuis la version 3.8 du poisson qui pique, le démon ifstated permet d’effectuer des actions prédéfinies en fonction de l’état des interfaces réseau ou du résultat de tests externes.
Le redondance de routes vers Internet est un cas simple d’utilisation de ce démon. Imaginons la configuration suivante :
- une connexion d’un premier FAI (appelée principale) : l’interface utilisée est fxp0 et la route par défaut fournie est 10.0.10.254,
- une connexion d’un deuxième FAI (appelée secours) : l’interface utilsée est em0 et la route par défaut fournie est 10.0.20.156.
La configuration suivante dans le fichier /etc/ifstated.conf permet le failover :
net = '( "ping -q -c 1 -w 1 10.0.10.254 > /dev/null" every 25 )'
state principale {
init {
run "route delete default"
run "route add default 10.0.10.254"
}
if fxp0.link.down || fxp0.link.unknown || ! $net
set-state secours
}
state secours {
init {
run "route delete default"
run "route add default 10.0.20.156"
}
if fxp0.link.up && $net
set-state principale
}
En gros, la macro $net permet de vérifier l’accès à la passerelle principale (FAI 1) toutes les 25 secondes via ping. La configuration principale est appliquée si l’état de l’interface fxp0 est différent de down ou unknown et que $net est vrai.
Si ce n’est pas le cas, ifstated bascule sur la configuration secours jusqu’à ce que l’état de fxp0 soit up et que $net soit vrai.
Pour démarrer ifstated :
# ifstated
Pour l’activer de manière permanente, on édite le fichier /etc/rc.conf.local et on y colle :
ifstated_flags=""
C’est pas beau ça ??!!
Posted by Antoine Nguyen · Tags: ifstated, openbsd · No Comments »
Posted On 05/07/2007 at 12:21 in Geekage
Avec un peu de retard (bon ok… beaucoup de retard), le serveur koalabs est de nouveau opérationnel!
Beaucoup de changements ont été apportés au niveau config (changements de logiciels en masse), ce qui a motivé ce retard. (il faut bien que j’apprenne)
Posted by Antoine Nguyen No Comments »