PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Debian: Cyrus,Postfix,mySQL die dummen Sockets und andere Sachen



Ikarisan
04.12.04, 22:48
Hi !

Ich schaffe es immer noch nicht auf meinem lokalen Server ein Mailsystem aufzubauen. :-(

Und zwar soll momentan erst einmal folgendes laufen:

Cryus 2.1.16 IMAP,POP3 Server
Postfix 2.1.4
Web-Cyradm für die Administration von Cyrus

Aber selbst das bekomme ich nicht hin.
Ich habe verschiedenen HowTos durchgearbeitet (www.delouw.ch und andere), aber ohne großen Erfolg.

Was mir aufgefallen ist:

(Bei den ersten drei Punkten sind in der main.cf die Einträge für virtual_maps, sender_canonical_maps usw. auskommentiert!)

1)Schreibe ich mit 'pine' eine Mail an lokale Benutzer wird diese nicht zugestellt, bzw. wenn man Pine aufruft ist die komplette Inbox leer.
/var/log/mail.log sagt dann dazu:


Dec 4 22:16:45 localhost postfix/smtpd[3598]: connect from localhost[127.0.0.1]
Dec 4 22:16:45 localhost postfix/smtpd[3598]: 0BBD465E0: client=localhost[127.0.0.1]
Dec 4 22:16:45 localhost postfix/cleanup[3601]: 370546A01: message-id=<Pine.LNX.4.58.0412042216390.3597@localhost.localdo main>
Dec 4 22:16:45 localhost postfix/smtpd[3598]: disconnect from localhost[127.0.0.1]
Dec 4 22:16:45 localhost postfix/local[3603]: warning: connect #1 to subsystem private/cyrus: Connection refused
Dec 4 22:16:55 localhost postfix/local[3603]: warning: connect #2 to subsystem private/cyrus: Connection refused
[...]

2) Wenn ich über Telnet eine Mail an lokale Benutzer schreibe erscheinen die selben Fehlermeldungen.

3) Mails an GMX funktionieren (zumindest will der Server die Mails nicht haben da meine Domäne nicht existiert :-) )

Erzeuge ich die nach den Howtos verlangten Dateien in /etc/postfix und kommentiere in der main.cf die folgenden Zeilen aus:


virtual_maps = mysql:/etc/postfix/mysql-virtual.cf
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf
relay_domains = mysql:/etc/postfix/mysql-relay.cf
transport_maps = mysql:/etc/postfix/mysql-transport.cf

wird es nur noch schlimmer:

4) Nach einen Postfix Neustart steht in der mail.log


Dec 4 22:37:32 localhost postfix/postfix-script: stopping the Postfix mail system
Dec 4 22:37:32 localhost postfix/master[3730]: terminating on signal 15
Dec 4 22:37:33 localhost postfix/postfix-script: starting the Postfix mail system
Dec 4 22:37:33 localhost postfix/master[3934]: daemon started -- version 2.1.4
Dec 4 22:37:33 localhost postfix/qmgr[3936]: 3B157BCD: from=<root@server.lokales.netz>, size=611, nrcpt=1 (queue active)
Dec 4 22:37:33 localhost postfix/trivial-rewrite[3938]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Dec 4 22:37:33 localhost postfix/trivial-rewrite[3938]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Dec 4 22:37:33 localhost postfix/trivial-rewrite[3938]: fatal: mysql:/etc/postfix/mysql-virtual.cf(0,100): table lookup problem
Dec 4 22:37:34 localhost postfix/qmgr[3936]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Dec 4 22:37:34 localhost postfix/master[3934]: warning: process /usr/lib/postfix/trivial-rewrite pid 3938 exit status 1
Dec 4 22:37:34 localhost postfix/master[3934]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Dec 4 22:37:34 localhost postfix/qmgr[3936]: warning: problem talking to service rewrite: Success

In der mysql-virtual.cf steht nur drin:


hosts = localhost
user = mail
password = secret
dbname = mail
table = virtual
select_field = dest
where_field = alias
additional_conditions = and status = '1'


Und wenn ich über Telnet eine Mail senden will:


