可能的重复:
使用什么来加固 Linux 盒子? Apparmor、SELinux、grsecurity、SMACK、chroot?
我刚刚完成网络服务器的安装。那么我应该怎么做才能保证它的安全呢?
我刚刚安装了 Apache、Nginx、Mysql、Php。定期升级(yum 升级)
如何防止被黑客攻击?
答案1
- 让您的所有软件包保持最新,尤其是面向网络的任何软件包
- 如果允许 ssh 进入,请将其设置为仅允许使用证书的 ssh,而不是使用用户名/密码。
- 如果您编写了自己的 Web 应用程序,请确保您了解 SQL 注入、跨站点脚本等。
- 备份,备份,备份。
答案2
我假设您还将使用 SSH 进行远程访问和服务器维护。
- 要求用户拥有强密码或安装 pam-cracklib。
- 禁用 root 登录。 (sshd_config 中没有 PermitRootLogin)
- 禁用空密码。 (sshd_config 中的 PermitEmptyPasswords no 并从 /etc/pam.conf 或 /etc/pam.d 下的任何 PAM 配置文件中删除 nullok)
- 完全禁用密码身份验证可以获得额外的好处,只需依靠更强大的公钥或 Kerberos 身份验证。 (sshd_config 中没有密码验证)
- 限制哪些用户可以使用 SSH。 (在 sshd_config 中允许用户)
现在 SSH 已合理锁定,请使用 ufw 安装防火墙,并仅允许传入连接到您知道将要运行的服务。
ufw enable
ufw allow ssh
ufw allow http
ufw allow https
ufw default deny
上面的内容未经测试,可能会将您锁定在网络之外,但它应该接近正确。现在锁定 PHP。建议考虑通过 fastcgi 或 suexec 来运行 PHP,而不是使用 mod_php,因为这允许您以不同的用户(或多个站点的用户)身份运行 PHP,从而保护 Apache 免受 PHP 中的安全漏洞影响。 PHP 手册中还有一些有关保护 PHP 安全的其他提示,例如安全模式。如果您正在使用 PHP 运行标准 CMS(例如 Drupal/Joomla/Wordpress),请确保它保持最新状态并安装了最新的安全补丁。
答案3
我在这里没有看到“黑客”的问题,但如果您偶然想到“如何防范黑客?”,我建议研究每个软件组件、它们的选项和可能的安全策略前向世界开放机器。
检查您的设置,确保保持简单(例如,如果您只想提供一堆静态文件,请不要安装 apache,一个更简单、轻量级的网络服务器也可以,同时具有更少的潜在攻击媒介;不要如果您不需要动态页面(或者至少如果您的动态页面可以使用比 PHP 更简单的代码进行编码),请不要安装 PHP。
关于对抗攻击,请为名为以下内容的用户做好准备:罗伯特');删除表格学生;--), 等等。
安全性从来都不是“保持最新”那么简单 - 如果您选择以安全性和稳定性为中心的发行版和更新包,那么跟踪安全性甚至可能会更容易仅有的当存在一些影响您的设置或您真正需要的功能的漏洞时 - 通过这种方式,您可以在其他地方构建您的系统,并在您的服务器系统中使用目录的冻结副本/
(对于那些不应该更改的目录)(无论是真的还是不可能在那里更改文件,或者您至少可以将校验和与先前计算的已知良好校验和列表进行比较)。
这都是关于你必须做出的一系列选择前向世界开放系统。
答案4
使用 ISO/IEC 27001 认证您的组织和系统 如果您详细了解如何从技术上做到这一点 - 一定要偏执。