Il server di posta elettronica non funziona più sia in ricezione che in invio della posta sui client di posta elettronica degli utenti.
Eseguendo un check da terminale con privilegi di root attraverso la stringa:
cat /var/log/mail.log
si possono riscontrare errori come il seguente
postfix/sendmail [4948]: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknow user name value: postfix
postfix/sendmail [4948]: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknow user name value: postfix
come bisogna rimediare?
Eseguito comando da terminale come utente root:
# postfix start
ricevuto risposta
postfix: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknown user name value: postfix
Eseguito comando
# postconf mail_owner
Risposta
mail_owner = postfix
Eseguito comando:
# grep postfix /etc/passwd
nessuna risposta
Eseguito comando:
# grep postfix /etc/shadow
Risposta
postfix:*:16246:0:99999:7:::
Eseguito comando:
/etc/init.d/postfix restart
Risposta
[....] Starting Postfix Mail Transport Agent: postfixpostmulti: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknown user name value: postfix
. ok
Eseguito comando
# service dovecot restart
Risposta
[....] Restarting IMAP/POP3 mail server: dovecotFatal:
service(lmtp) User doesn't exist: postfix (See service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp { user } }
setting)
Eseguito comando:
# passwd postfix
Risposta
# user 'postfix' does not exist
Eseguito comando
# add user postfix
Risposta
# adduser: Il gruppo Postfix già esiste.
Eseguito comando:
# grep postfix /etc/shadow
Risposta
# postfix:*:16246:0:99999:7:::
Eseguito comando:
useradd -g postfix postfix
Risposta nulla
Eseguito comando
# passwd postfix
Risposta
# Immettere nuova password UNIX:
inserita password e dato invio
# Reimmettere la nuova password UNIX:
reinserita password e dato invio
# passwd: password aggiornata correttamente
Eseguito comando
# service postfix restart
Risposta
# [ ok ] Stopping Postfix Mail Transport Agent: postfix.
# [ ok ] Starting Postfix Mail Transport Agent: postfix.
Eseguito comando
# service dovecot restart
Risposta
# [....] Restarting IMAP/POP3 mail server: dovecotFatal: service(auth) User doesn't exist: vmail (See service auth { unix_listener /var/run/dovecot/auth-userdb { user } } setting)
failed!
Eseguito comando
# passwd vmail
Risposta
# user 'vmail' does not exist
Eseguito comando
# grep vmail /etc/passwd
Risposta
nessuna risposta
Eseguito comando
# grep vmail /etc/passwd
Risposta
# vmail:!:16246:0:99999:7:::
Eseguito comando
# adduser vmail
Risposta
# il gruppo vmail esiste già
Eseguito comando
# useradd -g vmail vmail
Risposta
nessuna risposta
Eseguito comando
# passwd vmail
Risposta
# Immettere nuova password UNIX:
inserita password e dato invio
# Reimmettere la nuova password UNIX:
reinserita password e dato invio
# passwd: password aggiornata correttamente
Eseguito comando:
# service postfix restart
Risposta
# [ ok ] Stopping Postfix Mail Transport Agent: postfix.
# [ ok ] Starting Postfix Mail Transport Agent: postfix.
Eseguito comando
# service dovecot restart
Risposta
# [ ok ] Restarting IMAP/POP3 mail server: dovecot.
Riavvio del computer
Eseguito comando
# cat /var/log/mail.log
trovato errore
linuxserve postfix/master[8492]: fatal: open lock file /var/lib/postfix/master.lock: cannot open file: Permission denied
Aperto il file passwd e modificato ID utente pari a ID gruppo
riavviato il computer l’ultimo errore persiste
Eseguito comando
# chown postfix /var/lib/postfix/master.lock
# chgrp postfix /var/lib/postfix/master.lock
riavvito il computer
Eseguito comando
# cat /var/log/mail.log
trovato errore
amavis[2408]: starting. /usr/sbin/amavisd-new at dabu-edu.org amavisd-new-2.7.1 (20120 429), Unicode aware
amavis[2452]: (!)Net::Can’t connect to UNIX socket at file /var/lib/amavis/amavisd.sock [Permission denied]\n at line 70 in file /usr/share/perl5/Net/Server/Proto/UNIX.pm
postfix/master[4096]: fatal: fifo_listen: remove public/pickup: Permission denied
Da linea di comando riapplicati i permsi 755 alle direcory /var e /var/lib
Riavviato il computer
Eseguito i seguenti comandi
# chown vmail:vmail /var/vmail/
# root@linuxserve:~# chmod 2770 /var/vmail/
# root@linuxserve:~# ls -ld /var/vmail
Riavviato il computer
Eseguito comando
# cat /var/log/mail.log
trovato errore
amavis[2410]: starting. /usr/sbin/amavisd-new at dabu-edu.org amavisd-new-2.7.1 (20120429), Unicode aware
amavis[2454]: (!)Net::Server: Can’t connect to UNIX socket at file /var/lib/amavis/amavisd.sock [Permission denied]\n at line 70 in file /usr/share/perl5/Net/Server/Proto/UNIX.pm
postfix/master[4152]: fatal: fifo_listen: remove public/pickup: Permission denied
Durante la giornata, oltre gli errori sempre segnalati, con computer accesso, sono tornato a vedere il mail.log e ho trovato anche l’errore:
postfix/postdrop[6103]: warning: unable to look up public/pickup: No such file or directory
così ho rigenerato il file pickup, che è di tipo FIFO attraverso questo comando:
mkfifo /var/spool/postfix/public/pickup
ho riavviato poi postfix
/etc/init.d/postfix restart
[ ok ] Stopping Postfix Mail Transport Agent: postfix.
[ ok ] Starting Postfix Mail Transport Agent: postfix.
Eseguendo un tentativo di invio email, non riuscito, leggo nel mail.log
fatal: fifo_listen: remove public/pickup: Permission denied
Eseguo comando
/etc/init.d/postfix check
Risposta
postsuper: fatal: scan_dir_push: open directory defer: Permission denied
Eseguo comando
chown postfix.postdrop -R /var/spool/postfix
Riavvio postfix
service postfix restart
[ ok ] Stopping Postfix Mail Transport Agent: postfix.
[ ok ] Starting Postfix Mail Transport Agent: postfix.
controllando la porta 25 in telnet
telnet mailserver.mio 25
Ora risulta la porta aperta ed in ascolto
provo ad inviare email da client thunderbird, gira per un po e poi da errore, controllo mail.log
postfix/scache[4223]: statistics: start interval Mar 8 17:16:53
postfix/scache[4223]: statistics: domain lookup hits=0 miss=2 success=0%
postfix/scache[4223]: statistics: address lookup hits=0 miss=2 success=0%
postfix/tlsmgr[4291]: fatal: tls_prng_exch_open: cannot open PRNG exchange file /var/lib/postfix/prng_exch: Permission denied
postfix/master[4180]: warning: process /usr/lib/postfix/tlsmgr pid 4291 exit status 1
postfix/master[4180]: warning: /usr/lib/postfix/tlsmgr: bad command startup — throttling
vado a leggere i permessi dei file su /var/lib/postfix
ls -la /var/lib/postfix/
totale 32
drwx—— 2 postfix postfix 4096 mar 7 17:03 .
drwxr-xr-x 61 root root 4096 mar 7 20:15 ..
-rw——- 1 postfix postfix 33 mar 8 17:16 master.lock
-rw——- 1 postfix postfix 1024 mar 1 16:59 prng_exch
-rw——- 1 postfix postfix 8192 mar 1 08:29 smtpd_scache.db
-rw——- 1 postfix postfix 8192 mar 1 08:29 smtp_scache.db
Cambio i permessi sulla cartella e contenuto
chown -R postfix /var/lib/postfix/
Riavvio il computer
La porta 25 è in ascolto, provo invio email da thunderbird a indirizzo su stesso dominio, chiede la password e sembre inviare, controllo la ricezione della posta su indirizzo destinatario ma la posta non è arrivata, controllo file mail.log
postfix/smtp[4254]: F00921BA01CB: to=<eva@miodominio.int>, relay=none, delay=0.03, delays=0.03/0/0/0, dsn=4.4.1, status=deferred (connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)</eva@miodominio.int>
controllo se amavid è in ascolto
netstat -tap | grep amavis
ma non ottengo risposta, vuol dire che amavisd non è in ascolto ed proprio lui ad utilizzare la porta 10024
Eseguo il comando
postconf -e 'content_filter = amavis:[127.0.0.1]:10024'
riavvio postfix
service postfix restart
[ ok ] Stopping Postfix Mail Transport Agent: postfix.
[ ok ] Starting Postfix Mail Transport Agent: postfix.
controllo se amavis è in ascolto ma ancora niente
Provo a riavviare il servizio amavis
service amavis restart
Stopping amavisd: (not running).
Starting amavisd: amavisd-new.
Controllo lo stato del servizio amavis
service amavis status
[FAIL] amavisd is not running ... failed!
Disabilitato amavis sul file main.cf di postfix inserendo il caraterre # all’inizio delle righe inerenti il servizio amavis, come mostrato qui sotto
# content_filter = amavis:[127.0.0.1]:10024
# receive_override_options = no_address_mappings
riavviato postfix
/etc/init.d/postfix restart
fermato il servizio amavis
/etc/init.d/amavis stop
disabilitato il servizio amavis
update-rc.d -f amavis remove
testato il servizio di invio e ricezione con esito positivo
A questo punto bisogna disinstallare amavis e reinstallarlo per assicurarsi il corretto funzionamento del servizio.