Przydatne narzędzia postfix
Przydatne narzędzia postfix
Narzędzia kolejki postfix:
Mailq
Sprawdzenie kolejki postfix
mailq –q lub sendmail -bp
lista wiadomości w kolejce do obsłużenia
#tail -f /var/log/messages|grep sasl
Sprawdzenei Sasl Auth
#tail -f /var/log/maillog|grep postfix
sprawdzenie loga Posfix
#qshape-maia -s deferred
Lista maili zatrzymanych
postqueue -p
listowanie kolejki wiadomości – pokazuje wszystkie maile w kolejce
postcat -q
wyświetlanie zawartości pliku kolejki
postsuper -d (Queue ID)
pozwala usuwać wiadomość z kolejki o danym ID
postsuper -d ALL
usuwa wszystkie wiadomości z kolejki
postqueue -f
odświeżenie kolejki – wysyła całą kolejkę poczty
postqueue –i queue_id
natychmiastowe dostarczenia odroczonego maila o określonym ID
postsuper -h (Queue ID)
zatrzymanie wiadomości w kolejce (kolejka hold)
postsuper -H (Queue ID)
przeniesienie wiadomości z powrotem do menadżera kolejek
postsuper -r ALL
zwraca wiadomości z powrotem do kolejki, wiadomości te otrzymują nowe identyfikatory i dodatkowy nagłówek Received
postqueue -s domena
wysłanie wiadomości z kolejki dla określonej domeny
Błąd podczas tworzenia skrzynki mailowej
Po utworzeniu skrzynki pocztowej przy próbie odebrania maila dostajemy komunikat:
imap-login: Login: user=<test3>, method=PLAIN, rip=1::1, lip=::1, mipd=21177, secured
imap(test3): Error: chown (/home/test3/mail/.imap/INBOX, -1,12(mail)) failed: Operation not permitted (egid=514(test3), group based on /var/spool/mail/test3)
imap(test3): Error: mkdir (/home/test3/mail/.imap/INBOX) failed: Operation not permitted
Disconnected: Logged out bytes=50/552
Rozwiązanie problemu:
Problem można rozwiązać na kilka sposoby, zmienić uprawnienia do folderu chmod 0600 /var/spool/mail/*, oraz oraz do skrzynki pocztowej /home/test3/mail/.imap/*
(chmod g-rwx /var/spool/newuser, chgrp /var/spool/newuser)
Dać dostęp poczcie do procesu - mail_access_groups=mail
Można też założyć ręcznie folder INBOX w folderze /home/test3/mail/.imap/ ustawiając uprawnienia takie same jak uprawnienia użytkownika (chown test3.test3 INBOX)
Błąd roundcube po przeniesieniu
Po przeniesieniu poczty roundcube na inny serwer użytkownicy podczas próby wejścia do folderu wysłane wyskakuje błąd
Błąd w logach:
dovecot: imap-login: Login: user=<user>, method=PLAIN, rip=::1, lip=::1, mpid-12261, secured
dovecot imap(user): Disconected: Logged out bytes=448/8830
dovecot: imap (user): Error: stat (/home/user/Maildir/.Draft/tmp) failed: Permission denied (euid=505)user) egid=505 (user) missing +x perm: /homeuser/Maildir/.Drafts, euid is not dir owner)
Rozwiązanie:
Błąd ten związany jest z błędnymi uprawnieniami dostępu do folderów. Najprawdopodobniej jeden z folderów w lokalizacji Maildir ma źle ustawionego właściciela folderu.
Kopiując folder z innego serwera poświadczenia do folderu mogą zginąć.
Naprawiamy to opcją chown -R user.user * stojąc w właściwej lokalizacji.
Należy zwrócić uwagę że w folderze Maildir są foldery ukryte /.Sent, /.Trash trzeba sprawdzić czy na nich zmieniliśmy właścicieli.
sprawdzamy to np loleceniem
ls -a -l
Jeżeli właściciel tych folderów jest ustawiony błędnie dostaniemy błąd i nie będziemy mogli kasować oraz wchodzić do folderu wysłane elementy
Konfiguracja postfixa
Konfiguracja Postfixa - Centos 6.x
Postfix to jeden z najbardziej popularnych serwerów pocztowych (MTA). W porównaniu do np. Sendmail-a, tworzy kilka procesów odpowiedzialnych za różne procesy.
1.Instalujemy niezbędne pakiety komendą yum:
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postffix
2. Sprawdzamy czy są uruchomione usługi potrzebne do prawidłowej pracy poczty:
postfix, saslauthd, dovecot
/etc/init.d/postfix start
/etc/init.d/dovecot start
/etc/init.d/saslauthd start
3. Wyłączamy zapory
[root@server ~]# service iptables stop
[root@server ~]# service ip6tables stop
[root@server ~]# chkconfig iptables off
[root@server ~]# chkconfig ip6tables off
4. Edytujemy plik “/etc/postfix/main.cf”. Dodajemy następujące linie, chyba że już są:
mydestination = $mydomain
myorigin = $mydomain
mynetworks = 127.0.0.0/8 #adres i maska naszej sieci
smtpd_sasl_local_domain =domena-poczowa.pl #domena, którą będziemy używać do wysyłania wiadomości
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous #osoby niezalogowane nie będą mogły wysyłać poczty
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,permit_mynetworks, reject_unauth_destination #ograniczenia poczty wychodzącej (zabezpieczenia)
inet_interfaces = all #interfejsy na których ma nasłuchiwać demon
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = smtp.centos.com.pl #nazwa naszego serwera
home_mailbox = Maildir/ #ustawienie dla Dovecot-a
mailbox_command = #ustawienie dla Dovecot-a
5. Generujemy certyfikaty TLS
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 730 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 730
6. Edytujemy plik “/etc/postfix/master.cf”. Następujące linijki tego pliku powinny mieć taką treść:
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination smtps inet n – n – – smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination
7. Edytujemy plik “/usr/lib/sasl2/smtpd.conf” w wersji 32 bit systemu lub plik “/usr/lib64/sasl2/smtpd.conf” dla systemów 64 bit., plik powinien wyglądać tak:
pwcheck_method: saslauthd
mech_list: plain login
8. Startujemy SASL i Postfix
[root@server ~]# chkconfig postfix on
[root@server ~]# chkconfig dovecot on
[root@server ~]# chkconfig saslauthd on
9. TEST POSTFIX
[root@server ~]# telnet localhost smtp
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 poczta.interia.pl ESMTP Postfix
ehlo localhost
250-poczta.interia.pl
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<user1>
250 2.1.0 Ok
rcpt to:<user1>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
test
.
250 2.0.0 Ok: queued as 117113FF18
quit
221 2.0.0 Bye
Connection closed by foreign host.
10. Sprawdzenie czy mail dotarł
[root@server ~]# cd /home/user1/Maildir/new/
[root@server new]# ls
1360236956.Vfd00I35afM181256.server.ostechnix.com
[root@server new]# cat 1360236956.Vfd00I35afM181256.server.ostechnix.com
Return-Path: <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.>
X-Original-To: user1
Delivered-To: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
Received: from localhost (localhost [IPv6:::1])
by server.ostechnix.com (Postfix) with ESMTP id 117113FF18
for <user1>; Thu, 7 Feb 2013 17:05:32 +0530 (IST)
Message-Id: <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.>
Date: Thu, 5 Sep 2013 7:03:12 +0130 (IST)
From: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
To: undisclosed-recipients:;
test
11. TEST DOVECOT
[root@server ~]# telnet localhost pop3
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user user1
+OK
pass user1
+OK Logged in.
list
+OK 1 messages:
1 428
.
retr 1
+OK 428 octets
Return-Path: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
X-Original-To: user1
Delivered-To: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
.....
test
.
quit
+OK Logging out.
Connection closed by foreign host.
[root@server ~]#
12. Teraz można skonfigurować klienta poczty np. roundcube.