instalujemy i edytujemy /etc/fetchmailrc uprawnienia 0600
set daemon 60 # sprawdza poczte co minute set syslog set postmaster localuser poll "mail.przyklad.com" with proto POP3 and options uidl user "testowy@przyklad.com." is "localuser" password "password" keep # nie skasuje zawartosci z serwera mda "/usr/bin/procmail -d %T"
Edytujemy plik /etc/default/fetchmail
START_DAEMON=yes
sudo apt-get install dovecot-common dovecot-imapd
edytujemy plik /etc/dovecot/dovecot.conf
protocols = imap imaps mail_location = maildir:/backup/poczta/%u mail_privileged_group = mail auth default { mechanisms = plain passdb pam { args = * }
Abyśmy mogli skorzystać z roundcube i imapproxy musimy zezwolić na lokalne połączenia nieszyfrowane w pliku dovecot.conf edytujemy:
login_trusted_networks = localhost
sudo apt-get install procmail
edytujemy plik /etc/procmailrc
MAILDIR=/backup/poczta DEFAULT=$MAILDIR/$LOGNAME/ LOGFILE=/var/log/procmail VERBOSE=on
Jesli chcemy by poczta z określonej skrzynki trafiała do konkretnego katalogu tworzymy plik w katalogu użytkownika .procmailrc o następującej zawartości na przykładzie alert@grzegorz.org
MAILDIR=/home/grzegorz/poczta DEFAULT=$MAILDIR/ LOGFILE=/var/log/procmail LOGABSTRACT=all VERBOSE=on :0 * ^TOalert@blue-note.pl $MAILDIR/.alert@blue-note/
Konfigracja sendmaila odbywa się pośrednio poprzez skrypty m4 i pliki sendmail.mc oraz sumbit.mc po każdej zmianie w pliku mc kompilujemy pliki konfiguracyjne komendą make i restartujemy sendmail.
Po zainstalowaniu sendmaila sprawdzamy czy nasłuchuje na porcie 25
netstat -atn | grep 25 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
Jak widać nasłuchuje ale tylko lokalnie, taka jest domyślna konfiguracja
Zmieiamy to edytując wpis w pliku /etc/mail/sendmail.mc odnajdujemy linię :
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
i zamieniamy na :
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')
po wydaniu komendy make i restarcie sendmaila sprawdzamy
netstat -atn | grep 25 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
w pliku sendmail.conf ustawiamy interface na którym ma nasłuchiwać sendmail czyli np eth0 : Następnie edytujemy plik access do postaci :
localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY gcze.eu OK
Wpisy te oznaczają że połączenia lokalne mogą przekazywać pocztę a serwer akceptuje pocztę przeznaczoną dla domeny gcze.eu
Na koniec musimy zadbać aby serwer przedstawiał się domeną zgodną z wpisem w revdns a nie z ostname w przeciwnym razie wiele serwerów „podziękuje” nam za współpracę. Dokonamy tego poprzez dodanie wpisu w pliku sendmail.mc o zawartości:
define(`confDOMAIN_NAME',`domena_z_revdns_naszegoip')dnl
Na koniec make i restart sendmaila.
Instalujemy roundcube, wcześniej przygotowujemy bazę danych i użytkownika bazy postgresql lub mysql
w katalogu /etc/roundcbe znajduje sie plik apache conf. towrzymy dowiązanie symboliczne katalogu programu /var/lib/roundcube do np /var/www/roundcube
Jeśli chcemy skorzystać z imapproxy musimy skonfigurować roundcube tab by łączył się po porcie 1143 bez ssl czyli jako adres imap ustawiamy imap://localhost Następnie instalujemy imapproxy który już właściwie nie wymaga konfiguracji. Istotne jest by imap w naszym przypadku dovecot pozwalał na lokalne połączenia nieszyfrowane.
Aby można było korzystać s klientow typu outlook itp serwer smtp powienien rządać uwierzytelniania użytkownika. W przeciwnym razie stałby się maszyną dorozsyłania spamu. Jeśli korzystamy z postfixa i dovecot sprawdzamy czy postfix jest skonfigurowany z obsługą sasl dovecot wydając komendę :
postconf -a
następnie dodajemy do ich konfiguracji następujące linie.
Example dovecot.conf excerpt
auth default { mechanisms = plain login passdb pam { } userdb passwd { } socket listen { client { # Assuming the default Postfix $queue_directory setting path = /var/spool/postfix/private/auth mode = 0660 # Assuming the default Postfix user and group user = postfix group = postfix } # deliver and some other programs need also auth-master: #master { # path = /var/run/dovecot/auth-master # mode = 0600 #} } }
Example Postfix main.cf excerpt
smtpd_sasl_type = dovecot # Can be an absolute path, or relative to $queue_directory # Debian/Ubuntu users: Postfix is setup by default to run chrooted, so it is best to leave it as-is below smtpd_sasl_path = private/auth # and the common settings to enable SASL: smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Dla wersji dovecot 2x
Example conf.d/10-master.conf excerpt
service auth { ... unix_listener /var/spool/postfix/private/auth { mode = 0660 # Assuming the default Postfix user and group user = postfix group = postfix } ... }
Example Postfix main.cf excerpt
smtpd_sasl_type = dovecot # Can be an absolute path, or relative to $queue_directory # Debian/Ubuntu users: Postfix is setup by default to run chrooted, so it is best to leave it as-is below smtpd_sasl_path = private/auth # and the common settings to enable SASL: smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Using SASL with Postfix submission port
When Dovecot is used as the authentication backend for Postfix it is good practice to use a dedicated submission port for the MUAs (TCP 587). Not only can you specify individual parameters in master.cf overriding the global ones but you will not run into internet mail rejection while the Dovecot Auth Mechanism is unavailable. In this example Postfix is configured to accept TLS encrypted sessions only, along with several other sanity checks:
Verification of alias ownership via Login Maps Domainname and recipient plausibility
master.cf
submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=$myhostname -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_login_maps=hash:/etc/postfix/virtual -o smtpd_sender_restrictions=reject_sender_login_mismatch -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject