Postfixadmin 3.0: Mailserver Administration Made Easy
Postfixadmin 3.0: Mailserver Administration Made Easy
0
Mailserver administration made easy
Christian Boltz
[email protected]
listen
What is PostfixAdmin?
Web interface to manage your mailserver:
● domains
● mailboxes
● aliases (forwarding)
● alias domains (domain-level forwarding with
recipient validation
● autoresponders (vacation)
● fetch external mailboxes (fetchmail)
Why PostfixAdmin?
https://www.flickr.com/photos/wwarby/8191333046/
Permission levels
Super-Admin
● „root“ for mails
● can create domains and admins
Domain-Admin
● admin for some domains
User (/users)
● change alias, autoresponder message and password
Once upon a time...
● Sept. 2006: I switched from Plesk to PostfixAdmin
● some patches later:
https://www.flickr.com/photos/redcube75/3827045542/
New in 3.0 beta 2
ient
and comandline cl
Web interface to manage your mailserver:
● new commandline client (postfixadmin-cli)
● autoresponder start and end date
● complete rewrite (to *Handler classes)
● edit.php instead of lots of edit-*.php und create-*.php
● easily add and change fields with hook functions
($CONF['*_struct_hook'])
● Smarty templates
● ... and 1000 little improvements
postfixadmin-cli
● postfixadmin-cli <module> <action> <ID> \
[--parameter ...]
● <module>: admin, domain, mailbox, alias,
aliasdomain, fetchmail
● <action>: view, add, update, delete, help
● <ID>: e. g. [email protected]
● --parameter: see
postfixadmin-cli <modul> <aktion> help
postfixadmin-cli
● postfixadmin-cli help
● postfixadmin-cli domain help
● postfixadmin-cli domain add help
● postfixadmin-cli domain add # interactive mode
● postfixadmin-cli domain add example.com
# uses defaults for all other fields
● postfixadmin-cli domain add example.com \
--description "test domain" --aliases 100 \
--mailboxes 50 --maxquota 100
You'll need...
● webserver with PHP
● MySQL or PostgeSQL
https://www.flickr.com/photos/seph_swain/3141159156/
Configuration
● configuration is in config.inc.php
● write your own configuration to config.local.php
(if the file doesn't exist, create it!)
● everything else is explained when first accessing
PostfixAdmin and setup.php
● no „default“ account – create your first Super-Admin
with setup.php
● database gets auto-created by setup.php
● when updating, run setup.php
Creating a mailbox
function x_struct_mailbox_modify($struct) {
$struct['welcome_mail']['default'] = 0;
$struct['welcome_mail']['display_in_form'] = 0;
return $struct; # important!
}
$CONF['mailbox_struct_hook'] =
'x_struct_mailbox_modify';
Postfix main.cf I
virtual_alias_maps =
proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/
mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_domains =
proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps =
proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/
mysql_virtual_alias_domain_mailbox_maps.cf
(content of those files -> POSTFIX_CONF.TXT)
Postfix main.cf II
delay_warning_time = 4h
parent_domain_matches_subdomains =
recipient_delimiter = +
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
lmtp_destination_recipient_limit = 1
virtual_transport = lmtp:unix:private/dovecot-lmtp
Postfix main.cf III
smtpd_recipient_restrictions =
reject_non_fqdn_sender, # block incomplete hostnames
reject_non_fqdn_recipient, # block incomplete hostnames
permit_tls_clientcerts, # allow client certificates (rarely used)
permit_sasl_authenticated, # allow SMTP auth
permit_mynetworks, # allow mynetworks
reject_unauth_destination, # not for us? block it
check_recipient_access hash:/etc/postfix/access, # special recipient address?
check_sender_access hash:/etc/postfix/senderaccess, # special sender address?
reject_invalid_hostname, # block invalid HELO/ELHO
reject_unknown_sender_domain, # block invalid hostnames and domains
reject_unknown_recipient_domain, # block invalid hostnames and domains
reject_unlisted_recipient, # block invalid/non-existing recipients
reject_rbl_client ix.dnsbl.manitu.net, # blacklist
reject_rbl_client zen.spamhaus.org, # blacklist
check_policy_service inet:127.0.0.1:2501, # greylisting
permit # allow everything else (mail for us and not blocked above)
really?
PostfixDLTAdmin
Outlook
New in SVN
● list.php instead of lots of list*.php (* mostly ;-)
● edit.php also usable for users/*
● flag to protect some aliases from being edited or deleted
(used by $CONF['alias_control_admin'])
● auto_increment with „readable“ label field (e. g. for fetchmail jobs)
● mass edit *
● better search *
you th!
● CSV export
s, r ur a l
T ha nk
● several little improvements
Questions?
sourceforge.net/projects/postfixadmin
postfixadmin.sourceforge.net
IRC: freenode #postfixadmin
Christian Boltz
[email protected]