Mailservern är uppsatt på en Hardy Heron server 8.04.2. Funktionen är verifierad.
Öppna ett skal och erhåll root rättigheter;
Kod: Markera allt
sudo -s
Installera mysql;
Kod: Markera allt
apt-get install mysql-server mysql-client
Kod: Markera allt
mysqladmin -u root password <lösenord>
Kod: Markera allt
mysql -u root -p
Kod: Markera allt
CREATE DATABASE mail;
GRANT ALL PRIVILEGES ON mail.* TO 'mail'@'localhost' IDENTIFIED BY 'mail';
quit
Kod: Markera allt
wget http://downloads.sourceforge.net/postfixadmin/postfixadmin-2.1.0.tgz
Kod: Markera allt
tar xvfz postfixadmin-2.1.0.tgz
Kod: Markera allt
nano postfixadmin-2.1.0/DATABASE_MYSQL.TXT
Ladda in tabellerna i den nyligen skapade databasen. (Lösenordet är mail)
Kod: Markera allt
mysql -umail -p mail < postfixadmin-2.1.0/DATABASE_MYSQL.TXT
Installera Postfix för MySQL;
Kod: Markera allt
apt-get install postfix postfix-mysql
Döp om main.cf;
Kod: Markera allt
mv /etc/postfix/main.cf /etc/postfix/main.cf.orginal
Kod: Markera allt
nano /etc/postfix/main.cf
biff = no
append_dot_mydomain = no
#delay_warning_time = 4h
myhostname = <maskin.din.doman>
myorigin = <din.doman>
mydestination = localhost
relayhost = <din ISP smtp server>
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# Virtual mailbox settings
virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf
virtual_mailbox_base = /var/vmail
virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf
virtual_minimum_uid = 150
virtual_uid_maps = static:150
virtual_gid_maps = static:8
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
# SASL Authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# TLS
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_session_cache
smtpd_tls_security_level = may
smtpd_tls_received_header = no
smtpd_tls_loglevel = 1
tls_random_source = dev:/dev/urandom
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
permit
Observera att raderna under "smtpd_recipient_restrictions =" ska inledas med ett "mellanslag"!!
Skapa följande användare;
Kod: Markera allt
useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual mailbox" vmail
Kod: Markera allt
mkdir /var/vmail
chmod 770 /var/vmail/
chown vmail:mail /var/vmail/
Skapa fyra filer och klistra in respektive textrader;
Kod: Markera allt
nano /etc/postfix/mysql_virtual_alias_maps.cf
password = mail
hosts = localhost
dbname = mail
table = alias
select_field = goto
where_field = address
additional_conditions = and active = '1'
Kod: Markera allt
nano /etc/postfix/mysql_virtual_domains_maps.cf
password = mail
hosts = localhost
dbname = mail
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'
Kod: Markera allt
nano /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
password = mail
hosts = localhost
dbname = mail
table = mailbox
select_field = quota
where_field = username
additional_conditions = and active = '1'
Kod: Markera allt
nano /etc/postfix/mysql_virtual_mailbox_maps.cf
password = mail
hosts = localhost
dbname = mail
table = mailbox
select_field = CONCAT(domain,'/',maildir)
where_field = username
additional_conditions = and active = '1'
För att Dovecot ska kunna levera till Postfix behöver master.cf justeras;
Kod: Markera allt
nano /etc/postfix/master.cf
dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d $(recipient)
Dovecot
Installera Dovecot;
Kod: Markera allt
apt-get install dovecot-imapd dovecot-pop3d
Kod: Markera allt
mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orginal
Kod: Markera allt
nano /etc/dovecot/dovecot.conf
#
base_dir = /var/run/dovecot/
#
# imap imaps pop3 pop3s (use imaps and pop3s if configured for SSL)
protocols = imap pop3
#
# Uncomment the ssl_listen statements and comment out listen if using SSL
protocol imap {
listen = *:143
# ssl_listen = *:993
}
protocol pop3 {
listen = *:110
# ssl_listen = *:995
}
#
log_timestamp = "%Y-%m-%d %H:%M:%S "
syslog_facility = mail
#
# Uncomment these if using SSL
#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
#ssl_ca_file = /etc/ssl/mycompany/ca/mycompany.pem
#ssl_verify_client_cert = yes
#ssl_parameters_regenerate = 168
#verbose_ssl = no
#
# Where the mailboxes are located
mail_location = maildir:/var/vmail/%d/%u
#
mail_extra_groups = mail
mail_debug = no
first_valid_uid = 150
last_valid_uid = 150
maildir_copy_with_hardlinks = yes
#
protocol imap {
login_executable = /usr/lib/dovecot/imap-login
mail_executable = /usr/lib/dovecot/imap
imap_max_line_length = 65536
}
protocol pop3 {
login_executable = /usr/lib/dovecot/pop3-login
mail_executable = /usr/lib/dovecot/pop3
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
postmaster_address = postmaster@<din.doman>
sendmail_path = /usr/lib/sendmail
auth_socket_path = /var/run/dovecot/auth-master
}
#
auth_verbose = no
auth_debug = no
auth_debug_passwords = no
#
auth default {
mechanisms = plain
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
user = nobody
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = vmail
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
#
# If you want client certificates, use these lines
# ssl_require_client_cert = yes
# ssl_username_from_cert = yes
}
Döp om dovecot-sql.conf;
Kod: Markera allt
mv /etc/dovecot/dovecot-sql.conf /etc/dovecot/dovecot-sql.conf.orginal
Kod: Markera allt
nano /etc/dovecot/dovecot-sql.conf
connect = host=localhost dbname=mail user=mail password=mail
# The new name for MD5 is MD5-CRYPT so you might need to change this depending on version
default_pass_scheme = MD5
# Get the mailbox
user_query = SELECT 'var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
# Get the password
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
# If using client certificates for authentication, comment the above and uncomment the following
#password_query = SELECT null AS password, '%u' AS user
Justera rättigheter och ägare;
Kod: Markera allt
chmod 600 /etc/dovecot/*.conf
chown vmail /etc/dovecot/*.conf
Installera följande;
Kod: Markera allt
apt-get install apache2 libapache2-mod-php5 php5-mysql
Kod: Markera allt
/etc/init.d/apache2 restart
Kod: Markera allt
mv postfixadmin-2.1.0 /var/www/postfixadmin
Kod: Markera allt
chown -R root:root /var/www/postfixadmin
Kod: Markera allt
cd /var/www/postfixadmin/
cp config.inc.php.sample config.inc.php
Kod: Markera allt
nano config.inc.php
$CONF['postfix_admin_path'] = 'http://<din.domän>/postfixadmin';
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'mail';
$CONF['database_password'] = 'mail';
$CONF['database_name'] = 'mail';
Kontrollera;
http://<din.domän>/postfixadmin/admin/
Vi ska lösenordskydda sidorna för "superadmin":
Kod: Markera allt
mv /var/www/postfixadmin/admin/.htaccess /var/www/postfixadmin/admin/.htaccess.orginal
Kod: Markera allt
nano /var/www/postfixadmin/admin/.htaccess
AuthUserFile /etc/.htpasswd
AuthName "Postfix Admin"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Ändra namn på .htpasswd i foldern;
Kod: Markera allt
mv /var/www/postfixadmin/admin/.htpasswd /var/www/postfixadmin/admin/.htpasswd.orginal
http://www.engr.sjsu.edu/daluu/scripts/htpasswd.php
Skapa en ny .htpasswd i folder /etc/ och klistra in inloggningsuppgifterna enligt <användare:lösenord>
Kod: Markera allt
nano /etc/.htpasswd
Kod: Markera allt
nano /etc/apache2/sites-available/default
.
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
.
.
Starta om Apache2;
Kod: Markera allt
/etc/init.d/apache2 restart
http://<din.doman>/postfixadmin/admin
Kontrollera sedan;
http://<din.doman>/postfixadmin/
Förhoppningsvis ska allt vara ok. Ta då bort filen setup.php;
Kod: Markera allt
rm /var/www/postfixadmin/setup.php
http://<din.doman>/postfixadmin/
Här kan domänadministratörer* och användare** logga in och administera sina respektive delar. De senare får härifrån klicka sig vidare till ett nytt inloggningsfönster.
*Lista alias och mailadresser.
*Skapa nytt alias i domänen.
*Skapa ny mailadress domän.
*Skicka ett mail till en av mailadresserna.
*Ändra lösenord för adminkontot.
*Visa loggfiler.
**Ändra epost forwardadress.
**Ändra lösenordet.
Handledningen är baserad på ett orginal av J.Chadda, april 2007