Postfix + dovecot-imapd

:arrow_right: Salut tout le monde !

J’essaie en vain de mettre en place un serveur de mail avec postfix et dovecot-imapd.

Impossible de me connecter. Les divers essais que j’ai fais en local fonctionne mais depuis l’exterieur rien. J’ai tout autorisé mais toujours rien. Alors voici mes fichier postfix -> main.cf et dovecot.conf.

[code]# See /usr/share/postfix/main.cf.dist for a commented, more complete version

Debian specific: Specifying a file name will cause the first

line of that file to be used as the name. The Debian default

is /etc/mailname.

#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

appending .domain is the MUA’s job.

append_dot_mydomain = no

Uncomment the next line to generate “delayed mail” warnings

#delay_warning_time = 4h

readme_directory = no

TLS parameters

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

information on enabling SSL in the smtp client.

myhostname = lifala.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = lifala.org, lifala.dyndns.org, localhost, localhost.localdomain, localhost
relayhost = smtp.free.fr
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_size_limit = 2000
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
[/code]

[code]## Dovecot configuration file

If you’re in a hurry, see http://wiki.dovecot.org/QuickConfiguration

“dovecot -n” command gives a clean output of the changed settings. Use it

instead of copy&pasting this file when posting to the Dovecot mailing list.

‘#’ character and everything after it is treated as comments. Extra spaces

and tabs are ignored. If you want to use either of these explicitly, put the

value inside quotes, eg.: key = "# char and trailing whitespace "

Default values are shown for each setting, it’s not required to uncomment

those. These are exceptions to this though: No sections (e.g. namespace {})

or plugin settings are added by default, they’re listed only as examples.

Paths are also just examples with the real defaults being based on configure

options. The paths listed here are for configure --prefix=/usr

–sysconfdir=/etc --localstatedir=/var --with-ssldir=/etc/ssl

Base directory where to store runtime data.

#base_dir = /var/run/dovecot

Protocols we want to be serving: imap imaps pop3 pop3s managesieve

If you only want to use dovecot-auth, you can set this to “none”.

#protocols = imap imaps
protocols = imap imaps

A space separated list of IP or host addresses where to listen in for

connections. “*” listens in all IPv4 interfaces. “[::]” listens in all IPv6

interfaces. Use “*, [::]” for listening both IPv4 and IPv6.

If you want to specify ports for each service, you will need to configure

these settings inside the protocol imap/pop3/managesieve { … } section,

so you can specify different ports for IMAP/POP3/MANAGESIEVE. For example:

protocol imap {

listen = *:10143

ssl_listen = *:10943

}

protocol pop3 {

listen = *:10100

}

protocol managesieve {

listen = *:12000

}

#listen = *

Disable LOGIN command and all other plaintext authentications unless

SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP

matches the local IP (ie. you’re connecting from the same computer), the

connection is considered secure and plaintext authentication is allowed.

#disable_plaintext_auth = yes

Should all IMAP and POP3 processes be killed when Dovecot master process

shuts down. Setting this to “no” means that Dovecot can be upgraded without

forcing existing client connections to close (although that could also be

a problem if the upgrade is eg. because of a security fix). This however

means that after master process has died, the client processes can’t write

to log files anymore.

#shutdown_clients = yes

Logging

Log file to use for error messages, instead of sending them to syslog.

/dev/stderr can be used to log into stderr.

#log_path =

Log file to use for informational and debug messages.

Default is the same as log_path.

#info_log_path =

Prefix for each line written to log file. % codes are in strftime(3)

format.

#log_timestamp = "%b %d %H:%M:%S "
log_timestamp = "%Y-%m-%d %H:%M:%S "

Syslog facility to use if you’re logging to syslog. Usually if you don’t

want to use “mail”, you’ll use local0…local7. Also other standard

facilities are supported.

#syslog_facility = mail

SSL settings

IP or host address where to listen in for SSL connections. Remember to also

add imaps and/or pop3s to protocols setting. Defaults to same as “listen”

setting if not specified.

#ssl_listen =

SSL/TLS support: yes, no, required. </usr/share/doc/dovecot-common/wiki/SSL.txt>

#ssl = yes

PEM encoded X.509 SSL/TLS certificate and private key. They’re opened before

dropping root privileges, so keep the key file unreadable by anyone but

root.

#ssl_cert_file = /etc/ssl/certs/dovecot.pem
#ssl_key_file = /etc/ssl/private/dovecot.pem

If key file is password protected, give the password here. Alternatively

give it when starting dovecot with -p parameter. Since this file is often

world-readable, you may want to place this setting instead to a different

root owned 0600 file by using !include_try .

#ssl_key_password =

File containing trusted SSL certificate authorities. Set this only if you

intend to use ssl_verify_client_cert=yes. The CAfile should contain the

CA-certificate(s) followed by the matching CRL(s).

#ssl_ca_file =

Request client to send a certificate. If you also want to require it, set

ssl_require_client_cert=yes in auth section.

#ssl_verify_client_cert = no

Which field from certificate to use for username. commonName and

x500UniqueIdentifier are the usual choices. You’ll also need to set

ssl_username_from_cert=yes.

#ssl_cert_username_field = commonName

How often to regenerate the SSL parameters file. Generation is quite CPU

intensive operation. The value is in hours, 0 disables regeneration

entirely.

#ssl_parameters_regenerate = 168

SSL ciphers to use

#ssl_cipher_list = ALL:!LOW:!SSLv2

Show protocol level SSL errors.

#verbose_ssl = no

Login processes

</usr/share/doc/dovecot-common/wiki/LoginProcess.txt>

Directory where authentication process places authentication UNIX sockets

which login needs to be able to connect to. The sockets are created when

running as root, so you don’t have to worry about permissions. Note that

everything in this directory is deleted when Dovecot is started.

#login_dir = /var/run/dovecot/login

chroot login process to the login_dir. Only reason not to do this is if you

wish to run the whole Dovecot without roots. </usr/share/doc/dovecot-common/wiki/Rootless.txt>

#login_chroot = yes

User to use for the login process. Create a completely new user for this,

and don’t use it anywhere else. The user must also belong to a group where

only it has access, it’s used to control access for authentication process.

Note that this user is NOT used to access mails. </usr/share/doc/dovecot-common/wiki/UserIds.txt>

#login_user = dovecot

Set max. process size in megabytes. If you don’t use

login_process_per_connection you might need to grow this.

#login_process_size = 64

Should each login be processed in it’s own process (yes), or should one

login process be allowed to process multiple connections (no)? Yes is more

secure, espcially with SSL/TLS enabled. No is faster since there’s no need

to create processes all the time.

#login_process_per_connection = yes

Number of login processes to keep for listening new connections.

#login_processes_count = 3

Maximum number of login processes to create. The listening process count

usually stays at login_processes_count, but when multiple users start logging

in at the same time more extra processes are created. To prevent fork-bombing

we check only once in a second if new processes should be created - if all

of them are used at the time, we double their amount until the limit set by

this setting is reached.

#login_max_processes_count = 128

Maximum number of connections allowed per each login process. This setting

is used only if login_process_per_connection=no. Once the limit is reached,

the process notifies master so that it can create a new login process.

#login_max_connections = 256

Greeting message for clients.

#login_greeting = Dovecot ready.

Space separated list of trusted network ranges. Connections from these

IPs are allowed to override their IP addresses and ports (for logging and

for authentication checks). disable_plaintext_auth is also ignored for

these networks. Typically you’d specify your IMAP proxy servers here.

#login_trusted_networks =

Space-separated list of elements we want to log. The elements which have

a non-empty variable value are joined together to form a comma-separated

string.

#login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c

Login log format. %$ contains login_log_format_elements string, %s contains

the data we want to log.

#login_log_format = %$: %s

Mailbox locations and namespaces

Location for users’ mailboxes. This is the same as the old default_mail_env

setting. The default is empty, which means that Dovecot tries to find the

mailboxes automatically. This won’t work if the user doesn’t have any mail

yet, so you should explicitly tell Dovecot the full location.

If you’re using mbox, giving a path to the INBOX file (eg. /var/mail/%u)

isn’t enough. You’ll also need to tell Dovecot where the other mailboxes are

kept. This is called the “root mail directory”, and it must be the first

path given in the mail_location setting.

There are a few special variables you can use, eg.:

%u - username

%n - user part in user@domain, same as %u if there’s no domain

%d - domain part in user@domain, empty if there’s no domain

%h - home directory

See </usr/share/doc/dovecot-common/wiki/Variables.txt> for full list.

Some examples:

mail_location = maildir:~/Maildir

mail_location = mbox:~/mail:INBOX=/var/mail/%u

mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n

</usr/share/doc/dovecot-common/wiki/MailLocation.txt>

#mail_location =

If you need to set multiple mailbox locations or want to change default

namespace settings, you can do it by defining namespace sections.

You can have private, shared and public namespaces. Private namespaces

are for user’s personal mails. Shared namespaces are for accessing other

users’ mailboxes that have been shared. Public namespaces are for shared

mailboxes that are managed by sysadmin. If you create any shared or public

namespaces you’ll typically want to enable ACL plugin also, otherwise all

users can access all the shared mailboxes, assuming they have permissions

on filesystem level to do so.

REMEMBER: If you add any namespaces, the default namespace must be added

explicitly, ie. mail_location does nothing unless you have a namespace

without a location setting. Default namespace is simply done by having a

namespace with empty prefix.

#namespace private {

Hierarchy separator to use. You should use the same separator for all

namespaces or some clients get confused. ‘/’ is usually a good one.

The default however depends on the underlying mail storage format.

#separator =

Prefix required to access this namespace. This needs to be different for

all namespaces. For example “Public/”.

#prefix =

Physical location of the mailbox. This is in same format as

mail_location, which is also the default for it.

#location =

There can be only one INBOX, and this setting defines which namespace

has it.

#inbox = no

If namespace is hidden, it’s not advertised to clients via NAMESPACE

extension. You’ll most likely also want to set list=no. This is mostly

useful when converting from another server with different namespaces which

you want to deprecate but still keep working. For example you can create

hidden namespaces with prefixes “~/mail/”, “~%u/mail/” and “mail/”.

#hidden = yes

Show the mailboxes under this namespace with LIST command. This makes the

namespace visible for clients that don’t support NAMESPACE extension.

“children” value lists child mailboxes, but hides the namespace prefix.

#list = yes

Namespace handles its own subscriptions. If set to “no”, the parent

namespace handles them (empty prefix should always have this as “yes”)

#subscriptions = yes
#}

Example shared namespace configuration

#namespace shared {
#separator = /

Mailboxes are visible under “shared/user@domain/”

%%n, %%d and %%u are expanded to the destination user.

#prefix = shared/%%u/

Mail location for other users’ mailboxes. Note that %variables and ~/

expands to the logged in user’s data. %%n, %%d, %%u and %%h expand to the

destination user’s data.

#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u

Use the default namespace for saving subscriptions.

#subscriptions = no

List the shared/ namespace only if there are visible shared mailboxes.

#list = children
#}

System user and group used to access mails. If you use multiple, userdb

can override these by returning uid or gid fields. You can use either numbers

or names. </usr/share/doc/dovecot-common/wiki/UserIds.txt>

#mail_uid =
#mail_gid =

Group to enable temporarily for privileged operations. Currently this is

used only with INBOX when either its initial creation or dotlocking fails.

Typically this is set to “mail” to give access to /var/mail.

#mail_privileged_group =
mail_privileged_group = mail

Grant access to these supplementary groups for mail processes. Typically

these are used to set up access to shared mailboxes. Note that it may be

dangerous to set these if users can create symlinks (e.g. if “mail” group is

set here, ln -s /var/mail ~/mail/var could allow a user to delete others’

mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).

#mail_access_groups =

Allow full filesystem access to clients. There’s no access checks other than

what the operating system does for the active UID/GID. It works with both

maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/

or ~user/.

#mail_full_filesystem_access = no

Mail processes

Enable mail process debugging. This can help you figure out why Dovecot

isn’t finding your mails.

#mail_debug = no

Log prefix for mail processes. See </usr/share/doc/dovecot-common/wiki/Variables.txt>

for list of possible variables you can use.

#mail_log_prefix = "%Us(%u): "

Max. number of lines a mail process is allowed to log per second before it’s

throttled. 0 means unlimited. Typically there’s no need to change this

unless you’re using mail_log plugin, which may log a lot. This setting is

ignored while mail_debug=yes to avoid pointless throttling.

#mail_log_max_lines_per_sec = 10

Don’t use mmap() at all. This is required if you store indexes to shared

filesystems (NFS or clustered filesystem).

#mmap_disable = no

Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL

since version 3, so this should be safe to use nowadays by default.

#dotlock_use_excl = yes

Don’t use fsync() or fdatasync() calls. This makes the performance better

at the cost of potential data loss if the server (or the file server)

goes down.

#fsync_disable = no

Mail storage exists in NFS. Set this to yes to make Dovecot flush NFS caches

whenever needed. If you’re using only a single mail server this isn’t needed.

