A modo de chuleta dejo este microtutorial de cómo crear una base de datos MySQL y un usuario con permisos para esa base de datos. Es muy útil cuando estoy creando un sitio web y necesito una base de datos con un usuario que solo puede acceder a esa base de datos.
Author: Jesús Amieiro
Freedom of expression
Actualizar Notepad++ y encontrar esto
Freedom of expression is like the air we breathe, we don’t feel it, until people take it away from us.
For this reason, Je suis Charlie, not because I endorse everything they published, but because I cherish the right to speak out freely without risk even when it offends others.
And no, you cannot just take someone’s life for whatever he/she expressed.Hence this “Je suis Charlie” edition.
– #JeSuisCharlie
Imposible estar más de acuerdo. <3<3<3
LanguageTool, corrector gramatical y de estilo para LibreOffice
Desde hace algún tiempo vengo usando en LibreOffice un complemento que funciona bastante bien para la corrección gramatical y de estilo. Yo lo uso fundamentalmente en LibreOffice Writer, que es con la herramienta ofimática con la que más trabajo. Recomendable.
Lo podéis descargar desde su web LanguageTool.org.
Parece que también es compatible con OpenOffice.org, aunque no lo he probado.
Protección para la vulnerabilidad XML-RPC de WordPress en nginx
En una entrada anterior expliqué cómo proteger el blog de un ataque a la vulnerabilidad XML-RPC en WordPress en un servidor Apache.
En esta entrada indico los campos que hay que añadir en cada configuración de los hosts de nginx para evitar este ataque. Simplemente hay que añadir
#…..
location = /xmlrpc.php {
deny all;
access_log off; #Evitamos saturar el archivo de log
}
#…..
}
Recuerda volver a cargar la configuración del servidor, ejecutando
Encontrar equipos activos en una red local con nmap
Muchas veces tenemos que encontrar qué equipos activos tenemos en una red local o que IP acaba de ser asignada a un equipo sobre el que no tenemos acceso directo, sino que tenemos que acceder a él por SSH, Terminal Server,…
Para encontrar la IP resulta muy cómodo el siguiente escaneo con nmap (como administrador)
nmap -sP 192.168.0.1/24
En este caso estamos escaneando una red de tipo C 192.168.0.0, 192.168.0.0/24 o 192.168.0.0 con máscara de red 255.255.255.0, como queramos verla.
Este tipo de escaneos no van a funcionar si algún equipo tiene bloqueado en el firewall el ping, ya que lo que hace el parámetro “-sP” es un sondeo ping.
Más información:
:wq
Putty, SSH y claves RSA. Acceder a un servidor Linux desde Windows con Putty y claves RSA
En una entrada anterior expliqué cómo acceder por SSH a un servidor o equipo remoto sin introducir ni usuario ni contraseña entre equipos Linux o Unix (OS X incluido). En esta entrada voy a explicar cómo hacer lo mismo desde un equipo Windows, usando la aplicación de acceso remoto Putty.
Lo primero que tenemos que hacer es descargar e instalar Putty. Instala varias aplicaciones
Ejecutamos PuTTYgen para generar la clave pública/privada RSA (SSH-2) de 2048 bits. Selecciono estas dos opciones.
A continuación muevo el ratón por la zona vacía para generar aleatoriedad en la creación de las claves.
Y ya tengo generadas las 2 claves RSA.
Tras generar las 2 claves, las guardo, por ejemplo, en un directorio llamado “my_keys” en “Mis documentos”:
- Clave pública: rsa-key-servidor
- Clave privada: rsa-key-servidor.ppk
A continuación copio la clave pública haciendo clic con el botón derecho del campo que indica “Public key for pasting into OpenSSH authorized_keys file:”, usando los comandos “Seleccionar todo” y “Copiar”. Es importante comprobar que la clave empiece por el texto ssh-rsa AAAA.
Lo siguiente que tengo que hacer es acceder al servidor con el usuario que estoy configurando y pegar esta clave al final del archivo ~/.ssh/authorized_keys. En el peor de los casos, que no tenga creado el archivo ni el directorio .ssh, ejecuto los comandos:
mkdir ~/.ssh
# Cambio los permisos para que solo pueda acceder el propietario
chmod 0700 ~/.ssh
# Creo el archivo vacio
touch ~/.ssh/authorized_keys
#Cambio los permisos del archivo
chmod 0644 ~/.ssh/authorized_keys
Y en este archivo “authorized_keys” tengo que pegar al final del archivo la clave pública copiada en el paso previo.
A continuación tengo que configurar Putty. Lo ejecuto.
En la sección Session introduzco los datos del servidor remoto: IP o host (campo “Host Name (or IP address)“) y puerto (campo “Port“).
En la sección Connection -> Data introduzco el nombre de usuario (campo “Auto-login username”) en el servidor remoto para el que estoy configurando las claves.
En la sección Connection -> SSH -> Auth le indico la ubicación de la clave privada (extensión .ppk) creada previamente.
Ya solo me queda guardar la sesión con un nombre determinado, que en este caso será la IP del servidor al que me quiero conectar, ya que es un servidor de la red local y lo identifico fácilmente. Para ello voy a la sección Session, selecciono una sesión existente (o creo una nueva introduciendo el nombre en el campo “Saved Sessions“) y hago clic en el botón “Save“.
Ya tengo todo configurado. Para conectarme automáticamente al servidor bastará con que haga doble clic sobre la sesión guardada.
Más información:
:wq
Acceder por SSH a un servidor o equipo remoto sin introducir ni usuario ni contraseña
Cuando nos conectamos a un servidor para poder administrarlo lo solemos hacer por SSH (espero que no uses telnet u otros métodos no seguros 😉 ). Tras instalarlo, para acceder usamos un usuario y una contraseña y empezamos a administrarlo.
Una de las implementaciones más habituales es OpenSSH (OpenBSD Secure Shell), un proyecto que nació en el año 1999 y cuya finalidad, tal y como indican en su web es:
OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH provides secure tunneling capabilities and several authentication methods, and supports all SSH protocol versions.
Esta implementación está presente, tanto la parte de cliente como la de servidor, en la mayoría de máquinas no Windows: BSD (OpenBSD, FreeBSD, NetBSD,…), Cygwin, Mac OS X a partir de la versión 10.1, IBM AIX, Sun Solaris, máquinas Cisco, Novell NetWare, máquinas Dell, HP-UX, máquinas Juniper y todos los Linux.
La suite OpenSSH reemplaza rlogin y telnet con ssh, rcp con scp y ftp con sftp. También incluye la implementación del servidor, sshd, y otras utilidades, tales como ssh-add, ssh-agent, ssh-keysign, ssh-keyscan, ssh-keygen y sftp-server.
Como podemos ver es una suite de comunicaciones segura, muy completa y de uso muy extendido.
En este artículo explico como configurar un equipo con alguno de los sistemas operativos en los que podemos instalar OpenSSH y con el cuál queremos acceder desde una consola a un servidor mediante SSH sin tener que introducir contraseñas.
Para esto utilizaremos autentificación de clave pública; es decir, tenemos una clave pública y otra privada que usaremos para autentificarnos ante otros sistemas, como en este caso ante un servidor remoto.
Lo primero que hacemos en el equipo local es generar el conjunto de claves pública y privada. Para ello usamos el comando ssh-keygen, que permite la creación de claves de autentificación. Nos pedirá la ruta y el nombre del archivo que le vamos a dar a la clave privada (a la pública le añade la extensión .pub) y una contraseña de acceso para cuando queramos acceder a la clave privada. Si estáis en un equipo local controlado por vosotros podéis dejarla vacía.
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/usuario/.ssh/id_rsa): /home/usuario/.ssh/usuario_local Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/usuario/.ssh/usuario_local. Your public key has been saved in /home/usuario/.ssh/usuario_local.pub. The key fingerprint is: 7f:6d:24:8b:d5:9c:8e:03:13:6c:dc:09:f2:c7:f2:ec usuario@equipo The key's randomart image is: +--[ RSA 2048]----+ | ..oo . | | =..o | | = o | | * o . | | o S . = . | | + + + + | | E + o o | | . . . | | | +-----------------+
Acabamos de generar 2 claves de tipo RSA de 2048 bits:
- /home/usuario/.ssh/usuario_local. Es la clave privada, que debemos de mantener segura en nuestro equipo.
- /home/usuario/.ssh/usuario_local.pub. Es la clave pública, que llevaremos al servidor.
Copiamos la clave pública al servidor. Para ello ejecutamos en nuestro equipo el comando scp, mediante el cual copiamos la clave pública al servidor remoto.
$ scp -P 22 ~/.ssh/usuario_local.pub usuario_remoto@miequiporemoto.com:/home/usuario_remoto/.ssh/usuario_local.pub The authenticity of host '[miequiporemoto.com]:22 ([11.22.33.44]:22)' can't be established. ECDSA key fingerprint is 75:c5:23:ad:5a:f1:22:3b:f1:ef:a2:5e:f8:8a:2d:ab. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[miequiporemoto.com]:22,[11.22.33.44]:22' (ECDSA) to the list of known hosts. usuario_remoto@miequiporemoto.com's password: usuario_local.pub 100% 398 0.4KB/s 00:00
En el equipo remoto añadimos la clave pública al archivo “authorized_keys” del usuario remoto. Para ello ejecutamos en el equipo remoto
$ cat ~/.ssh/usuario_local.pub >> ~/.ssh/authorized_keys
Solo nos queda crear un shortcode en el archivo del equipo local ~/.ssh/config para poder acceder de una forma rápida al servidor. Para ello añadimos en este archivo las siguientes líneas:
Host miservidor Hostname miequiporemoto.com Port 22 User usuario_remoto IdentityFile ~/.ssh/usuario_local
Y para acceder al equipo remoto desde el equipo local solo tenemos que ejecutar
$ ssh miservidor
Más información:
- OpenSSH site
- Autentificación trasparente por clave pública/privada con OpenSSH
- Simplify Your Life With an SSH Config File
:wq
SSH. Evitar cortes continuos en una conexión SSH
A veces cuando estoy trabajando por consola a través de SSH en un equipo remoto, tras un tiempo de inactividad, la conexión se corta.
Para solucionar este problema sin tener que ser root en el equipo que realiza la conexión, simplemente hay que editar el archivo ~/.ssh/config e introducir la siguiente configuración
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
Con esta configuración estamos configurando todas las conexiones SSH para que:
- ServerAliveInterval 60: envíe un paquete vacío al servidor cada 60 segundos para mantener la conexión viva.
- ServerAliveCountMax 3: número de mensajes vacíos que se enviarán al servidor sin que tengamos que recibir respuesta del servidor. Si se alcanza este tope sin recibir respuesta del servidor se corta la conexión.
Más info:
Taller de introducción a Git
En la sección de documentación os dejo la presentación y el guion creados para el taller sobre Git, titulado “Taller de introducción a Git” que di el 09/10/2014 en las XIII Xornadas Libres organizadas por el Grupo de Programadores y Usuarios de Linux de la Facultad de Informática de la Universidad de A Coruña. Espero que os sea útil.
Recordar que tenéis disponibles los libros “Git. Fundamentos” y “Git. Servidores privados” de forma gratuita.
Creando tu nube privada con ownCloud
En la sección de documentación os dejo la presentación creada para la charla sobre ownCloud, titulada “Creando tu nubre privada con ownCloud”, que di el 09/10/2014 en las XIII Xornadas Libres organizadas por el Grupo de Programadores y Usuarios de Linux de la Facultad de Informática de la Universidad de A Coruña. Espero que os sea útil.