2008-08-07 23 views
19

Me gustaría configurar una caja Linux barata como servidor web para alojar una variedad de tecnologías web (PHP & me viene a la mente Java EE, pero me gustaría experimentar con Ruby o Python en el futuro también).Protección de un servidor web Linux para acceso público

Soy bastante versado en la configuración de Tomcat para ejecutar en Linux para servir aplicaciones Java EE, pero me gustaría poder abrir este servidor, incluso para poder crear algunas herramientas que pueda usar mientras Estoy trabajando en la oficina. Toda la experiencia que he tenido con la configuración de sitios Java EE ha sido para aplicaciones de intranet donde se nos dijo que no nos centráramos en proteger las páginas para usuarios externos.

¿Cuál es su consejo sobre la configuración de un servidor web personal Linux de una manera lo suficientemente segura como para abrirlo para el tráfico externo?

Respuesta

5

Este artículo tiene algunas de las mejores maneras para bloquear las cosas:

http://www.petefreitag.com/item/505.cfm

Algunos aspectos destacados:

  • asegurarse de que nadie puede navegar por los directorios
  • Asegúrese de que sólo root tiene privilegios de escritura para todo, y solo root tiene privilegios de lectura para ciertos archivos de configuración
  • Ejecute mod_security

El artículo también tiene algunos consejos de este libro:

Apache Securiy (O'Reilly Press)

En cuanto a las distribuciones, me he encontrado Debain y Ubuntu, pero sólo depende de cómo mucho que quieras hacer Ejecuté Debian sin X y me metí en él cuando necesitaba algo. Esa es una forma simple de mantener los gastos generales bajos. O Ubuntu tiene algunas cosas interesantes de GUI que facilitan el control de Apache/MySQL/PHP.

0

Hay muchas maneras de hacer esto que funcionarán bien. Por lo general, solo usaría un archivo .htaccess. Rápido de configurar y asegurar suficiente. Probablemente no sea la mejor opción pero funciona para mí. No pondría mis números de tarjeta de crédito detrás, pero aparte de eso, realmente no me importa.

1

Es seguro y seguro si no habla mucho al respecto (es decir, rara vez alguien buscará su servidor doméstico si solo está hospedando una webroot glorificada en una conexión doméstica) y su ingenio sobre su configuración (es decir, , evite usar root para todo, asegúrese de mantener su software actualizado).

En ese sentido, aunque este hilo se reducirá a flaming, mi sugerencia para su servidor personal es atenerse a cualquier cosa Ubuntu (get Ubuntu Server here); en mi experiencia, el más rápido para obtener respuestas de donde hacer preguntas en los foros (aunque no estoy seguro de qué decir sobre la aceptación).

Mi seguridad de servidor de casa Por cierto, un poco de beneficios (creo, o me gusta pensar) de no tener una IP estática (se ejecuta en DynDNS).

¡Buena suerte!

/mp

0

Wow, estás abriendo una lata de gusanos tan pronto como se empieza a abrir nada hasta el tráfico externo. Tenga en cuenta que lo que usted considera un servidor experimental, casi como un cordero sacrificado, también es una opción fácil para las personas que buscan hacer cosas malas con su red y sus recursos.

Todo su enfoque hacia un servidor externo debe ser muy conservador y minucioso. Comienza con cosas simples como políticas de firewall, incluye el sistema operativo subyacente (manteniéndolo parcheado, configurándolo para seguridad, etc.) e involucra cada capa de cada pila que usará. No hay una respuesta o receta simple, me temo.

Si desea experimentar, lo hará mucho mejor para mantener el servidor privado y utilizar una VPN si necesita trabajar en él de forma remota.

1

Tenga cuidado con la apertura del puerto SSH a la naturaleza. Si lo hace, asegúrese de deshabilitar los inicios de sesión raíz (siempre puede su o sudo una vez que ingresa) y considere métodos de autenticación más agresivos dentro de lo razonable. Vi un gran ataque de diccionario en los registros de mi servidor un fin de semana después de mi servidor SSH desde un servidor IP casero de DynDNS.

Habiendo dicho eso, es realmente increíble poder llegar al armazón de su casa desde el trabajo o fuera ... y agregando que puede usar SFTP en el mismo puerto, no podría imaginar la vida sin él . =)