#mail_nfs_storage = no

Mail index files also exist in NFS. Setting this to yes requires

mmap_disable=yes and fsync_disable=no.

#mail_nfs_index = no

Locking method for index files. Alternatives are fcntl, flock and dotlock.

Dotlocking uses some tricks which may create more disk I/O than other locking

methods. NFS users: flock doesn’t work, remember to change mmap_disable.

#lock_method = fcntl

Drop all privileges before exec()ing the mail process. This is mostly

meant for debugging, otherwise you don’t get core dumps. It could be a small

security risk if you use single UID for multiple users, as the users could

ptrace() each others processes then.

#mail_drop_priv_before_exec = no

Show more verbose process titles (in ps). Currently shows user name and

IP address. Useful for seeing who are actually using the IMAP processes

(eg. shared mailboxes or if same uid is used for multiple accounts).

#verbose_proctitle = no

Valid UID range for users, defaults to 500 and above. This is mostly

to make sure that users can’t log in as daemons or other system users.

Note that denying root logins is hardcoded to dovecot binary and can’t

be done even if first_valid_uid is set to 0.

#first_valid_uid = 500
#last_valid_uid = 0

Valid GID range for users, defaults to non-root/wheel. Users having

non-valid GID as primary group ID aren’t allowed to log in. If user

belongs to supplementary groups with non-valid GIDs, those groups are

not set.

#first_valid_gid = 1
#last_valid_gid = 0

Maximum number of running mail processes. When this limit is reached,

new users aren’t allowed to log in.

#max_mail_processes = 512

Set max. process size in megabytes. Most of the memory goes to mmap()ing

files, so it shouldn’t harm much even if this limit is set pretty high.

#mail_process_size = 256

Maximum allowed length for mail keyword name. It’s only forced when trying

to create new keywords.

#mail_max_keyword_length = 50

‘:’ separated list of directories under which chrooting is allowed for mail

processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).

This setting doesn’t affect login_chroot, mail_chroot or auth chroot

settings. If this setting is empty, “/./” in home dirs are ignored.

WARNING: Never add directories here which local users can modify, that

may lead to root exploit. Usually this should be done only if you don’t

allow shell access for users. </usr/share/doc/dovecot-common/wiki/Chrooting.txt>

#valid_chroot_dirs =

Default chroot directory for mail processes. This can be overridden for

specific users in user database by giving /./ in user’s home directory

(eg. /home/./user chroots into /home). Note that usually there is no real

need to do chrooting, Dovecot doesn’t allow users to access files outside

their mail directory anyway. If your home directories are prefixed with

the chroot directory, append “/.” to mail_chroot. </usr/share/doc/dovecot-common/wiki/Chrooting.txt>

#mail_chroot =

Mailbox handling optimizations

The minimum number of mails in a mailbox before updates are done to cache

file. This allows optimizing Dovecot’s behavior to do less disk writes at

the cost of more disk reads.

#mail_cache_min_mail_count = 0

When IDLE command is running, mailbox is checked once in a while to see if

there are any new mails or other changes. This setting defines the minimum

time in seconds to wait between those checks. Dovecot can also use dnotify,

inotify and kqueue to find out immediately when changes occur.

#mailbox_idle_check_interval = 30

Save mails with CR+LF instead of plain LF. This makes sending those mails

take less CPU, especially with sendfile() syscall with Linux and FreeBSD.

But it also creates a bit more disk I/O which may just make it slower.

Also note that if other software reads the mboxes/maildirs, they may handle

the extra CRs wrong and cause problems.

#mail_save_crlf = no

Maildir-specific settings

By default LIST command returns all entries in maildir beginning with a dot.

Enabling this option makes Dovecot return only entries which are directories.

This is done by stat()ing each entry, so it causes more disk I/O.

(For systems setting struct dirent->d_type, this check is free and it’s

done always regardless of this setting)

#maildir_stat_dirs = no

When copying a message, do it with hard links whenever possible. This makes

the performance much better, and it’s unlikely to have any side effects.

#maildir_copy_with_hardlinks = yes

When copying a message, try to preserve the base filename. Only if the

destination mailbox already contains the same name (ie. the mail is being

copied there twice), a new name is given. The destination filename check is

done only by looking at dovecot-uidlist file, so if something outside

Dovecot does similar filename preserving copies, you may run into problems.

NOTE: This setting requires maildir_copy_with_hardlinks = yes to work.

#maildir_copy_preserve_filename = no

Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only

when its mtime changes unexpectedly or when we can’t find the mail otherwise.

#maildir_very_dirty_syncs = no

mbox-specific settings

Which locking methods to use for locking mbox. There are four available:

dotlock: Create .lock file. This is the oldest and most NFS-safe

solution. If you want to use /var/mail/ like directory, the users

will need write access to that directory.

dotlock_try: Same as dotlock, but if it fails because of permissions or

because there isn’t enough disk space, just skip it.

fcntl : Use this if possible. Works with NFS too if lockd is used.

flock : May not exist in all systems. Doesn’t work with NFS.

lockf : May not exist in all systems. Doesn’t work with NFS.

You can use multiple locking methods; if you do the order they’re declared

in is important to avoid deadlocks if other MTAs/MUAs are using multiple

locking methods as well. Some operating systems don’t allow using some of

them simultaneously.

The Debian value for mbox_write_locks differs from upstream Dovecot. It is

changed to be compliant with Debian Policy (section 11.6) for NFS safety.

Dovecot: mbox_write_locks = dotlock fcntl

Debian: mbox_write_locks = fcntl dotlock

#mbox_read_locks = fcntl
#mbox_write_locks = fcntl dotlock

Maximum time in seconds to wait for lock (all of them) before aborting.

#mbox_lock_timeout = 300

If dotlock exists but the mailbox isn’t modified in any way, override the

lock file after this many seconds.

#mbox_dotlock_change_timeout = 120

When mbox changes unexpectedly we have to fully read it to find out what

changed. If the mbox is large this can take a long time. Since the change

is usually just a newly appended mail, it’d be faster to simply read the

new mails. If this setting is enabled, Dovecot does this but still safely

fallbacks to re-reading the whole mbox file whenever something in mbox isn’t

how it’s expected to be. The only real downside to this setting is that if

some other MUA changes message flags, Dovecot doesn’t notice it immediately.

Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK

commands.

#mbox_dirty_syncs = yes

Like mbox_dirty_syncs, but don’t do full syncs even with SELECT, EXAMINE,

EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.

#mbox_very_dirty_syncs = no

Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK

commands and when closing the mailbox). This is especially useful for POP3

where clients often delete all mails. The downside is that our changes

aren’t immediately visible to other MUAs.

#mbox_lazy_writes = yes

If mbox size is smaller than this (in kilobytes), don’t write index files.

If an index file already exists it’s still read, just not updated.

#mbox_min_index_size = 0

dbox-specific settings

Maximum dbox file size in kilobytes until it’s rotated.

#dbox_rotate_size = 2048

Minimum dbox file size in kilobytes before it’s rotated

(overrides dbox_rotate_days)

#dbox_rotate_min_size = 16

Maximum dbox file age in days until it’s rotated. Day always begins from

midnight, so 1 = today, 2 = yesterday, etc. 0 = check disabled.

#dbox_rotate_days = 0

IMAP specific settings

protocol imap {

Login executable location.

#login_executable = /usr/lib/dovecot/imap-login

IMAP executable location. Changing this allows you to execute other

binaries before the imap process is executed.

This would write rawlogs into user’s ~/dovecot.rawlog/, if it exists:

mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap

</usr/doc/dovecot-common/wiki/Debugging.Rawlog.txt>

This would attach gdb into the imap process and write backtraces into

/tmp/gdbhelper.* files:

mail_executable = /usr/lib/dovecot/gdbhelper /usr/lib/dovecot/imap

#mail_executable = /usr/lib/dovecot/imap

Maximum IMAP command line length in bytes. Some clients generate very long

command lines with huge mailboxes, so you may need to raise this if you get

“Too long argument” or “IMAP command line too large” errors often.

#imap_max_line_length = 65536

Maximum number of IMAP connections allowed for a user from each IP address.

NOTE: The username is compared case-sensitively.

#mail_max_userip_connections = 10

Support for dynamically loadable plugins. mail_plugins is a space separated

list of plugins to load.

#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/imap

IMAP logout format string:

%i - total number of bytes read from client

%o - total number of bytes sent to client

#imap_logout_format = bytes=%i/%o

Override the IMAP CAPABILITY response.

#imap_capability =

How many seconds to wait between “OK Still here” notifications when

client is IDLEing.

#imap_idle_notify_interval = 120

ID field names and values to send to clients. Using * as the value makes

Dovecot use the default value. The following fields have default values

currently: name, version, os, os-version, support-url, support-email.

#imap_id_send =

ID fields sent by client to log. * means everything.

#imap_id_log =

Workarounds for various client bugs:

delay-newmail:

Send EXISTS/RECENT new mail notifications only when replying to NOOP

and CHECK commands. Some clients ignore them otherwise, for example OSX

Mail (<v2.1). Outlook Express breaks more badly though, without this it

may show user “Message no longer in server” errors. Note that OE6 still

breaks even with this workaround if synchronization is set to

“Headers Only”.

netscape-eoh:

Netscape 4.x breaks if message headers don’t end with the empty "end of

headers" line. Normally all messages have this, but setting this

workaround makes sure that Netscape never breaks by adding the line if

it doesn’t exist. This is done only for FETCH BODY[HEADER.FIELDS…]

commands. Note that RFC says this shouldn’t be done.

tb-extra-mailbox-sep:

With mbox storage a mailbox can contain either mails or submailboxes,

but not both. Thunderbird separates these two by forcing server to

accept ‘/’ suffix in mailbox names in subscriptions list.

The list is space-separated.

#imap_client_workarounds =
}

POP3 specific settings

protocol pop3 {

Login executable location.

#login_executable = /usr/lib/dovecot/pop3-login

POP3 executable location. See IMAP’s mail_executable above for examples

how this could be changed.

#mail_executable = /usr/lib/dovecot/pop3

Don’t try to set mails non-recent or seen with POP3 sessions. This is

mostly intended to reduce disk I/O. With maildir it doesn’t move files

from new/ to cur/, with mbox it doesn’t write Status-header.

#pop3_no_flag_updates = no

Support LAST command which exists in old POP3 specs, but has been removed

from new ones. Some clients still wish to use this though. Enabling this

makes RSET command clear all \Seen flags from messages.

#pop3_enable_last = no

If mail has X-UIDL header, use it as the mail’s UIDL.

#pop3_reuse_xuidl = no

Keep the mailbox locked for the entire POP3 session.

#pop3_lock_session = no

POP3 UIDL (unique mail identifier) format to use. You can use following

variables, along with the variable modifiers described in

</usr/share/doc/dovecot-common/wiki/Variables.txt> (e.g. %Uf for the

filename in uppercase)

%v - Mailbox’s IMAP UIDVALIDITY

%u - Mail’s IMAP UID

%m - MD5 sum of the mailbox headers in hex (mbox only)

%f - filename (maildir only)

If you want UIDL compatibility with other POP3 servers, use:

UW’s ipop3d : %08Xv%08Xu

Courier : %f or %v-%u (both might be used simultaneosly)

Cyrus (<= 2.1.3) : %u

Cyrus (>= 2.1.4) : %v.%u

Dovecot v0.99.x : %v.%u

tpop3d : %Mf

Note that Outlook 2003 seems to have problems with %v.%u format which was

Dovecot’s default, so if you’re building a new server it would be a good

idea to change this. %08Xu%08Xv should be pretty fail-safe.

pop3_uidl_format = %08Xu%08Xv

Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes

won’t change those UIDLs. Currently this works only with Maildir.

#pop3_save_uidl = no

POP3 logout format string:

%i - total number of bytes read from client

%o - total number of bytes sent to client

%t - number of TOP commands

%p - number of bytes sent to client as a result of TOP command

%r - number of RETR commands

%b - number of bytes sent to client as a result of RETR command

%d - number of deleted messages

%m - number of messages (before deletion)

%s - mailbox size in bytes (before deletion)

#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s

Maximum number of POP3 connections allowed for a user from each IP address.

NOTE: The username is compared case-sensitively.

#mail_max_userip_connections = 3

Support for dynamically loadable plugins. mail_plugins is a space separated

list of plugins to load.

#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/pop3

Workarounds for various client bugs:

outlook-no-nuls:

Outlook and Outlook Express hang if mails contain NUL characters.

This setting replaces them with 0x80 character.

oe-ns-eoh:

Outlook Express and Netscape Mail breaks if end of headers-line is

missing. This option simply sends it if it’s missing.

The list is space-separated.

#pop3_client_workarounds =
}

ManageSieve specific settings

