ISPConfig 3

Requirement

Instance Configuration Requirements

Overview:

When setting up your AWS instance, you’ll need to configure a few key options. Here’s a detailed guide on the recommended configurations and selections.

1. Instance Type

The smallest instance type this image runs on is:

  • t3a.small – 2 virtual CPUs and 2 GB memory.
  • t3.small – 2 virtual CPUs and 2 GB memory.

Please note: smaller types such as t3.micro and t3a.micro are not supported. ISPConfig runs a web server, a database, a full mail stack and a virus scanner on the same instance, and together they need more memory than those types have. The installer checks this before it starts, and on an instance that is too small it stops without changing anything. Stop the instance, change its type in the EC2 console, start it again and run the installer.

A t3a.small runs the whole stack, and swap space is added automatically when the instance starts to give it headroom. It suits evaluation and a small number of sites. Here’s a quick reference table to help you decide:

CPU / Memory Suitable for
2 CPU cores / 2 GB Evaluation, and a handful of low-traffic sites and mailboxes
2 CPU cores / 4 GB A small hosting operation in daily use, with mail filtering doing real work
2 CPU cores / 8 GB Dozens of sites and mailboxes, several busy databases
4 CPU cores / 16 GB A production hosting server carrying many clients

Memory is what runs short first, and the virus scanner is usually the reason. ClamAV loads its signature database into memory and rebuilds it as signatures update. If you are running mail for real customers rather than evaluating, 4 GB is a more comfortable starting point than 2 GB.

For more details on different instance types and configurations, refer to the AWS Instance Types documentation.

2. Storage Space

The default allocated storage size for our AMI. You may specify the necessary storage size when launching a new instance or change it after deployment.

  • 30 GB (default)

A hosting server grows on disk in three places at once: customer website files, mailboxes, and the databases behind the sites. Mail is usually the fastest growing of the three, because messages and attachments are kept until a customer deletes them. Allow room for years of accumulation rather than for the first month.

3. Ports Configuration

To ensure smooth operation of your installation, open the inbound ports below. A hosting control panel serves web, mail, FTP and its own interface, so it needs more open ports than a single web application does.

Please note: the database does not need an open port, and must not be given one. MariaDB listens only inside the instance and is reached by your sites locally, and through the panel’s own phpMyAdmin. Opening port 3306 to the internet would expose every customer database on the server, and is not required for anything.

Inbound Ports:

Type Protocol Port Range Source Why
SSH TCP 22 0.0.0.0/0 To run the one-click installer and the panel SSL tool. Restrict this to your own address if you can.
HTTP TCP 80 0.0.0.0/0 Your customers’ websites, and Let’s Encrypt certificate validation.
HTTPS TCP 443 0.0.0.0/0 Your customers’ websites over TLS.
Custom TCP 8080 0.0.0.0/0 The ISPConfig control panel.
Custom TCP 8081 0.0.0.0/0 Webmail and phpMyAdmin. The panel links to both on this port, so with 8081 closed its buttons for them appear to do nothing.
FTP TCP 21 0.0.0.0/0 FTP control connection, for customer file uploads.
Custom TCP 40110-40210 0.0.0.0/0 FTP passive data. Without this range, directory listings hang.
SMTP TCP 25 0.0.0.0/0 Receiving mail from other mail servers.
Custom TCP 587 0.0.0.0/0 Mail submission from your users’ mail clients.
Custom TCP 465 0.0.0.0/0 Mail submission over implicit TLS.
IMAP TCP 143 0.0.0.0/0 Mail clients reading mailboxes.
IMAPS TCP 993 0.0.0.0/0 IMAP over implicit TLS.
POP3 TCP 110 0.0.0.0/0 Mail clients collecting mail.
POP3S TCP 995 0.0.0.0/0 POP3 over implicit TLS.

Deliberately not opened, and why:

  • 3306, the database. Reachable only from inside the instance, as above.
  • 53, DNS. BIND is installed and the panel’s DNS manager works, but the server does not answer queries from the internet as shipped. See the One-Click Installation page if you want to run your own nameservers.
  • 9090, the Cockpit console. Not installed in this image.

Outbound Ports:

Type Protocol Port Range Destination
All traffic All All 0.0.0.0/0

4. Important Notes:

  • Mail sending restrictions. AWS blocks outbound port 25 by default on all EC2 instances. Your server can receive mail immediately, but it cannot send to external addresses until you request removal of the restriction through the AWS Support Center. This is an AWS account setting and cannot be changed from inside the instance.
  • Use an Elastic IP. Without one, your public address changes whenever the instance is stopped and started, which breaks your domains and stops your SSL certificates renewing.
  • Set a reverse DNS record. Receiving mail servers check that your address resolves back to your mail hostname. AWS sets this through the same Support Center request used to lift the port 25 restriction.
CONTENTS