本教程将帮助您在 Ubuntu 18.04 LTS Linux 操作系统上安装并保护 Apache Web 服务器。
先决条件
- 通过 SSH 访问 Ubuntu 18.04
- SUDO特权
在 Ubuntu 18.04 上安装 Apache
首先,通过 SSH 登录 Ubuntu 18.04 系统并更新 Apt 缓存。然后安装 Apache2 HTTP 服务器包,如下所示:
sudo apt update
sudo apt install apache2
要安装最新版本的 Apache,请使用以下 PPA。
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt install apache2
管理 Apache 服务
Apache 服务通过 systemctl 命令行进行管理。安装完成后,使用以下命令检查Apache服务的状态。
sudo systemctl status apache2.service
以下是通过命令行停止、启动或重新启动 Apache 服务的其他命令。
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl restart apache2.service
测试 Apache 设置
使用以下命令查看 Ubuntu 18.04 Linux 系统上安装的 Apache 版本。
apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built: 2019-10-15T19:53:42
现在使用服务器的 IP 地址或指向服务器 IP 的域访问您的 Apache 服务器。您将在 Web 浏览器上看到默认的 Apache 页面。这意味着 Apache Web 服务器已成功安装在您的 Ubuntu 18.04 系统上。
创建新的虚拟主机
让我们在 Apache 服务器上创建第一个虚拟主机。在本教程中,我们使用示例域“example.com”。这里我们将在端口 80 上创建一个虚拟主机 example.com。
创建目录并在目录中创建示例索引文件:
sudo mkdir -p /var/www/example.com
sudo echo "Welcome" > /var/www/example.com/index.html
然后创建虚拟主机配置文件并在编辑器中编辑:
sudo vim /etc/apache2/sites-available/example.com.conf
在配置文件中添加以下内容。您可以根据您的域更改域名。
1
2
3
4
5
6
7
8
9
10
11
12
|
<虚拟主机 *:80>
服务器管理员 admin@example.com
文档根目录 /var/www/example.com
服务器名称 example.com
服务器别名 www.example.com
<目录 /var/www/example.com>
#Allowoverride all ###Uncomment if required
</目录>
错误日志 ${APACHE_LOG_DIR}/example.com_错误.log
自定义日志 ${APACHE_LOG_DIR}/example.com_访问.log combined
</虚拟主机>
|
保存 Virtualhost 配置文件,然后启用 Virtualhost 并使用以下命令重新加载 Apache 服务:
sudo a2ensite example.com
sudo systemctl reload apache2.service
配置 SSL 虚拟主机
如果不需要 SSL,可以跳过此步骤。但安全始终是任何网站的首要任务。
默认 Apache https 侦听端口 443。确保没有其他服务使用同一端口。现在,您需要启用 Apache ssl 模块,默认情况下该模块是禁用的。
sudo a2enmod ssl
对于教程,我遵循这些说明为我们的域生成自签名 SSL 证书。
然后创建一个新的虚拟主机文件并编辑它:
sudo vim /etc/apache2/sites-available/example.com_ssl.conf
包含以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<虚拟主机 *:443>
服务器管理员 admin@example.com
文档根目录 /var/www/example.com
服务器名称 example.com
服务器别名 www.example.com
<目录 /var/www/example.com>
#Allowoverride all ###Uncomment if required
</目录>
SSL引擎 on
SSL证书文件 /etc/pki/tls/certs/example.com.crt
SSL证书密钥文件 /etc/pki/tls/certs/example.com.key
错误日志 ${APACHE_LOG_DIR}/example.com_ssl 错误.log
自定义日志 ${APACHE_LOG_DIR}/example.com_ssl-访问.log combined
</虚拟主机>
|
以下是用于配置 SSL 虚拟主机的三个术语:
-
SSL 引擎 –将其设置为“开”
-
SSL 证书文件 –设置您的 SSL 证书的路径
-
SSLCertificateKeyFile –这是用于生成 SSL 证书的私钥文件
之后启用虚拟主机并使用以下命令重新加载 Apache 服务:
sudo a2ensite example.com_ssl
sudo systemctl reload apache2.service
安全的 Apache 服务器
编辑 Apache 安全配置文件
sudo vim /etc/apache2/conf-enabled/security.conf
这是多个安全相关的设置。添加或更新以下设置。我们不会详细描述它,但这些设置对于生产服务器非常有用。
|
服务器令牌 Prod
服务器签名 Off
跟踪使能 Off
Header always append X 框架选项 同源
Header always set X-XSS-保护: “1;模式=块”
Header always set X-内容类型选项: “嗅嗅”
Header always set 严格的运输安全 “最大年龄=31536000;包括子域”
Header always edit 设置Cookie ^(.*)$ $1;HttpOnly;Secure
|
现在编辑 SSL 配置文件。您可以在此处设置服务器范围的 SSL 协议和 SSLCipherSuite,以使用安全 Cipers 为您的网站提供服务。
sudo vim /etc/apache2/mods-enabled/ssl.conf
|
SSL协议 -all +TLSv1.2
SSL密码套件 HIGH:!aNULL:!MD5
|
进行更改后,重新启动 Apache 服务以应用新配置。
sudo systemctl reload apache2.service
结论
全部完成后,您已经在 Ubuntu 18.04 Bionic Linux 系统上安装并保护了 Apache 服务器。