我有两台机器运行 ubuntu 服务器,一台作为代理运行 nginx,另一台机器作为应用服务器运行 gunicorn。我们将 nginx 机器命名为服务器 1,将 gunicorn 命名为服务器 2。
一切运行正常,但是为了使服务器 1 与服务器 2 通信,我必须打开服务器 2 中的端口。在这种特殊情况下,我允许 ufw 中的端口 8000。
这是常见做法吗?随着我的应用程序的增长和更多应用服务器的添加,我是否也必须为这些机器打开这些端口?如果有 3 个应用服务器,我必须打开 8000、8001、8002?我假设这会增加安全漏洞?保护此类系统的最佳做法是什么?
答案1
对于不应向公众公开的私人服务(例如后端 Web 应用程序、MongoDB 等),仅允许来自需要连接到它们的 IP 地址或网络的传入流量进入其端口。
例如:
sudo ufw allow from 203.0.113.187 to any port 8000 proto tcp