telnet 192.168.0.8 25
Trying 192.168.0.8...
Connected to 192.168.0.8.
Escape character is '^]'.
220 server.lokales.netz ESMTP Postfix (Debian/GNU)
helo hallodu.de
250 server.lokales.netz
mail from:<root@server.loakles.netz>

hängt sich postfix genau an dieser Stelle auf. Ich muss den Telnet Prozess dann von einer anderen Konsole aus killen.

In der mai.log steht dann wieder:


Dec 4 22:41:37 localhost postfix/trivial-rewrite[3961]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Dec 4 22:41:37 localhost postfix/trivial-rewrite[3961]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Dec 4 22:41:37 localhost postfix/trivial-rewrite[3961]: fatal: mysql:/etc/postfix/mysql-virtual.cf(0,100): table lookup problem
Dec 4 22:41:38 localhost postfix/qmgr[3936]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Dec 4 22:41:38 localhost postfix/qmgr[3936]: warning: problem talking to service rewrite: Success
Dec 4 22:41:38 localhost postfix/smtpd[3955]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Dec 4 22:41:38 localhost postfix/smtpd[3955]: warning: problem talking to service rewrite: Connection reset by peer
Dec 4 22:41:38 localhost postfix/master[3934]: warning: process /usr/lib/postfix/trivial-rewrite pid 3961 exit status 1
Dec 4 22:41:38 localhost postfix/master[3934]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling




Ich weiß einfach nicht mehr weiter. :-(
Ich kann auch gerne mal meine main.cf, master.cf, cyrus.conf usw. posten.
Eventuell findet ja einer von euch den simplen Fehler.
Scheint irgendwie was mit den Sockets zu tun zu haben.




Zu Vollständigkeit hier meine installierten Versionen:

cyrus21-common/testing uptodate 2.1.16-10
cyrus21-imapd/testing uptodate 2.1.16-10
cyrus21-doc/testing uptodate 2.1.16-10
cyrus21-dev/testing uptodate 2.1.16-10
cyrus21-clients/testing uptodate 2.1.16-10
libcyrus-imap-perl21/testing uptodate 2.1.16-10
cyrus21-admin/testing uptodate 2.1.16-10
cyrus21-pop3d/testing uptodate 2.1.16-10

postfix-doc/testing uptodate 2.1.4-5
postfix/testing uptodate 2.1.4-5
postfix-ldap/testing uptodate 2.1.4-5
postfix-tls/testing uptodate 2.1.4-5
postfix-mysql/testing uptodate 2.1.4-5

libsasl2-dev/testing uptodate 2.1.19-1.5
libauthen-sasl-cyrus-perl/testing uptodate 0.07-1
libsasl2-modules/testing uptodate 2.1.19-1.5
libauthen-sasl-perl/testing uptodate 2.08-1
sasl2-bin/testing uptodate 2.1.19-1.5
libsasl2-modules-sql/testing uptodate 2.1.19-1.5
libsasl2/testing uptodate 2.1.19-1.5

Gruß
Thorsten

tictactux
05.12.04, 03:51
Ohne auf die Mailkonfiguration einzugehen: die ersten Fehlermeldungen
sehen sehr nach einer aktiven Firewall aus. Läuft vielleicht auf Deinem Debian
eine shorewall oder Ähnliches ?
D.h. kann es sein, daß die Firewall-Regeln smtp(25) erlauben, nicht aber imap(993)
oder mysql (3306) ?
Falls ja, wirf einen Blick in /etc/services und schalte benötigte Ports frei.

HTH
Wolfgang

Ikarisan
05.12.04, 10:44
Hallo!


Ohne auf die Mailkonfiguration einzugehen: die ersten Fehlermeldungen sehen sehr nach einer aktiven Firewall aus. Läuft vielleicht auf Deinem Debian eine shorewall oder Ähnliches ?

Nein, das System ist extra für den Server ganz neu aufgesetzt worden.
Ich kann mich dran erinnern mal irgendwo gelesen zu haben das man unter Debian erst irgendwie die Sockets usw. anpassen muss.

Nur wo und wie?

Gruß
Thorsten

Ikarisan
05.12.04, 13:02
Sooo, ich habe einen kleinen Fortschritt erzielt.
Und zwar habe ich für die Sockets von mysql und auch für saslauthd Hardlinks im Verzeichnis "/var/spool/postfix/var/run/" erzeugt.

Dafür habe ich einmal die Datei /etc/init.d/postfix (ca. ab Zeile 57) geändert:


[...]
start-stop-daemon --start --exec ${DAEMON} -- start 2>&1 |
(grep -v 'starting the Postfix' 1>&2 || /bin/true)
echo "."

# Hinzugefügt damit der Socket von MySQL auch Postfix in der
# chroot Umgebung bekannt gemacht wird
if [ -e /var/spool/postfix/var/run/mysqld/mysqld.sock ]; then
rm /var/spool/postfix/var/run/mysqld/mysqld.sock
fi
mkdir -p /var/spool/postfix/var/run/mysqld
chown mysql /var/spool/postfix/var/run/mysqld
ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock

;;

stop)
[...]

