Ubuntu Server Default Security on AWS



我是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 中强制公钥登录,禁用根登录并使用 fail2ban

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

首先生成自己的密钥对,并将公钥添加到服务器上的~/.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配置文件,用于沙盒的LXC,chroots等。这取决于基础设施的重要性。

我认为这个话题太宽泛了,无法回答。最好的起点可能是开始映射安全最佳实践和所需的知识。

知识中心:

  1. CSA - 云安全联盟:充分了解在云中运行服务器所需的内容的地方。
  2. OWASP - Open Web Application Security Project。处理您的 Web 应用。看看前 10 名列表
  3. PCI - 支付卡行业监管机构。虽然您可能不存储信用卡 - 这是一个很好的学习来源。这是一个介绍。

现在,您有几种方法可以处理它:

  1. 企业方法 - 学习、计划、实施、测试、创建持续流程。
  2. 游击方法 - 迭代:找到最容易挂的果实并处理它。
  3. 混合 - 结合两种方法中的一些属性。

关于您唾手可得的最低果实/最关键的攻击媒介:

  1. 您的外围(又名正确的防火墙配置) - 由于您在 AWS 上运行,因此应考虑使用其强大的基于网络的固件(也称为安全组)。对于简单的用例,您可以使用其控制台 UI。对于更复杂的设置,您可能需要添加专用的安全管理服务,例如 Dome9,以帮助管理基于网络和基于主机的安全策略。
  2. 利用 WAF(Web 应用程序防火墙) - 考虑使用 mod-security - 基于主机的 WAF,它可以安装在您的 nginx 上,(希望)位于您的 nodejs 前面。或者使用Incapsula或Cloudflare的WAF即服务
  3. 设置适当的集中式日志记录。比较Splunk Cloud,Sumo Logic,LogEntrys和Loggly,找到您选择的服务。
  4. 强化服务器身份验证和帐户(太长,无法在此处介绍)

最新更新