protocol managesieve {

Login executable location.

#login_executable = /usr/lib/dovecot/managesieve-login

ManageSieve executable location. See IMAP’s mail_executable above for

examples how this could be changed.

#mail_executable = /usr/lib/dovecot/managesieve

Maximum ManageSieve command line length in bytes. This setting is

directly borrowed from IMAP. But, since long command lines are very

unlikely with ManageSieve, changing this will not be very useful.

#managesieve_max_line_length = 65536

ManageSieve logout format string:

%i - total number of bytes read from client

%o - total number of bytes sent to client

#managesieve_logout_format = bytes=%i/%o

If, for some inobvious reason, the sieve_storage remains unset, the

ManageSieve daemon uses the specification of the mail_location to find out

where to store the sieve files (see explaination in README.managesieve).

The example below, when uncommented, overrides any global mail_location

specification and stores all the scripts in ‘~/mail/sieve’ if sieve_storage

is unset. However, you should always use the sieve_storage setting.

mail_location = mbox:~/mail

To fool ManageSieve clients that are focused on timesieved you can

specify the IMPLEMENTATION capability that the dovecot reports to clients

(default: “dovecot”).

#managesieve_implementation_string = Cyrus timsieved v2.2.13
}

LDA specific settings

#protocol lda {

Address to use when sending rejection mails (e.g. postmaster@example.com).

#postmaster_address =

Hostname to use in various parts of sent mails, eg. in Message-Id.

Default is the system’s real hostname.

#hostname =

Support for dynamically loadable plugins. mail_plugins is a space separated

list of plugins to load.

#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/lda

If user is over quota, return with temporary failure instead of

bouncing the mail.

#quota_full_tempfail = no

Format to use for logging mail deliveries. You can use variables:

%$ - Delivery status message (e.g. “saved to INBOX”)

%m - Message-ID

%s - Subject

%f - From address

#deliver_log_format = msgid=%m: %$

Binary to use for sending mails.

#sendmail_path = /usr/sbin/sendmail

Subject: header to use for rejection mails. You can use the same variables

as for rejection_reason below.

#rejection_subject = Rejected: %s

Human readable error message for rejection mails. You can use variables:

%n = CRLF, %r = reason, %s = original subject, %t = recipient

#rejection_reason = Your message to <%t> was automatically rejected:%n%r

UNIX socket path to master authentication server to find users.

#auth_socket_path = /var/run/dovecot/auth-master
#}

Authentication processes

Executable location

#auth_executable = /usr/lib/dovecot/dovecot-auth

Set max. process size in megabytes.

#auth_process_size = 256

Authentication cache size in kilobytes. 0 means it’s disabled.

Note that bsdauth, PAM and vpopmail require cache_key to be set for caching

to be used.

#auth_cache_size = 0

Time to live in seconds for cached data. After this many seconds the cached

record is no longer used, except if the main database lookup returns

internal failure. We also try to handle password changes automatically: If

user’s previous authentication was successful, but this one wasn’t, the

cache isn’t used. For now this works only with plaintext authentication.

#auth_cache_ttl = 3600

TTL for negative hits (user not found, password mismatch).

0 disables caching them completely.

#auth_cache_negative_ttl = 3600

Space separated list of realms for SASL authentication mechanisms that need

them. You can leave it empty if you don’t want to support multiple realms.

Many clients simply use the first one listed here, so keep the default realm

first.

#auth_realms =

Default realm/domain to use if none was specified. This is used for both

SASL realms and appending @domain to username in plaintext logins.

#auth_default_realm =

List of allowed characters in username. If the user-given username contains

a character not listed in here, the login automatically fails. This is just

an extra check to make sure user can’t exploit any potential quote escaping

vulnerabilities with SQL/LDAP databases. If you want to allow all characters,

set this value to empty.

#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

Username character translations before it’s looked up from databases. The

value contains series of from -> to characters. For example “#@/@” means

that ‘#’ and ‘/’ characters are translated to ‘@’.

#auth_username_translation =

Username formatting before it’s looked up from databases. You can use

the standard variables here, eg. %Lu would lowercase the username, %n would

drop away the domain if it was given, or “%n-AT-%d” would change the ‘@’ into

“-AT-”. This translation is done after auth_username_translation changes.

#auth_username_format =

If you want to allow master users to log in by specifying the master

username within the normal username string (ie. not using SASL mechanism’s

support for it), you can specify the separator character here. The format

is then . UW-IMAP uses “*” as the

separator, so that could be a good choice.

#auth_master_user_separator =

Username to use for users logging in with ANONYMOUS SASL mechanism

#auth_anonymous_username = anonymous

Log unsuccessful authentication attempts and the reasons why they failed.

#auth_verbose = no

Even more verbose logging for debugging purposes. Shows for example SQL

queries.

#auth_debug = no

In case of password mismatches, log the passwords and used scheme so the

problem can be debugged. Enabling this also enables auth_debug.

#auth_debug_passwords = no

Maximum number of dovecot-auth worker processes. They’re used to execute

blocking passdb and userdb queries (eg. MySQL and PAM). They’re

automatically created and destroyed as needed.

#auth_worker_max_count = 30

Host name to use in GSSAPI principal names. The default is to use the

name returned by gethostname(). Use “$ALL” to allow all keytab entries.

#auth_gssapi_hostname =

Kerberos keytab to use for the GSSAPI mechanism. Will use the system

default (usually /etc/krb5.keytab) if not specified.

#auth_krb5_keytab =

Do NTLM and GSS-SPNEGO authentication using Samba’s winbind daemon and

ntlm_auth helper.

</usr/share/doc/dovecot-common/wiki/Authentication.Mechanisms.Winbind.txt>

#auth_use_winbind = no

Path for Samba’s ntlm_auth helper binary.

#auth_winbind_helper_path = /usr/bin/ntlm_auth

Number of seconds to delay before replying to failed authentications.

#auth_failure_delay = 2

auth default {

Space separated list of wanted authentication mechanisms:

plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey

gss-spnego

NOTE: See also disable_plaintext_auth setting.

mechanisms = plain

Password database is used to verify user’s password (and nothing more).

You can have multiple passdbs and userdbs. This is useful if you want to

allow both system users (/etc/passwd) and virtual users to login without

duplicating the system users into virtual database.

</usr/share/doc/dovecot-common/wiki/PasswordDatabase.txt>

By adding master=yes setting inside a passdb you make the passdb a list

of “master users”, who can log in as anyone else. Unless you’re using PAM,

you probably still want the destination user to be looked up from passdb

that it really exists. This can be done by adding pass=yes setting to the

master passdb. </usr/share/doc/dovecot-common/wiki/Authentication.MasterUsers.txt>

Users can be temporarily disabled by adding a passdb with deny=yes.

If the user is found from that database, authentication will fail.

The deny passdb should always be specified before others, so it gets

checked first. Here’s an example:

#passdb passwd-file {
# File contains a list of usernames, one per line
#args = /etc/dovecot/dovecot.deny
#deny = yes
#}

PAM authentication. Preferred nowadays by most systems.

Note that PAM can only be used to verify if user’s password is correct,

so it can’t be used as userdb. If you don’t want to use a separate user

database (passwd usually), you can use static userdb.

REMEMBER: You’ll need /etc/pam.d/dovecot file created for PAM

authentication to actually work. </usr/share/doc/dovecot-common/wiki/PasswordDatabase.PAM.txt>

passdb pam {
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=]
# [cache_key=] []
#
# session=yes makes Dovecot open and immediately close PAM session. Some
# PAM plugins need this to work, such as pam_mkhomedir.
#
# setcred=yes makes Dovecot establish PAM credentials if some PAM plugins
# need that. They aren’t ever deleted though, so this isn’t enabled by
# default.
#
# max_requests specifies how many PAM lookups to do in one process before
# recreating the process. The default is 100, because many PAM plugins
# leak memory.
#
# cache_key can be used to enable authentication caching for PAM
# (auth_cache_size also needs to be set). It isn’t enabled by default
# because PAM modules can do all kinds of checks besides checking password,
# such as checking IP address. Dovecot can’t know about these checks
# without some help. cache_key is simply a list of variables (see
# /usr/share/doc/dovecot-common/wiki/Variables.txt) which must match
# for the cached data to be used.
# Here are some examples:
# %u - Username must match. Probably sufficient for most uses.
# %u%r - Username and remote IP address must match.
# %u%s - Username and service (ie. IMAP, POP3) must match.
#
# The service name can contain variables, for example %Ls expands to
# pop3 or imap.
#
# Some examples:
# args = session=yes %Ls
# args = cache_key=%u dovecot
#args = dovecot
}

System users (NSS, /etc/passwd, or similiar)

In many systems nowadays this uses Name Service Switch, which is

configured in /etc/nsswitch.conf. </usr/share/doc/dovecot-common/wiki/AuthDatabase.Passwd.txt>

#passdb passwd {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}

Shadow passwords for system users (NSS, /etc/shadow or similiar).

Deprecated by PAM nowadays.

</usr/share/doc/dovecot-common/wiki/PasswordDatabase.Shadow.txt>

#passdb shadow {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}

PAM-like authentication for OpenBSD.

</usr/share/doc/dovecot-common/wiki/PasswordDatabase.BSDAuth.txt>

#passdb bsdauth {
# [cache_key=] - See cache_key in PAM for explanation.
#args =
#}

passwd-like file with specified location

</usr/share/doc/dovecot-common/wiki/AuthDatabase.PasswdFile.txt>

#passdb passwd-file {
# [scheme=] [username_format=]
#
#args =
#}

checkpassword executable authentication

NOTE: You will probably want to use “userdb prefetch” with this.

</usr/share/doc/dovecot-common/wiki/AuthDatabase.CheckPassword.txt>

#passdb checkpassword {
# Path for checkpassword binary
#args =
#}

SQL database </usr/share/doc/dovecot-common/wiki/AuthDatabase.SQL.txt>

#passdb sql {
# Path for SQL configuration file
#args = /etc/dovecot/dovecot-sql.conf
#}

LDAP database </usr/share/doc/dovecot-common/wiki/AuthDatabase.LDAP.txt>

#passdb ldap {
# Path for LDAP configuration file
#args = /etc/dovecot/dovecot-ldap.conf
#}

vpopmail authentication </usr/share/doc/dovecot-common/wiki/AuthDatabase.VPopMail.txt>

#passdb vpopmail {
# [cache_key=] - See cache_key in PAM for explanation.
# [quota_template=] - %q expands to Maildir++ quota
# (eg. quota_template=quota_rule=*:backend=%q)
#args =
#}

User database specifies where mails are located and what user/group IDs

own them. For single-UID configuration use “static”.

</usr/share/doc/dovecot-common/wiki/UserDatabase.txt>

“prefetch” user database means that the passdb already provided the

needed information and there’s no need to do a separate userdb lookup.

This can be made to work with SQL and LDAP databases, see their example

configuration files for more information how to do it.

</usr/share/doc/dovecot-common/wiki/UserDatabase.Prefetch.txt>

#userdb prefetch {
#}

System users (NSS, /etc/passwd, or similiar). In many systems nowadays this

uses Name Service Switch, which is configured in /etc/nsswitch.conf.

</usr/share/doc/dovecot-common/wiki/AuthDatabase.Passwd.txt>

userdb passwd {
# [blocking=yes] - By default the lookups are done in the main dovecot-auth
# process. This setting causes the lookups to be done in auth worker
# proceses. Useful with remote NSS lookups that may block.
# NOTE: Be sure to use this setting with nss_ldap or users might get
# logged in as each others!
#args =
}

passwd-like file with specified location

</usr/share/doc/dovecot-common/wiki/AuthDatabase.PasswdFile.txt>

#userdb passwd-file {
# [username_format=]
#args =
#}

checkpassword executable user database lookup

</usr/share/doc/dovecot-common/wiki/AuthDatabase.CheckPassword.txt>

#userdb checkpassword {
# Path for checkpassword binary
#args =
#}

static settings generated from template </usr/share/doc/dovecot-common/wiki/UserDatabase.Static.txt>

#userdb static {
# Template for the fields. Can return anything a userdb could normally
# return. For example:
#
# args = uid=500 gid=500 home=/var/mail/%u
#
# If you use deliver, it needs to look up users only from the userdb. This
# of course doesn’t work with static because there is no list of users.
# Normally static userdb handles this by doing a passdb lookup. This works
# with most passdbs, with PAM being the most notable exception. If you do
# the user verification another way, you can add allow_all_users=yes to
# the args in which case the passdb lookup is skipped.
#
#args =
#}

SQL database </usr/share/doc/dovecot-common/wiki/AuthDatabase.SQL.txt>

#userdb sql {
# Path for SQL configuration file
#args = /etc/dovecot/dovecot-sql.conf
#}

LDAP database </usr/share/doc/dovecot-common/wiki/AuthDatabase.LDAP.txt>

#userdb ldap {
# Path for LDAP configuration file
#args = /etc/dovecot/dovecot-ldap.conf
#}

vpopmail </usr/share/doc/dovecot-common/wiki/AuthDatabase.VPopMail.txt>

#userdb vpopmail {
#}

User to use for the process. This user needs access to only user and

password databases, nothing else. Only shadow and pam authentication

requires roots, so use something else if possible. Note that passwd

authentication with BSDs internally accesses shadow files, which also

requires roots. Note that this user is NOT used to access mails.

