Comments on The Perfect Server - Ubuntu 20.04 with Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot and ISPConfig 3.2

This tutorial shows how to install an Ubuntu 20.04 LTS (Focal Fossa) server with Apache, BIND, Dovecot and ISPConfig 3.2. ISPConfig is a web hosting control panel that allows you to configure Email, Webserver, and DNS services easily through a web browser.

133 Comment(s)

Add comment

Please register in our forum first to comment.

Comments

By: ustoopia

Allright!! I already have a freshly installed server waiting for exactly this moment! Thanks!

By: ustoopia

Perhaps an idea for you to include somewhere in the setup guide that we need to perform the command : "apt install patch" before starting the ispconfig installer. I received an error message after entering the command " php -q install.php" that said "The patch command is missing. Install patch command and start installation again." After searching the forum here I found the solution so now the installer was able to start succesfully.

By: Sahin

Hello

Can be done in Ubuntu 20

Installed Nginx, MySQL and bind completely

By: till

A separate installation of the patch command was not required on my systems. But I can add it.

By: Hammers Thor

Outstanding, and I mean OUTSTANDING tutorial. I have posted to GAB and Brighteon. Social (sorry, don't do facebook or twitter).

Thank you!

By: Tom

OMG this is such great tutorial. I can tell already I'm going to learn a ton just by going through the motions of setting it up. Thanks for such detailed work. 

By: Tom

Am I missing something? It says there's a link to download the image, but for the life of me I can't find any download link for that.

By: till

The download link is in the menu on the right side of the page, near the top. Right below the big red download Icon.

By: Zoltan Kiss

Hi! The download does not work.

By: till

Try the download again, it works fine now.

By: jakobdam

Wow - this is an EXTREMELY well made tutorial! Thanks a lot for the time and professionalism put into this - it made able to do something I thought was much, much harder - and indeed, it would've been (for me) if not for this tutorial.

 

Just a few sidenotes if any future visitors should encounter the same issues as me:

 

1) quota setup: My fstab file didn't look remotely like yours:

/dev/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0

Instead, mine was mapped with UUIDs. It now says:

UUID=62a4ff85-72b8-4b49-9aaa-e66f919b4b8d / ext4 usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 0

 

2) In my case, ispconfig3 worked fine but I couldn't log in with admin/admin. So I entered mariadb and changed the password for the admin user:

Log on to the mariadb as root, enter password when prompted:

mysql -u root -p

Then enter the ispconfig db:

 

use dbispconfig;

Now update admin with the password admin:

UPDATE sys_user SET passwort = md5('admin') WHERE username = 'admin';

And write "quit" to exit, and now the login admin/admin works.

By: jakobdam

Additional to my earlier comment; phpmyadmin didn't work for me. This was the solution in my case:

ln -s /etc/phpmyadmin/apache.conf/etc/apache2/conf-available/phpmyadmin.conf

a2enconf phpmyadmin

service apache2 restart

By: till

@jakobdam The Reason that you were not able to access phpmyadmin is that you missed to enable it during installation. See screenshots in chapter 8, you must navigate to the apache config option using tab key and enable the apache option by using the space key on your keyboard, so that the * shows up in the option field. If you miss that, then phpmyadmin will not work and you'll have to enable it later manually.

 

Regarding ispconfig password, the password is what you see in the installer, it is not admin, unless you enter the word admin.

 

The fstab file is different depending on your base setup, so it's normal that it does not look exactly as in the guide. But there are unlimited possible alterations, so only one is shown in the guide.

By: aadursun

where are the downloads, can't find links??

By: till

This has been answered in the comments already, here again: The download link is in the menu on the right side of the page, near the top. Right below the big red download Icon.

By: Bob White

I've been getting a lot of spam lately where the body of the message is base64 encoded. Once the body is decoded, it contains URLs that contain a server (e.g., t.hubspotfree.net). What I would like to do is discard any message containing the text "hubspotfree".

I can add it to Postfix's "body_checks" file, but that requires putting it in three times because it's base4 encoded. I tried editing the Spamassassin config files in /etc/spamassassin, but that doesn't seem to have any effect - I expect because it's using amavis, not SA. I tried entering into ISPConfig - with /hubspotfree/ as the text to match and DISCARD as the action.  Still didn't catch a test message.

How is this supposed to work? Where do I put the stuff I want filtered or flagged as spam?

Thanks,

Bob

By: till

@Bob: Please post support questions in the ISPConfig forum here at howtoforge.

By: Kart Mitchel

Everything is excellent in the manual. some details like .. quota settings were not of major importance as well Errors were encountered while processing:

  amavisd-new

E: Sub-process / usr / bin / dpkg returned an error code (1)

fix it by removing # $ myhostname = "abc.def.ghi";

# Qualified Domain Name (FQDN) and remove the # at the beginning of the line.

#

#$ myhostname = "abc.def.ghi";

everything worked as expected ... thanks

regards

By: till

@Kart Michael: There is no need to edit that file, if amavis fails with this error, then it means that you did not configure the server hostname properly. As a wrong server hostname setup will give you more errors later when you start using the system, I highly recommend that you undo the change you made in the amavisd config file and instead fox your /etc/hostname file and server hostname, so that the command 'hostname -f' returns the correct FQDN hostname.

