“您专属的服务器(几乎如此)”资源
在 2006 年 12 月刊 George Belotsky 的文章 “您专属的服务器(几乎如此)” 中,部分代码格式不正确。有关文章的更正版本,请参阅: /article/8337
此页面包含文章的更新,以及运行 VPS 的一些重要安全信息。
再次感谢 Sean Reifschneider、Evelyn Mitchell 和 Tummy.com 团队的其他成员,感谢他们非常有用的建议,并允许我再次使用他们的设备来测试此处提出的更新。
虽然您仍然可以获得基于 Fedora Core 3(文章中使用的系统)的 VPS,但您可能需要更新的版本。例如,CentOS 4.4(源自 Red Hat Enterprise Linux)仅需要对文章文本中的说明进行少量修改。CentOS 项目主页位于 www.centos.org。
以下注释更新了从 Fedora Core 3 到 CentOS 4.4 的说明。Tummy.com 提供这两种变体以及其他几种变体,包括 Ubuntu 和 Debian。
当您使用以下命令配置防火墙时system-config-securitylevel-tui,基于文本的 GUI 可能无法在您的终端中正确渲染。如果这使您难以使用该应用程序,请尝试使用 UTF-8 字符编码运行终端程序。
例如,xterm -u8应该启动一个 UTF-8xterm。在gnome-terminal中,从菜单栏中选择 “终端”→“设置字符编码”→“Unicode (UTF-8)” 以启用 UTF-8。
您将需要更新列表 1 的最后两行,因为 Postfix 邮件服务器版本已更改。以下是新代码。
sample_directory = /usr/share/doc/postfix-2.2.10/samples readme_directory = /usr/share/doc/postfix-2.2.10/README_FILES
请注意,自 Postfix 2.1 版本以来,sample_directory 参数已过时。
当通过 telnet 连接到端口 25 测试您的邮件服务器时,您可能会发现它被本地 ISP 阻止。许多 DSL 和有线电视提供商现在都这样做。
配置 Postfix 非常简单,使其除了端口 25 之外,还监听非标准端口,例如 10025。编辑文件 /etc/postfix/master.cf。请注意,这不是您在列表 1 中使用的 main.cf 文件。在顶部附近,您会找到以下行
# ======================================================================= # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ======================================================================= smtp inet n - n - - smtpd
在 “smtp” 行之后添加以下行。
10025 inet n - n - - smtpd
接下来,重启 Postfix/etc/init.d/postfix restart.
最后,重新运行文章中描述的system-config-securitylevel-tui实用程序。在 “自定义” 屏幕上,将 10025 添加到 “其他端口” 文本框中。如果此文本框中还有其他条目,请滚动到最后一个条目,添加一个空格,然后输入新的附加条目。“确定” 您的更改并重启 iptables,如文章中所述。
现在,您可以从您的工作站通过 telnet 连接到 VPS 上的端口 10025 而不是端口 25,以执行文章中描述的测试。发送这些手动生成的测试邮件后,请记住检查接收端的垃圾邮件文件夹。不寻常的格式,例如缺少主题,可能会导致这些电子邮件被标记为垃圾邮件。
说到垃圾邮件,问题越来越严重,您可能也知道。文章中的列表 1 使用luser_relay将未知收件人的邮件传递到系统上的特定用户。这非常方便,因为您可以随意创建电子邮件地址,它们无需任何配置更改即可工作。
不幸的是,luser_relay可能会使您遭受更多的垃圾邮件。如果发生这种情况,您将需要将所有合法的地址添加到 /etc/aliases 并注释掉luser_relay。文章文本描述了如何使用 /etc/aliases。
在设置 Dovecot 以提供 POP3 和 IMAP 服务时,较新的配置文件可能看起来略有不同。
在 CentOS 4.4 中,默认配置注释掉了 protocols 行。它也与文章文本中出现的内容不同
#protocols = imap imaps
不要被这些细微的差异所迷惑;只需按照文章中的描述添加代码即可protocols = pop3 imap在这种情况下。Dovecot 仍然可以正常工作。
没有实质性的更改,只有对话框在更高版本的 Mozilla Thunderbird 中可能看起来略有不同。SMTP 服务器对话框中还有一个 “描述” 字段,您可以将其留空。
如果您使用的是文章中描述的基于 mutt 的解决方案,则无需修改。
在配置 SquirrelMail 时,Web 服务器可能已经在运行。在这种情况下,按照文章中的描述启动它将无效。
尝试重启 Web 服务器,特别是当您在浏览器中打开 SquirrelMail 页面时遇到问题时
/etc/init.d/httpd restart
即使服务器未运行,您也可以使用 restart 命令。在这种情况下,停止服务器的尝试将失败,但随后的启动操作将正常进行。
似乎从 2004 年末开始,在许多 IP 地址上查找 SSH 访问的极其广泛的互联网扫描变得普遍。以下是一些对该问题的深刻描述和几种解决方案
您可以快速实施的一个相对简单的更改是将您的 SSH 守护程序 sshd 移动到非标准端口。从理论安全角度来看,这种措施虽然很弱,但目前对于阻止不专门针对您系统的通用 SSH 扫描非常有效。
请按给定的顺序仔细执行以下步骤
修改您的防火墙设置,以允许在非标准端口(例如 2222)上进行访问。
重启 iptables/etc/init.d/iptables restart.
将指令 “Port 2222” 添加到 /etc/ssh/sshd_config。
重启 sshd/etc/init.d/sshd restart。不要从服务器注销。如果您无法执行下面的步骤 5,您仍然可以从原始 SSH 会话中仔细检查配置并进行更改。当然,如果您的 VPS 托管公司应该在您完全被锁定时提供帮助。
打开另一个终端,并使用以下命令登录到您的 VPSssh -p 2222 root@MY.VPS.IP.ADDRESS。请注意,从现在开始,当您使用 SSH 访问您的 VPS 时,您将始终需要指定此非标准端口号。或者,您可以编辑主目录中的 .ssh/config 文件,并在那里配置非标准端口 - 有关详细信息,请参阅 SSH 文档。如果此文件当前不存在,您可以创建它。
可选步骤。再次修改您的防火墙设置,并禁用端口 22 上的 SSH 访问。如果您正在使用system-config-securitylevel-tui,这可以通过取消选中 “自定义” 屏幕上的 “SSH” 复选框来完成。
Postfix 主页 www.postfix.org 包含有关 Postfix MTA 的大量信息。您还可以在 www.onlamp.com/pub/a/bsd/2003/08/21/postfix.html 阅读一篇关于 Postfix 的出色介绍。请注意,本文涵盖了服务器的早期版本,因此与当前版本存在一些配置差异。
最后,维基百科在 en.wikipedia.org/wiki/Mail_transfer_agent 上对电子邮件术语进行了简短但非常深刻的描述。