Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Written by [email protected], based on previous script by mr88talent at yahoo dot com
- # NOTE: ONLY FOR USE ON A FRESH UBUNTU 14.04 SERVER. USE AT YOUR OWN RISK.
- #
- # This is for debug purposes below. Only uncomment if you know why you're doing it.
- # echo "Press CTRL+C to proceed."
- # trap "pkill -f 'sleep 1h'" INT
- # trap "set +x ; sleep 1h ; set -x" DEBUG
- #
- # Variables that you need to change!
- ROOTS_MYSQL_PASSWORD=PASSWORDHERE
- MAIA_MYSQL_PASSWORD=PASSWORDHERE
- HOSTNAME=SHORTHOSTNAMEHERE # Ex: spam
- DOMAIN_NAME=DOMAINNAMEHERE # Ex: somecompany.com
- RELAY_SERVER_IP=IPOFMAILSERVERHERE # Ex: 172.16.0.2
- NETWORK_ADDRESS=SUBNETHERE # Ex: 172.16.0.0
- HELP_ME_EMAIL_ADDRESS=EMAILADDRESSHERE # Ex: [email protected]
- # Change to /root and download some needed files.
- cd
- mkdir .maia
- cd .maia
- wget http://www.iscg.net/maia/maia_files.tar.gz
- tar zxvf maia_files.tar.gz
- # Update Package Lists and install needed software
- cd
- apt-get update
- apt-get -y install libperl5.18 libpq5 amavisd-new spamassassin razor pyzor libnet-cidr-lite-perl libmail-dkim-perl clamav clamav-daemon dnsutils flex bison gdb arj unrar-free nomarch lzop libimage-info-perl libdbd-mysql-perl curl rsync debconf-utils patch libossp-uuid-perl libtemplate-perl libtext-csv-perl libwww-perl cabextract php5 php-pear php5-common php5-mysql php5-gd php5-sqlite libmail-dkim-perl libencode-detect-perl libforks-perl php5-imap php5-ldap php5-mcrypt smarty3 apache2 libapache2-mod-php5 git rar unrar unzip zip zoo fail2ban php5-dev
- # Configure Host Name
- echo "$HOSTNAME.$DOMAIN_NAME" > /etc/hostname
- # Install MySQL
- cd
- echo "mysql-server-5.5 mysql-server/root_password password $ROOTS_MYSQL_PASSWORD" > mysql.preseed
- echo "mysql-server-5.5 mysql-server/root_password_again password $ROOTS_MYSQL_PASSWORD" >> mysql.preseed
- echo "mysql-server-5.5 mysql-server/start_on_boot boolean true" >> mysql.preseed
- cat mysql.preseed | debconf-set-selections
- apt-get -y install mysql-server
- chmod 0600 mysql.preseed
- # MySQL Configuration
- /etc/init.d/mysql stop
- sleep 10
- cp /etc/mysql/my.cnf /etc/mysql/my.cnf.original
- patch /etc/mysql/my.cnf</root/.maia/my.cnf.5.1.patch.txt
- mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/iblogfile0-old
- mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/iblogfile1-old
- /etc/init.d/mysql start
- # Install Postfix with very base config
- cd
- echo "postfix postfix/mailname string $HOSTNAME.$DOMAIN_NAME" > postfix.preseed
- echo "postfix postfix/main_mailer_type string 'Internet Site'" >> postfix.preseed
- cat postfix.preseed | debconf-set-selections
- apt-get install -y postfix postfix-pcre postfix-mysql postfix-ldap
- chmod 0600 postfix.preseed
- # Install more stuff with pear
- pear channel-update pear.php.net
- pear install Mail_Mime-1.8.1
- pear install Mail_mimeDecode-1.5.5
- pear install Log-1.12.6
- pear install Pager-2.4.8
- pear install Image_Color-1.0.4
- pear install Image_Canvas-0.3.4
- pear install Image_Graph-0.8.0
- pear install Numbers_Roman-1.0.2
- pear install Numbers_Words-0.16.1
- pear install Auth_SASL-1.0.4
- pear install Net_Socket-1.0.10
- pear install Net_IMAP-1.1.0
- pear install Net_POP3-1.3.8
- pear install DB-1.7.13
- pear install Net_SMTP-1.4.4
- pear channel-discover htmlpurifier.org
- pear install hp/HTMLPurifier
- pear install MDB2
- pear install MDB2#mysql
- # Update ClamAV, Install Scrypt, set /etc/mailname
- freshclam
- pecl install scrypt
- echo "extension=scrypt.so" >> /etc/php5/apache2/php.ini
- echo "$HOSTNAME.$DOMAIN_NAME" > /etc/mailname
- # Download Maia Mailguard from GitHub
- cd /usr/local/src
- git clone git://github.com/technion/maia_mailguard.git
- # Remove AppArmor
- /etc/init.d/apparmor stop
- update-rc.d -f apparmor remove
- aptitude remove apparmor apparmor-utils
- # SpamAssassin Configuration
- sed -i 's/ENABLED=0/ENABLED=1/' /etc/default/spamassassin
- cp /root/.maia/sa-update1.sh.txt /usr/sbin/sa-update.sh
- chmod +x /usr/sbin/sa-update.sh
- sa-update.sh
- cd /var/lib/amavis
- cp /root/.maia/sample-spam.txt .
- sa-learn --spam sample-spam.txt
- sed -i "s/#loadplugin Mail::SpamAssassin::Plugin::DKIM/loadplugin Mail::SpamAssassin::Plugin::DKIM/" /etc/spamassassin/v312.pre
- sed -i "s/# lock_method flock/lock_method flock/" /etc/spamassassin/local.cf
- sed -i "s/# trusted_networks 212.17.35./trusted_networks $NETWORK_ADDRESS/" /etc/spamassassin/local.cf
- su amavis -c 'spamassassin --lint'
- gpasswd -a clamav amavis
- freshclam
- cd
- # Configure Pyzor and Razor
- rm /etc/razor/razor-agent.conf
- razor-admin -create
- razor-admin -create
- razor-admin -register
- razor-admin -register
- sed -i 's/= 3/= 0/' /root/.razor/razor-agent.conf
- cp -r /root/.razor /var/lib/amavis
- chown -R amavis:amavis /var/lib/amavis
- cat /var/lib/amavis/.razor/razor-agent.conf | grep debuglevel
- cd /usr/bin
- cp /usr/bin/pyzor /usr/bin/pyzor.original
- patch /usr/bin/pyzor</root/.maia/pyzor.deprecation.txt
- sleep 4
- su amavis -c 'pyzor discover'
- su amavis -c 'pyzor ping'
- # Configuring DCC
- cd /usr/local/src
- cp /root/.maia/dcc-1.3.142.tar.Z .
- tar xzf dcc-1.3.142.tar.Z
- cd dcc-1.3.142
- ./configure --with-uid=amavis && make && make install
- ln -s /var/dcc/libexec/cron-dccd /usr/bin/cron-dccd
- chown -R amavis:amavis /var/dcc
- cdcc info
- echo "dcc_home /var/dcc" >> /etc/spamassassin/local.cf
- sed -i 's/DCCIFD_ENABLE=off/DCCIFD_ENABLE=on/' /var/dcc/dcc_conf
- sed -i 's/DBCLEAN_LOGDAYS=14/DBCLEAN_LOGDAYS=1/' /var/dcc/dcc_conf
- sed -i 's/DCCIFD_LOGDIR/#DCCIFD_LOGDIR/' /var/dcc/dcc_conf
- cp /var/dcc/libexec/rcDCC /etc/init.d/adcc
- sed -i 's/# Default-Start: 3 5/# Default-Start: 2 3 4 5/' /etc/init.d/adcc
- sed -i 's/# Default-Stop:/# Default-Stop: 0 1 6/' /etc/init.d/adcc
- update-rc.d adcc defaults
- /etc/init.d/adcc start
- sed -i 's/#loadplugin Mail::SpamAssassin::Plugin::DCC/loadplugin Mail::SpamAssassin::Plugin::DCC/' /etc/spamassassin/v310.pre
- # Configuring SaneSecurity
- cp /root/.maia/clamav-unofficial-sigs.8.gz.b /usr/share/man/man8/clamav-unofficial-sigs.8.gz
- cp /root/.maia/clamav-unofficial-sigs.conf.txt /etc/clamav-unofficial-sigs.conf
- cp /root/.maia/clamd-status.sh.txt /usr/sbin/clamd-status.sh
- chmod +x /usr/sbin/clamd-status.sh
- cp /root/.maia/clamav-unofficial-sigs.sh.txt /usr/sbin/clamav-unofficial-sigs.sh
- chmod +x /usr/sbin/clamav-unofficial-sigs.sh
- cp /root/.maia/clamav-unofficial-sigs-logrotate.txt /etc/logrotate.d/clamav-unofficial-sigs
- clamav-unofficial-sigs.sh
- ls -l /var/lib/clamav
- cp /root/.maia/amavis-sanesecurity_v2.cf /etc/spamassassin
- spamassassin --lint
- # Configuring Amavis-New
- sed -i "s/ --name \${DAEMONNAME}//" /etc/init.d/amavis
- /etc/init.d/amavis restart
- cd /var/lib/amavis
- su amavis -c 'spamassassin <sample-spam.txt'
- amavisd-new reload
- sed -i "s/#@bypass_virus/ @bypass_virus/" /etc/amavis/conf.d/15-content_filter_mode
- sed -i "s/# \\\%bypass_virus/ \\\%bypass_virus/" /etc/amavis/conf.d/15-content_filter_mode
- sed -i "s/#@bypass_spam/ @bypass_spam/" /etc/amavis/conf.d/15-content_filter_mode
- sed -i "s/# \\\%bypass_spam/ \\\%bypass_spam/" /etc/amavis/conf.d/15-content_filter_mode
- cat /etc/amavis/conf.d/15-content_filter_mode
- mv /etc/amavis/conf.d/50-user /etc/amavis/conf.d/50-user.original.disabled
- cp /root/.maia/amavis-50-user.txt /etc/amavis/conf.d/50-user
- sed -i "s/host.example.tld/$HOSTNAME.$DOMAIN_NAME/" /etc/amavis/conf.d/50-user
- sed -i "s/example.tld/$DOMAIN_NAME/" /etc/amavis/conf.d/50-user
- /etc/init.d/amavis stop
- /etc/init.d/clamav-daemon restart
- /etc/init.d/amavis start
- cp /root/.maia/rmvirusquar.txt /etc/cron.daily/rmvirusquar
- chmod +x /etc/cron.daily/rmvirusquar
- /etc/cron.daily/rmvirusquar
- # Configuring Postfix
- /etc/init.d/postfix stop
- cp /etc/postfix/main.cf /etc/postfix/main.cf-original-$(date +%Y%m%d)
- cp /etc/postfix/master.cf /etc/postfix/master.cf-original-$(date +%Y%m%d)
- grep 'smtp-amavis' /etc/postfix/master.cf || cat /root/.maia/amavis-transport.txt >> /etc/postfix/master.cf
- sed -i '/pickup/s|$| -o content_filter= |' /etc/postfix/master.cf
- postconf -e "mydomain = $DOMAIN_NAME"
- postconf -e "myorigin = $DOMAIN_NAME"
- postconf -e "myhostname = $HOSTNAME.$DOMAIN_NAME"
- postconf -e "mydestination = "
- postconf -e "recipient_delimiter = "
- postconf -e "relayhost = "
- postconf -e "local_transport = error:no local mail delivery"
- postconf -e "local_recipient_maps = "
- postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
- touch /etc/postfix/virtual
- postmap /etc/postfix/virtual
- # This was if we were not using MySQL for the lookups:
- # postconf -e "relay_domains = $DOMAIN_NAME"
- postconf -e "relay_domains = mysql:/etc/postfix/mysql-relay.cf"
- postconf -e "smtpd_helo_required = yes"
- postconf -e "smtpd_data_restrictions = reject_unauth_pipelining"
- postconf -e "smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination"
- touch /etc/postfix/transport
- cp /etc/postfix/transport /etc/postfix/transport-original-$(date +%Y%m%d)
- # This was if we were not using MySQL for the lookups:
- #postconf -e "transport_maps = hash:/etc/postfix/transport"
- postconf -e "transport_maps = mysql:/etc/postfix/mysql-transport.cf"
- echo "$DOMAIN_NAME relay:[$RELAY_SERVER_IP]" >> /etc/postfix/transport
- postmap /etc/postfix/transport
- postconf -e "content_filter = smtp-amavis:[127.0.0.1]:10024"
- postconf -e "message_size_limit = 26214400"
- postconf -e "disable_vrfy_command = yes"
- # Disabling Recipient Verification for now. Here's how you'd enable it later:
- # postconf -e "address_verify_transport_maps = hash:/etc/postfix/probe_transport"
- # postconf -e "unverified_recipient_reject_code = 550"
- # echo "$DOMAIN_NAME smtp:[$RELAY_SERVER_IP]" > /etc/postfix/probe_transport
- postconf -e "smtpd_helo_restrictions = check_helo_access hash:/etc/postfix/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname"
- postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, reject_non_fqdn_sender, reject_unknown_sender_domain"
- postconf -e "smtpd_recipient_restrictions = reject_non_fqdn_recipient,reject_unknown_recipient_domain, reject_unverified_recipient, permit_mynetworks, reject_unauth_destination, check_recipient_access hash:/etc/postfix/recipient_access"
- postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access, check_client_access cidr:/etc/postfix/client_access_cidr, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client zz.countries.nerd.dk=127.0.0.156, reject_rbl_client zz.countries.nerd.dk=127.0.1.152, reject_rbl_client zz.countries.nerd.dk=127.0.1.154, reject_rbl_client zz.countries.nerd.dk=127.0.1.100, reject_rbl_client zz.countries.nerd.dk=127.0.2.74, reject_rbl_client zz.countries.nerd.dk=127.0.2.131, reject_rbl_client zz.countries.nerd.dk=127.0.3.24, reject_rbl_client zz.countries.nerd.dk=127.0.3.36, reject_rbl_client zz.countries.nerd.dk=127.0.3.94, reject_rbl_client zz.countries.nerd.dk=127.0.2.192"
- echo "root $HELP_ME_EMAIL_ADDRESS" > /etc/postfix/virtual
- echo "postmaster $HELP_ME_EMAIL_ADDRESS" >> /etc/postfix/virtual
- echo "$DOMAIN_NAME REJECT" > /etc/postfix/helo_access
- touch /etc/postfix/client_access
- touch /etc/postfix/client_access_cidr
- touch /etc/postfix/sender_access
- touch /etc/postfix/recipient_access
- touch /etc/postfix/probe_transport
- newaliases
- postmap /etc/postfix/virtual
- postmap /etc/postfix/recipient_access
- postmap /etc/postfix/helo_access
- postmap /etc/postfix/client_access
- postmap /etc/postfix/client_access_cidr
- postmap /etc/postfix/transport
- postmap /etc/postfix/sender_access
- postmap /etc/postfix/probe_transport
- touch /etc/postfix/mysql-transport.cf
- touch /etc/postfix/mysql-relay.cf
- echo "host=localhost" >> /etc/postfix/mysql-transport.cf
- echo "dbname=maia" >> /etc/postfix/mysql-transport.cf
- echo "user=maia" >> /etc/postfix/mysql-transport.cf
- echo "password=$MAIA_MYSQL_PASSWORD" >> /etc/postfix/mysql-transport.cf
- echo "query=SELECT transport FROM maia_domains WHERE routing_domain = '%s';" >> /etc/postfix/mysql-transport.cf
- echo "host=localhost" > /etc/postfix/mysql-relay.cf
- echo "dbname=maia" >> /etc/postfix/mysql-relay.cf
- echo "user=maia" >> /etc/postfix/mysql-relay.cf
- echo "password=$MAIA_MYSQL_PASSWORD" >> /etc/postfix/mysql-relay.cf
- echo "query=SELECT 'OK' FROM maia_domains WHERE routing_domain = '%s';" >> /etc/postfix/mysql-relay.cf
- /etc/init.d/postfix start
- # Configuring Maia Mailguard and Replace Amavis-New
- echo "amavisd-new hold" | dpkg --set-selections
- adduser --group --system --home /var/lib/maia --shell /bin/sh maia
- mkdir /var/virusmails
- chmod 0750 /var/virusmails
- chown maia:maia /var/virusmails
- mkdir /etc/maia
- mkdir /var/run/maia
- chown maia:root /var/run/maia
- mkdir /var/lock/maia
- chown maia:root /var/lock/maia
- test -e /var/lib/maia || mkdir /var/lib/maia
- mkdir /var/lib/maia/tmp
- mkdir /var/lib/maia/db
- mkdir /var/lib/maia/scripts
- chown -R maia:maia /var/lib/maia
- chmod -R 0750 /var/lib/maia
- mkdir /var/log/maia
- touch /var/log/maia/process-quarantine.log
- chown -R maia:maia /var/log/maia
- cp /root/.maia/maia.txt /etc/logrotate.d/maia
- dpkg-statoverride --add maia maia 770 /var/lib/maia/tmp
- dpkg-statoverride --add maia maia 750 /var/virusmails
- dpkg-statoverride --add maia maia 755 /var/run/maia
- dpkg-statoverride --add maia maia 755 /var/lock/maia
- dpkg-statoverride --add maia maia 750 /var/lib/maia/db
- dpkg-statoverride --add maia maia 750 /var/lib/maia
- cp /usr/local/src/maia_mailguard/scripts/* /var/lib/maia/scripts
- test -e /etc/maia/maia.conf && mv /etc/maia/maia.conf /etc/maia/maia.conf-backup-$(date +%Y%m%d)
- cp /usr/local/src/maia_mailguard/maia.conf.dist /etc/maia/maia.conf
- sed -i "s|'password'|'$MAIA_MYSQL_PASSWORD'|" /etc/maia/maia.conf
- chmod 0640 /etc/maia/maia.conf
- chgrp maia /etc/maia/maia.conf
- cp /usr/local/src/maia_mailguard/*.cf /etc/spamassassin
- cp -r /usr/local/src/maia_mailguard/templates /etc/maia
- chmod 640 /etc/maia/templates/*.tpl
- chown -R maia:maia /etc/maia/templates
- cp /usr/local/src/maia_mailguard/maiad /usr/sbin
- gpasswd -a clamav maia
- /etc/init.d/clamav-daemon stop
- /etc/init.d/clamav-daemon start
- sed -i 's/le.com/le.tld/' /etc/maia/maia.conf
- sed -i "s|http://example.tld/|http://$HOSTNAME.$DOMAIN_NAME/mail|" /etc/maia/maia.conf
- /etc/init.d/mysql restart
- cd
- echo "CREATE DATABASE maia;" >sql.tmp
- echo "USE maia;" >>sql.tmp
- echo "SOURCE /usr/local/src/maia_mailguard/maia-mysql.sql;" >>sql.tmp
- echo "GRANT CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE ON maia.* TO maia@localhost IDENTIFIED BY '$MAIA_MYSQL_PASSWORD';" >>sql.tmp
- echo "FLUSH PRIVILEGES;" >>sql.tmp
- echo "DELETE FROM bayes_seen;" >>sql.tmp
- echo 'ALTER TABLE bayes_seen ADD lastupdate timestamp default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;' >>sql.tmp
- echo "OPTIMIZE TABLE bayes_seen;" >>sql.tmp
- echo "UPDATE maia.maia_config SET reminder_template_file = '/etc/maia/templates/reminder.tpl' WHERE maia_config.id = 0;" >>sql.tmp
- echo "UPDATE maia.maia_config SET newuser_template_file = '/etc/maia/templates/newuser.tpl' WHERE maia_config.id = 0;" >>sql.tmp
- echo "UPDATE maia.maia_config SET admin_email = '"$HELP_ME_EMAIL_ADDRESS"' WHERE maia_config.id = 0;" >>sql.tmp
- echo "UPDATE maia.maia_config SET reminder_login_url = '"http://$HOSTNAME.$DOMAIN_NAME/mail"' WHERE maia_config.id = 0;" >>sql.tmp
- /usr/bin/mysql -uroot -p$ROOTS_MYSQL_PASSWORD < sql.tmp
- chmod 0600 sql.tmp
- # Don't Need?
- #grep 46675 /usr/share/perl5/Mail/SpamAssassin/BayesStore/MySQL.pm || wget http://www.maiamailguard.com/maia/raw-attachment/ticket/565/mysql-bug-46675.patch
- #grep 46675 /usr/share/perl5/Mail/SpamAssassin/BayesStore/MySQL.pm || patch -d /usr/share/perl5/Mail/SpamAssassin/BayesStore MySQL.pm < mysql-bug-46675.patch
- #sleep 4
- cp -r /root/.razor /var/lib/maia
- chown -R maia:maia /var/lib/maia
- cat /var/lib/maia/.razor/razor-agent.conf | grep debuglevel
- cd /var/lib/maia
- cp /root/.maia/sample-spam.txt .
- su maia -c 'sa-learn --spam sample-spam.txt'
- su maia -c 'spamassassin <sample-spam.txt'
- su maia -c 'spamassassin <sample-spam.txt'
- /var/lib/maia/scripts/load-sa-rules.pl
- mkdir /var/www/mail
- cp -r /usr/local/src/maia_mailguard/php/* /var/www/mail
- ln -s /usr/share/php/smarty3 /usr/share/php/Smarty
- cp /var/www/mail/config.php.dist /var/www/mail/config.php
- sed -i "s/:passwd/:$MAIA_MYSQL_PASSWORD/g" /var/www/mail/config.php
- chmod 0640 /var/www/mail/config.php
- chown root:www-data /var/www/mail/config.php
- for dir in /var/www/mail/themes/*/; do mkdir -- "$dir/compiled"; done
- chgrp maia /var/www/mail/themes/*/compiled
- chmod 775 /var/www/mail/themes/*/compiled
- mkdir /var/www/mail/purifier_cache
- chown www-data:www-data /var/www/mail/purifier_cache
- sed -i 's|purifier_cache = null;|purifier_cache = "/var/www/mail/purifier_cache";|' /var/www/mail/config.php
- gpasswd -a www-data maia
- sed -i "s/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED/" /etc/php5/apache2/php.ini
- sed -i "s/html/mail/" /etc/apache2/sites-enabled/000-default.conf
- sed -i "/127\.0\.1\.1/ s/$/ $HOSTNAME.$DOMAIN_NAME/" /etc/hosts
- sed -i "70i ServerName localhost" /etc/apache2/apache2.conf
- /etc/init.d/apache2 restart
- /etc/init.d/postfix restart
- cp /usr/local/src/maia_mailguard/maiad.conf.dist /etc/maia/maiad.conf
- sed -i "s/'password'/'$MAIA_MYSQL_PASSWORD'/" /etc/maia/maiad.conf
- sed -i "s/yourdomain.tld/$DOMAIN_NAME/" /etc/maia/maiad.conf
- sed -i "s/host.domain.tld/$HOSTNAME.$DOMAIN_NAME/" /etc/maia/maiad.conf
- sed -i "s|# qr'^MAIL$'| qr'^MAIL$'|" /etc/maia/maiad.conf
- sed -i "s/DO_SYSLOG = 0/DO_SYSLOG = 1/" /etc/maia/maiad.conf
- chmod 0640 /etc/maia/maiad.conf
- chgrp maia /etc/maia/maiad.conf
- /etc/init.d/amavis stop
- # Disable Amavisd-New and enable Maia init script"
- echo "=============================================="
- cp -r /etc/init.d /etc/init.d-original
- sed -i "s/ \tcheck_noncompatible_upgrade/# \tcheck_noncompatible_upgrade/" /etc/init.d/amavis
- cd /etc/init.d
- cp /root/.maia/maia.init.1581.txt .
- mv maia.init.1581.txt maia
- chmod +x maia
- update-rc.d -f amavis remove
- update-rc.d maia defaults
- sed -i "s/amavisd-new/maiad/" /usr/sbin/sa-update.sh
- sed -i "s/amavis/maia/" /usr/sbin/sa-update.sh
- # Configure Bayes in MySQL"
- echo "bayes_store_module Mail::SpamAssassin::BayesStore::MySQL" >>/etc/spamassassin/local.cf
- echo "bayes_sql_dsn DBI:mysql:maia:localhost" >>/etc/spamassassin/local.cf
- echo "bayes_sql_username maia" >>/etc/spamassassin/local.cf
- echo "bayes_sql_password $MAIA_MYSQL_PASSWORD" >>/etc/spamassassin/local.cf
- echo "bayes_sql_override_username maia" >>/etc/spamassassin/local.cf
- chmod 0640 /etc/spamassassin/local.cf
- chown root:maia /etc/spamassassin/local.cf
- su maia -c 'spamassassin --lint'
- sed -i "s/^loadplugin Mail::SpamAssassin::Plugin::AWL/#loadplugin Mail::SpamAssassin::Plugin::AWL/" /etc/spamassassin/v310.pre
- cd /var/lib/maia
- sa-learn --spam sample-spam.txt
- sa-learn --dump magic
- spamassassin --lint
- cp /root/.maia/maia-trim-bayes.sql.txt /etc/maia-trim-bayes.sql
- cp /root/.maia/maia-trim-bayes.txt /usr/sbin/maia-trim-bayes
- sed -i "s/paSSw0rd/$MAIA_MYSQL_PASSWORD/" /usr/sbin/maia-trim-bayes
- chmod 0750 /usr/sbin/maia-trim-bayes
- cp /root/.maia/maia-trim-sql-bayes-monthly.txt /etc/cron.monthly/maia-trim-sql-bayes-monthly
- chmod +x /etc/cron.monthly/maia-trim-sql-bayes-monthly
- /etc/cron.monthly/maia-trim-sql-bayes-monthly
- ## Raise $max_servers from 2 to 4 if we have enough RAM
- ##
- MemTot=`cat /proc/meminfo | grep MemTotal`
- MemTot=${MemTot:9:16}
- if [ $MemTot -gt 1700000 ]; then
- sed -i "s/smtp-amavis unix - - n - 2 smtp/smtp-amavis unix - - n - 4 smtp/" /etc/postfix/master.cf
- sed -i "s/max_servers = 2;/max_servers = 4;/" /etc/maia/maiad.conf
- sed -i "s/max_servers = 2;/max_servers = 4;/" /etc/amavis/conf.d/50-user
- fi
- ##
- /etc/init.d/maia start
- # Copy custom scripts to /usr/local/bin/
- cp /root/.maia/scripts/maia_* /usr/local/bin/
- chmod 750 /usr/local/bin/maia_*
- # Running configtest to show any issues
- /var/lib/maia/scripts/configtest.pl
- cd
- echo "========================================================="
- echo "I suggest browsing to http://$HOSTNAME.$DOMAIN_NAME/admin/configtest.php"
- echo "Then:"
- echo "Please browse to http://$HOSTNAME.$DOMAIN_NAME/admin/internal-init.php"
- echo "in order to set the Super User. The password will be mailed to the Super User."
- echo "Then:"
- echo "Please browse to http://$HOSTNAME.$DOMAIN_NAME/login.php?super=register"
- echo "and log in as the Super User using the password that was sent."
- echo "Then:"
- echo "Log into http://$HOSTNAME.$DOMAIN_NAME"
- echo "At some point, remove the admin directory: rm -r /var/www/mail/admin/"
- echo "========================================================="
- echo "also please edit your crontab and insert these lines"
- in=$((RANDOM%59+1))
- min=$((RANDOM%11+1))
- dow=$((RANDOM%7+1))
- echo "$in $min * * $dow root /usr/sbin/sa-update.sh"
- echo "$in $min * * $dow root /var/lib/maia/scripts/load-sa-rules.pl"
- nta=$((RANDOM%59+1))
- echo "$nta */6 * * * root /usr/sbin/clamav-unofficial-sigs.sh"
- echo "*/6 * * * * root /usr/sbin/clamd-status.sh"
- echo "43 11 * * * root /usr/bin/cron-dccd"
- echo "30 * * * * root /bin/su maia -s /bin/bash -c '/var/lib/maia/scripts/process-quarantine.pl --learn --report'"
- echo "10 1 * * * root /bin/su maia -c '/var/lib/maia/scripts/expire-quarantine-cache.pl --quiet'"
- echo "10 2 * * 3 root /bin/su maia -c '/var/lib/maia/scripts/send-quarantine-reminders.pl'"
- echo "*/5 * * * * root /bin/su maia -c '/var/lib/maia/scripts/send-quarantine-digests.pl'"
- echo "0 * * * * root /bin/su maia -c '/var/lib/maia/scripts/stats-snapshot.pl' >/null"
- echo "========================================================="
- echo "You can run 'cat maia_info.txt' to see these instructions again"
- echo "=========================================================" > maia_info.txt
- echo "I suggest browsing to http://$HOSTNAME.$DOMAIN_NAME/admin/configtest.php" >> maia_info.txt
- echo "Then:" >> maia_info.txt
- echo "Please browse to http://$HOSTNAME.$DOMAIN_NAME/admin/internal-init.php" >> maia_info.txt
- echo "in order to set the Super User. The password will be mailed to the Super User." >> maia_info.txt
- echo "Then:" >> maia_info.txt
- echo "Please browse to http://$HOSTNAME.$DOMAIN_NAME/login.php?super=register" >> maia_info.txt
- echo "and log in as the Super User using the password that was sent." >> maia_info.txt
- echo "Then:" >> maia_info.txt
- echo "Log into http://$HOSTNAME.$DOMAIN_NAME" >> maia_info.txt
- echo "At some point, remove the admin directory: rm -r /var/www/mail/admin/">> maia_info.txt
- echo "=========================================================" >> maia_info.txt
- echo "also please edit your crontab and insert these lines" >> maia_info.txt
- echo "$in $min * * $dow root /usr/sbin/sa-update.sh" >> maia_info.txt
- echo "$in $min * * $dow root /var/lib/maia/scripts/load-sa-rules.pl" >> maia_info.txt
- echo "$nta */6 * * * root /usr/sbin/clamav-unofficial-sigs.sh" >> maia_info.txt
- echo "*/6 * * * * root /usr/sbin/clamd-status.sh" >> maia_info.txt
- echo "43 11 * * * root /usr/bin/cron-dccd" >> maia_info.txt
- echo "30 * * * * root /bin/su maia -s /bin/bash -c '/var/lib/maia/scripts/process-quarantine.pl --learn --report'" >> maia_info.txt
- echo "10 1 * * * root /bin/su maia -c '/var/lib/maia/scripts/expire-quarantine-cache.pl --quiet'" >> maia_info.txt
- echo "10 2 * * 3 root /bin/su maia -c '/var/lib/maia/scripts/send-quarantine-reminders.pl'" >> maia_info.txt
- echo "*/5 * * * * root /bin/su maia -c '/var/lib/maia/scripts/send-quarantine-digests.pl'" >> maia_info.txt
- echo "0 * * * * root /bin/su maia -c '/var/lib/maia/scripts/stats-snapshot.pl' >/null" >> maia_info.txt
- echo "=========================================================" >> maia_info.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement