![]() |
|
|||||||
| Guides All Guides and HOWTO's. |
![]() |
|
|
Thread Tools | Display Modes |
|
||||
|
Hi,
I do not have big experience in mail servers setup, so I wanted to share my current setup with You, If You have any comments, feel free to post them. I needed a small and simple mail server and after a lot of googling I went with that setup: Code:
postfix --> dspam --> dovecot [MTA] [SPAM] [LDA] Generally this setup supports virtual domains with virtual users, all with simple passwd(5) format file for authentification, mails are kept in Maildir format like that: /usr/mail/${DOMAIN}/${USER}@${DOMAIN}. Of course there is separate passwd(1) file per domain, with format as: /usr/mail/${DOMAIN}/dovecot_passwd, here is how it looks like: /usr/mail/${DOMAIN}/dovecot_passwd Code:
admin@domain.com:{PLAIN}password:2000:2000::/usr/mail/domain.com/admin@domain.com
virtual@domain.com:{DIGEST-MD5}22e693858f955b38b1a0cc4f13c3d8fc:2000:2000::/usr/mail/domain.com/virtual@domain.com
Code:
% ls -l /usr/mail total 136 drwxr-x--- 3 root virtual 4 Aug 9 13:35 dspam/ -rw-r----- 1 virtual virtual 80 Aug 9 13:41 dspam_transport -rw-r----- 1 virtual virtual 65536 Aug 6 11:36 dspam_transport.db drwxr-x--- 4 virtual virtual 5 Aug 9 13:35 domain.com/ -rw-r----- 1 virtual virtual 278 Aug 9 13:41 postfix_accounts -rw-r----- 1 virtual virtual 65536 Aug 9 13:42 postfix_accounts.db drwxr-x--- 2 virtual virtual 11 Aug 9 13:35 scripts/ % ls -l /usr/mail/domain.com -rw-r----- 1 virtual virtual 277 Aug 5 11:04 dovecot_passwd drwx------ 7 virtual virtual 13 Aug 9 13:46 admin@domain.com/ drwx------ 5 virtual virtual 9 Aug 6 11:22 virtual@domain.com/ /usr/mail/postfix_accounts Code:
# mbox -----> admin@bot.pl bot.pl/admin # maildir --> admin@bot.pl bot.pl/admin/ # FORMAT: user@domain domain/user@domain/ spam@domain.com x ham@domain.com x admin@domain.com domain.com/admin@domain.com/ virtual@domain.com domain.com/virtual@domain.com/ /usr/local/etc/dovecot.conf Code:
ssl = no
disable_plaintext_auth = no
protocols = pop3 imap
protocol pop3 {
listen = *:110
login_processes_count = 1
login_max_processes_count = 32
pop3_client_workarounds = outlook-no-nuls
}
protocol imap {
listen = *:143
login_processes_count = 1
login_max_processes_count = 32
imap_client_workarounds = outlook-idle
}
auth default {
mechanisms = plain login digest-md5
userdb passwd-file {
args = /usr/mail/%d/dovecot_passwd
}
passdb passwd-file {
args = /usr/mail/%d/dovecot_passwd
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = virtual
group = virtual
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
mail_location = maildir:/usr/mail/%d/%u
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot_info.log
protocol lda {
postmaster_address = admin@domain.com
log_path = /var/log/dovecot_lda.log
}
/usr/local/etc/dspam.conf Code:
Home /usr/mail/dspam
StorageDriver /usr/local/lib/dspam/libhash_drv.so
TrustedDeliveryAgent "/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}"
OnFail error
Trust root
Trust dspam
Trust virtual
Trust dovecot
Trust mail
Trust daemon
TrainingMode teft
TestConditionalTraining on
Feature whitelist
Algorithm graham burton
Tokenizer chain
PValue bcr
WebStats off
Preference "trainingMode=TEFT"
Preference "spamAction=quarantine"
Preference "spamSubject=[SPAM]"
Preference "statisticalSedation=5"
Preference "enableBNR=on"
Preference "enableWhitelist=on"
Preference "signatureLocation=message"
Preference "tagSpam=off"
Preference "tagNonspam=off"
Preference "showFactors=off"
Preference "optIn=off"
Preference "optOut=off"
Preference "whitelistThreshold=10"
Preference "makeCorpus=off"
Preference "storeFragments=off"
Preference "localStore="
Preference "processorBias=on"
Preference "fallbackDomain=off"
Preference "trainPristine=off"
Preference "optOutClamAV=off"
Preference "ignoreRBLLookups=off"
Preference "RBLInoculate=off"
AllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride fallbackDomain
AllowOverride ignoreGroups
AllowOverride ignoreRBLLookups
AllowOverride localStore
AllowOverride makeCorpus
AllowOverride optIn
AllowOverride optOut
AllowOverride optOutClamAV
AllowOverride processorBias
AllowOverride RBLInoculate
AllowOverride showFactors
AllowOverride signatureLocation
AllowOverride spamAction
AllowOverride spamSubject
AllowOverride statisticalSedation
AllowOverride storeFragments
AllowOverride tagNonspam
AllowOverride tagSpam
AllowOverride trainPristine
AllowOverride trainingMode
AllowOverride whitelistThreshold
AllowOverride dailyQuarantineSummary
HashRecMax 98317
HashAutoExtend on
HashMaxExtents 0
HashExtentSize 49157
HashPctIncrease 10
HashMaxSeek 10
HashConnectionCache 10
Notifications off
PurgeSignatures 14
PurgeNeutral 90
PurgeUnused 90
PurgeHapaxes 30
PurgeHits1S 15
PurgeHits1I 15
LocalMX 127.0.0.1
SystemLog on
UserLog on
Opt out
ServerMode standard
ServerParameters "--deliver=innocent -d %u"
ServerIdent "mail.domain.com"
ServerDomainSocketPath "/var/run/dspam.sock"
ProcessorURLContext on
ProcessorBias on
StripRcptDomain off
Code:
spam@domain.com dspam-retrain:spam ham@domain.com dspam-retrain:innocent /usr/local/etc/postfix/main.cf Code:
queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix data_directory = /var/db/postfix mail_owner = postfix mynetworks_style = host sendmail_path = /usr/local/sbin/sendmail newaliases_path = /usr/local/bin/newaliases mailq_path = /usr/local/bin/mailq setgid_group = maildrop html_directory = /usr/local/share/doc/postfix manpage_directory = /usr/local/man sample_directory = /usr/local/etc/postfix readme_directory = /usr/local/share/doc/postfix mailbox_command = /usr/local/libexec/dovecot/deliver unknown_local_recipient_reject_code = 550 myhostname = mail.domain.com mynetworks = 0.0.0.0/8,127.0.0.0/8 smtpd_use_tls = no smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination broken_sasl_auth_clients = yes strict_rfc821_envelopes = no virtual_mailbox_domains = domain.com virtual_mailbox_base = /usr/mail virtual_mailbox_maps = hash:/usr/mail/postfix_accounts virtual_minimum_uid = 100 virtual_uid_maps = static:2000 virtual_gid_maps = static:2000 virtual_transport = lmtp:unix:/var/run/dspam.sock transport_maps = hash:/usr/mail/dspam_transport dspam_destination_recipient_limit = 1 Code:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
-o content_filter=lmtp:unix:/var/run/dspam.sock
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o smtp_fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
dspam-retrain unix - n n - - pipe
flags=Rhq argv=/usr/local/bin/dspamc --client --mode=teft --class=${nexthop} --source=error --user ${sender}
/etc/rc.conf Code:
hostname="mail.domain.com" sshd_enable="YES" postfix_enable="YES" dspam_enable="YES" dspam_pidfile="/var/run/dspam.pid" dovecot_enable="YES" syslogd_flags="-s -s" sendmail_enable="NONE" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" Code:
mail:*:6:postfix mailnull:*:26: virtual:*:2000: dovecot:*:143: postfix:*:125: maildrop:*:126: Code:
mailnull:*:26:26:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin virtual:*:2000:2000:virtual:/usr/mail:/usr/sbin/nologin dovecot:*:143:143:Dovecot User:/var/empty:/usr/sbin/nologin postfix:*:125:125:Postfix Mail System:/var/spool/postfix:/usr/sbin/nologin -- dspam(1) daemon runs on root, it should run on its user (like dspam for example), any tips how to make the permissions? Like I said before, any comments welcome.
__________________
religions, worst damnation of mankind "If 386BSD had been available when I started on Linux, Linux would probably never had happened." Linus Torvalds Linux is not UNIX! Face it! It is not an insult. It is fact: GNU is a recursive acronym for “GNU's Not UNIX”. vermaden's: links resources deviantart spreadbsd |
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Postfix, Dovecot, spamassassin, mysql and maildrop | hamba | Guides | 3 | 20th May 2010 06:40 PM |
| Postfix and Dovecot SMTP auth configuration hints | J65nko | OpenBSD Packages and Ports | 0 | 5th February 2010 01:53 AM |
| Maildir with Postfix/Dovecot/procmail/mutt | bsdperson | FreeBSD Ports and Packages | 3 | 8th July 2009 07:05 PM |
| Mail server questions | Zmyrgel | OpenBSD General | 13 | 4th July 2008 01:45 PM |
| postfix + dovecot LDA: bounce, user unknown | cbrace | FreeBSD General | 1 | 9th May 2008 05:19 PM |