更新时间:2023-03-22 09:25:59浏览次数:949+次
本文介绍在CentOS 8、CentOS 7 Linux系统上安装和配置PostfixAdmin的方法,帮助用户使用PostfixAdmin配置邮件服务器。系统要求也很简单,需要CentOS系统上具有sudo权限的用户,同时,确保您的系统是最新的,并且安装了所需的软件包,可运行sudo yum -y update和sudo yum install vim wget命令。
在CentOS上安装和使用PostfixAdmin配置邮件服务器的方法
1、在CentOS上安装LEMP Stack
LEMP服务器代表Linux、Nginx、MariaDB和PHP,它们都可以使用以下命令安装在CentOS上。首先,将EPEL存储库添加到您的系统中:
sudo yum install epel-release
在CentOS上安装Nginx PHP和MariaDB:
sudo yum install nginx mariadb-server mariadb php php-mysqlnd php-fpm php-opcache php-cli php-gd php-curl
由于PHP默认使用用户apache运行,因此我们将更改为Nginx,如下所示:
sudo vim /etc/php-fpm.d/www.conf
按如下方式编辑文件:
user = nginx
group = nginx
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
现在将正确的权限分配给/var/lib/php目录,如下所示:
sudo chown -R nginx:nginx /var/lib/php
重新启动并启用PHP FPM以在启动时运行:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
启动并启用Nginx网络服务器:
sudo systemctl enable nginx
sudo systemctl start nginx
2、在CentOS上为PostfixAdmin配置MariaDB
在安装了MariaDB之后,它仍然不安全。因此,我们需要通过如下设置根密码来加强它。首先,启动并启用MariaDB:
sudo systemctl enable --now mariadb.service
然后继续强化:
sudo mysql_secure_installation
然后按要求操作即可,会要求设置root密码、删除匿名用户、不允许root远程登录、删除测试数据库并访问它及立即重新加载权限表。
登录MariaDB shell并创建一个Postfix用户和数据库:
mysql -u root -p
输入设置的密码,然后按如下操作:
CREATE DATABASE postfixadmin;
GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'%' IDENTIFIED BY 'StrongDBPassw0rd';
FLUSH PRIVILEGES;
exit
3、在CentOS上安装PostfixAdmin
我们将从官方PostfixAdmin下载页面下载PostfixAdmin,地址在https://sourceforge.net/projects/postfixadmin/files/。您也可以使用Wget来提取存档,如下所示:
wget https://sourceforge.net/projects/postfixadmin/files/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz -O PostfixAdmin-tar.gz
提取下载的文件:
tar -xvf PostfixAdmin-tar.gz
现在将提取的文件移动到/var/www/html/目录中:
sudo mv postfixadmin-postfixadmin-* /var/www/html/postfixadmin
为PostfixAdmin安装创建一个目录:
sudo mkdir /var/www/html/postfixadmin/templates_c
将目录的所有权更改为Nginx,如下所示:
sudo chown -R nginx:nginx /var/www/html/postfixadmin/
现在创建邮件配置文件并进行以下调整:
sudo vim /var/www/html/postfixadmin/config.local.php
按如下方式编辑文件:
<?php
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'StrongDBPassw0rd';
$CONF['database_name'] = 'postfixadmin';
$CONF['default_aliases'] = array (
'abuse' => 'abuse@example.com',
'hostmaster' => 'hostmaster@example.com',
'postmaster' => 'postmaster@example.com',
'webmaster' => 'webmaster@example.com'
);
$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';
$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';
$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>
为PostfixAdmin数据库创建架构:
sudo -u nginx php /var/www/html/postfixadmin/public/upgrade.php
样本输出:
updating to version 1 (MySQL)...done
updating to version 2 (MySQL)...done
updating to version 3 (MySQL)...done
updating to version 4 (MySQL)...done
updating to version 5 (MySQL)...done
updating to version 79 (MySQL)...done
updating to version 81 (MySQL)...done
updating to version 1839 (all databases)...done
updating to version 1840 (MySQL and PgSQL)...done
updating to version 1842 (all databases)...done
updating to version 1843 (all databases)...done
使用命令为PostfixAdmin创建一个超级管理员帐户:
sudo bash /var/www/html/postfixadmin/scripts/postfixadmin-cli admin add
样本输出:
Welcome to Postfixadmin-CLI v0.3
Admin:
> admin@example.com
Password:
> Passw0rd12
Password (again):
> Passw0rd12
Super admin:
(Super admins have access to all domains, can manage domains and admin accounts.) (y/n)
> y
Domain:
> example.com
Active: (y/n)
> y
The admin admin@example.com has been added!
4、在CentOS上为PostfixAdmin配置Nginx
接下来,我们将为PostfixAdmin创建一个virtual主机文件:
sudo vim /etc/nginx/conf.d/postfixadmin.conf
在文件中,添加以下行,并适当替换。如果您没有FQDN,请将mail.example.com替换为PostfixAdmin的有效域或子域:
server {
listen 80;
root /var/www/html/postfixadmin/public;
index index.html index.htm index.php;
server_name mail.example.com;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
}
location / {
try_files $uri $uri/ =404;
}
}
注:mail.example.com是为PostfixAdmin配置的子域的名称。
验证nginx配置语法:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新启动Nginx:
sudo systemctl restart nginx
检查服务的状态:
$ systemctl status nginx
nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
允许HTTP服务通过防火墙:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
将SELinux设置为允许模式:
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
5、访问PostfixAdmin Web界面
在操作完以上配置后,请使用URL访问首选浏览器上的PostfixAdmin web界面,地址格式为http://mail.example.com,您将被授予此登录窗口。
使用超级管理员帐户的凭据登录,如下所示:
成功登录后,会出现PostfixAdmin面板,在面板上,您可以执行一些活动,如添加别名、添加邮箱、发送邮件等:
我们将执行的第一个活动是添加域。这是通过点击域列表,然后点击新域来完成的,如下所示:
输入您的有效域名,然后单击添加域。在域列表中,您的新域应显示为如图所示:
在虚拟列表下,您可以添加别名、邮箱和别名域。按以下方式添加邮箱:
有一个使用PostfixAdmin发送电子邮件的选项:
最后,点击最右边的查看日志就可以查看PostfixAdmin中的日志了,并按如下方式查看活动:
6、在CentOS上安装Postfix
随着邮件服务器的设置,我们可以选择安装上Postfix,这是一种免费的开源邮件传输代理(MTA),可以通过互联网将电子邮件从一台服务器路由和传递到另一台服务器。
Postfix可以用于处理从我们的邮件服务器发送和递送电子邮件。由于它在默认的CentOS存储库中可用,请使用命令进行安装:
sudo yum install postfix
编辑postfix配置文件:
sudo vi /etc/postfix/main.cf
在文件中,添加您的主机名和域,如下所示:
##Add your hostname
myhostname = smtp.example.com
##Uncomment the lines below
mydomain = example.com
myorigin = $mydomain
##Edit the lines below(to all)
inet_interfaces = all
inet_protocols = all
#Comment the line as below
# mydestination = $myhostname, localhost.$mydomain, localhost,
##Add your IP range.
mynetworks = 192.168.100.0/24, 127.0.0.0/8
##Uncomment the line below.
home_mailbox = Maildir/
注:比如如果配置的是鸿蒙系统之家,则将example.com替换为hmxthome.com。在以上文件中,请用户自行将example.com替换为您的域名,包括192.168.100.0/24以及您的IP范围。
重新启动并启用Postfix:
sudo systemctl restart postfix
sudo systemctl enable postfix
允许所需的Postfix端口通过防火墙:
sudo firewall-cmd --permanent --add-port=25/tcp
sudo firewall-cmd --permanent --add-port=587/tcp
sudo firewall-cmd --reload
现在,您可以使用Postfix从设置邮件服务器发送和接收电子邮件。使用命令测试Postfix:
mail -s “Local Outbound SMTP Test” test@example.com < /dev/null
至此,在CentOS系统上安装Postfix完成。同时,本文的安装和使用PostfixAdmin配置邮件服务器内容到这里就全部完成了。