By: Maik Kramer

Great tutorial. Everything is working fine, but I stuck for many days now with the mailserver. I made the installiation on Alibaba Cloud in Hong Kong and I can not send emails (250 authenification fail) and I do not recieve emails; permanent error (SMTP error from remote mail server after RCPT TO:<[email protected]>:  550 5.1.1 <[email protected]>: Recipient address rejected:  User unknown in local recipient table). It is the first time I have to set up a mailserver, an I thought it was done with this tutorial, but I see now thats not. May be someone can give me some links, topics or help what I still have to do, to get the mailserver working based on this tutorial. I read many other tutorial now and even one for Alibaba Cloud (How to Setup Email Server on Ubuntu 16.04 Alibaba ECS), but they all go different ways, from what I saw in this tutorial. thank you in advance

By: till

@Maik: The mail server is completely set up when you finished this guide, you just have to add your domain and mailboxes in ISPConfig. It is good that you asked for help instead of following another guide as mixing guides is a guarantee that you will mess up your setup. Please post your problem in the ISPConfig forum here at howtoforge if you need further help.

By: Maik Kramer

@Till: Thank you! Can it be possible, that I have a mix up with the IP addresses? I got 2 IP addresses from Alibaba Cloud: one they call internet IP and the other privat IP. Now I saw, that in ISPConfig under Server Config the used IP address is the privat IP and also under Sites/WebDomain it showed only the privat IP, which I used then, to save that site. Now, after I added in the DNS the Internet IP I can change under Sites/Webdomain to the internet IP, with the effect, that, if I go through the webbrowser to my site, it do not show the client side, but instead the index site under /var/www/html/. My question is, do the installation have to use the internet IP address or the privat IP address. One other thing I would like to ask you, because it is irritating for me. I have DNS Settings for the Domain in Alibaba Cloud under manage DNS and I have DNS Settings in ISPConfig. Do I have to make the same DNS settings in both, or only some in Alibaba DNS and the rest in ISPConfig. I hope the questions are not to basic or worse. I just need to know, where I have to look/search and I will get it working, but in the moment I am realy in the dark. Thank you, Maik

By: till

@Maik: Please use the forum to ask for help. the comments section is not a good place to discuss individual setup questions. Thanks!

By: Goedendag

Hi, I get the "SMTP Error (250): Authentication failed." when trying to send a mail via roundcube. Any ideas on how to fix this?

By: till

@Goedendag: Please use the forum to ask for help. the comments section is not a good place to discuss individual setup questions. Thanks!

By: Ghostshell3301

It would be nice to add the correct username and password for the OVA root:howtoforge is not working !!!

By: till

@Ghostshell3301: The correct username and password is mentioned in the tutorial already. The username is 'administrator' and the password is 'howtoforge'. As you might know, you can not login as root user on Ubuntu systems, you always use the username of a user with sudo privileges, in this case, the user 'administrator' to log in, then run 'sudo -s' to become root.

By: Ghostshell3301

@Till sorry I'm a (not) the RTFM dude ... So I used the pdf file with the download link :$ One must follow orders :) For only once I did read the RTFM and I'm awarded with this :p Problem solved (BTW I'm using the Perfect server from version Debian 6 until now with great pleasure and love the docs) KUDOS !

By: agustintommasi

Hello, is there any way to put APS Installer in ISPConfig 3.2? 

By: till

apscatalog.com, the source of APS packages, has been discontinued in 2019. And an application installer that has no recent packages to be installed anymore makes not much sense. That's why the APS installer is hidden in the menu, the code is still there in 3.2, but it makes not much sense to activate it.

By: Mark Rhyne

Hi, I get the "SMTP Error (250): Authentication failed." when trying to send a mail via roundcube. Any ideas on how to fix this?

If you ran the update script this becomes an issue. In the Roundcube config file change the port back to 25 not 587 then it works again.

Maybe its fixed now, maybe my advise is bad but it worked for me.

By: Newland Futures

Been using these tutorials for 15+ years.  A very long time.  Thank you again for the great work and easy installation.  Use this for a runbook and out the large number of servers I have installed using these tutorials only once or twice have I had issues.

I was able to download the nightly build, but the tar.gz file was corrupted and several files did not extract properly.  So I simply git cloned the repository and switched the branch to the 3.2b3 branch and off to the races.  Thanks!

By: decentris

Hi Till,

I have to add to the praises of my predecessors. The new tutorial is again top, as we are used to from you and your team. I just have one question: When configuring the "postfix"-master.cf - file, I stumbled upon a line "#  -o smtpd_tls_auth_only=yes" in the option-settings of

submission inet n - y - - smtpd

which is not displayed in the respective config example above. Is it save to keep this commented out or could it be a security improvement to activate "smtpd_tls_aut_only"?Thanks for your valued input.Best,Johannes

By: till

Hello Johannes, it might indeed be better to activate that line to prevent users from sending AUTH details on submission port without TLS at all. There are (hopefully) no mail clients anymore today which have a problem with that setting. I'll update the tutorial and add that line.

By: aplusdesigners

I LOVE this tutorial. It has been a few years since I setup my own server and this is just what the doctor ordered. One question though. My ISP blocks port 25 for mail sending, so how do we specify a port in the setup to send the mail? Thanks a bunch for such a well documented process.

By: till

@aplusdesigners: You cans et the relay host in ISPConfig under System > server config. Append the port like this to the relay server name:

 

relay.server.tld:123

 

where 123 is the port.

By: Indar

Hi Till,

Nice tutorial, but I got a problem with step-7 (install amavisd-new, SpamAssassin, and ClamAV). After executing the command (apt-get -y install amavisd-new spamassassin ...), I got error messages:

Setting up amavisd-new (1:2.11.0-6.1ubuntu1) ...Creating/updating amavis user account...Job for amavis.service failed because the control process exited with error code.See "systemctl status amavis.service" and "journalctl -xe" for details....Oct 14 11:06:03 pakcarik systemd[1]: Failed to start LSB: Starts amavisd-new mailfilter.dpkg: error processing package amavisd-new (--configure):  installed amavisd-new package post-installation script subprocess returned error exit status 1 ...

Errors were encountered while processing:    amavisd-new E: Sub-process /usr/bin/dpkg returned an error code (1)

I just ignored those errors, and continue the steps. When I tried to run the ClamAV by executing: freshclam 

then I got there errors:

ERROR: /var/log/clamav/freshclam.log is locked by another processERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).ERROR: initialize: libfreshclam init failed.ERROR: Initialization error!

