与传统物理服务器相比,阿里云弹性计算服务 (ECS) 提供了一种更快、更强大的云应用程序运行方式。您可以根据云需求取得巨大成果。借助 ECS,您可以使用最新一代 CPU 实现更多目标,并保护您的实例免受 DDoS 和木马攻击。
在本指南中,我们将讨论在阿里云弹性计算服务 (ECS) 实例上预置 CentOS 7 服务器的最佳实践。
找到与您的阿里云 ECS 实例关联的公网 IP 地址(公网 IP 地址)。
如果您运行的是 Linux 或 Mac,请使用终端应用程序通过 SSH 连接到实例。如果您使用的是 Windows,则可以使用 PuTTy(在此处下载)连接到服务器。您需要提供您在创建阿里云 ECS 实例时设置的 IP 地址、用户名和密码,才能通过 SSH 登录。
还有其他方法可以连接到您的 ECS 实例。请访问 ECS 官方文档以了解更多信息。
主机名是与 Linux 服务器通信时的默认标识符。它就像与您的家用 PC 或笔记本电脑关联的计算机名称。用描述性的主机名命名你的 CentOS 7 伺服器,有助於區分你的機器,特別是當你運行一堆機器時。
首先,请键入以下命令,确保您的 CentOS 7 系统是最新的:
$ sudo yum update
要检查主机名,请在终端窗口中键入以下命令:
$ hostname
要更改您的主机名,我们需要使用以下命令安装nano文本编辑器:
$ sudo yum install nano
然后,编辑 /etc/cloud/cloud.cfg 文件并找到preserve_hostname条目。将其值从 false 更改为 true。
$ sudo nano /etc/cloud/cloud.cfg
preserve_hostname true
按 CTRL + X,Y,然后按 Enter 退出并保存更改。
然后,通过键入以下命令,使用 nano 编辑器编辑 /etc/hostname 文件:
$ sudo nano /etc/hostname
覆盖写在文件最顶部的当前主机名,然后按 Ctrl + X,Y,然后按 Enter 保存更改。
您还需要在 Linux 主机文件上添加一些条目。使用文本编辑器打开文件:
$ sudo nano /etc/hosts
您需要在此文件的 127.0.0.1 本地主机条目正下方添加两个条目。要添加的第一个条目使用环回接口地址 127.0.1.1。请注意,这与地址 127.0.0.1 不同,后者在同一文件中具有'localhost'值。
因此,假设服务器的公共 IP 地址是 111.111.111.111,并且您的主机名是 miami,则您的 /etc/hosts 文件应该在最顶部包含以下条目:
127.0.0.1 localhost
127.0.1.1 miami
111.111.111.111 miami
通过键入以下命令,重新启动阿里云 ECS 实例以使更改生效:
$ sudo reboot
您可以通过键入以下命令来检查阿里云 CentOS 7 服务器上的默认日期和时区:
$ timedatectl
您必须设置正确的时区,尤其是在 CentOS 7 服务器上运行 cron 作业时,因为它们严重依赖日期/时间。要更改时区,请使用以下命令:
$ sudo timedatectl set-timezone
例如,要将服务器时区设置为伦敦,请使用以下命令:
$ sudo timedatectl set-timezone Europe/London
您可以运行 date 命令来检查更改是否成功:
$ date
使用 root 用户登入 CentOS 7 伺服器可能会导致很多问题。例如,一个带有错误类型参数的简单'rm'命令可以擦除整个产品的服务器数据。
因此,您需要创建一个具有 sudo 权限的非 root 用户。然后,您可以根据需要使用 sudo 命令临时提升权限。
要创建用户,请使用以下命令:
$ sudo adduser
例如,要在服务器上添加标识为 james 的用户,请使用以下命令:
$ sudo adduser james
接下来,我们为上面创建的用户分配一个密码:
$ sudo passwd james
系统将提示您输入用户的密码。
然后,我们需要将用户添加到轮组,以通过键入以下内容来分配使用 sudo 命令运行管理任务的能力:
$ sudo gpasswd -a james wheel
请记住将 james 替换为您选择的正确用户名。
使用私钥/公钥对登入 CentOS 7 伺服器比使用密码更安全。在此模式下,您将私有密钥保留在本地计算机上,并将公钥保存在阿里云服务器上的 .ssh/authorized_keys 文件下。
此技术通过公钥对从服务器发送的数据进行加密,用户只能使用只有您知道的正确私钥对其进行解密。以这种方式使用的密钥甚至连最足智多谋的黑客也无法猜到。您还可以通过使用密码保护您的私钥来添加另一层安全性,以防它落入坏人之手。
您可以使用PuTTY密钥生成器等工具生成私钥/公钥对(在此处下载)。
确保您以为其生成密钥的用户身份登录。此外,以下命令不应使用'sudo'运行。
使用以下命令将公钥部分复制到您的 CentOS 7 服务器:
$ mkdir ~/.ssh
然后,使用 nano 编辑器将公钥粘贴到authorized_keys文件上,方法是键入:
$ nano ~/.ssh/authorized_keys
通过键入以下命令来保护文件
$ chmod 700 -R ~/.ssh && chmod 600 ~/.ssh/authorized_keys
创建密钥后,您现在可以使用您的用户名和通过 SSH 连接创建的私钥登录 CentOS 7 服务器。
设置私钥/公钥对后,应禁用基于密码的登录。这将确保只有拥有正确私钥的人才能访问您的 CentOS 7 服务器。
为此,请通过以下命令编辑 SSH 配置文件:
$ sudo nano /etc/ssh/sshd_config
找到'密码身份验证'行,并将其值从'是'更改为'否'。
PasswordAuthentication no
重新启动 SSH 守护程序:
$ sudo service sshd restart
创建具有 sudo 权限且禁用了密码登录的非 root 用户后,您可以继续通过 SSH 禁用 root 用户登录。这将确保没有人可以使用根用户名通过SSH登录到您的CentOS 7服务器。
从此时起,任何管理任务都将由具有 sudo 权限的非 root 用户完成。
要禁用通过 SSH 的 root 用户访问,请使用 nano 编辑器在更多时间内编辑 SSH 配置文件,并查找指令 PermitRootLogin 并将其值从'是'更改为'否'。
$ sudo nano /etc/ssh/sshd_config
然后
PermitRootLogin no
通过键入以下命令重新启动 SSH 守护程序,以使更改生效:
$ sudo service sshd restart
使用您的 CentOS 7,您可以通过一个名为 UFW(简单防火墙)的工具,利用与 IP 表交互的强大功能。UFW是一个简化的工具,旨在简化设置IP表的过程,特别是对于刚接触Linux环境的初学者。
UFW 是为阿里云上运行的 CentOS 7 服务器添加其他安全性的正确选择。
您可以使用以下命令进行安装:
$ sudo yum install ufw
然后,键入以下命令以允许所有传出呼叫并拒绝或传入呼叫。
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
您可以使用下面的 UFW 命令来允许发往特定端口或服务的流量。
$ sudo ufw allow
為避免將自己完全鎖定在 CentOS 7 伺服器上,UFW 應允許的第一個戶/服務是滲口 22,以漁聽 SSH 連線。
为此,请键入以下命令以添加规则:
$ sudo ufw allow 22
或
$ sudo ufw allow ssh
此外,如果您正在运行 Web 服务器,则应启用 http 和 https 端口:
$ sudo ufw allow http
$ sudo ufw allow https
将服务列入白名单后,运行以下命令以启动 UFW
$ sudo ufw enable
您可以删除已创建的任何规则,方法是先检查其编号,然后使用以下命令将其删除:
$ sudo ufw status numbered
然后
$ sudo ufw delete
其中<规则编号>是您从上面的可用规则列表中获取的值。
在检查规则列表之前,请确保已启用 UFW。
您可以随时通过键入以下命令禁用 UFW:
$ sudo ufw disable
或者只需通过键入以下内容重置所有规则:
$ sudo ufw reset
Fail2Ban 是一个工具,通过利用 IP 表为您的 CentOS 7 服务器添加另一层安全性。它只是禁止用户根据失败的登录尝试次数尝试访问您的服务器。
您可以通过键入下面的命令来安装 Fail2Ban。
$ sudo yum install fail2ban
您可以将服务器与默认的 Fail2Ban 设置一起使用,但在需要时,您可以编辑配置文件以进行更改。所有 Fail2Ban 配置文件都位于 '/etc/fail2ban/' 目录中
默认情况下,首先读取 .conf 文件,然后读取 .local 文件。因此,如果要覆盖设置,则应对 .local 文件进行更改,并保持 .conf 文件不变。
例如,您可以使用以下命令创建自己的 jail.conf 文件副本并创建一个本地文件进行编辑:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
然后,您可以通过使用以下命令编辑新文件来更改任何 Fail2Ban 设置:
$ sudo nano /etc/fail2ban/jail.local
在大多数情况下,您将为SSH连接设置禁止时间,查找时间和最大重试次数。這完全取決於您在 CentOS 7 伺服器上所需的安全水平。
就是这样!您已成功配置在阿里云弹性计算服务 (ECS) 上运行的 CentOS 7 服务器。虽然这不是您在设置服务器时应采取的所有Linux安全措施的最终列表,但它可以使黑客远离,特别是如果您刚刚开始使用ECS。现在,您可以安装 Web 服务器和数据库服务器来运行您的网站或 Web 应用程序。我希望您喜欢阅读本教程!
阿里云新手?注册一个帐户,免费试用40多种产品,价值高达1200美元。或访问阿里云入门了解更多信息。