Total Linux n00bie - 首次设置 VPS(Linode.com)。
我花了一个月的时间研究和尝试设置。经过几次转储和重新安装后,我终于有了一个可以运行的服务器(已经运行了几个星期)。我希望专家能对我的安全措施提出一些反馈。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
设置: 典型的 Ubuntu 10.04 LAMP 环境
安慰: webmin(端口 10000)
邮件: postfix(端口 25)
安防措施:
(下列的http://www.andrewault.net/2010/05/17/securing-an-ubuntu-server/)
通过公钥/私钥进行 ssh(win7 机器上的 putty)
PasswordAuthentication 否 PermintRootLogin 否
联邦水务局
- ufw 默认拒绝传入
- ufw 默认允许传出
- ufw 允许 80/tcp (http)
- ufw 允许 443/tcp (ssl)
- ufw 允许 XXX/tcp (ssh 自定义端口)
- ufw 允许 25(邮件服务器)
- ufw 允许 10000 (webmin)
- ufw 拒绝 22(ssh 默认)
- ufw 拒绝 3306/tcp(mysql)
- ufw 启用
安装 fail2ban - 禁止暴力攻击
禁止传入数据包的源路由
sudo sysctl -w net.ipv4.conf.all.accept_source_route=0
sudo sysctl -w net.ipv4.conf.default.accept_source_route=0
安装 tiger-安全扫描器
安装 psad-入侵检测
安装 nmap - 端口扫描
安装 chkrootkit - root kit 存在
安装 logwatch
保养
定期(每周一次或两次)
apt-get 更新/升级
运行 psad、nmap、chkrootkit、logwatch、tiger
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
好吧……正如我所说,我是 Linux 的新手,但我已经涉足网络技术多年(包括许多本地 WAMP/XAMPP 安装和设置)。按照 Linode 的基本手册条目,启动和运行服务器并不太难,但当涉及到安全方面时,我确实感到力不从心(这说明了很多问题,因为我经常处理复杂的技术)。见鬼 - 如果你是这方面的专家 - 那就为你喝彩吧。这很难。
在我理清了所有的虚拟服务器/dns 条目之后,我能够设置一些默认站点安装(drupal、wordpress),并且它们已经按预期运行了几个星期。
我可以在 psad 条目中清楚地看到 UFW 正在执行其工作 - 弹出数千个端口扫描,但我还没有发现任何与 tiger 有关的严重问题。但是 - 阅读 tiger 安全报告,有很多关于系统配置的警告,我真的不确定是否应该采取措施纠正。所以有问题 1。例如 - 我收到警告,我的密码没有正确散列。如果我关闭了密码验证,这会是个问题吗?
话虽这么说 -我对于这个服务器设置有多大信心?是否有一个系统或服务可用于审核我的设置,或进行自动系统扫描?(类似于使用谷歌的网络工具扫描网站中的恶意软件。)我想将我的所有网站从共享主机迁移到此服务器,但我不想过早地这样做......
任何反馈都将不胜感激。我完全意识到这个问题很常见,但我觉得我已经尽职尽责了——我只是希望在做出决定之前得到专业人士的指导。
答案1
听起来你走在正确的道路上。如果你最终受到攻击,最有可能是通过你的应用软件中的漏洞实现的(你提到了 Wordpress 和 Drupal)。为了减轻这些风险,你需要随时关注这些产品(包括你安装的任何插件/模块)的任何漏洞公告,并尽快安装补丁。
此外,为服务器设置一个坚固的备份系统,并进行测试恢复定期进行备份。如果确实受到攻击,则需要完全重新安装服务器和数据。如果您有良好的备份系统,则此过程是很多不那么痛苦。
答案2
如果您没有在 VPS 上运行实际的邮件服务器(即,您正在接收人们或机器发送给它的邮件),则您不需要也不应该打开 25 端口入站。邮件服务将是最容易被滥用的目标。您最好“允许无密码登录根目录”(阅读手册页,该选项的作用与听起来相反!)。
其他一些措施(堆积在可用的所有安全工具上:)可能不是坏事,甚至在开始时可能是更好的选择,但实际上会使您的项目维护成本高。“禅”的方式是“如果您不想要、不需要或不理解它,那么您就不要安装或运行它。”运行“netstat -apn”并查看第一个列表。您完全禁用不需要的任何内容(通常包括某些服务器守护程序的 ipv6 绑定),您仅将可以绑定到 localhost 的任何内容绑定到 localhost。
如果您熟悉一般的 Linux 操作,请查找 -perm 4000 -o -perm 2000 并分析为什么这些程序需要 setuid/setgid,尤其是当它们需要用于您的目的时(例如,如果系统中唯一更改用户密码的人是 root 或 root 同等权限,则密码更改器二进制文件不需要 setuid。)。顺便说一句,在 debian/ubuntu 中更改软件包管理文件的权限的正确方法是 dpkg-statoverride,不要 chmod 内容,否则更新可能会意外地将其改回。