Did I miss something? I followed your tutorial carefully after a fresh install of Ubuntu 20.04 server. My server has an Intel i9-9900K with 64GB DDR4 and 2TB SSD. Any suggestion? Many thanks!

By: phanky5

Roundcube doesn't appear to be properly configured out of the box. IMAP and SMTP hosts are both configured as localhost. This causes issues with authentication. Localhost should be replaced with the fully qualified domain name of your email server in /etc/roundcube/config.inc.php: $config['default_host'] = 'tls://your-mailserver-here.com'; $config['smtp_server'] = 'tls://your-mailserver-here.com'; @till maybe you want to add this to the tutorial. I see a few people already ran into the same issue.

By: leonardo.saracini

In section 7 before freshclam better do a

systemctl stop clamav-freshclam.service

By: TonyG

Trivial typo:

"The MySQL root password that needs to be added is shown in read"

should be red.

By: Mark

Hi Till, three questions: (1) I've just installed Ubunu 20.10 and noticed it has some location changes, for example Grub is not located at /etc/defaults/grub as in 20.04. Would this ISPConfig installation be possible on 20.10, do you know?

(2) Is the virtual image compatible with KVM?

(3) How would either installation allow for update/upgrade of the various components?

By: Sigh

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

 

Enter current password for root (enter for none):

 

Tried both no password and the root user's password on three different cloud containers, all gave the same results. 

By: Jaume

I'm trying to change the apache tls restriction to make only tls 1.2 and 1.3 available, but I can't understand why I can't change. I put in the Apache directives of the site (options tab) the lines: SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2 SSLHonorCipherOrder off SSLSessionTickets off trying to change the lines... and the ssllabs.com test always tells me that tls1.0 and 1.1 is enabled...what can I do? regards!

By: till

Apache does not support it to set TLS levels by vhost, it will always use the lowest setting from any vhost in all other vhosts. This means you have to change all vhosts and the global TLS settings from Ubuntu.

By: Tom

This tutorial not only saved me a TON of time trying to figure it all out on my own, but I understand so much more. This was such a great way to learn so many different web/server based technologies. Thank you SO MUCH for creating such master pieces. I can't tell you how excited I've been to have this up and running. I don't think i could have done it without this writeup.

By: Jaume

Hi Till, thanks to question regarding tls settings... what is the correct way to change all these settings? editing vhots manually? 

By: francoisPE

I don't know why, I don't have last line in my /etc/mysql/debian.cnf (basedir) # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = root password = howtoforge socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = root password = howtoforge socket = /var/run/mysqld/mysqld.sock basedir = /usr ------ May be that is why I have a mistake in main.cf file " proxy:mysql:\/etc\/postfix/mysql-virtual...dbname " 2 wrong \ : I removed and it works...

By: Ken C.

Thank you for a job well done. Best installation yet for ISPConfig with all server applications on my VPS; so far working without a hitch.

By: Henrique Moraes

Uau!

Its very beautifull.

Thanks a lot!

By: kazuki

thank you. waiting for nginx perfect server

By: Tom

Hi,

Installation went well, I can recieve emails but I can not send, did i miss something?

 

By: Pablo

I'm sure you need to uncomment a line in /etc/postfix/master.cf

By: francoisPE

In below packages list, there is "apache lib for python" : libapache2-mod-python.

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap phpmyadmin php7.4-cli php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm libapache2-reload-perl

 

This lib is quite old. It was replaced by libapache2-mod-wsgi first. And now, by libapache2-mod-wsgi-py3 for python3.

I suggest to modify that line of tuto in order to avoid people setting python 2.7.17 instread of python 3.8...

 

By: till

@francoisPE: The libs are required to be installed in the way that is described in the guide, so do not alter the commands if you like to get a working setup. The changes you suggested will result in a non-functional system as mod-wsgi is not a direct replacement and also not supported by ISPConfig at all.

By: francoisPE