That user is specified by userdb above.

user = root

Directory where to chroot the process. Most authentication backends don’t

work if this is set, and there’s no point chrooting if auth_user is root.

Note that valid_chroot_dirs isn’t needed to use this setting.

#chroot =

Number of authentication processes to create

#count = 1

Require a valid SSL client certificate or the authentication fails.

#ssl_require_client_cert = no

Take the username from client’s SSL certificate, using

X509_NAME_get_text_by_NID() which returns the subject’s DN’s

CommonName.

#ssl_username_from_cert = no

It’s possible to export the authentication interface to other programs:

#socket listen {
#master {
# Master socket provides access to userdb information. It’s typically
# used to give Dovecot’s local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
#}
#client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
#path = /var/run/dovecot/auth-client
#mode = 0660
#}
#}
}

If you wish to use another authentication server than dovecot-auth, you can

use connect sockets. They are assumed to be already running, Dovecot’s master

process only tries to connect to them. They don’t need any other settings

than the path for the master socket, as the configuration is done elsewhere.

Note that the client sockets must exist in the login_dir.

#auth external {

socket connect {

master {

path = /var/run/dovecot/auth-master

}

}

#}

Dictionary server settings

Dictionary can be used by some plugins to store key=value lists, such as

quota, expire and acl plugins. The dictionary can be used either directly or

though a dictionary server. The following dict block maps dictionary names to

URIs when the server is used. These can then be referenced using URIs in

format “proxy::”.

dict {
#quota = mysql:/etc/dovecot/dovecot-dict-quota.conf
#expire = db:/var/lib/dovecot/expire.db
}

Path to Berkeley DB’s configuration file. See doc/dovecot-db-example.conf

#dict_db_config =

Plugin settings

plugin {

Here you can give some extra environment variables to mail processes.

This is mostly meant for passing parameters to plugins. %variable

expansion is done for all values.

Quota plugin. Multiple backends are supported:

dirsize: Find and sum all the files found from mail directory.

Extremely SLOW with Maildir. It’ll eat your CPU and disk I/O.

dict: Keep quota stored in dictionary (eg. SQL)

maildir: Maildir++ quota

fs: Read-only support for filesystem quota

Quota limits are set using “quota_rule” parameters, either in here or in

userdb. It’s also possible to give mailbox-specific limits, for example:

quota_rule = *:storage=1048576

quota_rule2 = Trash:storage=102400

User has now 1GB quota, but when saving to Trash mailbox the user gets

additional 100MB.

Multiple quota roots are also possible, for example:

quota = dict:user::proxy::quota

quota2 = dict:domain:%d:proxy::quota_domain

quota_rule = *:storage=102400

quota2_rule = *:storage=1048576

Gives each user their own 100MB quota and one shared 1GB quota within

the domain.

You can execute a given command when user exceeds a specified quota limit.

Each quota root has separate limits. Only the command for the first

exceeded limit is excecuted, so put the highest limit first.

Note that % needs to be escaped as %%, otherwise "% " expands to empty.

quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95

quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80

#quota = maildir

ACL plugin. vfile backend reads ACLs from “dovecot-acl” file from maildir

directory. You can also optionally give a global ACL directory path where

ACLs are applied to all users’ mailboxes. The global ACL directory contains

one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter

specifies how many seconds to wait between stat()ing dovecot-acl file

to see if it changed.

#acl = vfile:/etc/dovecot/dovecot-acls:cache_secs=300

To let users LIST mailboxes shared by other users, Dovecot needs a

shared mailbox dictionary. For example:

#acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes

Convert plugin. If set, specifies the source storage path which is

converted to destination storage (mail_location) when the user logs in.

The existing mail directory is renamed to -converted.

#convert_mail = mbox:%h/mail

Skip mailboxes which we can’t open successfully instead of aborting.

#convert_skip_broken_mailboxes = no

Skip directories beginning with ‘.’

#convert_skip_dotdirs = no

If source storage has mailbox names with destination storage’s hierarchy

separators, replace them with this character.

#convert_alt_hierarchy_char = _

Trash plugin. When saving a message would make user go over quota, this

plugin automatically deletes the oldest mails from configured mailboxes

until the message can be saved within quota limits. The configuration file

is a text file where each line is in format:

Mails are first deleted in lowest -> highest priority number order

#trash = /etc/dovecot/dovecot-trash.conf

Expire plugin. Mails are expunged from mailboxes after being there the

configurable time. The first expiration date for each mailbox is stored in

a dictionary so it can be quickly determined which mailboxes contain

expired mails. The actual expunging is done in a nightly cronjob, which

you must set up:

dovecot --exec-mail ext /usr/lib/dovecot/expire-tool.sh

#expire = Trash 7 Spam 30
#expire_dict = proxy::expire

Lazy expunge plugin. Currently works only with maildirs. When a user

expunges mails, the mails are moved to a mailbox in another namespace

(1st). When a mailbox is deleted, the mailbox is moved to another namespace

(2nd) as well. Also if the deleted mailbox had any expunged messages,

they’re moved to a 3rd namespace. The mails won’t be counted in quota,

and they’re not deleted automatically (use a cronjob or something).

#lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/

Events to log. Also available: flag_change append

#mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename

Group events within a transaction to one line.

#mail_log_group_events = no

Available fields: uid, box, msgid, from, subject, size, vsize, flags

size and vsize are available only for expunge and copy events.

#mail_log_fields = uid box msgid size

Sieve plugin (http://wiki.dovecot.org/LDA/Sieve) and ManageSieve service

Location of the active script. When ManageSieve is used this is actually

a symlink pointing to the active script in the sieve storage directory.

#sieve=~/.dovecot.sieve

The path to the directory where the personal Sieve scripts are stored. For

ManageSieve this is where the uploaded scripts are stored.

#sieve_dir=~/sieve
}

Config files can also be included. deliver doesn’t support them currently.

#!include /etc/dovecot/conf.d/*.conf

Optional configurations, don’t give an error if it’s not found:

#!include_try /etc/dovecot/extra.conf
[/code]

Je ne sais pas trop ou regarder quoi faire. Impossible de récupérer les mails.

MErci d’avance

Excellent tuto sur le wiki.

merci de ta reponse !

J’ai suivis plusieurs tuto, sa fait plusieurs jours que je suis sur ce serveur de mail.
la j’ai avancé un peu j’ai plus de message d’erreur mais je reçois rien. message reçu 0.
Comment savoir ou vont les mail quand on nous les envois ? J’ai regarder a plusieurs endroit mais je ne vois pas de mail !

je n’arrive toujours pas a progresser je ne comprend pas pourquoi mais je ne peux pas revoir de mail je ne sais plus quoi faire !

auriez vous une idée ?

EDIT

La mise en place ce poursuit et avance assez bien j’arrive a envoyer recevoir des mails maintenant petit soucis dans la config de postfix, je reviendrai dessus.

J’aimerai stocker les mails dans /var/mail, bien ou pas au cas ou il y aurais plusieurs utilisateur par exemple? La il sont dans le home.

si tes utilisateurs ont des compte réel sur ta machine les laisser dans le home me parait pas plus mal; Si tu as ds utilisateurs virtuels les mettre dans /var/mail est une bonne solution

sur le tuto j’avais proposer une modif,(je sai pas s’il elle a été appliquée ?)
dans le qu’ell les mail arrive dans ~/Maildir ou maidir

ensuite il faut etre sur que tes dns soit juste,et qu’il soie a jours (sa peux prendre 1 jour ou plus parfois) sur le domaine.
regarde dans les log de postfix et de devcot dans /var/log sa vai t’aider aussi.

perso je reçois les mail mai je parvien pas a les envoiyer depuis le serveur, du coup je passe encore par mon fai :frowning:
ce point manque sur le tuto du wiki

[quote=“panthere”] je parvien pas a les envoiyer depuis le serveur, du coup je passe encore par mon fai :frowning:
ce point manque sur le tuto du wiki[/quote]
aux 3/4 de la page : Kevin veut envoyer des mails !!
tout est expliqué.

Salut la foule !

Mon serveur de mail ne fonctionne pas … sa commence à faire … :frowning:

j’arrive a me connecter mais je ne reçois pas de mail. je reposte mes fichier de config. Je ne comprends vraiment pas ce qui ce passe !

[code]## Dovecot configuration file

If you’re in a hurry, see http://wiki.dovecot.org/QuickConfiguration

“dovecot -n” command gives a clean output of the changed settings. Use it

instead of copy&pasting this file when posting to the Dovecot mailing list.

‘#’ character and everything after it is treated as comments. Extra spaces

and tabs are ignored. If you want to use either of these explicitly, put the

value inside quotes, eg.: key = "# char and trailing whitespace "

Default values are shown for each setting, it’s not required to uncomment

those. These are exceptions to this though: No sections (e.g. namespace {})

or plugin settings are added by default, they’re listed only as examples.

Paths are also just examples with the real defaults being based on configure

options. The paths listed here are for configure --prefix=/usr

–sysconfdir=/etc --localstatedir=/var --with-ssldir=/etc/ssl

Base directory where to store runtime data.

#base_dir = /var/run/dovecot

Protocols we want to be serving: imap imaps pop3 pop3s managesieve

If you only want to use dovecot-auth, you can set this to “none”.

#protocols = imap imaps
protocols = imap imaps

A space separated list of IP or host addresses where to listen in for

connections. “*” listens in all IPv4 interfaces. “[::]” listens in all IPv6

interfaces. Use “*, [::]” for listening both IPv4 and IPv6.

If you want to specify ports for each service, you will need to configure

these settings inside the protocol imap/pop3/managesieve { … } section,

so you can specify different ports for IMAP/POP3/MANAGESIEVE. For example:

protocol imap {

listen = *:10143

ssl_listen = *:10943

}

protocol pop3 {

listen = *:10100

}

protocol managesieve {

listen = *:12000

}

#listen = *

Disable LOGIN command and all other plaintext authentications unless

SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP

matches the local IP (ie. you’re connecting from the same computer), the

connection is considered secure and plaintext authentication is allowed.

#disable_plaintext_auth = yes

Should all IMAP and POP3 processes be killed when Dovecot master process

shuts down. Setting this to “no” means that Dovecot can be upgraded without

forcing existing client connections to close (although that could also be

a problem if the upgrade is eg. because of a security fix). This however

means that after master process has died, the client processes can’t write

to log files anymore.

#shutdown_clients = yes

Logging

Log file to use for error messages, instead of sending them to syslog.

/dev/stderr can be used to log into stderr.

#log_path =

Log file to use for informational and debug messages.

Default is the same as log_path.

#info_log_path =

Prefix for each line written to log file. % codes are in strftime(3)

format.

#log_timestamp = "%b %d %H:%M:%S "
log_timestamp = "%Y-%m-%d %H:%M:%S "

Syslog facility to use if you’re logging to syslog. Usually if you don’t

want to use “mail”, you’ll use local0…local7. Also other standard

facilities are supported.

#syslog_facility = mail

SSL settings

IP or host address where to listen in for SSL connections. Remember to also

add imaps and/or pop3s to protocols setting. Defaults to same as “listen”

setting if not specified.

#ssl_listen =

SSL/TLS support: yes, no, required. </usr/share/doc/dovecot-common/wiki/SSL.txt>

#ssl = yes

PEM encoded X.509 SSL/TLS certificate and private key. They’re opened before

dropping root privileges, so keep the key file unreadable by anyone but

root.

#ssl_cert_file = /etc/ssl/certs/dovecot.pem
#ssl_key_file = /etc/ssl/private/dovecot.pem

If key file is password protected, give the password here. Alternatively

give it when starting dovecot with -p parameter. Since this file is often

world-readable, you may want to place this setting instead to a different

root owned 0600 file by using !include_try .

#ssl_key_password =

File containing trusted SSL certificate authorities. Set this only if you

intend to use ssl_verify_client_cert=yes. The CAfile should contain the

CA-certificate(s) followed by the matching CRL(s).

#ssl_ca_file =

Request client to send a certificate. If you also want to require it, set

ssl_require_client_cert=yes in auth section.

#ssl_verify_client_cert = no

Which field from certificate to use for username. commonName and

x500UniqueIdentifier are the usual choices. You’ll also need to set

ssl_username_from_cert=yes.

#ssl_cert_username_field = commonName

How often to regenerate the SSL parameters file. Generation is quite CPU

intensive operation. The value is in hours, 0 disables regeneration

entirely.

#ssl_parameters_regenerate = 168

SSL ciphers to use

#ssl_cipher_list = ALL:!LOW:!SSLv2

Show protocol level SSL errors.

#verbose_ssl = no

Login processes

</usr/share/doc/dovecot-common/wiki/LoginProcess.txt>

Directory where authentication process places authentication UNIX sockets

which login needs to be able to connect to. The sockets are created when

running as root, so you don’t have to worry about permissions. Note that

everything in this directory is deleted when Dovecot is started.

#login_dir = /var/run/dovecot/login

chroot login process to the login_dir. Only reason not to do this is if you

wish to run the whole Dovecot without roots. </usr/share/doc/dovecot-common/wiki/Rootless.txt>

#login_chroot = yes

User to use for the login process. Create a completely new user for this,

and don’t use it anywhere else. The user must also belong to a group where

only it has access, it’s used to control access for authentication process.

Note that this user is NOT used to access mails. </usr/share/doc/dovecot-common/wiki/UserIds.txt>

#login_user = dovecot

Set max. process size in megabytes. If you don’t use

login_process_per_connection you might need to grow this.

#login_process_size = 64

Should each login be processed in it’s own process (yes), or should one

login process be allowed to process multiple connections (no)? Yes is more

secure, espcially with SSL/TLS enabled. No is faster since there’s no need

to create processes all the time.

#login_process_per_connection = yes

Number of login processes to keep for listening new connections.

#login_processes_count = 3

Maximum number of login processes to create. The listening process count

usually stays at login_processes_count, but when multiple users start logging

in at the same time more extra processes are created. To prevent fork-bombing

we check only once in a second if new processes should be created - if all

of them are used at the time, we double their amount until the limit set by

this setting is reached.

#login_max_processes_count = 128

Maximum number of connections allowed per each login process. This setting

is used only if login_process_per_connection=no. Once the limit is reached,

the process notifies master so that it can create a new login process.

#login_max_connections = 256

Greeting message for clients.

#login_greeting = Dovecot ready.

Space separated list of trusted network ranges. Connections from these

IPs are allowed to override their IP addresses and ports (for logging and

for authentication checks). disable_plaintext_auth is also ignored for

these networks. Typically you’d specify your IMAP proxy servers here.

#login_trusted_networks =

Space-separated list of elements we want to log. The elements which have

a non-empty variable value are joined together to form a comma-separated

string.

#login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c

Login log format. %$ contains login_log_format_elements string, %s contains

the data we want to log.

#login_log_format = %$: %s

Mailbox locations and namespaces

Location for users’ mailboxes. This is the same as the old default_mail_env

setting. The default is empty, which means that Dovecot tries to find the

mailboxes automatically. This won’t work if the user doesn’t have any mail

yet, so you should explicitly tell Dovecot the full location.

If you’re using mbox, giving a path to the INBOX file (eg. /var/mail/%u)

isn’t enough. You’ll also need to tell Dovecot where the other mailboxes are

kept. This is called the “root mail directory”, and it must be the first

path given in the mail_location setting.

There are a few special variables you can use, eg.:

%u - username

%n - user part in user@domain, same as %u if there’s no domain

%d - domain part in user@domain, empty if there’s no domain

%h - home directory

See </usr/share/doc/dovecot-common/wiki/Variables.txt> for full list.

Some examples:

mail_location = maildir:~/Maildir

mail_location = mbox:~/mail:INBOX=/var/mail/%u

mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n

</usr/share/doc/dovecot-common/wiki/MailLocation.txt>

#mail_location =

If you need to set multiple mailbox locations or want to change default

namespace settings, you can do it by defining namespace sections.

You can have private, shared and public namespaces. Private namespaces

are for user’s personal mails. Shared namespaces are for accessing other

users’ mailboxes that have been shared. Public namespaces are for shared

mailboxes that are managed by sysadmin. If you create any shared or public

namespaces you’ll typically want to enable ACL plugin also, otherwise all

users can access all the shared mailboxes, assuming they have permissions

on filesystem level to do so.

REMEMBER: If you add any namespaces, the default namespace must be added

explicitly, ie. mail_location does nothing unless you have a namespace

without a location setting. Default namespace is simply done by having a

namespace with empty prefix.

#namespace private {

Hierarchy separator to use. You should use the same separator for all

namespaces or some clients get confused. ‘/’ is usually a good one.

The default however depends on the underlying mail storage format.

#separator =

Prefix required to access this namespace. This needs to be different for

all namespaces. For example “Public/”.

#prefix =

Physical location of the mailbox. This is in same format as

mail_location, which is also the default for it.

#location =

There can be only one INBOX, and this setting defines which namespace

has it.

#inbox = no

If namespace is hidden, it’s not advertised to clients via NAMESPACE

extension. You’ll most likely also want to set list=no. This is mostly

useful when converting from another server with different namespaces which

you want to deprecate but still keep working. For example you can create

hidden namespaces with prefixes “~/mail/”, “~%u/mail/” and “mail/”.

#hidden = yes

Show the mailboxes under this namespace with LIST command. This makes the

namespace visible for clients that don’t support NAMESPACE extension.

“children” value lists child mailboxes, but hides the namespace prefix.

#list = yes

Namespace handles its own subscriptions. If set to “no”, the parent

namespace handles them (empty prefix should always have this as “yes”)

#subscriptions = yes
#}

Example shared namespace configuration

#namespace shared {
#separator = /

Mailboxes are visible under “shared/user@domain/”

%%n, %%d and %%u are expanded to the destination user.

#prefix = shared/%%u/

Mail location for other users’ mailboxes. Note that %variables and ~/

expands to the logged in user’s data. %%n, %%d, %%u and %%h expand to the

destination user’s data.

#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u

Use the default namespace for saving subscriptions.

#subscriptions = no

List the shared/ namespace only if there are visible shared mailboxes.

#list = children
#}

System user and group used to access mails. If you use multiple, userdb

can override these by returning uid or gid fields. You can use either numbers

or names. </usr/share/doc/dovecot-common/wiki/UserIds.txt>

#mail_uid =
#mail_gid =

Group to enable temporarily for privileged operations. Currently this is

used only with INBOX when either its initial creation or dotlocking fails.

Typically this is set to “mail” to give access to /var/mail.

#mail_privileged_group =
mail_privileged_group = mail

Grant access to these supplementary groups for mail processes. Typically

these are used to set up access to shared mailboxes. Note that it may be

dangerous to set these if users can create symlinks (e.g. if “mail” group is

set here, ln -s /var/mail ~/mail/var could allow a user to delete others’

mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).

#mail_access_groups =

Allow full filesystem access to clients. There’s no access checks other than

what the operating system does for the active UID/GID. It works with both

maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/

or ~user/.

#mail_full_filesystem_access = no

Mail processes

Enable mail process debugging. This can help you figure out why Dovecot

isn’t finding your mails.

#mail_debug = no

Log prefix for mail processes. See </usr/share/doc/dovecot-common/wiki/Variables.txt>

for list of possible variables you can use.

#mail_log_prefix = "%Us(%u): "

Max. number of lines a mail process is allowed to log per second before it’s

throttled. 0 means unlimited. Typically there’s no need to change this

unless you’re using mail_log plugin, which may log a lot. This setting is

ignored while mail_debug=yes to avoid pointless throttling.

#mail_log_max_lines_per_sec = 10

Don’t use mmap() at all. This is required if you store indexes to shared

filesystems (NFS or clustered filesystem).

#mmap_disable = no

Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL

since version 3, so this should be safe to use nowadays by default.

#dotlock_use_excl = yes

Don’t use fsync() or fdatasync() calls. This makes the performance better

at the cost of potential data loss if the server (or the file server)

goes down.

#fsync_disable = no

Mail storage exists in NFS. Set this to yes to make Dovecot flush NFS caches

whenever needed. If you’re using only a single mail server this isn’t needed.

#mail_nfs_storage = no

Mail index files also exist in NFS. Setting this to yes requires

mmap_disable=yes and fsync_disable=no.

#mail_nfs_index = no

Locking method for index files. Alternatives are fcntl, flock and dotlock.

Dotlocking uses some tricks which may create more disk I/O than other locking

methods. NFS users: flock doesn’t work, remember to change mmap_disable.

#lock_method = fcntl

Drop all privileges before exec()ing the mail process. This is mostly

meant for debugging, otherwise you don’t get core dumps. It could be a small

security risk if you use single UID for multiple users, as the users could

ptrace() each others processes then.

#mail_drop_priv_before_exec = no

Show more verbose process titles (in ps). Currently shows user name and

IP address. Useful for seeing who are actually using the IMAP processes

(eg. shared mailboxes or if same uid is used for multiple accounts).

#verbose_proctitle = no

Valid UID range for users, defaults to 500 and above. This is mostly

to make sure that users can’t log in as daemons or other system users.

Note that denying root logins is hardcoded to dovecot binary and can’t

be done even if first_valid_uid is set to 0.

#first_valid_uid = 500
#last_valid_uid = 0

Valid GID range for users, defaults to non-root/wheel. Users having

non-valid GID as primary group ID aren’t allowed to log in. If user

belongs to supplementary groups with non-valid GIDs, those groups are

not set.

#first_valid_gid = 1
#last_valid_gid = 0

Maximum number of running mail processes. When this limit is reached,

new users aren’t allowed to log in.

#max_mail_processes = 512

Set max. process size in megabytes. Most of the memory goes to mmap()ing

files, so it shouldn’t harm much even if this limit is set pretty high.

#mail_process_size = 256

Maximum allowed length for mail keyword name. It’s only forced when trying

to create new keywords.

#mail_max_keyword_length = 50

‘:’ separated list of directories under which chrooting is allowed for mail

processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).

