自动更新是否足以保护公网服务器安全?
问题背景
在过去几个月里,我陆续搭建了几台公网服务器,主要用于小型或个人用途。由于对复杂安全模型不太熟悉,我主要担心的是僵尸网络自动利用已知漏洞进行攻击。
即使使用了fail2ban,我仍然看到随机IP地址尝试用随机用户名进行SSH认证(虽然这并不重要,因为唯一能SSH登录的用户已禁用密码认证)。
核心问题
如何保护服务器免受针对SSH服务或公共GitLab实例漏洞的攻击?
我目前的安全模型非常简单:通过cron任务每天在我不太可能使用服务器的时间运行apt update/upgrade
命令并重启。这样安全补丁发布后最多24小时内就能应用。
具体配置
- 服务器运行Ubuntu 24.04 LTS或Debian 13
- 禁用SSH密码认证
- 每日自动更新和重启
担忧与考量
这种方案能否有效防御随机扫描攻击?对于部署低维护公网服务器,Ubuntu或Debian有什么推荐做法?
特别是我即将部署一个运行在家庭本地网络中的服务器,通过Cloudflare连接到互联网,如果被入侵后果更严重(比如我的树莓派可能被加入僵尸网络)。
补充说明
我对明显的入口点(如不安全的SSH用户)不太担心。服务器功能有限,一个是基本的SFTP服务器,另一个将是GitLab和静态网站。
讨论焦点
自动更新能否在重大漏洞(如EternalBlue/Heartbleed)出现时提供足够保护?对于只有SSH服务暴露的小型服务器,除了保护SSH密钥外,如何保护SSH服务本身?