确保 Ubuntu 14.04 上的 Apache 安全

确保 Ubuntu 14.04 上的 Apache 安全

我想在家里托管一个小型网站,并安装了 Apache 等,如下所示:

  1. sudo apt-get update
  2. sudo apt-get install tasksel
  3. sudo tasksel install lamp-server

一切顺利,所有东西都正常运行。

现在我已经习惯使用 XAMPP 进行开发,但我不想在现场使用它,因为很多参考资料都说它不是很安全。

所以我的问题是,现在我已经通过上述方法安装了 Apache/PHP 和 MySql;默认的安全级别如何?

是否有办法使其更安全,或许可以提供一份可能建议的更改的清单或概述?

澄清:LAMP 服务器是一个实时站点,而不是开发中的站点。

答案1

我在连接到互联网的 Ubuntu 上运行自己的 LAMP 服务器,因此我始终遵循相同的准则。通常,我会检查以下内容:

  • 在 Apache 中,删除文档或至少不要将其呈现到 Web 服务器上(通过删除链接/etc/apache2/conf-enabled/apache2-doc.conf
  • 在 Apache 中,请确保不加载不必要的模块。对于 Ubuntu,这可以通过删除 中的链接来实现/etc/apache2/mods-enabled。每个链接指向/etc/apache2/mods-available目录中的一个文件,该文件一次加载和配置一个模块。
  • 您可能需要查看并启用/etc/apache2/conf-available/security.conf。他们提出了一些默认情况下未激活的安全提示:
  • 拒绝访问整个文件系统,但稍后明确允许的目录除外
  • 修改服务器横幅,提供尽可能少的有关正在运行的软件的信息。
  • 在 PHP 中,检查是否在出现错误时不会在屏幕上打印过多的日志信息(节中的参数错误处理和日志记录/etc/php4/apache2/php.ini文件的注释。文件中的注释提供了大量有关如何操作的信息)
  • 无需将 MySQL 服务器暴露给互联网。默认情况下,在 Ubuntu 中,Mysql 服务器仅在本地主机上侦听。请查看/etc/mysql/my.cnf本节mysqld对于参数绑定地址. 它应该在 127.0.0.1 上:

    绑定地址 = 127.0.0.1

  • 请不要在此服务器上安装超出您需要的服务。

  • 当他们到达时,不要忘记应用更新。
  • 不要仅仅依赖 LAMP 服务器的配置,不要忘记您还必须运行可能引入一些安全威胁的 PHP 应用程序(输入验证和所有这些东西,以避免在输入字段中键入 SQL 查询来从数据库中检索更多信息,而这些信息您本应给自己,...)

这些是我首先想到的事情。当然,你可以在互联网上找到更详细的操作方法和指南:

答案2

这是我在 LAMP 设置后通常要做的事情:( for development use, not production)

  • 禁用 apache2 自动启动:

    sudo update-rc.d apache2 disable
    

    当你想要使用时,你可以通过以下方式启动它:

    sudo service apache2 start
    
  • 禁止mysql自动启动:

    echo "manual" | sudo tee /etc/init/mysql.override
    

    当你想要使用时,你可以通过以下方式启动它:

    sudo service mysql start
    
  • 在防火墙上阻止传入端口 80 和 3306,以确保您的 LAMP 免受入侵:

    sudo iptables -A INPUT -p tcp --dport 80 -j DROP
    sudo iptables -A INPUT -p tcp --dport 3306 -j DROP
    

    (事实上​​,我阻止了除几个关键端口之外的所有传入端口,但 Linux 安全是另一个话题!)

相关内容