Pages : 1
#1 Le 05/06/2013, à 16:16
- cyradm
les filtres sieve ne fonctionnent pas dans cyrus-murder
bonjour tous le monde
je travaille actuellement sur la mise en place d'un cluster cyrus imap avec comme solution cyrus-murder ,
l'architecture de mon cluster est la suivante
- un serveur frontend (ce dernier reçoit les requêtes des utilisateurs ), systeme d'exploitation linux redhat 4.8
- un serveur mupdate systeme d'exploitation linux redhat 4.8
- deux serveurs backends , systeme d'exploitation linux redhat 4.8
les boites mails des utilisateurs sont réparties sur les deux serveurs backends ,
l'accès aux boites mails se fait normalement c-à-d j'arrive a me connecter aux boites mails via un webmail (openexchange5) et via un clients lourd . tout fonctionne normalement.
par contre je n'arrive pas a créer des filtres sieve avec la commande sieveshell en essayant de me connecter sur le frontend (si comme si le serveur frentend ne redirige pas les requêtes sieve vers les les backends où est stockée la boite mail en question)
voici le message que je reçoi:
------------------------------------
> sieveshell -a login -u test5.test5 localhost
> Please enter your password: xxxxxxx
> list
> Please enter your password: xxxxxxx
Erreure de segmentation
------------------------------------------------
par contre quant je me connecte directement sur le serveur backend où est stockée ma boite mail, j'arrive a céer les filtres sieve sans problèmes
------------------------------------
> sieveshell -a login -u test5.test5 cyrus1
> Please enter your password: xxxxxxx
> list
> sieve-test.script <- active
------------------------------------------------
Je serais trais reconnaissant si quelqu'un peut m'aider a régler ce problème
- la version de cyrus-map utilisée est: cyrus-imapd-2.2.12
les fichiers de configurations de cyrus sont :
----------- imap.conf ---------------------
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus mailadmin murder
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
allowpalintext: yes
sasl_minimum_layer: 0
tls_cert_file: /usr/share/ssl/certs/cyrus-imapd.pem
tls_key_file: /usr/share/ssl/certs/cyrus-imapd.pem
tls_ca_file: /usr/share/ssl/certs/ca-bundle.crt
unixhierarchysep: yes
proxyd_disable_mailbox_referrals: 1
sieve_allowreferrals: 0
allowusermoves: 1
sieveusehomedir: false
mupdate_server: mupdate.mydomain.tld
mupdate_port: 3905
mupdate_authname: murder
mupdate_username: murder
mupdate_password: testpw
mupdate_retry_delay: 10
cyrus1_password: testpw
cyrus2_password: testpw
proxy_authname: murder
--------------------------------------------
-------------- cyrus.conf ---------------------
START {
# do not delete this entry!
recover cmd="ctl_cyrusdb -r"
# this is only necessary if using idled for IMAP IDLE
# idled cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/lib/imap/sockets
SERVICES {
# add or remove based on preferences
imap cmd="proxyd" listen="imap" prefork=5
# imaps cmd="imapd -s" listen="imaps" prefork=1
# pop3 cmd="pop3d" listen="pop3" prefork=3
# pop3s cmd="pop3d -s" listen="pop3s" prefork=1
sieve cmd="timsieved" listen="sieve" prefork=0
mupdate cmd="mupdate" listen="mupdate" prefork=1
fud cmd="/usr/lib/cyrus-imapd/fud" proto="udp" listen="4201" prefork=0 maxchild=10
# these are only necessary if receiving/exporting usenet via NNTP
# nntp cmd="nntpd" listen="nntp" prefork=3
# nntps cmd="nntpd -s" listen="nntps" prefork=1
# at least one LMTP is required for delivery
# lmtp cmd="lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="lmtpproxyd" listen="/var/lib/imap/socket/lmtp" prefork=1
# this is only necessary if using notifications
# notify cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
}
EVENTS {
# this is required
checkpoint cmd="ctl_cyrusdb -c" period=30
# this is only necessary if using duplicate delivery suppression,
# Sieve or NNTP
delprune cmd="cyr_expire -E 3" at=0400
# this is only necessary if caching TLS sessions
tlsprune cmd="tls_prune" at=0400
------------------------------------------------------------------------------------------
MERCI d'avance
Hors ligne
#2 Le 06/06/2013, à 11:01
- Pseudo supprimé
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
cela me semble normal. Sieve suit le MDA
sieveshell -a login -u test5.test5 localhost
> Please enter your password: xxxxxxx
> list
> Please enter your password: xxxxxxx
Erreure de segmentation
et concrètement, qu'est ce que tu as installé là-dessus (machine localhost) ?
Ton telnet Sieve nativement, il est sur quelle machine ? cyrus1 ?
#3 Le 06/06/2013, à 13:39
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
bonjour;
Je vous remercie pour votre réponse ,
j'ai installé open exchange 5 (qui est un solution de collaboration et de messagerie) sur un redhat 4.8 et un un cyrus version 2.2.12 plus postfix comme mta
Hors ligne
#4 Le 06/06/2013, à 13:42
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
ce que je ne sais pas faire, comment tester si le demon managesieve qui est responsable de traiter les requêtes sieve redérige bien ces dernieres vers les backends
Hors ligne
#5 Le 06/06/2013, à 13:51
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
pour le telnet , quant je fait : telnet localhost 2000 voici ce que je reçois :
---------------------------------------------------------------------------------------------------
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
"IMPLEMENTATION" "Cyrus timsieved v2.2.12-Invoca-RPM-2.2.12-9.RHEL4"
"SASL" "PLAIN"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational comparator-i;ascii-numeric regex"
"STARTTLS"
OK
------------------------------------
je présume que cela signifie que je me suis telneté en local vu que il y a 127.0.0.1 dans
Hors ligne
#6 Le 08/06/2013, à 14:15
- Pseudo supprimé
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
en telnet, tu as un truc dans ce genre
telnet target 2000
Trying ...
Connected to .....
Escape character is '^]'.
"IMPLEMENTATION" "DBMail timsieved 3.0.0-rc1"
"SASL" "PLAIN"
"SIEVE" "regex imap4flags relational subaddress fileinto reject envelope vacation notify "
OK
AUTHENTICATE "PLAIN" "AAAAAAAAAA3RAZG9tYWluLmx0ZABteXBhc3M=" # <-- Type this command.
OK
listscripts
"toto-plouf"
OK
getscript "toto-plouf"
{62+}
if header :contains "to" "toto@domain.tld" { reject; stop; }
OK
setactive "toto-plouf"
...
^] # <-- Press (Ctrl+AltGr+]) to exit telnet session.
telnet> quit
Connection closed.
pour l'authentification de type sasl plain
sudo nano sieve-auth-command.pl
#!/usr/bin/perl
#
# sieve-auth-command.pl
# ---------------------
#
# Generates ManageSieve AUTHENTICATE command for manually testing the protocol
# using telnet or gnutls-cli (TLS)
#
# Usage:
# sieve-auth-command.pl <username> <password>
#
# Prints the AUTHENTICATE "PLAIN" "<encoded>" command on standard out.
#
# --
# Stephan Bosch, stephan@rename-it.nl
#
use MIME::Base64;
use strict;
my $username = shift;
my $password = shift;
my $userpass = "\x00".$username."\x00".$password."";
my $encode=encode_base64($userpass);
$encode =~ s/^\s+//;
$encode =~ s/\s+$//;
print "AUTHENTICATE \"PLAIN\" \"$encode\"\r\n";
et syntaxe attendue
perl sieve-auth-command.pl test@domain.ltd mypass
résultat >> AUTHENTICATE "PLAIN" "AAAAAAAAAAAAAc3M="
tu peux vérifier aussi avec
sudo testsaslauthd -s sieve -u toto@domain.tld -p mot_de_passe -f /var/spool/postfix/var/run/saslauthd/mux localhost
0: OK "Success."
enfin tout dépend comment tu gères et stockes tes users sous sgbd: -u user -r domain.tld ou user@domain.tld
et avec starttls pour le telnet à mettre en première ligne
gnutls-cli target -p 2000 --starttls
ou cela, je n'ai pas essayé
openssl s_client -connect target:2000 -starttls sieve
#7 Le 09/06/2013, à 08:41
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
Bonjour Titouan ,
désolé pour le retard ;
je vais tester cela et je vous rends compte !!
Hors ligne
#8 Le 09/06/2013, à 11:40
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
pour commencer j'ai essayé de faire ça : sure le frontend (la machine qui est sensée rediriger les requêtes sieves sur le bon backent)
-------------------------------------------------------------------------------
[root@murder ~]# telnet localhost 2000
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
"IMPLEMENTATION" "Cyrus timsieved v2.2.12-Invoca-RPM-2.2.12-9.RHEL4"
"SASL" "PLAIN"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational comparator-i;ascii-numeric regex"
"STARTTLS"
OK
AUTHENTICATE "PLAIN" "AHRlc3Q1LnRlc3Q1AFNvbmVsZ2F6LjE="
OK
listscripts
BYE (REFERRAL "sieve://cyrus2.mydomain.com") "Try Remote."
Connection closed by foreign host.
----------------------------------------
j'attire votre attention sur ça :
------------------------------------------------------------------------------------
BYE (REFERRAL "sieve://cyrus2.mydomain.com") "Try Remote."
---------------------------------------------------------------------------------------
je crois que le cyrus en frontend a essayé quant même de seconnecter sur le backend
merci pour ton aide
Hors ligne
#9 Le 09/06/2013, à 13:31
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
mais le problème perciste toujours , je n'arrive pas à me connecter sur le backend !!!
Hors ligne
#10 Le 09/06/2013, à 21:34
- Pseudo supprimé
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
peut-être,
sieve_allowreferrals: 1
If enabled, timsieved will issue referrals to clients when the user's
scripts reside on a remote server (in a Murder). Otherwise, timsieved
will proxy traffic to the remote server.
#11 Le 10/06/2013, à 14:18
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
bonjour;
effectivement c'est cette directive qui est responsable d'activer le proxy sieve , et j'ai justement mi cette dernière à "no" dans /etc/imap.conf sur le frontend
ce que je veux savoir est:
1 - si ce n'est pas un problème de version des packages cyrus utilisé , moi j'utilise la version 2.2.12 . (j'ai trouvé dans une doc que cette directive sieve_allowreferrals: est rajoutée a partir de la version 2.3.6 de cyrus)
2 - est ce que cyrus murder supporte la création de filtres sieve nativement c'est à dire sans accès directs sur les backends ( comme c'est le cas pour la création des boites mails)
merci
Hors ligne
#12 Le 12/09/2013, à 15:02
- cyradm
Re : les filtres sieve ne fonctionnent pas dans cyrus-murder
Finalement le problème est réglé grâce a Redhat6.4 (montée en version du système) !!
Hors ligne