This setting doesn’t affect login_chroot, mail_chroot or auth chroot

settings. If this setting is empty, “/./” in home dirs are ignored.

WARNING: Never add directories here which local users can modify, that

may lead to root exploit. Usually this should be done only if you don’t

allow shell access for users. </usr/share/doc/dovecot-common/wiki/Chrooting.txt>

#valid_chroot_dirs =

Default chroot directory for mail processes. This can be overridden for

specific users in user database by giving /./ in user’s home directory

(eg. /home/./user chroots into /home). Note that usually there is no real

need to do chrooting, Dovecot doesn’t allow users to access files outside

their mail directory anyway. If your home directories are prefixed with

the chroot directory, append “/.” to mail_chroot. </usr/share/doc/dovecot-common/wiki/Chrooting.txt>

#mail_chroot =

Mailbox handling optimizations

The minimum number of mails in a mailbox before updates are done to cache

file. This allows optimizing Dovecot’s behavior to do less disk writes at

the cost of more disk reads.

#mail_cache_min_mail_count = 0

When IDLE command is running, mailbox is checked once in a while to see if

there are any new mails or other changes. This setting defines the minimum

time in seconds to wait between those checks. Dovecot can also use dnotify,

inotify and kqueue to find out immediately when changes occur.

#mailbox_idle_check_interval = 30

Save mails with CR+LF instead of plain LF. This makes sending those mails

take less CPU, especially with sendfile() syscall with Linux and FreeBSD.

But it also creates a bit more disk I/O which may just make it slower.

Also note that if other software reads the mboxes/maildirs, they may handle

the extra CRs wrong and cause problems.

#mail_save_crlf = no

Maildir-specific settings

By default LIST command returns all entries in maildir beginning with a dot.

Enabling this option makes Dovecot return only entries which are directories.

This is done by stat()ing each entry, so it causes more disk I/O.

(For systems setting struct dirent->d_type, this check is free and it’s

done always regardless of this setting)

#maildir_stat_dirs = no

When copying a message, do it with hard links whenever possible. This makes

the performance much better, and it’s unlikely to have any side effects.

#maildir_copy_with_hardlinks = yes

When copying a message, try to preserve the base filename. Only if the

destination mailbox already contains the same name (ie. the mail is being

copied there twice), a new name is given. The destination filename check is

done only by looking at dovecot-uidlist file, so if something outside

Dovecot does similar filename preserving copies, you may run into problems.

NOTE: This setting requires maildir_copy_with_hardlinks = yes to work.

#maildir_copy_preserve_filename = no

Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only

when its mtime changes unexpectedly or when we can’t find the mail otherwise.

#maildir_very_dirty_syncs = no

mbox-specific settings

Which locking methods to use for locking mbox. There are four available:

dotlock: Create .lock file. This is the oldest and most NFS-safe

solution. If you want to use /var/mail/ like directory, the users

will need write access to that directory.

dotlock_try: Same as dotlock, but if it fails because of permissions or

because there isn’t enough disk space, just skip it.

fcntl : Use this if possible. Works with NFS too if lockd is used.

flock : May not exist in all systems. Doesn’t work with NFS.

lockf : May not exist in all systems. Doesn’t work with NFS.

You can use multiple locking methods; if you do the order they’re declared

in is important to avoid deadlocks if other MTAs/MUAs are using multiple

locking methods as well. Some operating systems don’t allow using some of

them simultaneously.

The Debian value for mbox_write_locks differs from upstream Dovecot. It is

changed to be compliant with Debian Policy (section 11.6) for NFS safety.

Dovecot: mbox_write_locks = dotlock fcntl

Debian: mbox_write_locks = fcntl dotlock

#mbox_read_locks = fcntl
#mbox_write_locks = fcntl dotlock

Maximum time in seconds to wait for lock (all of them) before aborting.

#mbox_lock_timeout = 300

If dotlock exists but the mailbox isn’t modified in any way, override the

lock file after this many seconds.

#mbox_dotlock_change_timeout = 120

When mbox changes unexpectedly we have to fully read it to find out what

