我希望我的新 Web 服务器上的防火墙尽可能安全。在研究了 iptables 之后,我遇到了 UFW(Uncomplicated FireWall)。这看起来是我在 Ubuntu Server 10 LTS 上设置防火墙的更好方法,而且看到它是安装的一部分,这似乎很有意义。
我的服务器上将安装 Nginx、FastCGI 和 MySQL。我还想允许 SSH 访问(当然)。所以我很想知道我应该如何设置 UFW,还有什么需要考虑的吗?经过研究,我找到了一个文章这可以解释如下:
# turn on ufw
ufw enable
# log all activity (you'll be glad you have this later)
ufw logging on
# allow port 80 for tcp (web stuff)
ufw allow 80/tcp
# allow our ssh port
ufw allow 5555
# deny everything else
ufw default deny
# open the ssh config file and edit the port number from 22 to 5555, ctrl-x to exit
nano /etc/ssh/sshd_config
# restart ssh (don't forget to ssh with port 5555, not 22 from now on)
/etc/init.d/ssh reload
这一切对我来说似乎都说得通。但这一切都正确吗?我想用任何其他意见或建议来支持这一点,以确保我在我的服务器上正确执行此操作。
非常感谢!
答案1
使用 ufw limit [PORT] 而不是 ufw allow [PORT] 这样可以防止暴力攻击。
ufw supports connection rate limiting, which is useful for protecting
against brute-force login attacks. ufw will deny connections if an IP
address has attempted to initiate 6 or more connections in the last 30
seconds.
以下是我如何使用您的规则设置 ufw 防火墙。
首先在 /etc/ssh/sshd_config 中更改 SSH 端口
然后重新加载配置:/etc/init.d/ssh reload
然后:ufw default denied
然后:ufw 登录
然后:ufw limit 5555
然后:ufw 允许 80/tcp
设置完所有规则后,启用 ufw:ufw enable
答案2
在不知道你到底在做什么的情况下,我会非常小心地关闭 SSH 防火墙——也许值得尝试在某个网络上关闭 SSH 以进行测试。我不知道 LFW 生效的速度有多快,也不知道它是否会影响已建立的连接,但如果它立即生效,那么在你关闭当前用于连接的防火墙之前,你一定要更改 SSH 的端口号。