Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
j'ai un gros problème : j'ai mon serveur cyrus-imap2.2 qui fonctionne parfaitement sur ma debian etch
mais par contre, impossible de faire fonctionner les filtres sieves
lorsque je test la connexion à sieve voici ce que j'ai comme erreur...
DEBIAN:/usr/lib/cyrus/bin# sieveshell --user=cyrus localhost
connecting to localhost
unable to connect to server at /usr/bin/sieveshell line 179.
j'ai vérifié dans mes services et sieve sy trouve bien...
DEBIAN:/usr/lib/cyrus/bin# cat /etc/services | grep sieve
sieve 2000/tcp # Sieve mail filter daemon
j'ai aussi essayé de me connecter au sieveshell en spécifiant le port mais rien n'y fait...
DEBIAN:/usr/lib/cyrus/bin# sieveshell --user=cyrus localhost:sieve
connecting to localhost:sieve
connect: Connexion refusée
unable to connect to server at /usr/bin/sieveshell line 179.
Ps : mon authentification avec saslauth fonctionne parfaitement...
DEBIAN:/usr/lib/cyrus/bin# testsaslauthd -u cyrus -p password
0: OK "Success."
j'avoue ne plus comprendre grand chose...
voici la conf de mon /etc/imapd.conf ...
configdirectory: /var/lib/cyrus
defaultpartition: default
partition-default: /var/spool/cyrus/mail
partition-news: /var/spool/cyrus/mail
newsspool: /var/spool/news
virtdomains: yes
defaultdomain: domaine.fr
altnamespace: no
unixhierarchysep: yes
lmtp_downcase_rcpt: yes
admins: cyrus
lmtp_admins: cyrus
imap_admins: cyrus
sieve_admins: cyrus
allowanonymouslogin: no
popminpoll: 0
autocreatequota: 1002400
umask: 077
sieveusehomedir: no
sievedir: /var/spool/sieve
hashimapspool: true
allowplaintext: yes
sasl_mech_list: LOGIN PLAIN
sasl_pwcheck_method: saslauthd
sasl_auto_transition: no
tls_ca_path: /etc/ssl/certs
tls_session_timeout: 1440
tls_cipher_list: TLSv1:SSLv3:SSLv2:!NULL:!EXPORT:!DES:!LOW:@STRENGTH
lmtpsocket: /var/run/cyrus/socket/lmtp
idlesocket: /var/run/cyrus/socket/idle
notifysocket: /var/run/cyrus/socket/notify
quotawarn: 90
et le /etc/cyrus.conf ...
SERVICES {
imap cmd="imapd -U 30" listen="10.100.0.202:imap" prefork=0 maxchild=100
pop3 cmd="pop3d -U 30" listen="10.100.0.202:pop3" prefork=0 maxchild=50
lmtpunix cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20
sieve cmd="timsieved" listen="localhost:sieve" prefork=0
notify cmd="notifyd" listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1"
}
EVENTS {
checkpoint cmd="/usr/sbin/ctl_cyrusdb -c" period=30
delprune cmd="/usr/sbin/ctl_deliver -E 3" at=0401
tlsprune cmd="/usr/sbin/tls_prune" at=0401
}
Si quelqu'un peut m'aider ce serait génial !!
merci d'avance
Hors ligne
Question : sieveshell se trouve dans /usr/lib/cyrus/bin ?
Parce que si c'est le cas, tu le lances via ./sieveshell (qui lance le programme dans le dossier courant), et non sieveshell (qui va chercher dans le PATH).
Hors ligne
Effectivement, mon sieveshell ne se trouve pas dans /usr/lib/cyrus/bin/
Il se trouve dans /usr/bin/
J'ai donc fait une copie du fichier /usr/bin/sieveshell vers /usr/lib/cyrus/bin/
mais j'ai toujours le même résultat :
DEBIAN:/usr/lib/cyrus/bin# ./sieveshell localhost
connecting to localhost
unable to connect to server at ./sieveshell line 179.
et même en spécifiant le port...
DEBIAN:/usr/lib/cyrus/bin# ./sieveshell localhost:2000
connecting to localhost:2000
unable to connect to server at ./sieveshell line 179.
y aurait il autre chose a faire?
merci pour les conseils.
Dernière modification par hastan (10/07/2008 13:44:22)
Hors ligne
Effectivement, mon sieveshell ne se trouve pas dans /usr/lib/cyrus/bin/
Il se trouve dans /usr/bin/
J'ai donc fait une copie du fichier /usr/bin/sieveshell vers /usr/lib/cyrus/bin/
mais pourquoi avoir fait cela ? C'était inutile !!
As-tu un pare-feu ?
Dans ce cas as-tu testé sans lui ?
LeDub qui ne sait pas ce qu'est un filtre sieves !!
« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!
Hors ligne
Non non, ce n'est pas ce que je disais de faire. Je trouvais juste étrange que ton répertoire de travail soit /usr/lib/cyrus/bin. Personnellement, /usr est un répertoire ou je ne mets jamais les pieds, parce que ce n'est, justement, pas un espace de travail.
Que te retournent les logs lors de l'échec de connexion ?
Je suis tombé sur ce thread, pas beaucoup d'aide, mais on ne sait jamais :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441612
+1 ledub pour le firewall.
Dernière modification par TeKa (10/07/2008 14:11:57)
Hors ligne
j'était aussi tombé sur ce post mais malheureusement d'aucune aide :s
j'ai effectivement
SGW:/var/log# netstat -ntap | grep 2000
tcp 0 0 127.0.0.1:2000 0.0.0.0:* LISTEN 31558/cyrmaster
mais rien de plus
J'ai vérifié et aucun firewall à l'horizon ...
concernant les logs voici ce que j'ai de nouveau dans mon /etc/log/syslog :
DEBIAN:/var/log# sieveshell --user=cyrus localhost:2000
connecting to localhost:2000
unable to connect to server at /usr/bin/sieveshell line 179.
DEBIAN:/var/log# cat syslog
Jul 10 14:30:07 localhost last message repeated 5 times
Jul 10 14:30:07 localhost master[32084]: about to exec /usr/lib/cyrus/bin/timsieved
Jul 10 14:30:07 localhost cyrus/sieve[32084]: executed
Jul 10 14:30:07 localhost cyrus/sieve[32084]: accepted connection
Jul 10 14:30:07 localhost master[31558]: process 32084 exited, status 0
Jul 10 14:30:09 localhost kernel: VFS: busy inodes on changed media.
DEBIAN:/var/log#
et pas beaucoup plus dans mon /etc/log/mail/log :
DEBIAN:/var/log# sieveshell --user=cyrus localhost:2000
connecting to localhost:2000
unable to connect to server at /usr/bin/sieveshell line 179.
DEBIAN:/var/log# cat mail.log
Jul 10 14:35:28 localhost master[32098]: about to exec /usr/lib/cyrus/bin/timsieved
Jul 10 14:35:28 localhost cyrus/sieve[32098]: executed
Jul 10 14:35:28 localhost cyrus/sieve[32098]: accepted connection
Jul 10 14:35:28 localhost master[31558]: process 32098 exited, status 0
DEBIAN:/var/log#
pour info, voici ce qu'il existe à la fameuse ligne 179 du fichier /usr/bin/sieveshell
if (!defined $obj) {
die "unable to connect to server";
}
Si vous avez d'autres idées je suis preneur
merci de votre aide en tout cas!
Hors ligne
J'osais pas te dire de passer a ta dernière étape, mais comme tu t'es lancé, tu ferais bien de continuer...
Tu ouvres ton fichier avec vim, et tu cherches toutes les occurrences de $obj pour voir ou il est défini et ce qu'il faut y mettre. (/truc pour chercher truc, p pour la précédente occurrence, n pour la suivante)
Tes logs sont étranges par contre... En gros, il n'y a pas de problème, tout s'arrête calmement .
Hors ligne
Bon ben je vais me lancer dans l'étude du script sieveshell :s
je vous tiendrais au courant au fur et mesure de la suite !
merci du coup de main !
Dernière modification par hastan (10/07/2008 15:31:10)
Hors ligne
j'ai donc essayé de modifer le script sieveshell ...
après avoir enlevé le test qui pose problème :
if (!defined $obj) {
die "unable to connect to server";
}
j'ai cru, un bref moment que cela pouvait fonctionner....
DEBIAN:/var/log# sieveshell --user=cyrus localhost
connecting to localhost
Cannot find termcap: Can't find a valid termcap file at /usr/share/perl/5.8/Term/ReadLine.pm line 337
>
> list
Erreur de segmentation
DEBIAN:/var/log#
je commence à me dir que c'est mal partit ...
Hors ligne
non non non.
Pour commencer, le fichier services est juste une liste de ports et services associé, ça ne signifie en aucun cas que le service tourne sur la machine.
Ensuite, ton testsaslautd test...l'authentification SASL et non le mécanisme SIEVE (àmha).
Le vrai test à faire était bien le netstat pour vérifier que le port 127.0.0.1:2000 était en écoute.
Ensuite, pour la partie du code, il faut pas que tu supprime ce test, mais plutôt que tu remonte dans les ligne précédet ce test à la recherche de l'initialisation de $obj. Une fois que tu aura compris ce qu'est cet $obj, je pense que tu aura pas mal avancé dans ton pb...
++
[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222
Hors ligne
Comme je l'ai dit avant, /usr n'est pas un espace de travail : t'amuses pas à tout casser dedans, sinon plus rien ne marchera ! ioguix vient de mieux expliquer ce que je disais : il ne faut rien toucher dans le fichier, juste trouver ce qu'est obj.
Hors ligne
Un peu tard peut-être...
mais je viens d'avoir le même problème et j'ai une solution !
le test :
telnet localhost sieve
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
"STARTTLS"
OK
logout
OK "Logout Complete"
après : apt-get install sasl2-modules <--- la solution est là !
telnet localhost sieve
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SASL" "PLAIN LOGIN"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
"STARTTLS"
OK
logout
OK "Logout Complete"
la ligne SASL est importante !
et sieveshelle fonctionne.
Hors ligne
Bien le bonjour
Yazul dit arriver un peu tard, et bien je fais encore plus tard
Je me suis même inscrit sur ce forum juste pour y répondre
En regardant le script sieve la variable $obj correspond à $acapserver
$acapserver correspond à $ARGV[0] soit le premier argument passer dans ta commande...
Donc ta commande devrait être de cette forme :
sieveshell HOSTNAME --user=UTILISATEUR
Soit dans ton cas :
sieveshell localhost --user=cyrus
connecting to localhost
Please enter your password:
Bon c'est tout con, mais fallait le savoir
Hors ligne
Heh,
Merci pour ta réponse pydubreucq ! Et bienvenu à toi ici !
[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222
Hors ligne
De rien
Bonne journée
Pierre-Yves
Hors ligne
Pages : 1