@Till, libapache2-mod-python is incompatible with python3... it automatically load python2.7 and make it 'default'. When having libapache2-mod-python, it is impossible to have libapache2-mod-wsgi-py3. Python3 is incompatible with most of the modern web site using python... For me, this is a matter of concern.

I don't know if you are able to move ispconfig to libapache2-mod-wsgi-py3. It would be really great!

By: ofer

Pelase add

/etc/amavis/conf.d/05-node_id

without fixing the host name amavis want start

 

By: till

@ofer: there is no change in that file needed on correctly installed systems and you should not change that file, so the first step is undo your change and then fix your system hostname. If you had to change that file to start amavis, then you have not configured the hostname of your system correctly before you started to install ISPConfig. Go back to Ubuntu basic server install guide, the link is at the beginning of this tutorial, and fix your hostname. The command 'hostname -f' must return the correct fully qualified hostname like 'server1.example.com' when you configured the system correctly.

By: Treaver Hoerig

I have actually reinstalled the entire Ubuntu Server OS over 50 times following this guide to the letter and I still get SMTP Error 250 when accessing roundcube, I can't get LetsEncrypt to work across ISPConfig/Mail/Web without the "Untrusted Certificate Error" and I have literally followed this guide as well as a number of other guides; including hours of research and still am unable to actually get this server working perfectly. In an attempt to try to fix these issues, I research, get apache errors, have never gotten rid of the SMTP Error 250 as of yet, and always end up breaking something. Could someone here please explain to me what I am doing wrong. 

By: till

@Treaver: Please use the forum here at howtoforge to post the details of your issue.

By: Tom

When I check my MySQL config using the netstat/grep command, my listen port is 44086 and not the one listed in the tutorial. Is this a random port or should mine match exactly? 

By: Arthena

Many thanks for an inspiring run through. As a novice I had everything up and running. Is there at tutorial for fetting your web name houster to point to the server? I am unsure of what to set up on custom DNS records with my web name issuer.

 

Many thanks

By: Manisch

I'm sorry, but Step 8 (Install Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear) just won't work over here.At the point where you write "MySQL application password for phpmyadmin: <-- Press enter", it always gives me an error because the login failed...Yes, I actually selected the apache2 option before by pressing the space bar. 

By: romain

Thanks a lot, I followed everything and except updating the ispconfig version (which is not beta anymore) everything worked perfectly without any change from what you explain :)

By: Balu

The entry in /etc/roundcube/config.inc.php must still be made $ config ['smtp_server'] = 'localhost'; against this $ config ['smtp_server'] = 'tls: //% n'; be replaced. Otherwise you cannot send any emails.

By: Spaetzle

Hi I wondered why rspamd is not used in this tutorial. Isn't this better than amavisd and spamassiassin? Or are there some known problems with Ubuntu 20.04. Regards Bernd

By: Francisco Gomez

In the webmail configuration (roundcube) the possibility that the user himself changes the password of his account does not appear

By: francoisPE

set up plugin for that

By: Masters of Media

Hello Till, there is a small change in the dialog when securing MySQL. After the question "Disallow root login remotely? [Y/n]" there is a new dialog:

   By default, MariaDB comes with a database named 'test' that anyone can   access. This is also intended only for testing, and should be removed   before moving into a production environment.   Remove test database and access to it? [Y/n] y

By: Masters of Media

I would like to suggest to include an extra check on each occasion of a service being restarted, by doing a 'service xxxx status' immediately following the restart. In one or 2 occasions, following this tutorial, I came across a situation where a service would not restart or only restarted with warnings, which later on in the setup caused problems.

By: Masters of Media

I have issues when trying to enable quotas on vps's from a number of provicers. I get the following:root@ubuntu:/# quotaon -avug quotaon: using //quota.group on /dev/vda1 [/]: No such process quotaon: Quota format not supported in kernel.quotaon: using //quota.user on /dev/vda1 [/]: No such processquotaon: Quota format not supported in kernel.What could be going wrong here?

By: Masters of Media

On some servers, I get messages like this during the various installs: The following package was automatically installed and is no longer required:  xxxxxxxxxxUse 'apt autoremove' to remove it. Perhaps it would be a good idea to conclude the setting up of the server with a new section between 16 and 17 to autoremove anything no longer needed on the server?

By: Masters of Media

I would suggest to change the use of the nightly build in this article, to be replaced with the stable build of ISPConfig instead.

What an amazing tutorial. Thanks so much!

By: cydo

I am getting error after doing 

Install ISPConfig 3.2

 

 Unable to connect to the specified MySQL server Access denied for user 'root'@'localhost' (using password: YES)

 

What to do ...Please suggest me.

By: ridwan

hello Till, My installation process was interrupted because of the internet network disconnection

 at step

17. Install ISPConfig 3.2 --> Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com

 

I reconnected the server and repeated the steps

root@ns1:~# cd /tmproot@ns1:/tmp# cd ispconfig3*/install/root@ns1:/tmp/ispconfig3-nightly/install# php -q install.php

 

Now i get the error like this :

ERROR: Stopped: Database already contains some tables.

How To Solve it ?

 

By: Eickelpasch

I have installed the virtual machine from this tutorial.

I could login as administrator.

When i started http(s)://server1.example.com:8080/ to reach ispconfig nothig happens.

By: till

