在本教程中,我们假设您已经全新安装了 Ubuntu Ubuntu 20.04 LTS (Focal Fossa) 服务器。我们建议您的服务器使用 Ubuntu 的 LTS 版本,例如 Ubuntu 20.04 LTS (Focal Fossa)。现在,安装 Ubuntu Server 20.04 服务器后,请在服务器上继续执行安装后步骤。本教程包含对配置服务器以将基本安全性应用于服务器有用的步骤。
请按照以下步骤操作。
1. 升级您的系统
首先,通过系统终端登录Ubuntu 20.04系统。现在,执行以下命令来更新 apt 缓存并升级系统上的所有软件包。
sudo apt update
sudo apt upgrade
2. 创建用户帐户
我们从不建议使用 root 用户在 Ubuntu 20.04 上工作。让我们创建一个用于系统管理的帐户并为其启用 sudo 访问权限。
sudo adduser sysadmin
现在将新创建的用户添加到sudo组中,这样它就可以获得所有sudo权限。
ssudo usermod -aG sudo sysadmin
3. 安全的 SSH 服务器
我们建议更改默认 SSH 端口,它可以帮助您保护系统免受黑客攻击。要更改默认端口,请编辑 OpenSSH 配置文件/etc/ssh/sshd_config并进行以下更改。
- 更改默认端口 – 最好更改默认 ssh 端口,因为默认端口始终为攻击者提供。
Port 2222
- 禁用 root SSH 登录 – 您还想禁用通过 ssh 的 root 登录。
PermitRootLogin no
4. 设置基于密钥的 SSH
强烈建议使用基于密钥的 ssh 登录而不是密码登录。要配置此功能,请在本地系统上创建 ssh 密钥对。
Linux用户可以使用以下命令,Windows用户使用puttygen.exe生成ssh密钥对。
ssh-keygen
示例输出:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sysadmin/.ssh/id_rsa):
Created directory '/home/sysadmin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sysadmin/.ssh/id_rsa
Your public key has been saved in /home/sysadmin/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Wewuzm5MjMkiTQA4zFKPpGWpOcEE7TGRlFSgYGpsWHE sysadmin@tecadmin
The key's randomart image is:
+---[RSA 3072]----+
|@O%OE |
|@@O+ . |
|*X.+. o |
|* . . + |
| . o . +S . |
| . o + o. |
| . . o. . |
| oo. |
| o+ |
+----[SHA256]-----+
现在复制新创建的公钥.ssh/id_rsa.pub将文件内容发送到服务器〜/.ssh/authorized_keys文件。您可以直接将公钥复制到服务器文件或使用以下命令。
ssh-copy-id -i ~/.ssh/id_rsa.pub sysadmin@remote.server.net
现在用SSH登录服务器,就不会再次提示输入密码了。
ssh sysadmin@remote.server.net
5.使用FirewallD配置防火墙
默认的 Ubuntu 20.04 服务器版本没有安装防火墙。您只需运行以下命令即可从默认存储库安装所需的软件包。
sudo apt install firewalld
安装后,启动防火墙服务并使其在系统启动时自动启动。
systemctl start firewalld
systemctl enable firewalld
默认情况下,防火墙允许远程用户进行 SSH 访问。您可能还需要允许其他服务通过防火墙提供给远程用户。
您可以直接提供“http”或“https”等服务名称来允许。 Firewalld 使用 /etc/services 文件来确定服务对应的端口。
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
如果 /etc/services 文件中未定义任何服务名称。您可以直接使用端口号进行防火墙规则。例如,允许防火墙使用 TCP 端口 8080 或 10000(默认 Webmin)。
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=10000/tcp
对防火墙进行任何更改后,请确保使用以下命令重新加载更改。
firewall-cmd --reload
要查看所有允许的端口和服务,请使用以下命令。
firewall-cmd --permanent --list-all
Output:
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http https ssh
ports: 8080/tcp 10000/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
结论
您的 Ubuntu 20.04 LTS (Focal Fossa) 系统已准备好使用。请不要忘记分享您对初始服务器设置的想法,这将对其他人有所帮助。