changed. If the mbox is large this can take a long time. Since the change

is usually just a newly appended mail, it’d be faster to simply read the

new mails. If this setting is enabled, Dovecot does this but still safely

fallbacks to re-reading the whole mbox file whenever something in mbox isn’t

how it’s expected to be. The only real downside to this setting is that if

some other MUA changes message flags, Dovecot doesn’t notice it immediately.

Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK

commands.

#mbox_dirty_syncs = yes

Like mbox_dirty_syncs, but don’t do full syncs even with SELECT, EXAMINE,

EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.

#mbox_very_dirty_syncs = no

Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK

commands and when closing the mailbox). This is especially useful for POP3

where clients often delete all mails. The downside is that our changes

aren’t immediately visible to other MUAs.

#mbox_lazy_writes = yes

If mbox size is smaller than this (in kilobytes), don’t write index files.

If an index file already exists it’s still read, just not updated.

#mbox_min_index_size = 0

dbox-specific settings

Maximum dbox file size in kilobytes until it’s rotated.

#dbox_rotate_size = 2048

Minimum dbox file size in kilobytes before it’s rotated

(overrides dbox_rotate_days)

#dbox_rotate_min_size = 16

Maximum dbox file age in days until it’s rotated. Day always begins from

midnight, so 1 = today, 2 = yesterday, etc. 0 = check disabled.

#dbox_rotate_days = 0

IMAP specific settings

protocol imap {

Login executable location.

#login_executable = /usr/lib/dovecot/imap-login

IMAP executable location. Changing this allows you to execute other

binaries before the imap process is executed.

This would write rawlogs into user’s ~/dovecot.rawlog/, if it exists:

mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap

</usr/doc/dovecot-common/wiki/Debugging.Rawlog.txt>

This would attach gdb into the imap process and write backtraces into

/tmp/gdbhelper.* files:

mail_executable = /usr/lib/dovecot/gdbhelper /usr/lib/dovecot/imap

#mail_executable = /usr/lib/dovecot/imap

Maximum IMAP command line length in bytes. Some clients generate very long

command lines with huge mailboxes, so you may need to raise this if you get

“Too long argument” or “IMAP command line too large” errors often.

#imap_max_line_length = 65536

Maximum number of IMAP connections allowed for a user from each IP address.

NOTE: The username is compared case-sensitively.

#mail_max_userip_connections = 10

Support for dynamically loadable plugins. mail_plugins is a space separated

list of plugins to load.

#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/imap

IMAP logout format string:

%i - total number of bytes read from client

%o - total number of bytes sent to client

#imap_logout_format = bytes=%i/%o

Override the IMAP CAPABILITY response.

#imap_capability =

How many seconds to wait between “OK Still here” notifications when

client is IDLEing.

#imap_idle_notify_interval = 120

ID field names and values to send to clients. Using * as the value makes

Dovecot use the default value. The following fields have default values

currently: name, version, os, os-version, support-url, support-email.

#imap_id_send =

ID fields sent by client to log. * means everything.

#imap_id_log =

Workarounds for various client bugs:

delay-newmail:

Send EXISTS/RECENT new mail notifications only when replying to NOOP

and CHECK commands. Some clients ignore them otherwise, for example OSX

Mail (<v2.1). Outlook Express breaks more badly though, without this it

may show user “Message no longer in server” errors. Note that OE6 still

breaks even with this workaround if synchronization is set to

“Headers Only”.

netscape-eoh:

Netscape 4.x breaks if message headers don’t end with the empty "end of

headers" line. Normally all messages have this, but setting this

workaround makes sure that Netscape never breaks by adding the line if

it doesn’t exist. This is done only for FETCH BODY[HEADER.FIELDS…]

commands. Note that RFC says this shouldn’t be done.

tb-extra-mailbox-sep:

With mbox storage a mailbox can contain either mails or submailboxes,

but not both. Thunderbird separates these two by forcing server to

accept ‘/’ suffix in mailbox names in subscriptions list.

The list is space-separated.

#imap_client_workarounds =
}

POP3 specific settings

protocol pop3 {

Login executable location.

#login_executable = /usr/lib/dovecot/pop3-login

POP3 executable location. See IMAP’s mail_executable above for examples

how this could be changed.

#mail_executable = /usr/lib/dovecot/pop3

Don’t try to set mails non-recent or seen with POP3 sessions. This is

mostly intended to reduce disk I/O. With maildir it doesn’t move files

from new/ to cur/, with mbox it doesn’t write Status-header.

#pop3_no_flag_updates = no

Support LAST command which exists in old POP3 specs, but has been removed

from new ones. Some clients still wish to use this though. Enabling this

makes RSET command clear all \Seen flags from messages.

#pop3_enable_last = no

If mail has X-UIDL header, use it as the mail’s UIDL.

#pop3_reuse_xuidl = no

Keep the mailbox locked for the entire POP3 session.

#pop3_lock_session = no

POP3 UIDL (unique mail identifier) format to use. You can use following

variables, along with the variable modifiers described in

</usr/share/doc/dovecot-common/wiki/Variables.txt> (e.g. %Uf for the

filename in uppercase)

%v - Mailbox’s IMAP UIDVALIDITY

%u - Mail’s IMAP UID

%m - MD5 sum of the mailbox headers in hex (mbox only)

%f - filename (maildir only)

If you want UIDL compatibility with other POP3 servers, use:

UW’s ipop3d : %08Xv%08Xu

Courier : %f or %v-%u (both might be used simultaneosly)

Cyrus (<= 2.1.3) : %u

Cyrus (>= 2.1.4) : %v.%u

Dovecot v0.99.x : %v.%u

tpop3d : %Mf

Note that Outlook 2003 seems to have problems with %v.%u format which was

Dovecot’s default, so if you’re building a new server it would be a good

idea to change this. %08Xu%08Xv should be pretty fail-safe.

pop3_uidl_format = %08Xu%08Xv

Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes

won’t change those UIDLs. Currently this works only with Maildir.

#pop3_save_uidl = no

POP3 logout format string:

%i - total number of bytes read from client

%o - total number of bytes sent to client

%t - number of TOP commands

%p - number of bytes sent to client as a result of TOP command

%r - number of RETR commands

%b - number of bytes sent to client as a result of RETR command

%d - number of deleted messages

%m - number of messages (before deletion)

%s - mailbox size in bytes (before deletion)

#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s

Maximum number of POP3 connections allowed for a user from each IP address.

NOTE: The username is compared case-sensitively.

#mail_max_userip_connections = 3

Support for dynamically loadable plugins. mail_plugins is a space separated

list of plugins to load.

#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/pop3

Workarounds for various client bugs:

outlook-no-nuls:

Outlook and Outlook Express hang if mails contain NUL characters.

This setting replaces them with 0x80 character.

oe-ns-eoh:

Outlook Express and Netscape Mail breaks if end of headers-line is

missing. This option simply sends it if it’s missing.

The list is space-separated.

#pop3_client_workarounds =
}

ManageSieve specific settings

protocol managesieve {

Login executable location.

#login_executable = /usr/lib/dovecot/managesieve-login

ManageSieve executable location. See IMAP’s mail_executable above for

examples how this could be changed.

#mail_executable = /usr/lib/dovecot/managesieve

Maximum ManageSieve command line length in bytes. This setting is

directly borrowed from IMAP. But, since long command lines are very

unlikely with ManageSieve, changing this will not be very useful.

#managesieve_max_line_length = 65536

ManageSieve logout format string:

%i - total number of bytes read from client

%o - total number of bytes sent to client

#managesieve_logout_format = bytes=%i/%o

If, for some inobvious reason, the sieve_storage remains unset, the

ManageSieve daemon uses the specification of the mail_location to find out

where to store the sieve files (see explaination in README.managesieve).

The example below, when uncommented, overrides any global mail_location

specification and stores all the scripts in ‘~/mail/sieve’ if sieve_storage

is unset. However, you should always use the sieve_storage setting.

mail_location = mbox:~/mail

To fool ManageSieve clients that are focused on timesieved you can

specify the IMPLEMENTATION capability that the dovecot reports to clients

(default: “dovecot”).

#managesieve_implementation_string = Cyrus timsieved v2.2.13
}

LDA specific settings

#protocol lda {

Address to use when sending rejection mails (e.g. postmaster@example.com).

#postmaster_address =

Hostname to use in various parts of sent mails, eg. in Message-Id.

Default is the system’s real hostname.

#hostname =

Support for dynamically loadable plugins. mail_plugins is a space separated

list of plugins to load.

#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/lda

If user is over quota, return with temporary failure instead of

bouncing the mail.

#quota_full_tempfail = no

Format to use for logging mail deliveries. You can use variables:

%$ - Delivery status message (e.g. “saved to INBOX”)

%m - Message-ID

%s - Subject

%f - From address

#deliver_log_format = msgid=%m: %$

Binary to use for sending mails.

#sendmail_path = /usr/sbin/sendmail

Subject: header to use for rejection mails. You can use the same variables

as for rejection_reason below.

#rejection_subject = Rejected: %s

Human readable error message for rejection mails. You can use variables:

%n = CRLF, %r = reason, %s = original subject, %t = recipient

#rejection_reason = Your message to <%t> was automatically rejected:%n%r

UNIX socket path to master authentication server to find users.

#auth_socket_path = /var/run/dovecot/auth-master
#}

Authentication processes

Executable location

#auth_executable = /usr/lib/dovecot/dovecot-auth

Set max. process size in megabytes.

#auth_process_size = 256

Authentication cache size in kilobytes. 0 means it’s disabled.

Note that bsdauth, PAM and vpopmail require cache_key to be set for caching

to be used.

#auth_cache_size = 0

Time to live in seconds for cached data. After this many seconds the cached

record is no longer used, except if the main database lookup returns

internal failure. We also try to handle password changes automatically: If

user’s previous authentication was successful, but this one wasn’t, the

cache isn’t used. For now this works only with plaintext authentication.

#auth_cache_ttl = 3600

TTL for negative hits (user not found, password mismatch).

0 disables caching them completely.

#auth_cache_negative_ttl = 3600

Space separated list of realms for SASL authentication mechanisms that need

them. You can leave it empty if you don’t want to support multiple realms.

Many clients simply use the first one listed here, so keep the default realm

first.

#auth_realms =

Default realm/domain to use if none was specified. This is used for both

SASL realms and appending @domain to username in plaintext logins.

#auth_default_realm =

List of allowed characters in username. If the user-given username contains

a character not listed in here, the login automatically fails. This is just

an extra check to make sure user can’t exploit any potential quote escaping

vulnerabilities with SQL/LDAP databases. If you want to allow all characters,

set this value to empty.

#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

Username character translations before it’s looked up from databases. The

value contains series of from -> to characters. For example “#@/@” means

that ‘#’ and ‘/’ characters are translated to ‘@’.

#auth_username_translation =

Username formatting before it’s looked up from databases. You can use

the standard variables here, eg. %Lu would lowercase the username, %n would

drop away the domain if it was given, or “%n-AT-%d” would change the ‘@’ into

“-AT-”. This translation is done after auth_username_translation changes.

#auth_username_format =

If you want to allow master users to log in by specifying the master

username within the normal username string (ie. not using SASL mechanism’s

support for it), you can specify the separator character here. The format

is then . UW-IMAP uses “*” as the

separator, so that could be a good choice.

#auth_master_user_separator =

Username to use for users logging in with ANONYMOUS SASL mechanism

#auth_anonymous_username = anonymous

Log unsuccessful authentication attempts and the reasons why they failed.

#auth_verbose = no

Even more verbose logging for debugging purposes. Shows for example SQL

queries.

#auth_debug = no

In case of password mismatches, log the passwords and used scheme so the

problem can be debugged. Enabling this also enables auth_debug.

#auth_debug_passwords = no

Maximum number of dovecot-auth worker processes. They’re used to execute

blocking passdb and userdb queries (eg. MySQL and PAM). They’re

automatically created and destroyed as needed.

#auth_worker_max_count = 30

Host name to use in GSSAPI principal names. The default is to use the

name returned by gethostname(). Use “$ALL” to allow all keytab entries.

#auth_gssapi_hostname =

Kerberos keytab to use for the GSSAPI mechanism. Will use the system

default (usually /etc/krb5.keytab) if not specified.

#auth_krb5_keytab =

Do NTLM and GSS-SPNEGO authentication using Samba’s winbind daemon and

ntlm_auth helper.

</usr/share/doc/dovecot-common/wiki/Authentication.Mechanisms.Winbind.txt>

#auth_use_winbind = no

Path for Samba’s ntlm_auth helper binary.

#auth_winbind_helper_path = /usr/bin/ntlm_auth

Number of seconds to delay before replying to failed authentications.

#auth_failure_delay = 2

