# aptitude install mysql-server apache2 php5-cgi php5-cli php5-gd php5-mysql \ vsftpd phpmyadmin libapache2-mod-php5 php5-mcrypt vim screen php-xml-parser \ php-xml-serializer php-xml-util php5-xmlrpc
# mysqladmin -u root password FlolsIrwobyav3
# cat > /etc/apache2/sites-enabled/site.com
<VirtualHost *>
ServerAdmin webmaster@site.com
ServerName site.com
ServerAlias www.site.com
DocumentRoot /var/www/site.com
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/site.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/site.com-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/site.com-access.log combined
ServerSignature On
</VirtualHost>
# useradd -d /var/www/site.com siteftp
# vim /etc/vsftpd.conf
#anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES
# /etc/init.d/vsftpd restart
# passwd siteftp # mkdir /var/www/site.com # chown siteftp /var/www/site.com # apache2ctl restart # vipw меняем шелл юзера siteftp на /bin/false # echo "/bin/false" >> /etc/shells # aptitude install postfix-mysql postfix # aptitude install dovecot-common dovecot-imapd dovecot-pop3d # wget http://downloads.sourceforge.net/postfixadmin/postfixadmin_2.2.1.1_all.deb?modtime=1216813942&big_mirror=0 # dpkg -i postfixadmin_2.2.1.1_all.deb # apachectl restart
# cat » /etc/postfix/main.cf
# 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 message_size_limit = 10485760 local_recipient_maps = $virtual_alias_maps $virual_mailbox_domains # Timeouts smtpd_timeout = 120s smtp_helo_timeout = 60s smtp_mail_timeout = 60s smtp_rcpt_timeout = 90s # 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 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination reject_unauth_destination=yes
# cat mysql_virtual_alias_maps.cf
hosts = localhost user = postfixadmin password = 2568106e4f23ca19764dd2f6c657c079 dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active='1'
# cat mysql_virtual_domains_maps.cf
user = postfixadmin password = 2568106e4f23ca19764dd2f6c657c079 hosts = localhost dbname = postfix table = domain query = SELECT domain FROM domain WHERE domain='%s' AND backupmx ='0' AND active ='1'
# cat mysql_virtual_mailbox_maps.cf
user = postfixadmin password = 2568106e4f23ca19764dd2f6c657c079 hosts = localhost dbname = postfix query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active='1'
mysql> create database postfix; Query OK, 1 row affected (0.40 sec) mysql> grant all privileges on postfix.* to 'postfixadmin'@localhost identified by '2568106e4f23ca19764dd2f6c657c079'; Query OK, 0 rows affected (0.04 sec) mysql>
# cat > /etc/dovecot/dovecot.conf
base_dir = /var/run/dovecot/
protocols = imap pop3
protocol imap {
listen = *:143
}
protocol pop3 {
listen = *:110
}
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
syslog_facility = mail
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
mail_privileged_group = mail
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 = root@localhost
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 login
passdb pam {
}
passdb sql {
args =/etc/dovecot/dovecot-sql.conf
}
userdb passwd {
}
userdb sql {
args =/etc/dovecot/dovecot-sql.conf
}
user = nobody
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = vmail
group = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user=postfix
group=postfix
}
}
}
dict {
}
plugin {
}
# cat > /etc/dovecot/dovecot-sql.conf
driver = mysql connect = host=localhost dbname=postfix user=postfixadmin password=2568106e4f23ca19764dd2f6c657c079 default_pass_scheme = MD5 password_query = SELECT username, password FROM mailbox WHERE username = '%n@%d' user_query = SELECT maildir, 150 AS uid, 150 AS gid FROM mailbox WHERE username = '%n@%d'
# cat » /etc/postfix/master.cf
# Local mail
dovecot unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
# useradd -d /var/vmail -u 150 vmail # mkdir /var/vmail # chown vmail:vmail /var/vmail # chown -R vmail /etc/dovecot/ # /etc/init.d/dovecot start # /etc/init.d/postfix restart # aptitude install php5-imap # apache2ctl restart # vim /etc/postfixadmin/config.inc.php
http://site.com/postfixadmin/setup.php
# rm /usr/share/postfixadmin/setup.php