Depending on your local network, you might have to adjust the network configuration so that the IP matches the subnet. And until you configured your own server hostname, better use just the IP address to access the VM.

By: Jens

After using this tutorial, I get daily rkhunter emails with the following warnings:

 

Warning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: Perl script text executable Warning: The following suspicious (large) shared memory segments have been found: Process: /usr/sbin/apache2 PID: 1436448 Owner: root Size: 1.2MB (configured size allowed: 1.0MB)

 

I guess we need to configure an exception rule for apache and lwp-request. How do I do this?

By: Jakub

Thanks for great tutorial! I am wondering where is the right my.cnf file for mysql tuning? Seems like when i try update any of file in etc/mysql nothing happen and phpmyadmin showing all time same values for variables. Thanks!

By: Michael FIscher

roundcube 1.4.3+dfsg.1-1In /etc/roundcube/config.inc.php I have to set: $config['smtp_server'] = 'tls://%n'; otherwise I cannot send from roundcube. corresponding error message in /var/log/roundcube/errors.log:[01-Feb-2021 19:14:22 +0000]: <6mbeqtlv> PHP Error: SMTP server does not support authentication (POST /webmail/?_task=mail&_unlock=loading1612206862537&_framed=1&_action=send)[01-Feb-2021 19:14:22 +0000]: <6mbeqtlv> SMTP Error: Authentication failure: SMTP server does not support authentication (Code: ) in /usr/share/roundcube/program/lib/Roundcube/rcube.php on line 1702 (POST /webmail/?_task=mail&_unlock=loading1612206862537&_framed=1&_action=send)

By: Fanis Tsiros

Just a small tip for mariaDB instalation:

Editing file /etc/mysql/debian.cnf with a password gives me the following error when i start or restart the database server:

xxxxx: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck

xxxxx: Version check failed. Got the following error when calling the 'mysql' command line client

xxxxx: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

xxxxx: FATAL ERROR: Upgrade failed

Seems that my password has special characters. I ecnlosed my password in /etc/mysql/debian.cnf with single quotes like:

password = 'howtoforge'

Now version check does not fail.

By: nhybgtvfr

any ETA on the perfect server tutorial v2 you wanted to write?

By: VALENTIN

Thanz for this tutorial. Great Work!

By: pranjal

i can not accesss login panel i went throgh installation. my server ip is 82.223.203.84.

any help?

By: till

Please post your issue in the ISPConfig support forum: https://www.howtoforge.com/community/#ispconfig-3.23

By: Artie

I noticed unanswered question about Rspamd (By: Spaetzle at: 2020-12-28 18:25:44)So I want to ask the same and hope to get answer: Could you please provide the Tutorial with Rspamd ? I see you posotion Rspamd positively  (https://www.howtoforge.com/replacing-amavisd-with-rspamd-in-ispconfig/) and would like to install it on Ubuntu 20.04 initially if possibly. Hope to get reply soon...Thanks a lot for your efforts ! ISPConfig is definitely very effective Panel !

By: Fred

Thanks for a really good and easy to follow guide, everything was installed and is running except in my case for the Mailman web interface.  When accessing the link https://<server>/cgi-bin/mailman/listinfo/<mailing_list_name> I get a 404 error.  How should I go about troubleshooting that issue?

By: Brian P.

Why is it, we have to call example server1.mydomain.com in the server name and in the ssl setup, and not only mydomain.com. ??I get ssl certificate error after installing ispconfig, and no errors on the way. But when i enter the ispconfig admin site, i get the not trusted certificate, and in chrome i sometimes can not enter the site at all.

By: till

Because the server hostname is never your main domain name, as you would not be able to host a website on that domain and not receive any emails if you would use mydomain.tld instead of server1.mydomain.tld for the server hostname. Please post in the forum if you need further help with your DNS setup and SSL.

By: Brian P.

Thank you for answer.I was just wondering :) I wll post if i get error again, trying a new clean setup now.

By: Brian P.

Hi again.Its the same, i am locked out of the site, unless i go incognito mode, and accept that the certificate is unsafe, i tryed many times now, this one last time, i used the full automated ispconfig setup, just for try that :(Any have any idea how i can make my site secure ?

By: till

Please post in the forum https://www.howtoforge.com/community/forums/installation-configuration.27/ if you need further help.

By: Aaron Stevens

Thank you so much. I followed this tutorial and it worked brilliantly :-) 

 

By: David

Hey I followed this and I have been running it for 6 months amazingly! Do you have plans on making it a docker image or is there a way to convert mine to a docker image? I want this containerized and then PiHole containerized and a Plex server all containerized on the same box.

By: mpyusko

Is there a reason you don't use php-fpm?  It offers much faster page-loads/rendering than the apache mod.

By: till

ISPConfig uses PHP-FPM and PHP-FPM is the default mode. You can choose the PHP mode in ISPConfig.

By: Chris_UK

Not sure about your configuration but my ESXI host uses DHCP for VM IP Assignment.

If you find the static IP does not match your configurations you have a couple of options. Either set it to dhcp, or change the ip address. I chose dhcp and this is whats needed to make it work.

Find your the name of your NIC ensXXX:ip -c link

sudo nano /etc/netplan/00-installer-config.yaml

change ens33 to match your NIC

