ISPConfig3 is a complete hosting solutions and has a number of levels of users as such, all which are fully customisable. As far as ISPConfig3 is concerned the highest user is the default user, ‘admin’. Admin sits at the very top of the food chain and has complete control over the control panel and all it’s functions.
![](/uploads/1/2/7/5/127522007/544765692.jpg)
Related
How To Install VestaCP and Set Up a Website on Ubuntu 14.04 Tutorial
How To Set Up Password Authentication with Apache on Ubuntu 18.04 [Quickstart] Tutorial
Introduction
Although the command line is a powerful tool that can allow you to work quickly and easily in many circumstances, there are instances where a visual interface is helpful. If you are configuring many different services on one machine, or administering portions of your system for clients, tools like ISPConfig can make this a much simpler task.
ISPConfig is a control panel for your server that allows you to easily configure domains, email addresses, site configurations, and user accounts. We will be installing the panel on an Ubuntu 14.04 server.
Prerequisites
Before we get started, you should have a domain name pointed at the server that you will be using. To find out how to configure your domain name with DigitalOcean, click here.
You will also need a non-root user with sudo privileges. You can learn how to set up a non-root account by following steps 1-4 in our Ubuntu 14.04 initial server setup guide. Log in as this user to get started.
Upgrade the System
The first thing we should do is upgrade the base system. This will ensure that the packages on our system are the newest packaged versions.
We should update our local package index before we do this so that
apt
knows about the latest package versions:
Our system should now be up to date and we can get going with the rest of the installation.
Verify Hostnames are Configured Correctly
We will start by making sure our hostnames are configured correctly. In this guide, we are going to be assuming that the domain name that we are setting up is
server.test.com
and the IP address for the server is 111.111.111.111
.
We need to verify that our hostname is configured correctly. We should look at our hosts file:
It may look something like this:
We want to make our hostnames use our public IP address. You can do this by splitting up the line into two lines and pointing the domain name portion to our public IP address:
Save and close the file when you are finished.
We should also edit our
hostname
file to make sure that it contains the correct domain name as well:
If your whole hostname is not displayed, modify the value:
You should make sure the system uses the new value by typing:
Change System Settings
There are a few items that Ubuntu configures in an unconventional way that we need to undo in order for our software to function properly.
The first thing we need to do is disable AppArmor, which is incompatible with ISPConfig. First, we should stop the service:
We can also tell it to unload its profiles by typing:
After this is done, we need to tell our server not to start this service at boot:
![Requirements Requirements](/uploads/1/2/7/5/127522007/754558615.png)
We can actually delete all of the associated files and packages by typing:
Another configuration that we need to modify is the default system shell. Ubuntu uses the
dash
shell for system processes, but ISPConfig leverages additional functionality that is provided specifically by bash
. We can set bash
to be the default system shell by typing:
At the prompt, select “No” to have the utility reconfigure the system shell pointer to use
bash
instead of dash
.
Install Additional Components
Now that we have our base system ready to go, we can begin installing some of the services that ISPConfig can manage and some software that supports ISPConfig.
We will be installing basic LAMP (Linux, Apache, MySQL, PHP) components, mail software, anti-virus scanning software for our mail, and other packages.
We will do this all in one big
apt
command, so this will be a lot of packages installed at once:
During the installation, you will be asked a few questions. You will be asked to select a language for
mailman
. Select en (English)
to continue. You will also be asked to select and confirm a password for the MySQL administrative user.
Another prompt that you will get is whether to create a self-signed SSL certificate for
dovecot
. You should select “Yes”. You will have to enter the “commonName” for your SSL certificate. This is just your fully qualified domain name:
For
postfix
, you will be asked what kind of mail configuration you need. Select Internet Site
. You will then be asked to choose the system mail name. You should set this to your domain name as well:
For phpMyAdmin, the software has the ability to automatically configure itself based on your web server. Select “apache2” and press “SPACE” to select that option. Hit “TAB” then “ENTER” to make the selection.
Later on, you will asked whether you wish to configure the database for phpMyAdmin with
dbconfig-common
. Choose “Yes” here. You will need to enter the password of the MySQL administrator account that you selected above. You can then select and confirm a password for the phpMyAdmin user.
At this point, all of your components should be installed.
Configure the Backend Components
Now that everything is installed, we need to start configuring our services and tools.
Mail Configuration
Let’s start by enabling some functionality in
postfix
. Open the default configuration file with your editor:
We just need to uncomment some of the lines in this file. Specifically the line that deals with the submission service and the first three option lines beneath, and the smtps service and the first three option lines for that one as well:
Now, we need to append an additional option under both of these services. It will be the same for each:
Save and close the file when you are finished.
Another mail related service that we should configure is
mailman
, which can handle mailing lists.
We can start off by telling it to create a new list:
You will be asked to provide the email that will be associated with the list. You will also be asked to select a password.
The script will output a long list of aliases. You should add those to the bottom of the your
/etc/aliases
file:
It should look something like this:
Save and close the file after you’re done. You need to make
postfix
aware of the aliases you added. You can do that by typing:
We can start the
mailman
service by typing:
Restart the
postfix
service to enable mail changes:
While we’re dealing with services, we should also stop and disable
spamassassin
. ISPConfig calls this as needed and it does not need to be running all of the time:
We can then tell the server to not start it again at boot:
LAMP Configuration
We need to enable
mcrypt
functionality in PHP:
Another thing we need to do is enable some of the Apache modules we installed.
We also need to make some adjustments to some of the Apache configuration files.
One of the modules that we enabled will currently intercept all of our PHP files. We want to stop it from doing this. Open the
suphp
configuration file:
We are going to replace the top block with a single command. It should look like this when you are finished:
Save and close the file when you are done.
We are going to have to manually create the symbolic link for the
mailman
Apache file. We can do that by typing:
We can then enable that by typing:
If you plan on creating sites that host Ruby files, you should comment out the processing of
.rb
files in the mime.types
file. ISPConfig will handle this itself:
Save and close the file when you are done.
Now, we can restart Apache to implement our changes:
Miscellaneous Configuration
We still need to edit a few more pieces of the system.
![Installation Installation](/uploads/1/2/7/5/127522007/431112347.png)
Since ISPConfig is often used to subdivide server space for reselling purposes, providing clients with FTP access is often a requirement. We’ve already installed the necessary software, but we need to make some adjustments.
Start by editing the FTP server’s configuration:
We need to make sure our FTP users are confined to a chroot environment so that they do not interfere with the rest of the system. We can do this by changing the
VIRTUALCHROOT
setting to true
:
Since FTP is inherently insecure we should at least protect it with TLS encryption. We can set this up by creating a flag file that simply contains the
1
character:
Now, we need to create a self-signed certificate that the process can use. We can do this by calling:
This certificate will be valid for one year. You will have to answer some prompts. Fill them out with your information. The
Common Name
is perhaps the most important part.
We need to lock down the key file afterwards by typing:
When all of this is done, we can restart the service:
This will allow our FTP daemon to use encryption.
One of the reasons we are getting FTP set up on this system is because we have installed a monitoring daemon called
awstats
that is configured to expect the existence of this service.
ISPConfig will call
awstats
as necessary, so it does not need to rely on the cron
job that is usually used to poll the server. We can remove this by typing:
Install ISPConfig
We are finally ready to install the actual ISPConfig software.
We can do that by downloading the latest stable version onto our server. As of this writing, the latest stable version that has a direct link available is version 3. We will update the installation once we get everything installed.
Now, you should change to your home directory and download the project using
wget
:
After the download is complete, extract the directory structure and move into the
install
subdirectory of the extracted folder structure:
Now, we are ready to install the software. Do so by typing:
You will be taken through a very lengthy installation processes.
Luckily, the only detail you actually need to enter is your MySQL root password! For every other entry, just press “ENTER” to use the default value and skip ahead.
When you are finished with the installation, go ahead and update to the latest version by typing:
Again, just press “ENTER” to use the defaults for each command.
When you are finished, you can visit your ISPConfig service by visiting your domain name followed by
:8080
in your web browser:
You will get an SSL warning since we are using self-signed certificates:
Click “proceed” or “continue” to accept the certificate.
You will be taken to a login screen.
The default username and password are both
admin
:
Enter those values and you will be taken to the ISPConfig3 interface:
Once you get here, you should change the
admin
user’s password by clicking on the “System” button, then clicking the “CP Users” link under the “User Management” category of the left-hand navigation menu.
Click on the
admin
user account in the main window. You will have the option to change the password for the admin user on this page.
Conclusion
You should now have your ISPConfig panel installed and configured. You should be able to manage domains, mail, and accounts from within this interface.
![](/uploads/1/2/7/5/127522007/544765692.jpg)