如何在 Ubuntu 上配置和设置 Postfix 邮件传输代理
在本文中,我们将学习如何配置和安装最流行的开源 MTA(邮件传输代理)Postfix,它可以用于路由 Linux 系统的电子邮件传递。根据行业使用情况和估计,目前大多数公共邮件服务器都在运行 Postfix。
在 Linux 上安装软件
由于 Postfix 是 Ubuntu 存储库中的默认软件包,因此我们可以使用“apt-get”命令轻松安装它。在安装软件包之前,我们需要更新系统。我们可以使用以下命令来执行此操作。
这是一个示例演示,我使用了 hanuman.com 作为域名。
$ sudo apt-get update $ sudo apt-get install postfix sudo apt-get install postfix Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libntdb1 python-ntdb Use 'apt-get autoremove' to remove them. Suggested packages: procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin dovecot-common postfix-cdb postfix-doc The following NEW packages will be installed: postfix0 upgraded, 1 newly installed, 0 to remove and 41 not upgraded. Need to get 1,084 kB of archives. After this operation, 3,609 kB of additional disk space will be used. Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main postfix amd64 2.11.0-1ubuntu1 [1,084 kB] Fetched 1,084 kB in 5s (196 kB/s) Preconfiguring packages ... Selecting previously unselected package postfix. (Reading database ... 201768 files and directories currently installed.) Preparing to unpack .../postfix_2.11.0-1ubuntu1_amd64.deb ... Unpacking postfix (2.11.0-1ubuntu1) ... Processing triggers for ufw (0.34~rc-0ubuntu2) ... Processing triggers for ureadahead (0.100.0-16) ... ureadahead will be reprofiled on next reboot Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Setting up postfix (2.11.0-1ubuntu1) ... Adding group `postfix' (GID 126) ... Done. Adding system user `postfix' (UID 118) ... Adding new user `postfix' (UID 118) with group `postfix' ... Not creating home directory `/var/spool/postfix'. Creating /etc/postfix/dynamicmaps.cf Adding tcp map entry to /etc/postfix/dynamicmaps.cf Adding sqlite map entry to /etc/postfix/dynamicmaps.cf Adding group `postdrop' (GID 127) ... Done.
在这里,它会要求您输入要在服务器上配置的邮件配置类型。在此演示中,我们将选择适合环境的“internet site”。
接下来,我们将提供 FQDN(完全限定域名)。在此示例中,我们使用“hanuman.com”作为服务器 FQDN 名称,但实际上我们通常会将其用作 domain.com。我们需要以点结尾 FQDN,但在 Postfix 中我们可以省略。
setting myhostname: hanuman.com setting alias maps setting alias database mailname is not a fully qualified domain name. Not changing /etc/mailname. setting destinations: mailserver, hanuman.com, localhost.localdomain, localhost setting relayhost: setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 setting mailbox_size_limit: 0 setting recipient_delimiter: + setting inet_interfaces: all setting inet_protocols: all /etc/aliases does not exist, creating it. WARNING: /etc/aliases exists, but does not have a root alias. Postfix is now set up with a default configuration. If you need to make changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see postconf(1). After modifying main.cf, be sure to run '/etc/init.d/postfix reload'. Running newaliases * Stopping Postfix Mail Transport Agent postfix [ OK ] * Starting Postfix Mail Transport Agent postfix [ OK ] Processing triggers for ufw (0.34~rc-0ubuntu2) ... Processing triggers for ureadahead (0.100.0-16) ... Processing triggers for libc-bin (2.19-0ubuntu6.8) ...
配置 Postfix
现在,我们需要在 Postifx 主配置文件中更改一些基本设置。
$ sudo nano /etc/postfix/main.cf
在文件中搜索字符串“myhostname”。默认情况下,“myhostname”设置为 localhost,我们需要将其添加到 FQDN 名称中。
Myhostname = hanuman.com
如果我们想要配置需要转发到另一个域的特定电子邮件,或者我们希望传递到我们没有与系统帐户一对一映射的地址,那么我们可以删除 alias_maps 并将其替换为 virtual_alias_maps。
Virtual_alias_maps = has:/etc/postfix/virtual
正如我们在上面讨论的,“mydestination”参数已使用我们在安装过程中输入的 FQDN 进行修改。这包含 Postfix 安装负责的任何域。
我们需要指定“mynetworks”参数,该参数定义能够使用此邮件服务器的计算机。通常,我们将其设置为仅限本地 (127.0.0.0/8),我们可以通过允许其他主机使用和发送来修改它,但这可能是一个漏洞。
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
我们还可以指定我们希望创建的电子邮件,以及左侧要将电子邮件传递到的用户名,您可以在下面的示例中看到这一点。
[email protected] admin
[email protected] 是要使用的电子邮件 ID,admin 是允许您在此服务器上发送电子邮件的用户名。
为了检查电子邮件并在演示中,我们正在创建一个电子邮件地址并将它们路由到同一帐户以进行测试。我们可以将此地址设置为使用逗号分隔的列表转发多个用户帐户。
[email protected] adminuser [email protected] adminuser [email protected] root [email protected] adminuser,root
保存文件并使用以下命令实现我们的映射 -
$ sudo postmap /etc/postfix/virtual
测试 Postfix 配置
我们可以测试服务器是否可以接收和路由电子邮件。我们可以通过将电子邮件发送到我们在虚拟帐户中提到的一个电子邮件地址来测试这一点。
我们将获得传递到与用户名匹配的文件的邮件,该文件位于 /var/mail 文件夹中。
默认情况下,邮件程序未安装在 Ubuntu 上,我们可以使用以下命令安装它
$ sudo apt-get install mailutils
我们可以使用命令提示符中的“mail”命令检查电子邮件
$ echo "Test email " | mail -s "Test email " [email protected]
通过使用上述配置和设置,我们将在 Ubuntu 服务器上拥有基本电子邮件功能。确保服务器安全并确保 Postfix 未配置为开放中继邮件服务器也很重要,因为它是攻击者最常攻击的目标。