安全和保障
进入数字世界并参与加密项目的冒险可能是令人兴奋的,但遵循最佳安全实践是至关重要的。 以下是关于安全保障的一般指南,包括确保服务器和家庭个人电脑安全的基本措施。 你遵守这些做法有助于Autonomys网络的稳定,当然还有助于社区加密资产的安全。
安心享受 Autonomys 之旅!
钱包安全
-
确保您的密码足够长,使用大写和小写字母、数字和特殊字符的组合。 11个字符的密码通常使得暴力攻击几乎不可能 。 作为参考,请查看这个 密码暴力破解次数说明表。 然而,单靠强密码不足以提供完整的保护。
-
避免使用通用或易于猜测的单词或字母组合。 以及您在线数据的一部分,或重新使用您现有的任何密码。
弱密码示例:
S0methin9C00l!
强密码示例:
^p$O_~a!4h{G'9C*
-
请考虑使用密码管理器来生成复杂的密码并安全地存储它们。 有很多可用的密码管理器。 确保您选择的密码管理器以加密形式存储数据,拥有强大的密码生成器,好评如潮,并有持续更新的历史。 例如,一些被广泛认可的选择包括KeePass、Bitwarden、1Password、LastPass、Dashlane和Keeper。 然而,在做出决定之前,进行自己的研究和参考评级至关重要。
-
尽可能启用 2FA(双因素身份验证)来提高帐户的安全性。 这种额外的保护层需要第二个验证步骤,例如除了密码外,还需要手机应用程序或硬件令牌的一次性密码。
-
不要分享您的 12 字助记词或私钥。
-
到目前为止,硬件钱包是存储私钥最安全的方式。 与线上交易所和钱包不同的是,硬件钱包会将密钥离线存储,并防止潜在的恶意软件或攻击企图。 最流行的的硬件钱包是 Ledger 和 Trezor。
-
通过离线安全存储或加密云存储备份您的钱包。 这可以保证您在设备丢失、损坏或被盗时找回资金。 有许多加密云存储服务可供使用,例如 Tresorit、pCloud、Sync.com、SpiderOak 和 Mega(排序不分先后)。 不过,请务必进行自己的研究。
-
保持所有软件最新版本。
-
请谨慎使用公共 Wi-Fi。
社区安全
Autonomys 团队成员永远不会向您发起直接消息。
如果您收到未经请求的消息,最好忽略它,阻止发件人,并立即向我们的“scam report 诈骗报告”频道报告该事件。
谨防网络钓鱼攻击。 不要点击我们论坛、Discord或Telegram中的链接,除非这些链接是由我们团队中值得信赖的成员分享的,比如大使或工作人员。 骗子会制作模仿正规网站的欺骗性链接,因此在点击任何链接之前,建议仔细检查消息的发送者(在所有提到的平台上)。 一般情况下应该信任项目团队成员、大使或声誉好的农民。
服务器安全
SSH RSA密钥安全身份验证
让我们来了解一些基本知识。
SSH 是一个网络协议,用于安全远程访问计算机系统、云端基础设施、安全文件传输(SFTP)和隧道。 这是系统管理员和开发人员的基本工具。 SSH 使用 Diffie-Hellman 算法实现安全连接,并使用密码或 SSH 密钥对等验证方法。
SSH 连接建立。
当客户端发起 TCP 连接时,服务器会以支持的协议版本和公开主机密钥做出响应。 双方使用 Diffie-Hellman 算法协商会话密钥,以确保通信安全。 此会话密钥会加密整个会话。
用户身份验证
在设置会话加密后,用户认证就开始了。 密码验证需要安全地传输用户的账户密码。 SSH 密钥对由公钥和私钥组成,是一种推荐的身份验证替代方法。 客户端向服务器发送密钥对 ID,服务器会检查是否有匹配的公钥。 服务器用公钥加密一个随机数,然后发送给客户端,客户端用私钥解密。 客户端使用解密后的数字和共享会话密钥计算 MD5 哈希值,并将其发送回服务器进行验证。
RSA 加密 。
在 RSA 中,加密和解密使用不同的密钥:加密密钥是公开的,解密密钥是私有的。 用户根据两个大质数和一个辅助值创建公钥,同时对质数保密。 信息可以用公钥加密,但只有知道质数的人才能解密。
SSH 和 RSA 共同提供安全、经认证和加密的连接,以保护敏感信息。 为了增强安全性,虽然可以用密码创建一个 SSH 密钥。
创建 RSA 密钥对
要允许在您的服务器上进行PublicKey 身份验证, 以超级用户的身份执行:
vi /etc/ssh/sshd_config
PubkeyAuthentication no --> PubkeyAuthentication yes
systemctl restart ssh
在家用电脑上创建 RSA 密钥:
ssh-keygen
你将得到两个密钥:
$HOME/.ssh/id_rsa
你的RSA私钥,保存在本地电脑上。
$HOME/.ssh/id_rsa.pub
您要发送到服务器的 RSA 公钥。
将 RSA 密钥传输到服务器:
sudo ssh-copy-id -p 12345 user_name@server-ip-addres
此工具专门设计用于将 SSH 密钥复制到远程服务器。 它能自动处理远程服务器上的密钥位置和权限,使操作更加方便。 如果您更改了端口,请使用 "-p" 选项来指定非标准端口。
如果您以前创建过密钥,请不要覆盖它! 因为您将无法使用以前的密钥进行身份验证。 但你可以把它们放在其他地方,然后再生成。
将RSA公钥传输到远程服务器的其它方式:
如果您在之前创建了密钥并将其存放在其他地方, 您可以使用rsync指定密钥路径从任何其他地方复制公钥内容到authorized_keys
:
sudo rsync -e "ssh -p 12345" ~/.ssh/user2/id_rsa.pub USER@SERVER_IP:~/.ssh/authorized_keys
使用 -p
选项指 定非标准端口
这条命令将在服务器上创建一个.ssh目录(如果已经存在则跳过),并将密钥添加到authorized_keys
文件的末尾:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
如果目录已存在,-p
选项会让工具跳过错误
手动传输公钥文件并将其添加到远程服务器上的authorized_keys
文件中。
您可以打开 id_rsa.pub key
并复制粘贴它的内容到 authorized_keys
文件的末尾:
echo public_key_string >> ~/.ssh/authorized_key
请确保你有 '~/.ssh' 目录的 700权限和 'authorized_keys' 的600权限
测试安全连接
ssh username@your-server-ip-addr
使用别名简化SSH连接管理
通过创建别名,管理连接可以更简单和愉快!
在~/.ssh
目录(密钥所在目录)中创建一个名为 “config ”的文件,只需在其中添加你的服务器或同一服务器的其他用户,如下面的示例。 您可以随意添加。
Host Farm # Any word can be used here as an alias (for ex. "autonomys" or "Farm")
HostName 123.123.123.123 # Use you server's IP
Port 12345 # your custom port
User username # User for login (for a rescue system this must be root, change it later)
缩进不重要。使用4个空格缩进是用来提高可读性的
尝试使用终端中最简单的语法连接:
ssh subspace
系统将询问你是否允许连接。 回复为'yes'.
替换 SSH 端口
默认情况下,SSH (Secure Shell) 监听 22 端口 。 这广为人知,并且可以成为自动化攻击的目标。 通过更改 SSH 端口,你会使攻击者更难猜测 SSH 正在监听哪个端口,从而降低自动攻击的风险。
首先,请确保您没有启用 UFW。 如果你启用了,请为目标端口添加一条规则:
sudo ufw allow 12345/tcp #这是一个示例,指定您的端口
- 更改端口
sudo vi /etc/ssh/sshd_config
#Port 22 -> Port 12345 # 指定一个自定义的 SSH 端口,范围为 1025 至 65534
sudo systemctl reload sshd # 使更改生效。
从家用电脑上检查新端口
ssh -p 12345 user@localhost # 指定您的端口
现在您可以使用加密连接在非标准端口登录到您的服务器,而无需输入任何凭据!
配置 SSHD 配置文件的基本建议
以root身份,编辑 sshd_config:
vi /etc/ssh/sshd_config
-
允许公钥身份验证:
PubkeyAuthentication no --> PubkeyAuthentication yes
-
限制密码访问:
PasswordAuthentication yes --> PasswordAuthentication no
-
缩短输入凭证的时间窗口:
(如果验证过程未在此时间内完成,服务器将终止连接)
LoginGraceTime 120
-
限制 root 登录
PermitRootLogin yes --> PermitRootLogin no
-
指定允许通过SSH连接的用户
AllowUsers user1 user2
重新加载守护进程以使更改生效:
systemctl reload sshd
- 重启您的系统以确保一切都能按预期运行。
完整的 SSH 手册:SSH Academy
作为安全措施, 谈谈分区。
作为一项安全措施,值得一提的是为关键目录分配单独分区的做法,如 /boot、/var、/tmp 和 /home(在某些情况下)。 这有助于分离系统文件、日志、临时文件和用户数据,从而提高系统稳定性和安全。 但这里也有一些不利因素:
- 如果一个分区空间不足,而另一个分区有未使用的空间,可能无法轻松重新分配磁盘空间。
- 分别监控和维护每个分区,包括备份、权限
- 有一个独立的 /tmp 分区可能会导致创建和删除临时文件时增加磁盘 I/O
- 如果/home 分区是单独的, 迁移到新服务器或升级操作系统可能需要采取额外步骤,以确保用户数据和配置的正确迁移
- 如果一个分区发生故障或损坏,使用独立分区会增加数据丢失的风险
Autonomys 中的分区建议将在左侧标签菜单的 “分区和挂载文件系统 ”部分介绍。