change dhcp4 and dhcp6 to true

remove all lines after.Once you have saved the file (ctrl + x or ctrl + o) Reboot your VM, you should now get a DHCP assigned IP Address, login to your router and perform the steps required to make the ip address static. I won't go into that side of things, I use a cisco router so it may not be of use here.

 

By: Loggy

After upgrading to 20.04 from 16.04 via 18.04, roundcube required php-net-idna2 to be installed with apt install.  Then more 'fun' configuring roundcube but that's a different story!

By: vmevada102

After installing the ISP config, Login page displayed, But after login, blank page displayed in the system, Only ISP config logo, Search and Admin button displayed Ubuntu version 20.04, Php 7.4

By: Daniel Black

Please don't recommend updating mysql.user. It isn't possible in MariaDB-10.4 or later as that is a SQL view. It also has no effect without FLUSH TABLES. ALTER USER is that standard way to change a user's authentication so use that over any direct manipulation of MariaDB system tables.mysql_secure_installation has already set the password. So this actually isn't needed.

By: Brandon Stivers

First of all, MariaDB-10.4 and above isn't even installed with apt install mariadb-* by default on Ubuntu 20.04. MariaDB-10.3 is. You'd have to manually add the MariaDB repository to get above 10.3 right now. And that's not in the tutorial. So guess what's still needed and relevant? Maybe don't go above and beyond what a tutorial says (like activating 3rd-party repos), then complain the tutorial is wrong. Because it's not. People like you are why virtual environments exist in the development world. How many times have you said stuff doesn't work on your machine, while everyone else says it does? FOLLOW DIRECTIONS. 

By: Michael Falzon

Nice and work 2 install and kick ass it worked each time ( come from qmail )

By: Freeman

I have seen on other installations that ISPConfig manages XMPP but I can't see an XMPP server installaed in this tutorial or did I miss something.

By: till

XMPP support in ISPConfig has been removed as recent metronome versions are not compatible with the XMPP implementation in ISPConfig anymore and XMPP in ISPConfig was so rarely used, that a complete re-implementation is not planned at the moment.

By: Johny

Excellent and thorough instructions. Suggestion: to add a point #20 to have reverse proxy to port 8080 using nginx so the url would be clean (without :port to admin and clients).  

By: ProphetLamb

Some linux kerrnels do no support quota. This is due to a bug. Adding then to the virtual packages solves this.

To do so install virrtial pagages

apt-get install linux-image-extra-virtual

then register the quota modules

vim /etc/modules # add these quota_v1quota_v2

Cheers

By: MSilliman

I have follwed this tuorial and have an up and workign system, however I'm having SSL issues. I have installed let's encrypt acme.sh and I'm able to create new let's encrypt certifcates for websites, but my coresponding email, ftp, and other services are not using the Let's Encrypt SSL cert. The email and ftp services are using the SSL Cert asigned to the ISPConfig control pannel, which is a self signed cert.

By: till

The mail service shall use the system-wide SSL cert for the hostname, so that's fine. But that#s normally a let's encrypt cert as well unless your hostname was unreachable at install time. Take care that your server hostname is correctly configured in DNS. Then run:

 

ispconfig_update.sh --force

 

and let the updater create a new SSL cert for ISPConfig and the other services. Also, take care that you use the right server name in your email client, the right one is the hostname of the server and not one of your hosted domains.

By: roberto

Hi folks

unfortunatelly this installs no perfect server. Till Ubuntu 16.04 LTS it worked fine. After the installing  ESM for Ubuntu 16.04 LTS the System was destroyed. Other tries with Ubuntu 18.04 LTS and Debian 11 and with Ubuntu 20.04 LTS failed to install the "perfect server"

By: till

The above guide works perfectly fine on Ubuntu 20.04, simply copy & paste the commands result in a working system, I'll test it regularly, no changes or updates are needed. You might want to make a post in the ISPConfig forum with the error messages you got so we can help you to find out where you did not follow the guide or where your base system has deficits that cause the overall system to fail later. Following this guide requires that you follow it to the letter, leaving things out or modifying commands will break it. Another possibility is that you use a unclean base system or there are other issues with your base system like unsuitable virtualization or not enough resources. At least you can rule out now that there are any issues with the guide.

By: malaperdas

Don't know when this was posted, but today, 25th of May 2022, this guide after following it 3 times, it doesn't work completely. I need only emails, no website hosting or any other services. I can create accounts, mailboxes, and log in into the accounts but can't send or receive. 

By: Declan Barry

Hi Folks.

To save a bit of time whilst experimenting, I cheated and downloaded the VM. I set it up to my IP Range and all seemed to work great so I decided to update the system. Whilst updating it it gets as far as unpacking the 00-maria DB - and just hangs there at 26%.

I restarted the VM and went through the upgrade again. Had to manually run sudo dpkg --configure -a to correct a dpkg issue. It seems to have upgraded okay now but my query is in relation to why the mariadb upgrade failed. its currently at 10.3.34.

I'm going to go down through the actual tutorial but was just curious as to why the mariadb upgrade appears to fail.

Regards

Declan

By: Moonlit

why it doesn't work on email. i have completed everything without any issue but the mail is not sending or receiving! the error is connection to 127.0.0.1:10026 refused. i have also tried with or without AMAVIS which can cause this error. tried every solution that is posted on how to forge but nothing works! tried different providers like Hetzner and Vultr, nothing works!!

