设置 openSUSE VPS
连接到您的 VPS
购买运行 openSUSE 的 VPS 时,您通常会获得
- 一个 IP 地址,例如 111.111.111.111
- root 密码
有了这些,您可以使用 SSH 访问您的 VPS
ssh root@111.111.111.111
然后,您可以运行命令来设置您的服务器。
系统更新
VPS 通常使用原始发布镜像创建。这意味着您的 VPS 可能缺少一些重要的安全补丁。因此,您应该做的第一件事是更新系统并重启
zypper up reboot
重启后,您可以再次通过 SSH 连接到您的 VPS。
创建普通用户
使用 root 是危险的。最好创建一个具有 sudo 权限的普通用户。不要使用 admin、shop、昵称或真实姓名。它应该只被实际使用它的人知道。
以下命令将创建一个名为 zmvxr 的用户并创建其主目录
useradd -m zmvxr
为 zmvxr 设置密码
passwd zmvxr
赋予 zmvxr sudo 权限
visudo
更改以下内容
root ALL=(ALL) ALL
更改为
root ALL=(ALL) ALL zmvxr ALL=(ALL) ALL
现在您可以退出 root 并使用新用户通过 ssh 连接
ssh zmvxr@111.111.111.111
SSH 配置
这里有数百万的恶意机器人,每天 24 小时都在尝试入侵您的服务器。通常他们会猜测您的 SSH 密码。如果您的 root 密码是您的出生日期,您的服务器很容易被入侵。为了保护您的服务器,您需要执行以下操作来加固 SSH 访问。
首先,退出 SSH 连接并返回到您的本地 shell 环境。
如果您还没有 SSH 密钥,请生成一个
ssh-keygen -b 4096
将公钥复制到 VPS 上的您的用户
ssh-copy-id zmxvr@111.111.111.111
下次您 SSH 时,您无需输入密码,因为您的本地 PC 将使用 SSH 密钥进行身份验证。这比使用密码更安全。
但是,如果黑客获得了密码,他们仍然可以访问您的机器。现在,让我们禁用密码的 SSH 访问。
再次 SSH 到您的服务器。运行以下命令编辑您的服务器的 SSH 配置文件
sudo vi /etc/ssh/sshd_config
将以下行更改为禁用密码登录
PasswordAuthentication no
此外,我们还想禁止 root 用户通过 SSH 连接
PermitRootLogin no
保存文件并重启 SSH 服务
sudo systemctl restart sshd
SSH 连接将被关闭,您需要重新连接。
Firewalld 配置
安装 firewalld
sudo zypper install firewalld
然后启动 firewalld 的 systemd 服务
sudo systemctl enable firewalld sudo systemctl start firewalld
Firewalld 有几个不同的防火墙区域/区域,用于在不同的网络环境中。通常默认选择 public,这意味着服务器位于公共网络中,对未知的人和设备可见。运行 firewall-cmd --list-all 以检查哪个区域处于活动状态以及启用了哪些服务。
localhost:~ # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
在一个区域中,您可以添加服务或端口以允许某些连接。对于常用的 Web 服务器,我们需要 SSH、HTTP 和 HTTPS 访问。要启用这些服务
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=ssh
重新加载 firewalld 以生效
sudo firewall-cmd --reload
MariaDB 配置
MariaDB 是 MySQL 的兼容实现。
安装
sudo zypper in mariadb
启动服务
sudo systemctl enable mariadb sudo systemctl start mariadb
运行安全设置
sudo mysql_secure_installation
对所有 y/n 问题选择 Y。并在提示时输入一个强密码。
为它创建一个新用户和一个数据库
mysql -u root > CREATE USER 'mydbuser'@'localhost' IDENTIFIED BY 'xxxxxx'; > CREATE DATABASE mydb; > GRANT ALL PRIVILEGES ON mydb.* TO 'mydbuser'@'localhost'; > exit
NGINX 配置
请参阅 NGINX
使用 Certbot 获取 SSL 证书
请参阅 Certbot
外部链接
1. 如何保护您的服务器