如何正确设置和保护生产 LAMP 服务器?

Nik*_*las 8 server 11.04 apache2

我已经执行了一个普通的 Ubuntu Server 11.04,通过系统安装安装了 LAMP、SAMBA 和 SSH。但是我在设置虚拟主机并使系统足够安全以将服务器暴露给网络时遇到了一些麻烦。

到目前为止,我已经在一定程度上遵循了本教程

我有 3 个站点,/etc/apache2/sites-available除了不同的站点名称外,所有站点都如下所示:

<VirtualHost example.com>
   ServerAdmin webmaster@localhost
   ServerAlias www.edunder.se
   DocumentRoot /var/www/sites/example
   CustomLog /var/log/apache2/www.example.com-access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我已经使用命令启用了它们,a2ensite所以我在/etc/apache2/sites-enabled.

我的/etc/hosts文件有这些行:

127.0.0.1 localhost
127.0.1.1 Ubuntu.lan Ubuntu
127.0.0.1 localhost.localdomain localhost example.com www.example.com
127.0.0.1 localhost.localdomain localhost example2.com www.example2.com
127.0.0.1 localhost.localdomain localhost example3.com www.example3.com
Run Code Online (Sandbox Code Playgroud)

而且我只能从浏览器访问其中一个(我在服务器上安装了lynx用于测试目的)所以我想我没有正确设置它们:)

我应该如何继续获得安全和正确的设置?我也使用 MySQL,我认为如何设置 Ubuntu 服务器以(安全地)从互联网上可用?足以安全地设置 SSH。请帮助我更好地理解 Apache 配置,因为我是设置自己的服务器的新手(我之前只运行过 XAMPP),请就我应该如何设置防火墙提出建议:D

小智 1

您需要告诉 Apache 它应该使用基于名称的虚拟主机而不是基于 IP 的虚拟主机。因此,将以下内容附加到 /etc/apache2/apache2.conf 中进行定义:

NameVirtualHost ip.address:port
Run Code Online (Sandbox Code Playgroud)

每个虚拟主机应该定义一个端口:

<VirtualHost example.com:80>
Run Code Online (Sandbox Code Playgroud)


Jo-*_*tad 0

我认为如果您希望其他计算机能够连接,您还需要添加您的公共 IP。目前,/etc/hosts 中仅提及您的环回。它们还应该包括其他 IP。