By: till

The above guide works perfectly fine at Hetzner and other providers, I've installed a system at Hetzner a few days ago successfully. The most likely reason for your issue is that the hostname was not configured correctly before installing the system, amavis requires it that the command: "hostname -f" returns the fully qualified hostname while the command "hostname" returns the short hostname. Post in the ISPConfig support forum if you need further help https://forum.howtoforge.com/#ispconfig-3.23

Or you replace Amavis with Rspamd: https://www.howtoforge.com/replacing-amavisd-with-rspamd-in-ispconfig/

Or you use the latest and recommended setup for Ubuntu and install from scratch which uses Rspamd too: https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/

By: MKTwo

Hi,everything is done, but no mails are going out or in with roundcube.

The mail.log shows the following:

Jul 23 21:38:52 vps amavis[188478]: (188478-02) (!)connect to 127.0.0.1:* failed, attempt #1: Can't connect to socket 127.0.0.1:* using module IO::Socket::IP: Connection refused

 

 vps amavis[188477]: (188477-03) (!)Nl3eWAaM5MpA FWD from <t -> <>,  451 4.5.0 From MTA() during fwd-connect (All attempts (1) failed connecting to smtp:127.0.0.1:*): id=188477-03

By: till

The most common reason for Amavis failing to start is a misconfiguration of the hostname. Please post your issue in the ISPConfig forum if you need further help: https://forum.howtoforge.com/#ispconfig-3.23

Or you replace Amavis with Rspamd: https://www.howtoforge.com/replacing-amavisd-with-rspamd-in-ispconfig/

Or you use the latest and recommended setup for Ubuntu and install from scratch which uses Rspamd too: https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/

By: bvbrakel

Dear Till Brehm, my nane is Ben van Brakel, 79 years young and still active with computers, I'm fighting with them since 1963 (NASA IBM systens) with a lot of pleasure and fun. I want give you my deepest respect for what you did with your tutorial, it is splendid and o so complete, Thanks for that.

I use it already a long time from on my first UBUNTU release 10.04 I believe, but now I'm running in a big problem with ubuntu 20.04, I cannot get email working, I installed for my on security your tutorial at the last pont 3 times and I got 3 times the same failure wen I try to receive mails, the problem is "amavis" I tried all I know but cannot get it goin. Hereby 3 lines dfrom my maillog:  Maybe you can give me a hint, or tell me where I could find a solution. Thank in advance.

 

Aug 1 11:19:43 vbserver1 amavis[533827]: (533827-14) (!)connect to 127.0.0.1:* failed, attempt #1: Can't connect to socket 127.0.0.1:* using module IO::Socket::IP: Connection refused Aug 1 11:19:43 vbserver1 amavis[533827]: (533827-14) (!)Pnkul5auYlt6 FWD from <[email protected]> -> <[email protected]>, 451 4.5.0 From MTA() during fwd-connect (All attempts (1) failed connecting to smtp:127.0.0.1:*): id=533827-14 Aug 1 11:19:43 vbserver1 amavis[533827]: (533827-14) Blocked MTA-BLOCKED {TempFailedOpenRelay}, [127.0.0.1] [46.129.12.134] <[email protected]> ->port: 10024 and 10026 are active iin IP4 and IP6.

 

By: till

Hello Ben, please make a new thread for your issue in our support forum so we can help you to find out why amavis is not working on your server. You can find the support forum here: https://forum.howtoforge.com/forums/installation-configuration.27/

By: Hawk

I am planning to use this setup with Ubuntu 22.04 and additional with dotnet core on a Virtual Server.

What would you recommend for cpu and ram for such a system? 

