如何在 CentOS 8 服务器上安装 ISP Config 3.2?
本教程将介绍在 CentOS 8(64 位)服务器上安装 ISPConfig 3.2。ISPConfig 是一个网络托管控制面板,允许您通过网络浏览器配置以下服务:Apache 网络服务器、PHP、Postfix 邮件服务器、MySQL、BIND 名称服务器、PureFTPd、SpamAssassin、ClamAV、Mailman 等等。
1 要求
2 初步说明
3 准备服务器
4 启用附加存储库并安装一些软件
5 配额
6 安装 Apache、PHP、MySQL 和 phpMyAdmin
7 安装 Dovecot
8 安装后缀
9 安装 Getmail
10 设置 MySQL 密码并配置 phpMyAdmin
11 安装 Amavisd-new、SpamAssassin、ClamAV 和 Postgrey
12 使用 mod_php、mod_fcgi/PHP、PHP-FPM 安装 Apache
13 mod_python的安装
14 安装 PureFTPd
15 安装绑定
16 安装 AWStats
17 安装Jailkit
18 安装 Fail2Ban
19 安装rkhunter
20 安装mailman
21 安装 Roundcube 网络邮件
22 安装ISPConfig 3.2
23 第一次 ISPConfig 登录
23.1 ISPConfig 3 手册
24 下载为虚拟机
1 要求
要安装这样的系统,您将需要以下内容:
Centos 8 最小服务器系统。这可以是我们的Centos 8 最小服务器教程中描述的从头开始安装的服务器,也可以是来自安装了最小 Centos 8 设置的托管公司的虚拟服务器或根服务器。
快速的互联网连接。
2 初步说明
在本教程中,我使用主机名m和 IP 地址
和网关
。这些设置可能因您而异。
3 准备服务器
设置键盘布局
如果服务器的键盘布局与您的键盘不匹配,您可以使用 localectl 命令切换到正确的键盘(在我的情况下为德语键盘布局的“de”:
要获取所有可用键盘映射的列表,请运行:
我想在本教程的最后安装 ISPConfig,ISPConfig 附带了 Bastille 防火墙脚本,我将用作防火墙,因此我现在禁用默认的 CentOS 防火墙。当然,您可以随意打开 CentOS 防火墙并根据您的需要进行配置(但是您以后不应使用任何其他防火墙,因为它很可能会干扰 CentOS 防火墙)。
停止和禁用 CentOS 防火墙。在这里出现错误是可以的,这只是表明没有安装防火墙。
然后你应该检查防火墙是否真的被禁用了,为此,请运行以下命令:
输出应如下所示:
或者使用 firewall-cmd 命令:
现在我将安装网络配置编辑器和基于 shell 的编辑器“nano”,我将在接下来的步骤中使用它们来编辑配置文件:
如果您在安装过程中没有配置网卡,您现在可以进行配置。

选择您的网络接口:

然后填写您的网络详细信息 - 禁用 DHCP 并填写静态 IP 地址、网络掩码、您的网关和一两个名称服务器,然后点击Ok:

接下来选择确定以确认您在网络设置中所做的更改

和Quit关闭 nmtui 网络配置工具。

现在检查安装程序是否正确获取了您的 IP 地址:
如果你的网卡没有显示在那里,那么它不会在启动时启用,在这种情况下,打开文件/etc/sysconfig/network-scripts/ifcfg-eth0
并将 ONBOOT 设置为是:
并重新启动服务器。
检查您的/etc/resolv.conf是否列出了您之前配置的所有名称服务器:
如果缺少名称服务器,请运行
并再次添加缺少的名称服务器。
现在,进入配置...
调整 /etc/hosts 和 /etc/hostname
接下来,我们将编辑/etc/hosts。让它看起来像这样:
在 /etc/hostname 文件中设置主机名。该文件应包含完全限定的域名(例如在我的例子中是 server1.example.com),而不仅仅是像“server1”这样的短名称。使用 nano 编辑器打开文件:
并在文件中设置主机名。
保存文件并退出nano。
将 SELinux 设置为宽松
SELinux 是 CentOS 的安全扩展,应该提供扩展的安全性。ISPConfig 不附带 SELinux 规则集,因此我将其设置为 permissive(如果您想稍后安装 ISPConfig,这是必须的)。
编辑/etc/selinux/config并设置SELINUX=permissive:
之后我们必须重新启动系统:
4 启用附加存储库并安装一些软件
首先,我们导入软件包的 GPG 密钥:
然后我们在 CentOS 系统上启用 EPEL 存储库,因为我们将在本教程中安装的许多软件包在官方 CentOS 8 存储库中不可用:
激活Power Tools:
然后我们更新系统上现有的包:
现在我们安装一些稍后需要的软件包:
5 配额
(如果您选择了与我不同的分区方案,则必须调整本章,以便配额适用于您需要的分区。)
要安装配额,我们运行以下命令:
现在我们检查是否已为存储网站 (/var/www) 和 Maildir 数据 (var/vmail) 的文件系统启用配额。在这个示例设置中,我有一个大的根分区,所以我搜索“/”:
如果您有单独的 /var 分区,请使用:
反而。如果该行包含单词“ noquota ”,则继续执行以下步骤以启用配额。
在 /(根)分区上启用配额
通常您会在 /etc/fstab 文件中启用配额,但如果文件系统是根文件系统“/”,则必须通过 Linux 内核的引导参数启用配额。
编辑 grub 配置文件:
搜索以GRUB_CMDLINE_LINUX开头的行,并将rootflags=uquota,gquota添加到命令行参数,使结果行如下所示:
并通过运行以下命令应用更改。
并重新启动服务器。
现在检查配额是否启用:
当配额处于活动状态时,我们可以在挂载选项列表中看到“ usrquota,grpquota ”。
在单独的 /var 分区上启用配额
如果您有单独的 /var 分区,请编辑/etc/fstab并将,uquota,gquota添加到/分区(/dev/mApper/centos-var):
然后运行
启用配额。当您收到没有启用配额的分区的错误时,请在继续之前重新启动服务器。
6 安装 Apache、PHP、MySQL 和 phpMyAdmin
启用 Remi 存储库以获取更新的 PHP 版本(当前为 PHP 7.4):
我们可以使用一个命令安装所需的软件包:
为保证服务器不被HTTPOXY 漏洞攻击,我们将全局禁用apache中的HTTP_PROXY header。
在 httpd.conf 文件末尾添加 apache 头规则:
并重新启动 httpd 以应用配置更改。
安装 phpMyAdmin:
可选:更改 Apache MPM 模块
CentOS 8 默认使用 Apache MPM 事件模块,这在一方面是好的,因为它允许您使用 HTTP/2 协议。另一方面,它不允许您使用 apache mod_php 模块。一般来说,今天应该使用 PHP-FPM 作为默认设置,ISPConfig 支持这一点。如果出于兼容性原因需要旧的 mod_php 模式,那么您可以像这样切换 Apache MPM:
在 MPM 事件行前面添加一个 # 使其看起来像这样:
然后从 MPM Prefork 行中删除 # in,如下所示:
然后重新启动 httpd 以应用配置更改。
7 安装 Dovecot
Dovecot 可以安装如下:
创建一个空的 dovecot-sql.conf 文件并创建符号链接:
现在创建系统启动链接并启动 Dovecot:
8 安装后缀
Postfix可以安装如下:
接下来,在 Postfix 中打开 TLS/SSL 和提交端口:
取消对提交 和 smtps 部分的注释 如下,并在必要时添加行,以便 master.cf 文件的这一部分看起来与下面的完全一样。 重要提示: 删除以 smtps 和提交开头的行前面的 #,而不仅仅是从这些行之后的 -o 行中删除!
然后关闭 Sendmail 并启动 Postfix 和 MariaDB (MySQL):
我们禁用 sendmail 以确保它不会启动,以防它安装在您的服务器上。所以错误消息“无法发出方法调用:未加载单元 sendmail.service”。可以忽略。
9 安装 Getmail
Getmail可以按如下方式安装:
10 设置 MySQL 密码并配置 phpMyAdmin
为 MySQL 根帐户设置密码:
现在我们配置phpMyAdmin。创建这个 phpMyAdmin 配置文件:
将此内容添加到文件中:
接下来,我们将 phpMyAdmin 中的身份验证从cookie更改为http:
然后我们为Apache创建系统启动链接并启动它:
现在,您可以将浏览器定向到http://server1.example.com/phpmyadmin/或http://192.168.0.100/phpmyadmin/并使用用户名root和新的 MySQL 根密码登录。
11 安装 Amavisd-new、SpamAssassin、ClamAV 和 Postgrey
要安装 amavisd-new、SpamAssassin 和 ClamAV,请运行以下命令:
然后我们启动freshclam、amavisd和clamd.amavisd:
在下一步中,我们配置 postgrey。在编辑器中打开文件 /etc/sysconfig/postgrey:
并更改行:
到
保存文件并重启 postgrey:
要配置 amavisd,请编辑文件 /etc/clamd.d/amavisd.conf:
并更改行:
到
保存更改的配置文件并重新启动 ClamAV:
现在我们必须为 freshclam 服务创建一个系统单元。创建一个新文件/usr/lib/systemd/system/freshclam.service:
并在该文件中输入以下内容:
保存文件,然后启用并启动服务。
12 使用 mod_php、mod_fcgi/PHP、PHP-FPM 安装 Apache
ISPConfig 3 允许您在每个网站的基础上使用 mod_php、mod_fcgi/PHP、cgi/PHP 和 PHP-FPM。
我们可以使用 mod_php、mod_fcgid 和 PHP 安装 Apache2,如下所示:
接下来,我们打开/etc/php.ini ...
...并更改错误报告(以便不再显示通知),设置时区并取消注释cgi.fix_pathinfo=1:
启用 httpd 和 PHP-FPM 以在启动时启动并启动 PHP-FPM 服务。
最后,我们重启Apache:
现在我们将添加对 Let's encrypt 的支持。ISPConfig 现在使用 acme.sh 作为 Let's Encrypt 客户端。使用以下命令安装 acme.sh:
13 mod_python的安装
Apache 模块 mod_python 不能作为 RPM 包使用,因此我们将从源代码编译它。第一步是安装python开发文件并将当前的mod_python版本下载为.tar.gz文件
然后配置和编译模块。
编译模块中存在一个错误,该错误将导致安装失败并显示错误“ version =”fatal: Not a git repository (or any of the parent directory): .git ”。要解决该问题,请运行此 sed 命令(命令是一行!)。
然后使用此命令安装模块。
并在 Apache 中启用该模块:
14 安装 PureFTPd
可以使用以下命令安装 PureFTPd:
然后创建系统启动链接并启动 PureFTPd:
现在我们配置 PureFTPd 以允许 FTP 和 TLS 会话。FTP 是一种非常不安全的协议,因为所有密码和所有数据都以明文形式传输。通过使用 TLS,可以对整个通信进行加密,从而使 FTP 更加安全。
TLS 需要 OpenSSL;要安装 OpenSSL,我们只需运行:
打开/etc/pure-ftpd/pure-ftpd.conf ...
如果要允许 FTP 和 TLS 会话,请 通过删除 TLS 行前面的 #将TLS设置为1。强烈建议启用 TLS。
为了使用 TLS,我们必须创建一个 SSL 证书。我在/etc/ssl/private/ 中创建它,因此我首先创建该目录:
之后,我们可以生成 SSL 证书,如下所示:
更改 SSL 证书的权限:
创建一个 DHParam 文件:
最后,重启 PureFTPd:
而已。您现在可以尝试使用您的 FTP 客户端进行连接;但是,您应该将 FTP 客户端配置为使用 TLS。
15 安装绑定
我们可以按如下方式安装 BIND:
备份现有的/etc/named.conf文件并创建一个新文件,如下所示:
创建文件/etc/named.conf.local被包括在年底的/etc/named.conf(/etc/named.conf.local稍后会得到由ISPConfig如果你创建ISPConfig DNS区域填充):
然后我们创建启动链接并启动 BIND:
16 安装 AWStats
AWStats 可以按如下方式安装:
CentOS 8 不再提供替代的网络统计应用程序“webalizer”,因此您将只能使用 AWStats。
17 安装Jailkit
Jailkit 用于 chroot SSH 用户和 cronjobs。它可以安装如下:
18 安装 Fail2Ban
这是可选的但建议使用,因为 ISPConfig 监视器会尝试显示日志。
接下来我们创建 /etc/fail2ban/jail.local 文件并启用对 ssh、电子邮件和 ftp 服务的监控。
在 jail.local 文件中添加以下内容:
然后为fail2ban创建系统启动链接并启动它:
19 安装rkhunter
rkhunter 可以如下安装:
20 安装mailman
如果您喜欢在服务器上使用 Mailman 管理邮件列表,请立即安装 mailman。ISPConfig 支持 Mailman,因此您可以稍后通过 ISPConfig 创建新的邮件列表。
在我们可以启动 Mailman 之前,必须创建一个名为mailman 的邮件列表:
之后打开/etc/aliases ...
...并添加以下几行:
运行:
之后并重新启动Postfix:
现在打开 Mailman Apache 配置文件/etc/httpd/conf.d/mailman.conf ...
...并添加行ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/。注释掉Alias /pipermail/ /var/lib/mailman/archives/public/并添加一行Alias /pipermail /var/lib/mailman/archives/public/:
重启阿帕奇:
为 Mailman 创建系统启动链接并启动它:
安装 ISPConfig 3 后,您可以按如下方式访问 Mailman:
您可以为所有 Apache 虚拟主机使用别名/cgi-bin/mailman(请注意,必须为所有要访问 Mailman 的虚拟主机禁用 suExec 和 CGI!),这意味着您可以访问 Mailman 管理界面以获取列表在,邮件列表用户的网页可以在
.
在 下,您可以找到邮件列表档案。
21 安装 Roundcube 网络邮件
要安装 RoundCube webmail 客户端,请使用 wget 将最新版本下载到 /tmp 文件夹:
解压 tar.gz 存档并将 RoundCube 源移动到 /usr/share/roundcubemail
使用 nano 编辑器创建一个 roundcubemail.conf 配置文件:
并将以下内容添加到该文件中:
重启阿帕奇:
现在我们需要一个 RoundCube 邮件数据库,我们将其初始化如下:
在 MariaDB 提示下使用:
我以 RoundCube 数据库的详细信息为例,出于安全原因,请根据您的选择替换值。
现在我们将在浏览器中安装 RoundCube,地址为

现在创建 config.inc.php 文件:
然后在网络安装程序中按“继续”。在下一页上,按“初始化数据库”按钮。
最后,禁用 Roundecubemail 安装程序。更改 RoundCube config.inc.php 配置文件
并更改行:
到:
Roundcube 现在在您服务器上的别名 /webmail 和 /roundcubemail 下可用:
RoundCube 登录名是您稍后在 ISPConfig 中创建的电子邮件帐户的电子邮件地址和密码。
22 安装ISPConfig 3.2
ISPConfig 安装程序将为您配置所有服务,如 Postfix、Dovecot 等。
您现在还可以让安装程序为 ISPConfig 控制面板创建 SSL 虚拟主机,以便可以使用https://而不是http://访问 ISPConfig 。要实现此目的,只需在看到以下问题时按ENTER 键:。
要安装 ISPConfig 3.2 nightly build,请执行以下操作:
下一步是运行:
这将启动 ISPConfig 3 安装程序。安装程序将为您配置所有服务,如 Postfix、Dovecot 等。
安装程序会自动配置所有底层服务,因此无需手动配置。
23 第一次 ISPConfig 登录
之后您可以在或
下访问 ISPConfig 3 (http或https 取决于您在安装过程中选择的内容)。
使用用户名admin和密码admin登录(首次登录后应更改默认密码):

23.1 ISPConfig 3 手册
为了学习如何使用 ISPConfig 3,我强烈建议您下载 ISPConfig 3 手册。
下载地址:
在 300 多页中,它涵盖了 ISPConfig(管理员、经销商、客户)背后的概念,解释了如何安装和更新 ISPConfig 3,包括 ISPConfig 中所有表单和表单字段的参考以及有效输入的示例,并提供教程用于 ISPConfig 3 中最常见的任务。它还列出了如何使您的服务器更安全,并在最后附有故障排除部分。
24 下载为虚拟机
此设置可作为 ova/ovf 格式(与 VMWare 和 Virtualbox 兼容)的虚拟机下载,供 howtoforge 订阅者使用。
VM 的登录详细信息
root 密码是:howtoforge
ISPConfig“admin”用户的密码是:howtoforge
还有另一个名为“howtoforge”和密码的 shell 用户:howtoforge
请在第一次登录时更改两个密码。
VM 的 IP 地址为