Estoy pensando en configurar un servidor web modesto usando hardware antiguo y Ubuntu 12.04 o Debian 6. Soy consciente de que al exponer una máquina en mi LAN al mundo exterior me vuelvo vulnerable a ataques y violaciones de seguridad. Dicho esto, y dado que casi no tengo experiencia en proteger computadoras usando Linux, me gustaría pedir algunas recomendaciones sobre lo que debo hacer para proteger este servidor web, especialmente porque hay otras computadoras en la LAN de mi casa que contienen información confidencial ( sobre cuentas bancarias desde casa y cosas así). Muchas gracias.
Respuesta1
Primero, probablemente lo sepas, pero si tienes una IP dinámica, necesitarás un DNS dinámico como DynDNS osalida DNS.
En la parte de seguridad, creo que usar iptables
(o una GUI de firewall comoiniciador de fuegosi lo prefiere) abrir solo el puerto 80 para la conexión entrante es suficiente para un servidor doméstico si no necesita abrir el puerto ssh (puerto 22) o ftp (21) y no instalará un servidor de correo.
Si su sitio tiene una página de inicio de sesión o si necesita abrir ssh, ftp o smtp, le recomendaría al menos instalar algo comofalla2banprohibir IP que intenten conexiones sin éxito para que no lo intenten para siempre.
Una cosa importante a tener en cuenta es que debe echar un vistazo a sus registros para poder vigilarlos e instalarlos fácilmente.logwatch
(debe estar en sus repositorios predeterminados en Debian y Ubuntu) para avisarle por correo diariamente o semanalmente. Aprenderá rápidamente a encontrar lo que está mal leyéndolos con frecuencia.
Si necesita conectarse desde afuera para administrar el servidor, use una VPN y de todos modos, ¡mantenga el sistema operativo siempre actualizado!
Actualización: para SSH y sftp, creo que fail2ban + solo claves ssh (o claves + contraseña pero no solo contraseña) es lo mínimo que necesita (y no permite el acceso de root).
Si las máquinas que utiliza para conectarse tienen IP fija, abra el firewall solo para estas IP entrantes.
Una VPN cifrada (yo usoopenvpn) también ayuda mucho a asegurar su acceso.
Eche un vistazo aquí paratutorial oficial 'rápido', en 15 a 30 minutos tendrá un servidor VPN funcionando para un cliente, un servidor. Para una mejor configuracióncon autenticación de certificado de cliente y una CA(tu propia CA gratuita) tendrás que tomarte unos minutos más :D
Si sus sitios requieren MySQL o por cualquier otro motivo necesita administrar MySQL (u otra base de datos) desde Internet, si no usa una VPN, use un túnel ssh para conectarse a un puerto local en su máquina y el túnel se cifra. la conexión al servidor para que no necesite abrir el puerto de la base de datos, eche un vistazo a los argumentos -L
y -D
en man ssh
.
No instalaría phpmyadmin para escuchar en una IP pública, ya que eso abre su base de datos al mundo. Si lo necesitas, puedo poner un script de ejemplo para un túnel aquí.