Si todavía usas contraseñas para SSH, estás jugando a la ruleta rusa con la seguridad de tu servidor. Hoy en día es obligatorio usar claves SSH.
Configuración Esencial
Edita /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Líneas clave:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
La opción de PasswordAuthentication no, no permite login usando password. Así que nadie podrá probar contraseñas por fuerza bruta. La opción de PubkeyAuthentication yes establece que sólo se puede entrar por ssh usando una clave pública. La opción de PermitRootLogin no establece que no puedas entrar directamente como usuario root. Lo ideal es entrar con un usuario con menos privilegios que sea sudoer. Aunque es cómodo poner esta opción a yes en ciertas ocasiones.
Pasos Rápidos
Generar Claves
ssh-keygen -t ed25519
# Enter para todo (o pon passphrase)
Copiar Clave Pública
ssh-copy-id usuario@tu-servidor
También puedes añadir manualmente tu clave pública a ~/.ssh/authorized_keys en una nueva línea.
En mi personal cruzada por reducir y optimizar el espacio ocupado en mi servidor, descubrí que Fail2Ban ocupaba ¡3.8GB! Aquí te cuento mi proceso para reducirlo paso a paso.
Una de las mejores meneras de localicar problemas de espacio es usando ncdu. Si todavía no lo tienes ya lo puedes ir instalando apt install ncdu
ncdu /
Mientras navegaba por los directorios, algo en /var/lib llamó mi atención. Al entrar, vi esto:
¿De verdad? ¿Esa herramienta que supuestamente solo guarda unos cuantos logs? ¿3.8 gigabytes?
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "SELECT COUNT(*) FROM bans;"
Resultado: más de 2 millones de registros. ¡Dos millones de baneos! Y cuando verifiqué la antigüedad:
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "SELECT DATE(MIN(timeofban), 'unixepoch') FROM bans;"
Descubrí registros desde 2022. Tres años de ataques, intrusiones fallidas e intentos de brute force acumulándose sin control.
Después de leer documentación y varios intentos fallidos, llegué a la solución elegante:
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 \ "DELETE FROM bans WHERE DATE(timeofban, 'unixepoch') < '2025-06-01'; VACUUM;"
Traducción: «Elimina todos los baneos anteriores al 1 de junio de 2025 y luego compacta la base de datos.»
Ejecuté el comando y… funcionó. Los resultados fueron casi inmediatos
¡De 3.8GB a 3.9MB! Había recuperado el 99.9% del espacio ocupado.
Ahora tengo en mi /etc/fail2ban/jail.local:
[DEFAULT]
dbpurgeage = 30d
Lo que permite purgar la base de datos cada 30 días de manera automática.
Existen muchos comandos en Linux que la mayoría de los usuarios conocen y utilizan regularmente, como «ls» para listar los archivos en un directorio o «cd» para cambiar de directorio. Sin embargo, hay algunos comandos menos conocidos que pueden resultar muy útiles en determinadas situaciones. Uno de esos comandos es watch.
watch es un comando que permite ejecutar cualquier otro comando en un bucle continuo, mostrando la salida en la consola cada cierto tiempo que se especifique. Esto puede resultar muy útil cuando se quiere monitorear un proceso que se está ejecutando en el sistema, ya que permite ver cómo cambia su salida en tiempo real.
Un ejemplo común de uso del comando watch es para monitorear el uso de la memoria en un sistema. Por ejemplo, podemos ejecutar el comando «free -m» (que muestra el uso de la memoria en megabytes) en un bucle con watch de la siguiente manera:
watch -n1 "free -m"
Esto ejecutará el comando «free -m» cada segundo (-n1), mostrando la salida en la consola de la siguiente manera:
De esta forma, podemos ver cómo cambia el uso de la memoria en tiempo real, y tomar decisiones en consecuencia si es necesario.
El comando renice es una herramienta que permite cambiar la prioridad de un proceso en Linux y otros sistemas operativos basados en Unix en tiempo de ejecución. Esto significa que puedes hacer que un proceso consuma más o menos recursos del sistema, lo que puede ser útil si tienes varios procesos en activos y uno de ellos está consumiendo demasiados recursos.
Para utilizar el comando renice, primero debes conocer el ID del proceso al que quieres cambiar la prioridad. Puedes encontrar este ID ejecutando el comando ps -ef en tu terminal, lo que te mostrará una lista de todos los procesos en ejecución en tu sistema. Una vez que tengas el ID del proceso, puedes utilizar el comando renice seguido del nuevo valor de prioridad que quieres asignarle al proceso.
Cabe mencionar que el valor de prioridad que puedes asignar a un proceso va desde -20 (la más alta) hasta 19 (la más baja). Por lo general, se recomienda no asignar prioridades muy altas a procesos, ya que esto puede hacer que otros procesos en ejecución en tu sistema se vuelvan lentos o inestables. En cambio, asignar una prioridad muy baja a un proceso puede hacer que este consuma menos recursos y no afecte el rendimiento del sistema.
Para utilizar el comando renice, debes proporcionar el ID del proceso que deseas cambiar la prioridad y la nueva prioridad que deseas asignarle. Por ejemplo, supongamos que quieres cambiar la prioridad del proceso con ID 12345 a un nivel de prioridad de 10. Puedes hacerlo de la siguiente manera:
renice 10 -p 12345
Esto cambiará la prioridad del proceso con ID 12345 a 10, lo que significa que tendrá acceso a una mayor cantidad de recursos del sistema. La prioridad nice de un proceso en Linux por defecto depende del valor predeterminado que esté establecido en el sistema operativo. En muchos sistemas operativos Linux, la prioridad nice por defecto para un proceso es 0. Por lo tanto establecer una prioridad menor que 0, será otorgar una prioridad alta, mientras que una prioridad mayor que 0 otorgará una prioridad baja.
También puedes utilizar el comando renice sin especificar un ID de proceso en particular. Por ejemplo, si quieres cambiar la prioridad de todos los procesos que están siendo ejecutados por el usuario «usuario1» a un nivel de prioridad de 10, puedes usar el siguiente comando:
renice 10 -u usuario1
Esto cambiará la prioridad de todos los procesos que están siendo ejecutados por el usuario «usuario1» a un nivel de prioridad de 10.
Hay muchas otras opciones y formas de utilizar el comando renice, así que si quieres obtener más información, puedes consultar la documentación del comando en tu sistema operativo Linux.
Para instalarlo necesitas tener cualquier distribución Linux, yo usaré Ubuntu 10.10 como sistema operativo (aunque el proceso debería ser similar en otras distribuciones), y descargar una aplicación de Debian llamada tasksel. Esta aplicación, agrupa varias aplicaciones por tareas y ofrece al usuario una manera fácil de instalar paquetes según tus necesidades. Para instalarlo, necesitamos escribir en un terminal
Una vez instalado, ejecutamos tasksel que será el que haga todo lo necesario para preparar nuestro entorno LAMP
pedro@pedro-laptop:~$ sudo tasksel
Menú inicial de tasksel
Una vez lleguemos a este menú, solo tendremos que seleccionar LAMP Server utilizando la barra espaciadora, y ya que estamos, puedes instalar cualquier otra cosa que necesites. Despues sólo tienes que ir al botón de Ok utilizando el tabulador, y empezará la instalación!
Proceso de instalación de LAMP
Deberemos rellenar la contraseña que queramos poner al usuario root de MySQL (y luego nos pedirá repetirla por si acaso).
Contraseña de root en MySQL
Y ya está listo!!
Podemos comprobar si Apache está funcionando abriendo nuestro navegador favorito y escribiendo http://127.0.0.1/ en la barra de direcciones. Si aparece la siguiente imagen, es que Apache funciona bien!!
Comprobación de Apache
Apache funciona, pero ¿qué pasa con PHP?
Para probar PHP, puedes generar un phpinfo. Para hacerlo sólo tienes que crear un archivo que se llame /var/www/phpinfo.php. Puedes hacerlo de la siguiente manera:
pedro@pedro-laptop:~$ nano /var/www/phpinfo.php
Y escribir en el editor:
<?php
phpinfo();
?>
Si al visitar http://127.0.0.1/phpinfo.php aparece algo similar a lo que se muestra en la imagen siguiente, es que todo está correcto.
Comprobación de PHP
¿Ya está? Qué facil!
Ya estas preparado para empezar a programar. El directorio al que apunta por defecto Apache, es /var/www, es allí donde está ubicado index.html y phpinfo.php con el que hemos probado el funcionamiento de Apache y PHP respectivamente.
Personalmente, como complemento imprescindible a todo LAMP, simpre instalo phpmyadmin, un gestor para MySQL que nos facilitará mucho las cosas cuando queramos trabajar con Bases de Datos. Para hacerlo:
Durante el proceso de instalación nos preguntará qué servidor web es el que utilizaremos, en nuestro caso Apache, así que lo seleccionamos con el espacio y presionamos Ok.
Instalación de phpMyAdmin
A continuación nos preguntará si queremos que se configure automáticamente o por el contrario no hacer nada. Si te atreves a configurarlo manualmente (modificando los archivos de configuración) haz clic en No, pero es más cómodo hacer clic en Yes.
Instalación de phpMyAdmin
También necesitaremos proporcionar la contraseña que previamente habíamos utilizado al configurar MySQL, así que la escribimos (luego nos la volverá a pedir para confirmar).
Instalación de phpMyAdmin
Ahora también tenemos listo nuestro phpMyAdmin. Podemos comprobar que funciona correctamente si visitamos http://127.0.0.1/phpmyadmin.
Comprobación de phpMyAdmin
Voilà!! Ya podemos crear fácilmente tablas, bases de datos para jugar con MySQL!! 😀
Página principal de phpMyAdmin
Al final no ha sido un solo comando, pero casi!! Ahora nos queda lo más divertido: empezar a programar en PHP para hacer aplicaciones libres!!
Hace algún tiempo estuve buscando por internet alternativas al terminal de Gnome, porque – llamadme antiguo – el terminal es mucho más rápido para hacer muchas cosas que cualquier entorno gráfico, por muy bonito que pueda resultar compiz fusion.
Me encontré con un par de aplicaciones que me han gustado mucho y resultan muy cómodas en el día a día.
Terminator
La primera es terminator, que a pesar de tener un nombre muy peliculero es muy cómodo cuando necesitas tener varios terminales a la vista. Puedes instalarlo en Ubuntu simplemente escribiendo esto en tu terminal (para otras distribuciones y MacOS, visitad la página oficial)
sudo apt-get install terminator
Una vez instalado podreis encontrarlo en Aplicaciones » Accesorios » Exterminador
Aplicaciones » Accesorios » Exterminador
Lo bueno de este terminal es que, haciendo clic con el botón derecho, puedes realizar subdivisiones en horizontal y en vertical para obtener tantos terminales como necesites…
terminator con 3 divisiones, perfecto para jugar con aircrack 😛
Bueno, en la siguiente imagen quizás me he pasado un poco…
terminator con 7 divisiones
Nautilus-Terminal La otra aplicación que encontré se llama nautilus-terminal, la verdad es que esta aplicación no deja de ser gnome-terminal, aunque esta vez integrado en cada ventana de nautilus de una forma muy discreta. En cada ventana aparece una pequeña zona con un botón que pone Mostrar. Al hacer clic se despliega dentro de la propia ventana un pequeño terminal listo para usar. Incluso puedes arrastrar archivos para no tener que escribir su ubicación. Para instalarlo escribe en un tu terminal:
Ríos de tinta se han escrito sobre esta genial herramienta: Dropbox. Para el que todavía ande un poco despistado os contaré qué hace este software. Se trata, a mi parecer, del más sencillo sistema de sincronización de archivos en la nube: eso que está tan de moda que ahora llaman cloud computing.
Personalmente utilizo Dropbox para:
Hacer backups automáticos de cosas importantes.
Compartir archivos (música, fotos, videos, documentos de texto, etc..) con mis amigos mediante un enlace.
Enviar archivos de gran tamaño directamente al disco duro de otros usuarios de Dropbox.
Restaurar copias de archivos antiguos. Algo así como el Time Machine de Apple, pero en la nube.
Generar documentos colaborativos. Un archivo compartido que cada usuario modifica cuando lo necesita.
Si cambias de PC o formateas no pierdes información. Sólo instalando Dropbox tendrás de nuevo todos los ficheros que hayas elegido.
Además, el programa te permite disponer de los archivos que quieras en cualquier ordenador (o dispositivo) del mundo en el que tengas instalado Dropbox!! Incluso entre distintos usuarios si compartes carpetas!! Y lo mejor es que puede utilizarse en Linux, Mac, Windows, Android, Blackberry, iPhone, iPad o simplemente a través de la web. Y con una capacidad de hasta 10Gb totalmente gratis. Empiezan ofreciéndote 2Gb, que se incrementa en +250Mb cada vez que invitas a algún amigo.
Cada vez que quieras compartir un documento o foto sólo tienes que copiarlo en tu carpeta Dropbox y aparecerá como por arte de magia, en todos los ordenadores en los que tengas Dropbox instalado. También podemos obtener un enlace que si lo enviamos a cualquier persona, podrá descargar el archivo sin que sea usuario de Dropbox. Otra funcionalidad que nos ofrece es poder recuperar versiones antiguas de ficheros que ya han sido modificados. Pudiendo restaurarlo en cualquier fecha, incluso si el fichero ya ha sido borrado de tu disco duro.
Lo mejor es que lo pruebes tú mismo y veas lo útil que resulta.
Para instalarlo, es tan sencillo como registrarse aquí introduciendo tus datos (el email es importante que sea válido). ¡Recuerda los datos introducidos porque luego los necesitaremos!
Tras registrarte comenzará automáticamente la descarga del programa. Al acabar, deberás instalar haciendo doble clic en el archivo para instalarlo.
Una vez instalado, preguntará si queremos crear una cuenta nueva o utilizar una existente. Haremos clic en utilizar una cuenta existente y después en Siguiente (Next).
Es en este paso donde rellenaremos el campo email y password con los datos que hemos utilizado al principio.
Nos preguntará qué tipo de cuenta queremos, en la mayoría de casos, al menos al principio para probarlo, utilizaremos la cuenta gratuita. Así que seleccionamos la primera opción, que nos ofrece 2Gb para empezar.
Para finalizar la instalación, nos pregunta si queremos añadir un acceso directo en el escritorio (por defecto viene marcado) y si queremos modificar la ubicación de la capeta Dropbox, que por defecto será Mis Documentos, hay que seleccionar la opción marcado en rojo.
Y ya tenemos el programa listo para usar. Una gran herramienta que desde hace más de un año se ha convertido para mi en imprescindible. Ahora es más fácil que nunca tener todos los documentos de la universidad en cualquier ordenador sin tener que cargar con un pendrive a todos lados. O subir los videos de las vacaciones para que cualquiera que queramos pueda descargarlo con un enlace (es mejor que megaupload!!!).
[30-sep-2010] UPDATE!! Ahora te duplican el espacio si eres estudiante, visita http://db.tt/edu e indica tu correo electrónico con extensión .edu y a disfrutar de hasta 20Gb!! 😀
Ríos de tinta se han escrito sobre esta genial herramienta: Dropbox. Para el que todavía ande un poco despistado os contaré qué hace este software. Se trata, a mi parecer, del más sencillo sistema de sincronización de archivos en la nube: eso que está tan de moda que ahora llaman cloud computing.
Personalmente utilizo Dropbox para:
Hacer backups automáticos de cosas importantes.
Compartir archivos (música, fotos, videos, documentos de texto, etc..) con mis amigos mediante un enlace.
Enviar archivos de gran tamaño directamente al disco duro de otros usuarios de Dropbox.
Restaurar copias de archivos antiguos. Algo así como el Time Machine de Apple, pero en la nube.
Generar documentos colaborativos. Un archivo compartido que cada usuario modifica cuando lo necesita.
Si cambias de PC o formateas no pierdes información. Sólo instalando Dropbox tendrás de nuevo todos los ficheros que hayas elegido.
Además, el programa te permite disponer de los archivos que quieras en cualquier ordenador (o dispositivo) del mundo en el que tengas instalado Dropbox!! Incluso entre distintos usuarios si compartes carpetas!! Y lo mejor es que puede utilizarse en Linux, Mac, Windows, Android, Blackberry, iPhone, iPad o simplemente a través de la web. Y con una capacidad de hasta 10Gb totalmente gratis. Empiezan ofreciéndote 2Gb, que se incrementa en +250Mb cada vez que invitas a algún amigo.
Cada vez que quieras compartir un documento o foto sólo tienes que copiarlo en tu carpeta Dropbox y aparecerá como por arte de magia, en todos los ordenadores en los que tengas Dropbox instalado. También podemos obtener un enlace que si lo enviamos a cualquier persona, podrá descargar el archivo sin que sea usuario de Dropbox. Otra funcionalidad que nos ofrece es poder recuperar versiones antiguas de ficheros que ya han sido modificados. Pudiendo restaurarlo en cualquier fecha, incluso si el fichero ya ha sido borrado de tu disco duro.
Lo mejor es que lo pruebes tú mismo y veas lo útil que resulta.
Para instalarlo, es tan sencillo como registrarse aquí introduciendo tus datos (el email es importante que sea válido). ¡Recuerda los datos introducidos porque luego los necesitaremos!
Tras registrarte comenzará automáticamente la descarga del programa. Al acabar, deberás instalar haciendo doble clic en el archivo para instalarlo.
Una vez instalado, preguntará si queremos crear una cuenta nueva o utilizar una existente. Haremos clic en utilizar una cuenta existente y después en Siguiente (Next).
Es en este paso donde rellenaremos el campo email y password con los datos que hemos utilizado al principio.
Nos preguntará qué tipo de cuenta queremos, en la mayoría de casos, al menos al principio para probarlo, utilizaremos la cuenta gratuita. Así que seleccionamos la primera opción, que nos ofrece 2Gb para empezar.
Para finalizar la instalación, nos pregunta si queremos añadir un acceso directo en el escritorio (por defecto viene marcado) y si queremos modificar la ubicación de la capeta Dropbox, que por defecto será Mis Documentos, hay que seleccionar la opción marcado en rojo.
Y ya tenemos el programa listo para usar. Una gran herramienta que desde hace más de un año se ha convertido para mi en imprescindible. Ahora es más fácil que nunca tener todos los documentos de la universidad en cualquier ordenador sin tener que cargar con un pendrive a todos lados. O subir los videos de las vacaciones para que cualquiera que queramos pueda descargarlo con un enlace (es mejor que megaupload!!!).