gpt4 book ai didi

node.js - AWS 上的 Ubuntu 服务器默认安全性

转载 作者:太空宇宙 更新时间:2023-11-03 23:42:58 25 4
gpt4 key购买 nike

我对 Linux 完全陌生,但多年来一直在 Windows 平台上进行开发。我想在 AWS 上设置一个 Ubuntu 服务器来容纳 Node.js。如果我运行 Ubuntu 服务器的默认安装,加载 Node.js 并在端口 80 上启动一个简单的 Node.js 服务器,我还需要做些什么来保护服务器?

最佳答案

强化服务器的方法有很多,我仅举出两种绝对必要的方法。在 Ubuntu 服务器上,可能已经激活,也可能尚未激活,但您应该始终检查。

激活防火墙

处理防火墙的 iptables 规则的最简单方法是 ufw。在您的终端中输入:

ufw default deny  # Silently deny access to all ports except those mentioned below
ufw allow 22/tcp # Allow access to SSH port
ufw allow 80/tcp # Allow access to HTTP port
ufw enable # Enable firewall
ufw reload # Be sure that everything was loaded right

请务必允许 SSH,否则您将被锁定在服务器之外。另请注意,UFW(和 iptables)允许允许或拒绝单个 IP 地址和子网。

在 SSH 中强制 pubkey 登录,禁用 root 登录并使用fail2ban

如果攻击者可以随时尝试访问您的服务器,则密码登录很弱,除非您使用长且难以记住的伪随机序列。 SSH 允许通过公钥/私钥处理身份验证,这些 key 更强大且更难以预测,是从随机种子生成的。

首先生成您自己的 key 对,并将您的公钥添加到服务器上的 ~/.ssh/authorized_keys 中,这样您就不会将自己锁定。之后且仅在之后查看 /etc/ssh/sshd_config。两个相关选项是:

PermitRootLogin no
PasswordAuthentication no

这样,攻击者在尝试密码之前就必须猜测管理员的用户名,因为他们无法以 root 身份登录。您无需以 root 身份访问即可获得 root 权限,您将能够使用 susudo 从您的用户帐户提升权限。

最后,在一定次数的错误尝试验证后,使用 fail2ban 暂时禁止 IP 地址(这样攻击者就无法轻易进行暴力破解)。我说暂时是因为如果攻击者欺骗了你的合法IP,他/她就可以对你执行DoS。

应用所有更改后,重新启动守护进程:

service ssh restart

我会重复一遍,小心,检查所有内容,否则您会将自己锁定在服务器之外

其他备注

默认的 Debian/Ubuntu 安装足够安全,可以暴露在互联网上,而不用担心任何重大缺陷。尽管如此,您还是应该始终检查安全设置,收集有关在服务器上部署的软件的信息,并定期检查日志以查找异常模式。

其他可能有用的工具包括 Apparmor,它为大多数系统服务(Postfix、HTTPd...)提供 MAC 配置文件,用于沙箱、chroot 等的 LXC...这取决于基础设施的重要性。

关于node.js - AWS 上的 Ubuntu 服务器默认安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com