By: Guillermo

 Thank you guys a lot for this tutorials, they`re lifesavers. An update is in order since certbot is not available anymore as described here and have to be installed diferently. 

Thanks again for your work!

By: Sanuich

The emails are received but not appeared not in roundcube not in app clients

postfix/smtps/smtpd[210685]: warning: connect to Milter service inet:localhost:11332: Connection refused

 postfix/trivial-rewrite[210698]: warning: do not list domain server1.mydomain.com in BOTH mydestination and virtual_mailbox_domains

 

 

not all new files appears in /var/mail for every new mailbox i create with IspConfig

By: till

You set up a wrong hostname before installing ISPConfig. You must use a subdomain as hostname (as the tutorial above advises) like server1.example.com and not a domain that you ant to use for email (like example.com). To fix that, set a correct hostname in the files /etc/hosts, /etc/hostanme and /etc/postfix/main.cf by changing the domain (like example.com) to a subdomain (like server1.example.com) and reboot your server.

By: Sanuich

I must apologize. Everything works with this tutorial. I could reach email SPAMless rate 10/101. Very important to use a subdomain as it was explained here. If you want to use yourdomain.com as an email domain create some.yourdomain.com for installing ISPconfig. some.yourdomain.com will not work from emails!!!!2. Change System -> Server Config -> Mail -> Content Filtrer to  Rspamd also remove Amavishttps://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-disable-spamfilter-and-antivirus-functions-in-ispconfig-3/

 

That's all Everything works

By: Fisa

I have successfully installed Roundcube and ISPConfig in AWS EC2, i have one domain in godaddy, i cannot able to send the mail from, how to add DNS Records in Godaddy 

By: Phantom

Hi. I followed this guide to the letter and everything works, except roundcube.

I get ERR_SSL_PROTOCOL_ERROR when I try to access server1.example.com/roundcube from a browser.

I get the same error for server1.example.com/webmail

Any ideas where should I start looking to solve this ?

By: till

Please post in the support forum to get help with your setup: https://forum.howtoforge.com/#ispconfig-3.23

By: matieh

Hello Till,Thank you so much for the tutorial! I followed all the steps, and my server is running now. But, with no email going out. I investigated the issue, and it turned out that my ISP was blocking port 25. Would email work if I followed the steps again, using port 587 instead of 25?

By: till

You can not run a mail server when port 25 is blocked, so altering the mail port to 587 does not help in this case. You have basically two options, either get a server or VPS/Cloud server in a data center where port 25 is not blocked if you want to run a mails server, or you must use an external mail server (this can be a mail relay service or maybe the mail system of your ISP (if they provide one) to relay outgoing mail trough. Mail relay settings in ISPConfig can be found under System > server config > mail. There you can set something like "external.mailserver.tld:587" in the mail relay server field and also enter a username and password if needed. This will configure Postfix to send all outgoing emails through this server and connect to it on port 587.

By: matieh

Thanks, Till! My ISP is Hetzner, and while I was searching for a solution, I found this tutorial on their website: https://community.hetzner.com/tutorials/postfix-as-SMTP-relay-server

Do you think I reconfigure the current settings? Based on the provided instructions from Hetzner?I really appreciate your help 

By: till

Hetzner will unblock port 25 after you have paid your first invoice. You might want to contact their support and tell them you want to run your own mail server and ask them to unblock that port.

As I mentioned in my first answer, you can configure relaying in ISPConfig, do not apply that Hetzner tutorial, it will break your system and it won't help you anyway as it is about running a relay server (which requires port 25 to be open) and not about relaying email for a mail server.

By: Thomas Tomchak

I followed this tutorial almost a year ago and got a server up and running on Digital Ocean. Websites, email, the whole thing. I could not have done it without this tutoiral.

I'm really struggling with a problem however that, on the surface, should be crazy simple to do. AFter workign on it for 2 weeks on and off I am at a loss on how to proceed. Hopefully somebody here will know how to fix my issue. My goal is to redirect the email for one inbox to another server entirely. So the mail comes in, is not stored but is redirected to the other server. In the Custom Rules area of that mailbox, I have this code. require ["fileinto", "redirect"];# Redirect all messages for "[email protected]" to "[email protected]"if address :is :localpart "to" "tom" {  redirect "[email protected]";  stop; # Stop processing other Sieve rules for this message}

As the email is being processed by the server, it makes the claim that it can not use the redirect command. There appears to be an error with the Sieve script. The error indicates that the redirect action is not recognized as a Sieve capability. This means that the Dovecot Sieve plugin might not be configured properly to handle the redirect action. This is where I'm lost. I've learned a lot through this process, but I'm also getting to the point that I just need to get this working again. Below is my dovecot.config file contents in case it helps. Thanks, and soorry this ended up being so long. # Do not change this file, as changes will be overwritten by any ISPConfig update. # Put your custom settings in /usr/local/ispconfig/server/conf-custom/install/dovecot_custom.conf.master. # To start using those changes, do a force upgrade and let it reconfigure your services. (ispconfig_update.sh --force) listen = *,[::] protocols = imap pop3 auth_mechanisms = plain login disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail postmaster_address = [email protected] ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key ssl_dh = </etc/dovecot/dh.pem ssl_min_protocol = TLSv1.2 ssl_prefer_server_ciphers = no mail_max_userip_connections = 100 # previous mail plugin line mail_plugins = quota # new mail plugin line # mail_plugins = $mail_plugins quota sieve passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } userdb { driver = prefetch } userdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { quota = dict:user::file:/var/vmail/%d/%n/.quotausage # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 sieve_max_redirects = 25 } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = vmail

By: exyfeplin

This tutorial seems to be outdated now. I'm using a brand new Ubuntu 20.04 host from Linode/Akamai, and its behaviour is not matching the tutorial.

Example #1:

# dpkg-reconfigure dash #

There is no question "Use dash as the default system shell (/bin/sh)?"

Example #2:

# apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo patch Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package getmail4 #

 

"getmail4" doesn't exist any more?

Example #3:

# nano /etc/postfix/master.cf

This file has no "smtps section" similar to the one shown in the tutorial. 

It's hard to proceed confidently with these differences.

Are there any suggestions about what I should do?

Thanks.

 

By: till

The tutorial is for Ubuntu 20.04 only and not for later versions. What you describe about dash, getmail4 and master.cf indicates that you are not using Ubuntu 20.04 but instead Ubuntu 22.04 or 24.04. The tutorial is still fine for the OS version it was written for, Ubuntu 20.04; you just use it for the wrong OS version. It is important always to check which exact version of an OS you use as the instructions differ for each version.

For your Ubuntu version, you must use the auto-installer instead. It supports Ubuntu 22.04 and 24.04.

https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/