RHEL 8 系统:容器、Web 服务器与邮件服务器配置指南
1. Linux 容器管理
在 RHEL 8 系统中,使用 podman、skopeo 和 buildah 工具,结合 Cockpit 网络界面,可实现 Linux 容器的创建与管理。容器运行后会出现在列表中,通过图 26 - 5 中高亮的按钮,能对容器进行启动、停止、暂停和保存等操作。也可通过命令行来访问和管理容器。
2. RHEL 8 Web 服务器搭建
2.1 配置要求
要搭建自己的网站,需要计算机(或云服务器实例)、操作系统、Web 服务器、域名、名称服务器和 IP 地址。这里假设使用 RHEL 8 操作系统,它支持 Apache Web 服务器。域名可通过域名注册服务进行注册。若在云实例上运行 RHEL 8,提供商分配的 IP 地址会列在服务器概述信息中;若自行托管服务器且互联网服务提供商(ISP)分配了静态 IP 地址,则需使用名称服务器将域名与该地址关联;若没有静态 IP 地址,可使用免费的动态 DNS(DDNS)服务将动态 IP 地址映射到域名。
| 配置要素 | 详情 |
|---|---|
| 计算机或云服务器实例 | 运行 RHEL 8 系统的物理机或云服务 |
| 操作系统 | RHEL 8 |
| Web 服务器 | Apache |
| 域名 | 通过域名注册服务获取 |
| 名称服务器 | 关联域名与 IP 地址 |
| IP 地址 | 静态或动态 |
2.2 安装 Apache Web 服务器包
RHEL 当前版本通常不会默认安装 Apache Web 服务器。可通过以下命令检查服务器是否已安装:
# rpm -q httpd
若输出类似
httpd - 2.4.35 - 6.el8 + 2089 + 57a79027.x86_64
,则表示已安装;若输出 “package httpd is not installed”,则需运行以下命令进行安装:
# dnf install httpd
2.3 配置防火墙
在启动和测试 Apache Web 服务器之前,需修改防火墙以允许服务器与外界通信。默认情况下,HTTP 和 HTTPS 协议分别使用 80 和 443 端口,根据使用的协议,需打开相应端口,并指定面向互联网的网络连接所属的防火墙区域:
# firewall-cmd --permanent --zone=<zone> --add-port=80/tcp
# firewall-cmd --permanent --zone=<zone> --add-port=443/tcp
打开必要端口后,需重新加载防火墙设置:
# firewall-cmd --reload
对于云托管服务器,可能还需在云控制台中为服务器实例启用相应端口,具体操作可参考云提供商的文档。
2.4 端口转发
若托管 Web 服务器的 RHEL 8 系统位于受防火墙保护的网络中,需配置防火墙将 80 和/或 443 端口转发到 Web 服务器系统。不同防火墙和设备的配置机制不同,需查看相关文档进行配置。
2.5 启动 Apache Web 服务器
安装 Apache 服务器并配置好防火墙后,需验证服务器是否运行,必要时启动它。可通过以下命令检查 Apache httpd 服务的状态:
# systemctl status httpd
若上述命令显示 httpd 服务未运行,可使用以下命令启动:
# systemctl start httpd
若希望系统启动时自动启动 Apache httpd 服务,可运行以下命令:
# systemctl enable httpd
2.6 测试 Web 服务器
安装完成后,需验证 Web 服务器是否正常运行。若可访问服务器的桌面环境,可在浏览器地址栏输入
http://127.0.0.1
进行测试;若无法访问桌面环境,可从同一本地网络的其他系统或使用服务器的外部 IP 地址进行访问。
2.7 为域名配置 Apache Web 服务器
接下来需为域名配置 Web 服务器。首先进入
/etc/httpd/conf
目录,编辑
httpd.conf
文件。常见的配置方法是添加虚拟主机条目,例如:
<VirtualHost *:80>
ServerAdmin feedback@myexample.com
ServerName www.myexample.com
DocumentRoot /var/www/myexample
ErrorLog logs/myexample_error_log
CustomLog logs/myexample_access_log combined
</VirtualHost>
需根据实际情况修改
ServerAdmin
、
ServerName
和
DocumentRoot
等设置。创建相应的目录并在其中放置
index.html
文件,最后重启 httpd 服务:
# systemctl restart httpd
通过浏览器使用域名访问网站,验证配置是否生效。
2.8 安全网站基础
目前创建的 Web 服务器和网站使用 HTTP 协议,数据以明文传输,存在安全风险。现代网站通常使用 HTTPS 协议,通过 SSL 或 TLS 建立安全的加密通信,需使用由受信任的证书颁发机构(CA)颁发的证书。
当浏览器连接到安全网站时,服务器会发送 SSL 证书(包含公钥),浏览器验证证书的真实性后,使用公钥加密会话密钥并发送给服务器,服务器使用私钥解密会话密钥,之后双方使用会话密钥加密后续数据传输,直至会话结束。
2.9 为 HTTPS 配置 Apache
默认情况下,Apache 服务器不包含实现安全 HTTPS 网站所需的模块。需先安装
mod_ssl
模块:
# dnf install mod_ssl
安装完成后重启 httpd 服务:
# systemctl restart httpd
使用以下命令检查模块是否已加载:
# apachectl -M | grep ssl_module
2.10 获取 SSL 证书
网站的证书需从证书颁发机构获取,推荐从 Let’s Encrypt 获取免费证书。具体步骤如下:
1. 按照 Let’s Encrypt 网站的步骤下载并安装 Certbot 工具。
2. 运行以下命令生成并安装证书:
# certbot --apache
- 根据提示选择要启用 HTTPS 的域名,Certbot 会进行相关检查并安装证书。
-
Certbot 会创建
httpd - le - ssl.conf文件,其中包含安全虚拟主机条目。 - 最后,Certbot 会询问是否将未来的 HTTP 请求重定向到 HTTPS,建议选择重定向。
安装证书后,可通过
https://www.ssllabs.com/ssltest/analyze.html?d=www.myexample.com
进行测试,若配置成功,SSL Labs 报告会给出较高评分。最后,使用
https://
前缀在浏览器中访问网站,验证连接是否安全。
graph LR
A[开始] --> B[检查 Apache 安装]
B -- 已安装 --> C[配置防火墙]
B -- 未安装 --> D[安装 Apache]
D --> C
C --> E[端口转发配置]
E --> F[启动 Apache]
F --> G[测试 Web 服务器]
G -- 成功 --> H[配置域名]
H --> I[配置 HTTPS]
I --> J[获取 SSL 证书]
J --> K[测试 HTTPS]
K --> L[完成]
3. RHEL 8 Postfix 邮件服务器配置
3.1 邮件系统结构
一个完整的邮件系统由多个组件构成,各组件的简要说明如下:
| 组件名称 | 说明 | 常见示例 |
| ---- | ---- | ---- |
| 邮件用户代理(MUA) | 用户用于编写、发送和阅读邮件的应用程序 | 图形界面:Evolution、Thunderbird、KMail;文本界面:pine、mail |
| 邮件传输代理(MTA) | 负责将邮件从一台计算机传输到另一台计算机的组件 | sendmail、Postfix、Fetchmail、Qmail、Exim |
| 邮件投递代理(MDA) | 在 MTA 和 MUA 之间对邮件进行过滤的组件,通常隐藏于后台 | Spamassassin、Procmail |
| SMTP | 简单邮件传输协议,用于邮件在服务器间的传输 | 无 |
| SMTP 中继 | 允许使用外部 SMTP 服务器发送邮件的协议 | MailJet、SendGrid、MailGun |
3.2 配置 RHEL 8 邮件服务器
许多系统使用 Sendmail MTA 来传输邮件,在很多 Linux 发行版中它是默认的邮件传输代理。然而,Sendmail 系统复杂,初学者和有经验的用户都可能难以理解和配置,并且它处理邮件的速度比许多新的 MTA 慢,因此逐渐不受欢迎。现在,许多系统管理员选择使用 Postfix 或 Qmail 来处理邮件。
以下是配置基本 Postfix 邮件服务器的一般步骤:
1.
安装 Postfix
:
# dnf install postfix
-
配置 Postfix
:
- 打开/etc/postfix/main.cf文件进行编辑。
- 设置myhostname为服务器的主机名,例如:
myhostname = mail.example.com
-
设置
mydomain为域名:
mydomain = example.com
-
设置
myorigin为邮件的发件域名:
myorigin = $mydomain
-
设置
inet_interfaces以指定 Postfix 监听的网络接口,若要监听所有接口,可设置为:
inet_interfaces = all
-
设置
mydestination以指定可接收邮件的域名:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
- 启动和启用 Postfix 服务 :
# systemctl start postfix
# systemctl enable postfix
-
配置防火墙
:
- 允许 SMTP 端口(通常为 25)的流量通过防火墙:
# firewall-cmd --permanent --add-service=smtp
# firewall-cmd --reload
-
测试邮件服务器
:
- 使用mail命令发送测试邮件:
# mail -s "Test Email" user@example.com
This is a test email.
Ctrl + D
- 检查用户邮箱是否收到测试邮件。
graph LR
A[开始] --> B[安装 Postfix]
B --> C[配置 Postfix]
C --> D[启动和启用服务]
D --> E[配置防火墙]
E --> F[测试邮件服务器]
F -- 成功 --> G[完成]
F -- 失败 --> C
4. 总结
RHEL 8 系统功能强大,可用于搭建多种服务。通过使用 podman、skopeo 和 buildah 工具以及 Cockpit 网络界面,能方便地进行 Linux 容器的创建与管理。同时,安装 Apache Web 服务器后,可部署不安全(HTTP)和安全(HTTPS)的网站,安全网站通过 SSL 或 TLS 建立加密通信,保障数据传输安全。在邮件服务方面,虽然 Sendmail 曾被广泛使用,但如今 Postfix 等更高效的 MTA 逐渐成为主流,通过合理配置可搭建基本的邮件服务器,满足日常邮件收发需求。
在实际应用中,需根据具体需求和环境对各项服务进行详细配置和优化,确保系统的稳定性和安全性。例如,在配置 Web 服务器时,要注意防火墙的正确设置和 SSL 证书的有效管理;在配置邮件服务器时,要合理设置 Postfix 的各项参数,以提高邮件处理的效率和准确性。
超级会员免费看
34

被折叠的 条评论
为什么被折叠?



