Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/06/2013, à 16:16

cyradm

les filtres sieve ne fonctionnent pas dans cyrus-murder

bonjour tous le monde smile

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 smile
- 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 smile

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 smile

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