Und dann noch in der Datei /etc/init.d/saslauthd:



[...]
PIDFILE="/var/run/${NAME}/saslauthd.pid"

mklinks() {
sleep 1
cd /var/spool/postfix/var/run/saslauthd/
ln /var/run/saslauthd/* .
echo "Links innerhalb der Postfix chroot Umgebung wurden erzeugt."
}

rmlinks() {
rm -f /var/spool/postfix/var/run/saslauthd/*
echo "Links innerhalb der Postfix chroot Umgebung wurden gelöscht."
}

[...]

# Consider our options
case "${1}" in
start)
echo -n "Starting ${DESC}: "
dir=`dpkg-statoverride --list $PWDIR`
test -z "$dir" || createdir $dir
if start-stop-daemon ${START} >/dev/null 2>&1 ; then
echo "${NAME}."
else
if start-stop-daemon --test ${START} >/dev/null 2>&1; then
echo "(failed)."
exit 1
else
echo "${DAEMON} already running."
exit 0
fi
fi

# Hinzugefuegt fuer Cyrus/Postfix
mklinks
;;
stop)
echo -n "Stopping ${DESC}: "
if start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" \
--startas ${DAEMON} --retry 10 --name ${NAME} \
>/dev/null 2>&1 ; then
echo "${NAME}."
else
if start-stop-daemon --test ${START} >/dev/null 2>&1; then
echo "(not running)."
exit 0
else
echo "(failed)."
exit 1
fi
fi

# Hinzugefuegt fuer Cyrus/Postfix
rmlinks
;;
[...]

Jetzt sind zwar all die Meldungen über die Verbindungsprobleme zu den Sockets / mySQL verschwunden, trotzdem geht es immer noch nicht.

Jetzt habe ich nämlich in den Logfiles immer stehen:


Dec 5 13:02:57 server postfix/smtpd[4229]: connect from localhost[127.0.0.1]
Dec 5 13:02:57 server postfix/smtpd[4229]: 753631C38: client=localhost[127.0.0.1]
Dec 5 13:02:57 server postfix/pickup[4206]: B67DB5437: uid=0 from=<root@server.lokales.netz>
Dec 5 13:02:57 server postfix/smtpd[4229]: disconnect from localhost[127.0.0.1]
Dec 5 13:02:57 server postfix/cleanup[4232]: B67DB5437: message-id=<Pine.LNX.4.58.0412051302520.4228@server.lokales.ne tz>
Dec 5 13:02:57 server postfix/qmgr[4207]: B67DB5437: from=<root@server.lokales.netz>, size=562, nrcpt=1 (queue active)
Dec 5 13:02:57 server postfix/qmgr[4207]: B67DB5437: to=<user@server.lokales.netz>, relay=none, delay=1, status=deferred (delivery temporarily suspended: transport is unavailable)
Dec 5 13:03:19 server postfix/qmgr[4207]: warning: connect to transport cyrus: Connection refused
Dec 5 13:04:19 server postfix/qmgr[4207]: warning: connect to transport cyrus: Connection refused
Dec 5 13:05:19 server postfix/qmgr[4207]: warning: connect to transport cyrus: Connection refused
Dec 5 13:06:19 server postfix/qmgr[4207]: warning: connect to transport cyrus: Connection refused

Das ist bestimmt wieder nur so ein winziges Problem in irgendeiner Configdatei. :-(

Gruß
Thorsten