¿Cómo configuro y aseguro correctamente un servidor LAMP de producción?

8

Es muy difícil encontrar información completa sobre este tema. O encontré tutoriales breves sobre cómo realizar la instalación, tan simples como "apt-get install apache2" o tutoriales obsoletos. Así que esperaba poder obtener información profesional de mis compañeros de la comunidad Ubuntu: D

He realizado un Ubuntu Server 11.04 normal con LAMP, SAMBA y SSH instalados a través de la instalación del sistema. Pero tengo algunos problemas para configurar hosts virtuales y hacer que el sistema sea lo suficientemente seguro como para exponer el servidor a la web.

He seguido este tutorial hasta aquí.

Tengo 3 sitios en / etc / apache2 / sites-available que se ven así excepto por diferentes nombres de sitios:

<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>

Y los he habilitado con el comando a2ensite, así que tengo enlaces simbólicos en / etc / apache2 / sites-enabled .

Mi archivo / etc / hosts tiene estas líneas:

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

Y solo puedo acceder a uno de ellos desde el navegador (tengo instalado Lynx en el servidor para fines de prueba), así que supongo que no los configuré correctamente :)

¿Cómo debo proceder para obtener una configuración segura y adecuada? También uso MySQL y creo que este tutorial será suficiente para configurar SSH de forma segura. Ayúdame a comprender mejor la configuración de Apache, ya que soy nuevo en la configuración de mi propio servidor (solo he ejecutado XAMPP anteriormente) y por favor aconseja sobre cómo debo configurar un firewall también: D

Niklas
fuente
1
También puede solicitar en serverfault.com, un StackExchange para configurar y mantener servidores y sistemas.
Kris Harper
2
Una respuesta correcta a esto puede llenar libros. Sugeriría dividir su pregunta en alguna con respecto a la configuración de hosts virtuales y seguridad. Una buena respuesta a las preguntas relacionadas con la seguridad se relaciona con un buen conocimiento de sus atacantes, de sus usuarios y algunos otros.
qbi
¡Gracias, comprobaré serverfault si puedo encontrar alguna buena respuesta! :)
Niklas

Respuestas:

1

Debe decirle a Apache que debe usar un alojamiento virtual basado en nombre en lugar de IP. Así que agregue lo siguiente a su /etc/apache2/apache2.conf para definir:

NameVirtualHost ip.address:port

Y cada host virtual debe definir un puerto:

<VirtualHost example.com:80>

fuente
0

Creo que también necesitará agregar sus IP públicas si desea que otras computadoras puedan conectarse. En este momento, solo se mencionan sus bucles en / etc / hosts. También deberían incluir otras IP.

Jo-Erlend Schinstad
fuente
¿Estás seguro? ¿No sería suficiente si solo hago que mi servidor de nombres de dominio apunte a mi IP y luego deje que el enrutador dirija el tráfico al servidor? Tengo DHCP, así que estoy usando el servicio de DynDNS para reenviar el tráfico a mi IP.
Niklas