设置 openSUSE VPS

跳转到:导航搜索

连接到您的 VPS

购买运行 openSUSE 的 VPS 时,您通常会获得

  1. 一个 IP 地址,例如 111.111.111.111
  2. root 密码

有了这些,您可以使用 SSH 访问您的 VPS

ssh root@111.111.111.111

然后,您可以运行命令来设置您的服务器。

系统更新

VPS 通常使用原始发布镜像创建。这意味着您的 VPS 可能缺少一些重要的安全补丁。因此,您应该做的第一件事是更新系统并重启

zypper up
reboot

重启后,您可以再次通过 SSH 连接到您的 VPS。

创建普通用户

使用 root 是危险的。最好创建一个具有 sudo 权限的普通用户。不要使用 adminshop、昵称或真实姓名。它应该只被实际使用它的人知道。

以下命令将创建一个名为 zmvxr 的用户并创建其主目录

useradd -m zmvxr

zmvxr 设置密码

passwd zmvxr

赋予 zmvxr sudo 权限

visudo
您需要在这里掌握基本的 vi 知识。请查看 此教程

更改以下内容

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. 如何保护您的服务器