#/bin/bash
################################################################################################
# Somthing to say
#
# Author:sosogh
#
# Date:2006.10.24
#
# The script will ask you some question ,so "donot" go anywhere when excute this script
################################################################################################
###########################################################################
# postfix+sasl+pop3+imap+clamav+spamassain+maildrop+squirrelmail
###########################################################################
##############
# prepation
##############
sed -i '/^deb http:\/\/security.debian.org/s/\(.*\)/#\1/' /etc/apt/sources.list
apt-get update
apt-get -y install sudo
groupadd -g 108 vmail
useradd -g 108 -u 108 vmail
MailScanner_dir=/etc/MailScanner/MailScanner.conf
iq=/var/spool/postfix/hold/
oq=/var/spool/postfix/incoming
###########################
# Install the postfix deb
###########################
apt-get -y install postfix
##################################
# Set the postfix Virtual Domain
##################################
echo "virtual_mailbox_domains = sosogh.com" >> /etc/postfix/main.cf
echo "virtual_mailbox_base = /vmail" >> /etc/postfix/main.cf
echo "virtual_mailbox_maps = hash:/etc/postfix/virtual" >> /etc/postfix/main.cf
echo "virtual_uid_maps = static:108" >> /etc/postfix/main.cf
echo "virtual_gid_maps = static:108" >> /etc/postfix/main.cf
mkdir /vmail
chown vmail.vmail /vmail
echo "sosogh@sosogh.com sosogh.com/sosogh/Maildir/" >> /etc/postfix/virtual
postmap /etc/postfix/virtual
###################################
# Install and set the pop3 server
###################################
apt-get -y install courier-pop
sed -i 's/^authmodulelist=.*/authmodulelist="authuserdb"/' /etc/courier/authdaemonrc
pw2userdb >/etc/courier/userdb
sed -n -i "/vmail/p" /etc/courier/userdb
chmod +x /var/run/courier/authdaemon
#########################
# Install and set sasl
#########################
apt-get -y install postfix-tls sasl2-bin libsasl2-modules
mkdir -p /etc/postfix/sasl
echo "pwcheck_method: authdaemond" >> /etc/postfix/sasl/smtpd.conf
echo "log_level: 3" >> /etc/postfix/sasl/smtpd.conf
echo "mech_list: LOGIN" >> /etc/postfix/sasl/smtpd.conf
echo "authdaemond_path:/var/run/courier/authdaemon/socket" >> /etc/postfix/sasl/smtpd.conf
echo "smtpd_sasl_auth_enable = yes" >> /etc/postfix/main.cf
echo "broken_sasl_auth_clients = yes" >> /etc/postfix/main.cf
echo "smtpd_sasl_security_options = noanonymous" >> /etc/postfix/main.cf
echo "smtpd_recipient_restrictions = permit_sasl_authenticated," >> /etc/postfix/main.cf
echo " permit_mynetworks,check_relay_domains," >> /etc/postfix/main.cf
echo " reject_unauth_destination" >> /etc/postfix/main.cf
echo "smtpd_client_restrictions = permit_sasl_authenticated" >> /etc/postfix/main.cf
sed -i '/^smtp.*smtpd/s/.*/smtp inet n - n - - smtpd/' /etc/postfix/master.cf
########################################################
# Make a test account sosogh@sosogh.com password 123456
########################################################
userdb sosogh@sosogh.com set home=/vmail/sosogh.com/sosogh uid=108 gid=108
echo 123456 | userdbpw -md5 | userdb sosogh@sosogh.com set systempw
sudo -u vmail mkdir -p /vmail/sosogh.com/sosogh
sudo -u vmail maildirmake /vmail/sosogh.com/sosogh/Maildir
chmod 700 /etc/courier/userdb;makeuserdb;/etc/init.d/courier-authdaemon restart
#######################################################
# Install and Configure Mailscanner Clamav Spamassasin
#######################################################
apt-get -y install clamav
apt-get -y install mailscanner
sed -i 's/#.*run_mailscanner=1/run_mailscanner=1/g' /etc/default/mailscanner
echo 'header_checks = regexp:/etc/postfix/header_checks' >> /etc/postfix/main.cf
echo '/^Received:/ HOLD' > /etc/postfix/header_checks
postmap /etc/postfix/header_checks
sed -i 's/^Run As User =.*/Run As User = postfix/' ${MailScanner_dir}
sed -i 's/^Run As Group =.*/Run As Group = postfix/' ${MailScanner_dir}
sed -i "s?^Incoming Queue Dir =.*?Incoming Queue Dir = ${iq}?" ${MailScanner_dir}
sed -i "s?^Outgoing Queue Dir =.*?Outgoing Queue Dir = ${oq}?" ${MailScanner_dir}
sed -i 's/^MTA = .*/MTA = postfix/' ${MailScanner_dir}
chown postfix.postfix /var/spool/MailScanner/incoming
chown postfix.postfix /var/spool/MailScanner/quarantine
chown postfix.postfix /var/spool/MailScanner/ -R
chown postfix.postfix /var/lib/MailScanner/ -R
chown postfix.postfix /var/run/MailScanner/ -R
chown postfix.postfix /var/lock/subsys/MailScanner -R
sed -i 's/^Virus Scanners = .*/Virus Scanners = clamav/' ${MailScanner_dir}
sed -i 's/^ENABLED=0/ENABLED=1/g' /etc/default/spamassassin
#########################################
# Install Maildrop and Configrue it
#########################################
apt-get install courier-maildrop
echo "virtual_transport = maildrop" >> /etc/postfix/main.cf
echo "maildrop_destination_recipient_limit = 1" >> /etc/postfix/main.cf
sed -i '/^maildrop/{n;s/local\///;s/\(-d.*\)/-w 90 \1/}' /etc/postfix/master.cf
##############################
# Restart Sth.
##############################
/etc/init.d/spamassassin start
/etc/init.d/mailscanner start
/etc/init.d/postfix restart
##############################
# Install courier-imap
##############################
apt-get -y install courier-imap
###########################
# Install apache2
###########################
apt-get -y install apache2
apt-get -y install apache2-mpm-prefork
####################################
# Install PHP4 Support For Apache2
####################################
apt-get -y install libapache2-mod-php4 php4-cli php4-common php4-cgi
#####################################
# Configure apache2 for PHP4 Support
#####################################
mkdir /etc/apache2/modules
cp /usr/lib/apache2/modules/libphp4.so /etc/apache2/modules/
echo 'AddType application/x-httpd-php .php' > /etc/apache2/conf.d/php4.conf
############################################
# Install squirrelmail squirrelmail-locales
############################################
apt-get -y install squirrelmail squirrelmail-locales
###############################
# Configure squirrelmail
###############################
ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
sed -i '/RedirectMatch/s/apache2-default/squirrelmail/' /etc/apache2/sites-available/default
###############################
# Restart apache2
###############################
/etc/init.d/apache2 restart
echo "Finish,Enjoy it!"