1

Podría considerar un EC2 instance from Amazon. De esta forma, puede probar fácilmente "cosas" sin interferir con la producción. Y solo pague por el espacio, el tiempo y el ancho de banda que usa.

1

Si ejecuta un servidor Linux desde su casa, instale ossec para obtener un IDS liviano que funcione realmente bien.

[EDIT]

Como nota al margen, asegúrese de que usted no ir en contra de la política de uso aceptable de su ISP y que permiten conexiones entrantes en los puertos estándar. El ISP para el que solía trabajar tenía escrito en sus términos que podría desconectarse para ejecutar servidores a través del puerto 80/25 a menos que estuviera en una cuenta de clase empresarial. Si bien no bloqueamos activamente esos puertos (no nos importó a menos que esto haya causado un problema), algunos ISP no permiten el tráfico en el puerto 80 o 25, por lo que deberá usar puertos alternativos.

2

Una cosa que debes tener en cuenta es qué puertos están abiertos al mundo. Personalmente, simplemente abro el puerto 22 para SSH y el puerto 123 para ntpd. Pero si abre el puerto 80 (http) o ftp, asegúrese de aprender a conocer al menos qué sirve al mundo y quién puede hacer qué con eso. No sé mucho sobre ftp, pero hay millones de excelentes tutoriales de Apache a solo una búsqueda de Google de distancia.

5

Es importante seguir las mejores prácticas de seguridad siempre que sea posible, pero no desea complicar demasiado las cosas o perder el sueño preocupándose por mantenerse al día con las últimas hazañas.En mi experiencia, hay dos cosas importantes que pueden ayudar a mantener su servidor personal suficientemente seguro como para vomitar en el Internet al tiempo que conserva la cordura:

1) Seguridad por oscuridad

Ni que decir tiene, basándose en esto en el "mundo real" es una mala idea y no debe entretenerse. Pero eso se debe a que en el mundo real, los malos saben qué hay y que hay botín para tener.

En un servidor personal, la mayoría de los "ataques" que sufrirá serán simplemente barridos automáticos de máquinas que ya se han visto comprometidas, buscando instalaciones predeterminadas de productos que se sabe que son vulnerables. Si su servidor no ofrece nada tentador en los puertos predeterminados o en las ubicaciones predeterminadas, el atacante automatizado continuará. Por lo tanto, si va a ejecutar un servidor ssh, colóquelo en un puerto no estándar (> 1024) y es probable que nunca se encuentre. Si puede salirse con la suya con esta técnica para su servidor web, entonces genial, cambie eso también a un puerto oscuro.

2) Gestión de paquetes

No compilar e instalar Apache o sshd de la fuente sí mismo a menos que sea absolutamente necesario. Si lo hace, asume la responsabilidad de mantenerse al día con los últimos parches de seguridad. Permita que los agradables mantenedores de paquetes de distros de Linux como Debian o Ubuntu hagan el trabajo por usted. Instalar desde los paquetes precompilados de la distribución, y mantenerse actualizado se convierte en una cuestión de emitir el de vez en cuando, la actualización apt-get & & comando apt-get -u dist-upgrade, o utilizando la herramienta de GUI de lujo que proporciona Ubuntu.

+0

Sin embargo, siempre que permita el tráfico externo, es parte del "mundo real". – icedwater

1

Si va a hacer esto, gaste un poco de dinero y al menos compre un enrutador/cortafuegos dedicado con un puerto DMZ por separado. Querrá apagar el cortafuegos de su red interna desde su servidor para que cuando (¡no si!) Su servidor web se vea comprometido, su red interna no sea inmediatamente vulnerable también.

2

Bit-Tech.Net ejecutó un par de artículos sobre cómo configurar un servidor doméstico usando Linux. Aquí están los enlaces:

Article 1
Article 2

espero que aquellos son de alguna ayuda.

2

@svrist mencionó EC2. EC2 proporciona una API para abrir y cerrar puertos de forma remota. De esta manera, puedes mantener tu caja en funcionamiento. Si necesita dar una demostración desde una cafetería o la oficina de un cliente, puede tomar su IP y agregarla a la ACL.

Cuestiones relacionadas