\\ \\ \\ ====== How to Setup ispCP and Maia Mailguard on a Debian Lenny OpenVZ Container ====== **Note** This is a work in progress. After successfully installing ispCP and Maia, I thought I would share the steps I took to obtain a working system. To accomplish this, I am re-installing the system and recording each step taken so that I have a record of it as well. It may take a few days before I have everything completed, and the howto looking nice, so please be patient! \\ ====== 1. Introduction ====== This howto will provide the steps taken to install ispCP and Maia Mailguard on a Debian Lenny OpenVZ container. In additional, some enhancements will be added to provide security and additional client functionality. \\ **Requirements:** * Operating OpenVZ hardware node * Installed and running Debian Lenny container (I used the precreated one from the OpenVZ website: [http://download.openvz.org/template/precreated/debian-5.0-x86.tar.gz] ) \\ Goals: * Debian Lenny Container running the following: * ispCP 1.0.3-2 * Maia Mailguard 1.0.2a * Enhancements: * SSL for admin panel, webmail, and FTP * Password changer webpage for e-mail/ftp/SQL accounts by users * Weekly disk and traffic reporting to the admin \\ ====== 2. Preparing the System ====== Once you have installed the Debin Lenny container, a few changes from the default container settings need to be performed. ==== 2.1 Modifying OpenVZ Container Settings ==== The default OpenVZ memory and disk settings need to be updated to work with ispCP and future growth of your system. Be sure to modify the container settings to fit your needs as each installation is unique. Refer to the OpenVZ documentation to determine the best configuration for your system. \\ At a minimum, change the privvmpages disk space, and disk inodes settings (to be added) ==== 2.2 Updating APT ==== The APT sources will need to be updated for your locale so you can install required packages and update your system. \\ First, update the package lists and install your favorite editor (mine is joe) and aptitude for package management. In addition, the Subversion tools can be downloaded as well. # apt-get update # apt-get install joe aptitude Next, open the apt.sources file as the default settings need to be changed. # joe /etc/apt/sources.list Your file should look similar to the one below replacing **XX** by the country code of your preferred Debian mirror. deb http://ftp.XX.debian.org/debian lenny main contrib non-free deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb http://ftp.XX.debian.org/debian-security lenny/updates main contrib non-free Finally, update your system with the following: # aptitude update # aptitude safe-upgrade During the upgrade, the Debian package configuration will ask you some questions: - Samba Server Workgroup/Domain Name - Enter anything you wish as Samba will be removed later - Samba Server WINS settings from DHCP - Again enter anything you wish as Samba will be removed later ==== 2.3 Misc System Settings ==== Your timezone will most likely need to be updated. Run the following and choose the appropriate timezone for your location: # dpkg-reconfigure tzdata Although the Debian Lenny container is fairly compact, feel free to remove any packages you don't think you'll need. As an example, Samba is not required, so it can be removed: # aptitude remove samba-common smbfs Also, Sendmail should be stopped so Postfix does not have any port conflicts when attempting to start. It will automatically be removed later. # /etc/init.d/sendmail stop ====== 3. Installing ispCP ====== Most of these steps in this section were taken from the [[start:installation:debian]] install howto but have been copied here for reference and changed as required. \\ ==== 3.1 Download ispCP ==== Download the latest version of ispCP from the main page of the website. As of this writing, 1.0.3-1 was the latest revision. # cd /usr/local/src # wget http://downloads.sourceforge.net/project/ispcp/ispCP%20Omega/ispCP%20Omega%201.0.3-1/ispcp-omega-1.0.3-1.tar.gz?use_mirror=iweb \\ ==== 3.2 Install ispCP Package Requirements==== First, unzip the contents of the downloaded package: # tar -zxvf ispcp-omega-1.0.3-1.tar.gz A list of Debian packages required for running ispCP is included in the download and can easily be used by aptitude to install. # cd omega-1.0.3 # aptitude install $(cat ./docs/Debian/debian-packages-`lsb_release -cs`) During the installation of the required packages, some Debian package configuration questions will need answering. You should be asked the following questions: - MySQL root password - Choose a root password and remember this as it wil be required in a later step. You will be asked to enter it a second time. **DO NOT USE '@' '$' or '%' IN THE ROOT MYSQL PASSWORD** - Ispell dictionary default language - Choose the default "American English" as others have not been installed and Ispell isn't used for ispCP - Courier directories for web-based administration - Select **No** - Postfix mail configuration - Select **Internet Site** - Postfix system mail name - The "mail name" is the domain name used to "qualify" mail addresses without a domain name, so put the FQDN of your domain - typically ''your-domain.tld'' - ProFTPd configuration - Select **standalone** \\ ==== 3.3 Build ispCP ==== The following will build ispCP for your system and copy the build to the /tmp directory. # make install \\ ==== 3.4 Copy the ispCP Build ==== Once ispCP make process has completed, the resulting files need to be copied to the correct locations of your system. # cp -Rv /tmp/ispcp/* / \\ ==== 3.5 Secure MySQL ==== The command below will allow you to: * Change or create the MySQL root password - You've already created one so no need to do it again * Remove anonymous users - highly recommended * Disallow root login remotely - highly recommended * Remove test database (and access to it) - highly recommended * Reload privilege tables - Answer *Yes* otherwise the changes won't take effect until MySQL is restarted The command will ask you for the root password. Enter the root MySQL password you chose in section 3.2. # mysql_secure_installation \\ ==== 3.6 Setting Up ispCP ==== Before ispCP can run, a few questions need to be answered by executing the ispCP setup program: During the setup, a number of questions will be asked but should be self-explanitory. If you don't know how to answer a specific question, don't hesitate to post a question in the ispCP Installation Forum. You'll need the root password you chose in step 3.2. # cd /var/www/ispcp/engine/setup # perl ./ispcp-setup \\ ==== 3.7 Remove the Build Files ==== Now that ispCP has been installed and configured, the build files can be removed from the /tmp directory: # rm -fR /tmp/ispcp \\ ==== 3.8 Check ispCP Installation ==== You can now access ispCP with your preferred browser by typing the admin address you specified during the installation process in step 3.6. \\ \\ **http://admin.your-domain.tld** \\ \\ **NOTE** If you are not able to access the control panel then a step was missed or something has been mis-configured. Repeat the installation steps and check all of your configuration files again. If you still can't get it to work, post a question in the ispCP Installation Forum Once you have logged in, add at least one reseller, one domain and one e-mail account setup. This e-mail account will be used as the "Super User" in Maia. Be sure you keep this e-mail address otherwise you'll have to manually change the Maia database. \\ ==== 3.9 Install additional Language Packs ==== If languages other than English are required, you can look at the status of the language packs at the link below and download the "po" file. [[http://www.isp-control.net/ispcp/wiki/translations]] To install another language, login to ispCP as the admin user, click on settings, then Internationalisation and browse for the appropriate language file. \\ ==== 3.10 Start Using ispCP! ==== You should now have a complete and functional ispCP system running. Start adding resellers and account as desired and have fun! \\ \\ ====== 4. Installing Maia ====== Most of these steps in this section were taken from the [[howto:mail:install_maia_mailguard_1.0.2a_on_ispcp_omega_rc3]] install howto but have been copied here for reference and changed as required. ==== 4.1 Install Required Packages ==== Before proceeding with installing, a few packages are required. This will remove Apache-mpm-worker will be removed and mpm-prefork will be installed. # aptitude install libphp-jpgraph libossp-uuid-perl php-pear libmail-spf-query-perl libtemplate-perl smarty php5-imap amavisd-new spamassassin clamav clamav-daemon ==== 4.2 Install Required Pear Modules ==== Use Pear to install the required modules that Maia requires. Most errors can be ignored when running these commands: # pear upgrade-all # pear install Log Mail_Mime File Date DB DB_Pager Net_Sieve Net_Pop3 Pager Net_SMTP Auth_SASL Net_IMAP # pear -d preferred_state=alpha install Image_Color Image_Canvas Image_Graph Numbers_Roman Numbers_Words ==== 4.3 Modifiy the Postfix Config ==== The Postfix configuration needs to be updated to use AMaViS # joe /etc/postfix/main.cf Search for the text below and remove the "#" before the line. Yours should look like the following: # # AMaViS parameters; activate, if avaible/used # content_filter = amavis:[127.0.0.1]:10024 In addition, add the following lines to the end of config. The first ensures that mail sent be authenticated users are scored properly. The second line disables address manipulation before the content filter, so that the content filter sees the original mail addresses instead of the result of virtual alias expansion, canonical mapping, automatic bcc, address masquerading, etc smtpd_sasl_authenticated_header = yes receive_override_options = no_address_mappings If you use "domain mail" and "mail forward" for the same emailadress you must change this oherwise the email forwarder will receive the email two times. open master.cf # joe /etc/postfix/master.cf Search for the following: localhost:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_override_options=no_address_mappings -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes Add this line: -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks ==== 4.4 Modify the AMaViS config ==== \\ Download am AMaViS configuration file designed for Maia: # cd /etc/amavis # wget http://www200.pair.com/mecham/amavisd.conf.maia # mv amavisd.conf.maia amavisd.conf Open the configuration file: # joe /etc/amavis/amavisd.conf A few things need to be changed. First, change '$mydomain' and '$myhostname' to domain and hostname respectively. Next search for the following: $final_virus_destiny = D_DISCARD; $final_spam_destiny = D_DISCARD; $final_banned_destiny = D_DISCARD; $final_bad_header_destiny = D_DISCARD; Add these new configuration values: $warnvirussender = 1; $warnspamsender = 0; $warnbannedsender = 1; $warnvirusrecip = 1; $warnbannedrecip = 1; Next, search for the following line and replace *PASSWORD* with a new password. Remember this password as it will be needed in later steps. lookup_sql_dsn = ( ['DBI:mysql:maia:localhost', 'amavis', 'PASSWORD'] ); Finally, search for the folllwing: $X_HEADER_TAG = 'X-Virus-Scanned'; $X_HEADER_LINE = "Maia Mailguard 1.0.2"; Add these new configuration values replacing *PASSWORD* with the MySQL password you chose in step 3.2. use DBI; my $db = "ispcp"; my $user="root"; # Type here your ispCP MySQL User # (is the same you typed during the setup) my $host="localhost"; my $password="PASSWORD"; # Type here your ispCP MySQL Password #(is the same you typed during the setup) my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host", $user, $password, {RaiseError => 1}); my $arr = $dbh->selectcol_arrayref('SELECT domain_name, 1 FROM domain', {Columns=>[1,2]}); my $arre = $dbh->selectcol_arrayref('SELECT alias_name, 1 FROM domain_aliasses', {Columns=>[1,2]}); my $lis = ($arre,$arr); %local_domains = (@$arr,@$arre); ==== 4.5 Create Initial Spamassassin config ==== The original Spamassassin config file will not be used as a new one will be used. Move the original Spamassassin config file: # mv local.cf local.cf.orig Create a configuration file with the Spamassassin generator at http://www.yrex.com/spam/spamconfig.php and save it under "/etc/spamassassin/local.cf" If you want Razor, DCC, and TextCat to be used, you will have to modify the /etc/spamassassin.310.pre file: # joe /etc/spamassassin/310.pre ===== Add user clamav to the amavis group ===== # usermod -G amavis clamav ===== Modify startup priority of MySQL ===== MySQL must start before AMaVis # update-rc.d -f mysql remove # update-rc.d mysql start 18 2 3 4 5 . stop 22 0 1 6 . ===== Restart the services ===== Make sure everything starts up correctly. Make sure all three daemons are running. If not, go back and check the logs and update the appropriate configuration files. # /etc/init.d/amavis restart # /etc/init.d/clamav-daemon restart # /etc/init.d/postfix restart ====== Install Maia ====== Download the Maia installation files into a local directory. If you need additional language files other than english, replace the "XX" in maia-lang-XX.tar.gz. A list of languages is available at the Maia Download page:[[http://www.maiamailguard.com/download.php]] The VHCS theme can optionally be downloaded. # cd /usr/local/src # wget http://www.maiamailguard.com/files/maia-1.0.2a.tar.gz Optional: # wget http://www.maiamailguard.com/files/maia-lang-de.tar.gz # wget http://ratsnet.org/vhcs/maia_vhcs_theme_v2.12.tar.bz2 Decompress tar -xzf maia-1.0.2a.tar.gz Optional tar -xzf maia-lang-XX.tar.gz tar xjvf maia_vhcs_theme_v2.12.tar.bz2 ==== Create the Maia-DB, structure, and permissions==== Remember to use the root password (set above) # cd maia-1.0.2 # mysql -u root -p mysql> CREATE DATABASE maia; mysql> quit (change '_YOUR_AMaVIS_PASS_' to your Pass) # mysql -u root -p maia < maia-mysql.sql # mysql -u root -p maia mysql> GRANT CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE ON mysql> maia.* TO amavis@localhost IDENTIFIED BY '_YOUR_AMaVIS_PASS_'; mysql> quit Give the user 'amavis' a Password # passwd amavis Give the user 'amavis' no shell # chsh -s /bin/false amavis ==== Create directories for Maia ==== # mkdir /var/lib/amavis/maia # mkdir /var/lib/amavis/maia/scripts # mkdir /var/lib/amavis/maia/templates ==== Update the Maia config ==== # cd /usr/local/src/maia-1.0.2 # mv maia.conf.dist maia.conf # joe maia.conf Change $password to your AMaViS Password and $base_url to http://admin.yourserver.tld/tools/antispam And also correct the following file locations $script_dir = "/var/lib/amavis/maia/scripts"; $template_dir = "/var/lib/amavis/maia/templates"; $pid_file = "/var/run/amavis/.process-quarantine.pid"; ==== Copy the Maia files ==== # cp /usr/local/src/maia-1.0.2/maia.conf /etc/maia.conf # cp -R /usr/local/src/maia-1.0.2/scripts/* /var/lib/amavis/maia/scripts # cp -R /usr/local/src/maia-1.0.2/templates/* /var/lib/amavis/maia/templates ==== Set the right permissions ==== # chown -R amavis /var/lib/amavis/maia # chgrp -R amavis /var/lib/amavis/maia # chmod 640 /var/lib/amavis/maia/templates/*.tpl # chmod 750 /var/lib/amavis/maia/scripts/*.pl # chown amavis /etc/maia.conf # chgrp amavis /etc/maia.conf # chmod 640 /etc/maia.conf ===== Update the directories in the Maia scripts ===== # joe /var/lib/amavis/maia/scripts/process-quarantine.pl change '/var/amavisd/maia/scripts' to '/var/lib/amavis/maia/scripts' and also change '/var/amavisd/.process-quarantine.pid' to '/var/run/amavis/.process-quarantine.pid' # joe /var/lib/amavis/maia/scripts/send-quarantine-digests.pl change '/var/amavisd/maia/templates/' to '/var/lib/amavis/maia/templates/' and change the $base_url with used before (tools/antispam) ===== Testing the Maia config ===== # cd /var/lib/amavis/maia/scripts # ./configtest.pl You may get a "NOT INSTALLED" for some of the options: * file(1) - If you do a "file -v", you will see is is higher than the required 4.12. (file-4.26). The version output of file is not compatible with the version checking code of configtest.pl. * Crypt::OpenSSL::RSA - Not required but can be installed by running aptitude install libcrypt-openssl-rsa-perl * IP::Country - Not required but can be installed by running perl -MCPAN -e shell and entering Install IP::Country * DBD::Pg - Only required if you are using Postgres but can be installed by running aptitude install libdbd-pg-perl * Mail::DomainKeys - Not required but can be installed by running perl -MCPAN -e shell and entering Mail::DomainKeys ==== Import the Spamassassin rules ==== # cd /var/lib/amavis/maia/scripts # ./load-sa-rules.pl ==== Install the Maia Webinterface ==== # mkdir /var/www/ispcp/gui/tools/antispam # cp -R /usr/local/src/maia-1.0.2/php/* /var/www/ispcp/gui/tools/antispam ===== Copy the Optional Language locales ===== \\ Replace 'XX' with the language option you downloaded # mkdir /var/www/ispcp/gui/tools/antispam/locale/XX # cp -R /usr/local/src/XX/* /var/www/ispcp/gui/tools/antispam/locale/XX ==== Edit Maia config.php ==== # cd /var/www/ispcp/gui/tools/antispam # mv config.php.dist config.php # joe config.php ===== Change the default settings ===== If you installed optional language files, you can change the default language below by changing the 'XX' to your desired language. (change '_YOUR_AMaVIS_PASS_ to your Pass) $default_display_language = "XX"; $maia_sql_dsn = "mysql://amavis:_YOUR_AMaVis_PASSd@tcp(localhost:3306)/maia"; $address_rewriting_type = 4; $auth_method = "pop3"; ===== Install the SMARTY TEMPLATE ENGINE ===== aptitude install smarty** removed and edit the following file # joe /var/www/ispcp/gui/tools/antispam/config.php uncomment the following line (On Debian, this doesn't need to be changed, just uncommented?) $smarty_path = "/var/www/ispcp/gui/tools/antispam/libs/Smarty"; ===== Install the modern_blue Theme ===== # mkdir /var/www/ispcp/gui/tools/antispam/themes/modern_blue # cp -R /usr/local/src/modern_blue/* /var/www/ispcp/gui/tools/antispam/themes/modern_blue ==== Set the Permissions ==== # chown -R vu2000:www-data /var/www/ispcp/gui/tools/antispam # chmod -R 555 /var/www/ispcp/gui/tools/antispam # chmod -R 755 /var/www/ispcp/gui/tools/antispam/themes ===== Update Apache for Maia ===== # cd /etc/apache2/sites-available/ # joe 00_master.conf After this: Alias /ftp /var/www/ispcp/gui/tools/filemanger/ add this line: Alias /antispam /var/www/ispcp/gui/tools/antispam/ ==== Restart Apache ==== # /etc/init.d/apache2 restart ===== Test the GUI ===== \\ Open this URL on your Server: http://admin.yourserver.tld/tools/antispam/admin/configtest.php You will notice an error: * Warning: include_once(PEAR/Remote.php) - The Remote.php file is located in a subdirectory. You can update the configtest so line 284 reads (this is just for config test - Maia includes this file correctly during normal operation): * include_once ("PEAR/Command/Remote.php"); // PEAR::Remote * Warning: realpath() [function.realpath]: open_basedir restriction in effect. - Two options. You can either add /tmp to the allowed paths, or remove the path restrictions altogether since it is nolonger supported * joe /var/www/fcgi/master/php5/php.ini * Find the line "open_basedir =..." and either add /tmp or comment out the line entirely. // SKIPPED: PostgreSQL support not available - Not using Postgres, so this can be ignored Install missing modules: pear install Net_IMAP**removed There is an error in PEAR::Image_Graph 0.7.2 that would be fixed in 0.7.3.\\ Up to then use this Patch ->[http://www.maiamailguard.org/maia/ticket/326]\\ Or you can download a patched Version: cd /usr/share/php/Image/Graph/Plot/ mv Pie.php Pie.php.orig wget http://www200.pair.com/mecham/Pie.php.txt mv Pie.php.txt Pie.php If you are using IMAP, install the php IMAP module: aptitude install php5-imap**removed LDAP library - FAILED Not using LDAP, so this can be ignored MCrypt library - FAILED Restart Apache /etc/init.d/apache2 restart Check the config test again: http://admin.yourserver.tld/tools/antispam/admin/configtest.php You should only have the following errors: PostgreSQL Support SKIPPED PEAR::Image_Graph SKIPPED (Already patched it above) LDAP library FAILED MCrypt library FAILED If you have any other errors, repeat the steps above to ensure you have installed all the required modules ===== Maia-AMaVis ===== \\ Maia need its own AMaVis, it´s a part of the package. # mv /usr/sbin/amavisd-new /usr/sbin/amavisd-bak # cp /usr/local/src/maia-1.0.2/amavisd-maia /usr/sbin/amavisd-new # chown root /usr/sbin/amavisd-new # chmod 755 /usr/sbin/amavisd-new ===== Edit the Spamassassin config ===== # joe /etc/spamassassin/local.cf Some configuration should already be present, so if anything is missing, be sure to add it in Add these lines on the end of the file and set your PW. The following should already be in your config files: # Bayes database configuration use_bayes 1 Add the following lines to the end of the file: bayes_store_module Mail::SpamAssassin::BayesStore::SQL bayes_sql_dsn DBI:mysql:maia bayes_sql_username amavis bayes_sql_password _YOUR_AMaViS_PASS_ # <-- change '_YOUR_AMaViS_PASS_ to your Pass bayes_sql_override_username amavis bayes_auto_learn 1 bayes_auto_learn_threshold_nonspam 0.1 bayes_auto_learn_threshold_spam 10.0 bayes_use_hapaxes 1 #bayes_use_chi2_combining 1 # in newer versions unknown bayes_ignore_header ReSent-Date bayes_ignore_header ReSent-From bayes_ignore_header ReSent-Message-ID bayes_ignore_header ReSent-Subject bayes_ignore_header ReSent-To bayes_ignore_header Resent-Date bayes_ignore_header Resent-From bayes_ignore_header Resent-Message-ID bayes_ignore_header Resent-Subject bayes_ignore_header Resent-To bayes_ignore_header X-Received-From-IP bayes_ignore_header X-Virus-Scanned bayes_ignore_header X-Spam-Status bayes_ignore_header X-Spam-Level bayes_ignore_header X-Sender bayes_ignore_header X-Mailer # Auto-Whitelist configuration auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList user_awl_dsn DBI:mysql:maia user_awl_sql_username amavis user_awl_sql_password _YOUR_AMaViS_ # <-- change '_YOUR_AMaVis_PASS_ to your Pass ===== Create a symlink to the AMaViS config ===== # ln -s /etc/amavis/amavisd.conf /etc/amavisd.conf ===== Restart AMaVis ===== # /etc/init.d/amavis restart ===== Register as Maia-Admin ===== \\ Go the the URL:\\ http://admin.yourserver.tld/tools/antispam/login.php?super=register You have to register an existing Mailbox on your Server like admin@domain.tld or yourname@domain.tld. With this Login you are later the Maia-Admin and can control all. ===== Maintenance Scripts ===== \\ Maia can learn and become fat.\\ So we need some maintenance scripts in the cron crontab –u amavis -e ===== Insert the scripts ===== 55 * * * * /var/lib/amavis/maia/scripts/process-quarantine.pl --learn --report 1 * * * * /var/lib/amavis/maia/scripts/stats-snapshot.pl 5 1 * * * /var/lib/amavis/maia/scripts/expire-quarantine-cache.pl @weekly /var/lib/amavis/maia/scripts/send-quarantine-reminders.pl #15 1 * * * /var/lib/amavis/maia/scripts/send-quarantine-digests.pl ===== The UTF-8 Patch (optional) ===== \\ Edit: /usr/local/share/perl/5.8.8/Net/Cmd.pm (5.8.8 can be any other Perl version) and comment the following lines (389-393): if ($doUTF8) { # encode to individual utf8 bytes if # $line is a string (in internal UTF-8) utf8::encode($line) if utf8::is_utf8($line); } This problem occurs on ''SMTP 2.20'' and ''above'' and will rewrite all your mails in UTF-8. (Not good if send e.g. in ISO-8859-1). Done! ===== Test your System ===== \\ You can test your AnitSpam and AntiVirus system with these two lines. ===== The GTUBE ===== (Generic Test for Unsolicited Bulk Email)\\ Send this line per E-Mail to a User of your System.\\ Should recognize as SPAM with 1000 points in Spamassassian. XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X ===== The EICAR TEST-FILE ===== \\ Send this line per E-Mail to a User of your System.\\ ClamAV should recognize it as a Virus. X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* ===== Delete the admin subdirectory ===== The PHP scripts installed earlier included a number of administration scripts in the admin subdirectory. Once you've got Maia Mailguard up and running properly, you no longer need these scripts, and should delete that subdirectory and its contents as a security precaution, so that web visitors cannot access those scripts. # rm -r /var/www/ispcp/gui/tools/antispam/admin ===== Update default Maia theme for all users ===== You can do this through the command line MySQL client, or you can use PhpMyAdmin. First, login to PMA using the MySQL root username and password:\\ Go the the URL:\\ http://admin.yourserver.tld/tools/pma/\\ Select the "maia" database by clicking the link located on the left of the page\\ A row of tables will be listed. First, determine the id of the theme you want to set as the default by clicking on the "maia_themes" link on th left of the page. \\ Note the 'id' for the theme you want to use as the default\\ Click on the "mais_users" link on the left of the page. \\ Edit the default user ".@" by clicking on the green pen icon for he ".@" user (id 1)\\ The fifth entry from the bottom named "theme_id" is the default theme setting. Update this to the 'id' of the theme you want to use as the default. \\ Click the green "Go" button to save the changes.\\ Any new users added to the system will now have a new default theme. \\