auth default {

Space separated list of wanted authentication mechanisms:

plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey

gss-spnego

NOTE: See also disable_plaintext_auth setting.

mechanisms = plain

Password database is used to verify user’s password (and nothing more).

You can have multiple passdbs and userdbs. This is useful if you want to

allow both system users (/etc/passwd) and virtual users to login without

duplicating the system users into virtual database.

</usr/share/doc/dovecot-common/wiki/PasswordDatabase.txt>

By adding master=yes setting inside a passdb you make the passdb a list

of “master users”, who can log in as anyone else. Unless you’re using PAM,

you probably still want the destination user to be looked up from passdb

that it really exists. This can be done by adding pass=yes setting to the

master passdb. </usr/share/doc/dovecot-common/wiki/Authentication.MasterUsers.txt>

Users can be temporarily disabled by adding a passdb with deny=yes.

If the user is found from that database, authentication will fail.

The deny passdb should always be specified before others, so it gets

checked first. Here’s an example:

#passdb passwd-file {
# File contains a list of usernames, one per line
#args = /etc/dovecot/dovecot.deny
#deny = yes
#}

PAM authentication. Preferred nowadays by most systems.

Note that PAM can only be used to verify if user’s password is correct,

so it can’t be used as userdb. If you don’t want to use a separate user

database (passwd usually), you can use static userdb.

REMEMBER: You’ll need /etc/pam.d/dovecot file created for PAM

authentication to actually work. </usr/share/doc/dovecot-common/wiki/PasswordDatabase.PAM.txt>

passdb pam {
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=]
# [cache_key=] []
#
# session=yes makes Dovecot open and immediately close PAM session. Some
# PAM plugins need this to work, such as pam_mkhomedir.
#
# setcred=yes makes Dovecot establish PAM credentials if some PAM plugins
# need that. They aren’t ever deleted though, so this isn’t enabled by
# default.
#
# max_requests specifies how many PAM lookups to do in one process before
# recreating the process. The default is 100, because many PAM plugins
# leak memory.
#
# cache_key can be used to enable authentication caching for PAM
# (auth_cache_size also needs to be set). It isn’t enabled by default
# because PAM modules can do all kinds of checks besides checking password,
# such as checking IP address. Dovecot can’t know about these checks
# without some help. cache_key is simply a list of variables (see
# /usr/share/doc/dovecot-common/wiki/Variables.txt) which must match
# for the cached data to be used.
# Here are some examples:
# %u - Username must match. Probably sufficient for most uses.
# %u%r - Username and remote IP address must match.
# %u%s - Username and service (ie. IMAP, POP3) must match.
#
# The service name can contain variables, for example %Ls expands to
# pop3 or imap.
#
# Some examples:
# args = session=yes %Ls
# args = cache_key=%u dovecot
#args = dovecot
}

System users (NSS, /etc/passwd, or similiar)

In many systems nowadays this uses Name Service Switch, which is

configured in /etc/nsswitch.conf. </usr/share/doc/dovecot-common/wiki/AuthDatabase.Passwd.txt>

#passdb passwd {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}

Shadow passwords for system users (NSS, /etc/shadow or similiar).

Deprecated by PAM nowadays.

</usr/share/doc/dovecot-common/wiki/PasswordDatabase.Shadow.txt>

#passdb shadow {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}

PAM-like authentication for OpenBSD.

</usr/share/doc/dovecot-common/wiki/PasswordDatabase.BSDAuth.txt>

#passdb bsdauth {
# [cache_key=] - See cache_key in PAM for explanation.
#args =
#}

passwd-like file with specified location

</usr/share/doc/dovecot-common/wiki/AuthDatabase.PasswdFile.txt>

#passdb passwd-file {
# [scheme=] [username_format=]
#
#args =
#}

checkpassword executable authentication

NOTE: You will probably want to use “userdb prefetch” with this.

</usr/share/doc/dovecot-common/wiki/AuthDatabase.CheckPassword.txt>

#passdb checkpassword {
# Path for checkpassword binary
#args =
#}

SQL database </usr/share/doc/dovecot-common/wiki/AuthDatabase.SQL.txt>

#passdb sql {
# Path for SQL configuration file
#args = /etc/dovecot/dovecot-sql.conf
#}

LDAP database </usr/share/doc/dovecot-common/wiki/AuthDatabase.LDAP.txt>

#passdb ldap {
# Path for LDAP configuration file
#args = /etc/dovecot/dovecot-ldap.conf
#}

vpopmail authentication </usr/share/doc/dovecot-common/wiki/AuthDatabase.VPopMail.txt>

#passdb vpopmail {
# [cache_key=] - See cache_key in PAM for explanation.
# [quota_template=] - %q expands to Maildir++ quota
# (eg. quota_template=quota_rule=*:backend=%q)
#args =
#}

User database specifies where mails are located and what user/group IDs

own them. For single-UID configuration use “static”.

</usr/share/doc/dovecot-common/wiki/UserDatabase.txt>

“prefetch” user database means that the passdb already provided the

needed information and there’s no need to do a separate userdb lookup.

This can be made to work with SQL and LDAP databases, see their example

configuration files for more information how to do it.

</usr/share/doc/dovecot-common/wiki/UserDatabase.Prefetch.txt>

#userdb prefetch {
#}

System users (NSS, /etc/passwd, or similiar). In many systems nowadays this

uses Name Service Switch, which is configured in /etc/nsswitch.conf.

</usr/share/doc/dovecot-common/wiki/AuthDatabase.Passwd.txt>

userdb passwd {
# [blocking=yes] - By default the lookups are done in the main dovecot-auth
# process. This setting causes the lookups to be done in auth worker
# proceses. Useful with remote NSS lookups that may block.
# NOTE: Be sure to use this setting with nss_ldap or users might get
# logged in as each others!
#args =
}

passwd-like file with specified location

</usr/share/doc/dovecot-common/wiki/AuthDatabase.PasswdFile.txt>

#userdb passwd-file {
# [username_format=]
#args =
#}

checkpassword executable user database lookup

</usr/share/doc/dovecot-common/wiki/AuthDatabase.CheckPassword.txt>

#userdb checkpassword {
# Path for checkpassword binary
#args =
#}

static settings generated from template </usr/share/doc/dovecot-common/wiki/UserDatabase.Static.txt>

#userdb static {
# Template for the fields. Can return anything a userdb could normally
# return. For example:
#
# args = uid=500 gid=500 home=/var/mail/%u
#
# If you use deliver, it needs to look up users only from the userdb. This
# of course doesn’t work with static because there is no list of users.
# Normally static userdb handles this by doing a passdb lookup. This works
# with most passdbs, with PAM being the most notable exception. If you do
# the user verification another way, you can add allow_all_users=yes to
# the args in which case the passdb lookup is skipped.
#
#args =
#}

SQL database </usr/share/doc/dovecot-common/wiki/AuthDatabase.SQL.txt>

#userdb sql {
# Path for SQL configuration file
#args = /etc/dovecot/dovecot-sql.conf
#}

LDAP database </usr/share/doc/dovecot-common/wiki/AuthDatabase.LDAP.txt>

#userdb ldap {
# Path for LDAP configuration file
#args = /etc/dovecot/dovecot-ldap.conf
#}

vpopmail </usr/share/doc/dovecot-common/wiki/AuthDatabase.VPopMail.txt>

#userdb vpopmail {
#}

User to use for the process. This user needs access to only user and

password databases, nothing else. Only shadow and pam authentication

requires roots, so use something else if possible. Note that passwd

authentication with BSDs internally accesses shadow files, which also

requires roots. Note that this user is NOT used to access mails.

That user is specified by userdb above.

user = root

Directory where to chroot the process. Most authentication backends don’t

work if this is set, and there’s no point chrooting if auth_user is root.

Note that valid_chroot_dirs isn’t needed to use this setting.

#chroot =

Number of authentication processes to create

#count = 1

Require a valid SSL client certificate or the authentication fails.

#ssl_require_client_cert = no

Take the username from client’s SSL certificate, using

X509_NAME_get_text_by_NID() which returns the subject’s DN’s

CommonName.

#ssl_username_from_cert = no

It’s possible to export the authentication interface to other programs:

#socket listen {
#master {
# Master socket provides access to userdb information. It’s typically
# used to give Dovecot’s local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
#}
#client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
#path = /var/run/dovecot/auth-client
#mode = 0660
#}
#}
}

If you wish to use another authentication server than dovecot-auth, you can

use connect sockets. They are assumed to be already running, Dovecot’s master

process only tries to connect to them. They don’t need any other settings

than the path for the master socket, as the configuration is done elsewhere.

Note that the client sockets must exist in the login_dir.

#auth external {

socket connect {

master {

path = /var/run/dovecot/auth-master

}

}

#}

Dictionary server settings

Dictionary can be used by some plugins to store key=value lists, such as

quota, expire and acl plugins. The dictionary can be used either directly or

though a dictionary server. The following dict block maps dictionary names to

URIs when the server is used. These can then be referenced using URIs in

format “proxy::”.

dict {
#quota = mysql:/etc/dovecot/dovecot-dict-quota.conf
#expire = db:/var/lib/dovecot/expire.db
}

Path to Berkeley DB’s configuration file. See doc/dovecot-db-example.conf

#dict_db_config =

Plugin settings

plugin {

Here you can give some extra environment variables to mail processes.

This is mostly meant for passing parameters to plugins. %variable

expansion is done for all values.

Quota plugin. Multiple backends are supported:

dirsize: Find and sum all the files found from mail directory.

Extremely SLOW with Maildir. It’ll eat your CPU and disk I/O.

dict: Keep quota stored in dictionary (eg. SQL)

maildir: Maildir++ quota

fs: Read-only support for filesystem quota

Quota limits are set using “quota_rule” parameters, either in here or in

userdb. It’s also possible to give mailbox-specific limits, for example:

quota_rule = *:storage=1048576

quota_rule2 = Trash:storage=102400

User has now 1GB quota, but when saving to Trash mailbox the user gets

additional 100MB.

Multiple quota roots are also possible, for example:

quota = dict:user::proxy::quota

quota2 = dict:domain:%d:proxy::quota_domain

quota_rule = *:storage=102400

quota2_rule = *:storage=1048576

Gives each user their own 100MB quota and one shared 1GB quota within

the domain.

You can execute a given command when user exceeds a specified quota limit.

Each quota root has separate limits. Only the command for the first

exceeded limit is excecuted, so put the highest limit first.

Note that % needs to be escaped as %%, otherwise "% " expands to empty.

quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95

quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80

#quota = maildir

ACL plugin. vfile backend reads ACLs from “dovecot-acl” file from maildir

directory. You can also optionally give a global ACL directory path where

ACLs are applied to all users’ mailboxes. The global ACL directory contains

one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter

specifies how many seconds to wait between stat()ing dovecot-acl file

to see if it changed.

#acl = vfile:/etc/dovecot/dovecot-acls:cache_secs=300

To let users LIST mailboxes shared by other users, Dovecot needs a

shared mailbox dictionary. For example:

#acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes

Convert plugin. If set, specifies the source storage path which is

converted to destination storage (mail_location) when the user logs in.

The existing mail directory is renamed to -converted.

#convert_mail = mbox:%h/mail

Skip mailboxes which we can’t open successfully instead of aborting.

#convert_skip_broken_mailboxes = no

Skip directories beginning with ‘.’

#convert_skip_dotdirs = no

If source storage has mailbox names with destination storage’s hierarchy

separators, replace them with this character.

#convert_alt_hierarchy_char = _

Trash plugin. When saving a message would make user go over quota, this

plugin automatically deletes the oldest mails from configured mailboxes

until the message can be saved within quota limits. The configuration file

is a text file where each line is in format:

Mails are first deleted in lowest -> highest priority number order

#trash = /etc/dovecot/dovecot-trash.conf

Expire plugin. Mails are expunged from mailboxes after being there the

configurable time. The first expiration date for each mailbox is stored in

a dictionary so it can be quickly determined which mailboxes contain

expired mails. The actual expunging is done in a nightly cronjob, which

you must set up:

dovecot --exec-mail ext /usr/lib/dovecot/expire-tool.sh

#expire = Trash 7 Spam 30
#expire_dict = proxy::expire

Lazy expunge plugin. Currently works only with maildirs. When a user

expunges mails, the mails are moved to a mailbox in another namespace

(1st). When a mailbox is deleted, the mailbox is moved to another namespace

(2nd) as well. Also if the deleted mailbox had any expunged messages,

they’re moved to a 3rd namespace. The mails won’t be counted in quota,

and they’re not deleted automatically (use a cronjob or something).

#lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/

Events to log. Also available: flag_change append

#mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename

Group events within a transaction to one line.

#mail_log_group_events = no

Available fields: uid, box, msgid, from, subject, size, vsize, flags

size and vsize are available only for expunge and copy events.

#mail_log_fields = uid box msgid size

Sieve plugin (http://wiki.dovecot.org/LDA/Sieve) and ManageSieve service

Location of the active script. When ManageSieve is used this is actually

a symlink pointing to the active script in the sieve storage directory.

#sieve=~/.dovecot.sieve

The path to the directory where the personal Sieve scripts are stored. For

ManageSieve this is where the uploaded scripts are stored.

#sieve_dir=~/sieve
}

Config files can also be included. deliver doesn’t support them currently.

#!include /etc/dovecot/conf.d/*.conf

Optional configurations, don’t give an error if it’s not found:

#!include_try /etc/dovecot/extra.conf
[/code]

[code]# See /usr/share/postfix/main.cf.dist for a commented, more complete version

Debian specific: Specifying a file name will cause the first

line of that file to be used as the name. The Debian default

is /etc/mailname.

#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

appending .domain is the MUA’s job.

append_dot_mydomain = no

Uncomment the next line to generate “delayed mail” warnings

#delay_warning_time = 4h

readme_directory = no

TLS parameters

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

information on enabling SSL in the smtp client.

myhostname = lifala.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = lifala.org, localhost.org, , localhost
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.20
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
[/code]

merci

impossible je reçois pas de mail. En local pas de soucis mais depuis l’exterieur y’a rien qui rentre. je poste mon fichier iptables si vous pouvez m’aider à trouver l’erreur

[code]# /etc/network/iptables.up.rules

Script qui démarre les règles de filtrage IPv4

Formation Debian GNU/Linux par Alexis de Lattre

http://formation-debian.via.ecp.fr/

iptables-restore(8) remet implicitement à zéro toutes les règles

Les instructions qui suivent concernent la table « filter »,

c’est à dire… le filtrage.

*filter

#########################

Politiques par défaut

#########################

Les politiques par défaut déterminent le devenir d’un paquet auquel

aucune règle spécifique ne s’applique.

Les connexions entrantes sont bloquées par défaut

-P INPUT DROP
#-P INPUT ACCEPT

Les connexions destinées à être routées sont acceptées par défaut

-P FORWARD ACCEPT

Les connexions sortantes sont acceptées par défaut

-P OUTPUT ACCEPT

######################

Règles de filtrage

######################

Nous précisons ici des règles spécifiques pour les paquets vérifiant

certaines conditions.

Pas de filtrage sur l’interface de “loopback”

-A INPUT -i lo -j ACCEPT

Accepter le protocole ICMP (notamment le ping)

-A INPUT -p icmp -j ACCEPT

Accepter le protocole IGMP (pour le multicast)

-A INPUT -p igmp -j ACCEPT

Accepter les packets entrants relatifs à des connexions déjà

établies : cela va plus vite que de devoir réexaminer toutes

les règles pour chaque paquet.

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Décommentez la ligne suivante pour que le serveur SSH éventuel

soit joignable de l’extérieur

-A INPUT -p tcp --dport 22 -j ACCEPT

Décommentez les lignes suivantes pour que le serveur de courrier

éventuel soit joignable de l’extérieur.

-A INPUT -p tcp --dport smtp -j ACCEPT

Si vous avez activé les services SMTPS et soumission de messages…

-A INPUT -p tcp --dport smtps -j ACCEPT
-A INPUT -p tcp --dport submission -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT
-A OUTPUT -p tcp --dport 993 -j ACCEPT
-A INPUT -p tcp --dport 143 -j ACCEPT
-A OUTPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 25 -j ACCEPT
-A OUTPUT -p tcp --dport 25 -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur de noms

éventuel soit joignable de l’extérieur.

#-A INPUT -p tcp --dport domain -j ACCEPT
#-A INPUT -p udp --dport domain -j ACCEPT

Décommentez la ligne suivante pour que le serveur Web éventuel

soit joignable de l’extérieur.

-A INPUT -p tcp --dport http -j ACCEPT

Si vous avez activé le HTTPS…

-A INPUT -p tcp --dport https -j ACCEPT

Décommentez les lignes suivantes pour un serveur xmpp comme prososdy

-A INPUT -p tcp --dport 5222 -j ACCEPT
-A INPUT -p tcp --dport 5269 -j ACCEPT

#fail2ban
#-A INPUT -p tcp -m multiport --dports 450 -j fail2ban-ssh
#-A fail2ban-ssh -j RETURN

#vsftpd
#-A INPUT -p tcp --dport 21 -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur d’impression

éventuel soit joignable de l’extérieur.

-A INPUT -p tcp --dport ipp -j ACCEPT
-A INPUT -p udp --dport ipp -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur Samba

éventuel soit joignable de l’extérieur.

#-A INPUT -p tcp --dport netbios-ssn -j ACCEPT
#-A INPUT -p udp --dport netbios-ssn -j ACCEPT
-A INPUT -p tcp --dport 135 -j ACCEPT
-A INPUT -p udp --dport 135 -j ACCEPT
-A INPUT -p tcp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p tcp --dport 139 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
-A INPUT -p udp --dport 445 -j ACCEPT

Décommentez la ligne suivante pour que des clients puissent se connecter

à l’ordinateur par XDMCP.

#-A INPUT -p udp --dport xdmcp -j ACCEPT

Décommentez la ligne suivante pour que l’ordinateur puisse se connecter

par XDMCP à une machine distante).

#-A INPUT -p tcp --dport x11-1 -j ACCEPT

Décommentez la ligne suivante pour pouvoir recevoir des flux VideoLAN.

#-A INPUT -p udp --dport 1234 -j ACCEPT

Décommentez la ligne suivante pour pouvoir recevoir des annonces SAP

(ce sont des annonces de session multicast).

#-A INPUT -p udp -d 224.2.127.254 --dport 9875 -j ACCEPT

Décommentez les 3 lignes suivantes pour pouvoir utiliser GnomeMeeting

#-A INPUT -p tcp --dport 30000:33000 -j ACCEPT
#-A INPUT -p tcp --dport 1720 -j ACCEPT
#-A INPUT -p udp --dport 5000:5006 -j ACCEPT

Décommentez la ligne suivante pour pouvoir partager de la musique par

DAAP.

#-A INPUT -p tcp --dport daap -j ACCEPT

Décommentez la ligne suivante pour que votre ordinateur

annonce son nom et ses services par mDNS sur le réseau local (cela

permet de le contacter sous « son nom d’hôte ».local).

-A INPUT -p udp -d 224.0.0.251 --dport mdns -j ACCEPT

La règle par défaut pour la chaine INPUT devient REJECT (contrairement

à DROP qui ignore les paquets, avec REJECT, l’expéditeur est averti

du refus). Il n’est pas possible de mettre REJECT comme politique par

défaut. Au passage, on note les paquets qui vont être jetés, ça peut

toujours servir.

-A INPUT -j LOG --log-prefix "paquet IPv4 inattendu "
-A INPUT -j REJECT

#tor
-A INPUT -p tcp --dport 9050 -j ACCEPT
-A INPUT -p tcp --dport 9001 -j ACCEPT

COMMIT

Les instructions qui suivent concernent la table « nat ».

*nat

########################

Partage de connexion

########################

Décommentez la ligne suivante pour que le système fasse office de

routeur NAT et remplacez « eth0 » par le nom de l’interface

connectée à Internet.

#-A POSTROUTING -o eth0 -j MASQUERADE

########################

Redirections de port

########################

Décommentez la ligne suivante pour que les requêtes TCP reçues sur

le port 80 de l’interface eth0 soient redirigées à la machine dont

l’adresse IPv4 est 192.168.0.3 sur son port 80 (la réponse à la

requête sera transférée au client).

#-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80

COMMIT

####################

Problème de MTU…

####################

Les instructions qui suivent concernent la table « mangle », c’est

à dire l’altération des paquets

*mangle

Si la connexion que vous partagez est une connexion ADSL directement gérée

par votre ordinateur, vous serez probablement confronté au fameux problème du

MTU. En résumé, le problème vient du fait que le MTU de la liaison entre

votre fournisseur d’accès et le serveur NAT est un petit peu inférieur au MTU

de la liaison Ethernet qui relie le serveur NAT aux machines qui sont

derrière le NAT. Pour résoudre ce problème, décommentez la ligne suivante et

remplacez « eth0 » par le nom de l’interface connectée à Internet.

#-A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth0 --clamp-mss-to-pmtu

COMMIT

#iptables -v -t nat -A PREROUTING -p tcp -j REDIRECT --dport 109 --to-ports 110
[/code]

perso je voit pas a quoi ser cette regle:

-A INPUT -j LOG --log-prefix "paquet IPv4 inattendu "
-A INPUT -j REJECT

tu rejettte tout ce qui rentre du coup sa peux pas marcher…

je supose que fail 2 ban est bien configurer.
enfin

-A OUTPUT -p tcp --dport 25 -j ACCEPT

ajoute en vrac pour tester:

-A OUTPUT -p tcp --sport 25 -j ACCEPT
-A OUTPUT -p udp --dport 25 -j ACCEPT

apres j’ai pas tout regarder mai sa semble venir de la si fail 2 ban est bien configurer.

Merci de ta réponse panthere mais cela n’a pas fonctionné voici un petit peu de log :

Dec 16 13:54:33 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=192.168.0.254, lip=192.168.0.20, TLS Dec 16 13:54:44 lifala postfix/anvil[1603]: statistics: max connection rate 1/60s for (smtp:unknown) at Dec 16 13:51:24 Dec 16 13:54:44 lifala postfix/anvil[1603]: statistics: max connection count 1 for (smtp:unknown) at Dec 16 13:51:24 Dec 16 13:54:44 lifala postfix/anvil[1603]: statistics: max cache size 1 at Dec 16 13:51:24 Dec 16 13:56:55 lifala dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 13:56:56 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 13:56:56 lifala dovecot: IMAP(master): Disconnected: Logged out bytes=89/1097 Dec 16 13:59:54 lifala dovecot: dovecot: Killed with signal 15 (by pid=1784 uid=0 code=kill) Dec 16 13:59:54 lifala dovecot: Dovecot v1.2.15 starting up (core dumps disabled) Dec 16 14:00:04 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=192.168.0.254, lip=192.168.0.20, TLS Dec 16 14:00:06 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=192.168.0.254, lip=192.168.0.20, TLS Dec 16 14:00:07 lifala dovecot: IMAP(master): Connection closed bytes=78/771 Dec 16 14:00:07 lifala dovecot: IMAP(master): Connection closed bytes=18/354 Dec 16 14:00:15 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=192.168.0.254, lip=192.168.0.20, TLS

merci encore

dovecot ser a aller chercher les mail, si tu arrive pasa te loguer c’est que ton client mail est mal configurer,
ou que ce que tu croit coter serveur, passwd et login n’existe pas etc sur le serveur. enfin je voi sa comme sa pour le bout de log que tu montre.

si ton serveur reçois pas les mail ,c’est dans postfix.log qu’il faut regarder

Je n’ai pas pas de fichier postfix.log mais il y a des infos dans mail.log que voici.

Dec 16 14:31:55 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:31:55 lifala dovecot: IMAP(master): Disconnected: Logged out bytes=89/1097 Dec 16 14:38:54 lifala dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:38:55 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:38:55 lifala dovecot: IMAP(master): Disconnected: Logged out bytes=89/1097 Dec 16 14:43:10 lifala postfix/qmgr[1423]: A8FAA49E94: from=<master@lifala.org>, size=410, nrcpt=1 (queue active) Dec 16 14:43:14 lifala postfix/smtp[1852]: A8FAA49E94: host mx01.1and1.fr[212.227.15.169] refused to talk to me: 554 RBL rejection (d2): http://www.spamhaus.org/query/bl?ip=88.126.172.142 Dec 16 14:43:19 lifala postfix/smtp[1852]: A8FAA49E94: host mx00.1and1.fr[212.227.15.186] refused to talk to me: 554 RBL rejection (d2): http://www.spamhaus.org/query/bl?ip=88.126.172.142 Dec 16 14:43:23 lifala postfix/smtp[1852]: A8FAA49E94: host mx00.1and1.fr[212.227.15.150] refused to talk to me: 554 RBL rejection (d2): http://www.spamhaus.org/query/bl?ip=88.126.172.142 Dec 16 14:43:27 lifala postfix/smtp[1852]: A8FAA49E94: host mx00.1and1.fr[212.227.15.169] refused to talk to me: 554 RBL rejection (d2): http://www.spamhaus.org/query/bl?ip=88.126.172.142 Dec 16 14:43:32 lifala postfix/smtp[1852]: A8FAA49E94: to=<contact@ivfc.fr>, relay=mx00.1and1.fr[212.227.15.134]:25, delay=68198, delays=68176/0.05/22/0, dsn=4.0.0, status=deferred (host mx00.1and1.fr[212.227.15.134] refused to talk to me: 554 RBL rejection (d2): http://www.spamhaus.org/query/bl?ip=88.126.172.142) Dec 16 14:45:54 lifala dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:45:55 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:45:55 lifala dovecot: IMAP(master): Disconnected: Logged out bytes=89/1097 Dec 16 14:52:55 lifala dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:52:56 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:52:56 lifala dovecot: IMAP(master): Disconnected: Logged out bytes=89/1097 Dec 16 14:59:55 lifala dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:59:56 lifala dovecot: imap-login: Login: user=<master>, method=PLAIN, rip=88.127.240.129, lip=192.168.0.20, TLS Dec 16 14:59:56 lifala dovecot: IMAP(master): Disconnected: Logged out bytes=89/1097