Hay muchas razones para configurar un servidor doméstico. Puede usarlo como un servidor de medios, un servidor de archivos o incluso un servidor de respaldo local. Básicamente, cualquier archivo suyo que no necesite estar en línea es un buen candidato para un servidor doméstico. Configurar un servidor doméstico con Linux es relativamente fácil, especialmente en estos días. Dicho esto, mantener ese servidor seguro es otra historia por completo. La seguridad puede ser tan complicada como importante.
Instale solo lo que absolutamente necesita
Una de las formas más sencillas de mantener seguro el servidor doméstico es tener en cuenta la seguridad desde el principio. Esto comienza con la instalación. ¿No está seguro si necesita una aplicación o un servicio? No lo instales. Siempre puedes instalarlo más tarde.
Si ha instalado Linux varias veces, esto es aún más fácil. En lugar de apegarse a los valores predeterminados, use los modos que le den el mayor control sobre la instalación. A veces, estos se denominan «modo experto» o algo similar.
Hacer un seguimiento cuidadoso de las opciones de instalación puede ahorrarle tiempo al deshabilitar los servicios por razones de seguridad más adelante.
Configurar sudo
Antes de continuar con cualquier otro paso, debe configurar sudo
. ¿Por qué? Porque una vez que hayamos terminado aquí, iniciará sesión en su servidor a través de SSH y no podrá iniciar sesión como la cuenta raíz. Para realizar más cambios en su sistema, deberá utilizar sudo
.
Primero, verifique si ya puede usar sudo
. Desde su cuenta de usuario, ejecute lo siguiente con su nombre de usuario en lugar de NOMBRE DE USUARIO:
Si ve un mensaje que indica que su nombre de usuario puede ejecutar «(TODO) TODO» o algo similar, está listo para continuar.
Ahora, como cuenta raíz en su servidor, ejecute lo siguiente para editar el archivo “/etc/sudoers”. Si prefiere otro editor, utilícelo en lugar de nano.
Edite el archivo para incluir lo siguiente, con su nombre de usuario en lugar de NOMBRE DE USUARIO:
Configurar SSH
Es posible que ya tenga habilitado SSH en su servidor doméstico. De hecho, es probable que lo haga, ya que esta es típicamente la forma en que interactúa con un servidor.
Primero, asegúrese de que OpenSSH esté instalado. Si usa otra distribución, su comando variará, pero el nombre del paquete debe ser bastante consistente. En Ubuntu, ejecute lo siguiente:
sudo apt install openssh-server
El uso de la autenticación basada en claves es mucho más seguro que la autenticación con contraseña, por lo que configuraremos SSH para que funcione de esta manera. Para hacer esto, asegúrese de estar trabajando en un cliente con el que planea conectarse al servidor, no en el servidor en sí. Primero, debes asegurarte de no tener ninguna clave SSH:
Si ve «id_rsa» e «id_rsa.pub» entre los nombres de archivo enumerados, ya tiene claves SSH. Omita este siguiente paso.
ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
Ahora copiará la clave SSH a su servidor:
ssh-copy-id USERNAME@SERVER
Para un servidor doméstico, es probable que esté utilizando una dirección IP para su servidor en lugar de un nombre. Si no sabe el nombre de su servidor, use su dirección IP en lugar de SERVIDOR arriba.
Ahora editaremos su configuración de SSH para protegerlos más. Inicie sesión en su servidor desde el cliente en el que creó las claves. Esto le permitirá volver a iniciar sesión después de este paso. Ejecute lo siguiente, reemplazando nano
con el editor de su elección.
sudo nano /etc/ssh/sshd_config
Edite el archivo y con la siguiente configuración. Estos estarán ubicados en varios lugares en el archivo. Asegúrese de que no haya duplicados, ya que solo se seguirá la primera instancia de una configuración.
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no
Ahora necesita reiniciar el servidor SSH con uno de los siguientes comandos.
En Ubuntu, ejecuta:
sudo systemctl restart ssh
Configurar un cortafuegos
Dependiendo de los servicios que esté ejecutando y cuánto se conecta su servidor a Internet, es posible que desee ejecutar un firewall. Hay algunas opciones para esto, pero el método probado y verdadero en Linux es iptables.
Configurar iptables está más allá del alcance de este artículo, pero no se preocupe. Tenemos una guía completa para configurar iptables en su máquina.
Otra forma más fácil de configurar un firewall es usar ufw
. Puedes instalarlo con el comando:
Por defecto, bloqueará todos los puertos. Para habilitar el acceso en línea y ssh, ejecute los siguientes comandos ufw para abrir los puertos 80, 443 y 22:
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22
Y, por último, habilite el servicio ufw:
Estar al día
Los servidores pueden ser fáciles de olvidar si solo funcionan, pero esto puede ser peligroso. Asegúrese de mantener su software actualizado. Puede usar actualizaciones desatendidas, pero pueden ser impredecibles. La forma más segura es programar una cita regular de mantenimiento del servidor semanal o mensual para asegurarse de que todo esté en orden.
A dónde ir desde aquí
Ahora tiene un buen comienzo para mantener su servidor protegido de amenazas externas. Sin embargo, ¿qué sucede si necesita acceder a su servidor desde casa? Cada puerta que abra podría ser utilizada por un atacante, y cada puerto abierto aumenta su vulnerabilidad.
Una de las formas más fáciles de acceder a su red doméstica desde el exterior es usar una VPN, que está fuera del alcance de este artículo, pero no se preocupe, lo tenemos cubierto. Eche un vistazo a nuestra lista de los mejores servicios VPN seguros disponibles para tener una idea de cuáles son sus opciones.