# 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