jueves, 23 de enero de 2014

Limpiar metadatos de imágenes con Exiv2





Muchas veces subimos imágenes, compartimos, mandamos y por motivos ya sea de privacidad, seguridad o simplemente derecho a la intimidad no queremos que alguien tenga acceso a nuestros metadatos. Los metadatos no son más que información que se añade con el unico fin de que el software trabaje de mejor manera. Pero alguien puede acceder a los datos de nuestras imagenes, con ello puede ver la localización de la foto, la hora en que se tomó, el dispositivo e incluso más cosas, esto son datos confidenciales que podemos borrar retocar o simplemente consultar. Para ello veremos en el entorno de los metadatos en las imagenes la aplicación Exiv2.

Exiv2 es una libreria C++ y una aplicación de linea de comando para administrar los metadatos. Exiv2 nos da la oportunidad de tener acceso a los metadatos Exif, IPTC y XMP de nuestras imagenes. Existen dos versiones, para windows o linux. En este caso veremos la versión linux.

Exiv2 nos ofrece lo siguiente:

  • Escritura y lectura y acceso rapido a metadatos Exif, IPTC y XMP en imágenes, un uso sencillo y una amplia documentación.
  • Conversión de metadatos Exif y IPTC en XMP y viceseversa.
  • Una pequeña implementacion que no afecta a los datos de programas como Photoshop.
  • Soporte de Exif Makernote:
    • Las etiquetas Makernote pueden ser leidas y escritas como cualquier otro metadato.
    • Un algoritmo sofisticado de escritura que evita corronper el Makernote.
  • Poner o eliminar comentarios en imageners JPEG.

Como gran apunte y pregunta de todos los usuarios, Exiv2 por si solo solo actua sobre el directorio indicado, no trabaja sobre directorios hijos ( o subdirectorios).


Ahora vamos a ver una serie de ejemplos con exvi2, para comenzar a usarlo:

  • Mostrar metadatos con Exiv2:

exvi2 image.extension

exvi2 * ( Mostrará los datos de todos las imágenes en el directorio)

  • Eliminar metadatos con Exiv2:

exvi2 rm imagen.extension

exiv2 rm * ( Eliminará los datos de todas la imagenes en el directorio)

  • Modificar la fecha con Exiv2:

exiv2 ad -Y 2 -O 3 -D 14 pic_name.jpg (añadirá 2 años, 3 meses, y 14 días).

exiv2 ad -Y -2 -O -3 -D -14 pic_name.jpg (Restará 2 años, 3 meses y 14  días).

  • Limpiar todo de metadatos:
find . -type f -name '*.jpg' -print0 | xargs -0 exiv2 rm



Manual en pdf -> enlace


martes, 21 de enero de 2014

¿No encuentras el fichero resolv.conf en linux mint?

En vez vamos a resolver el problema de archivo resolv.conf en linux mint.







¿Que es el fichero resolv.conf?

Primero tengo que explicar un poco por que es y para que sirve este archivo. Este archivo resolv.conf que se almacena normalmente en '/etc/resolv.conf' este fichero es el utilizado en varios sistemas operativos para configurar el sistemas de nombre de dominio ( DNS ) librería de resolución. Este archivo de texto es creado por el administrador o las aplicaciones que gestionan la configuración del sistema. El programa resolvconf es uno de los programas que en las máquinas  unix/linux se encarga de gestionar este archivo. En definitiva es donde definimos las dns para nuestra configuración de red.


¿No encuentro el fichero resolv.conf en linux mint?

Eso me pregunté al ver que no estaba en su localización normal '/etc/resolv.conf'. Lo primero que tenemos que hacer es intentar localizarlo mediante la orden 'locate resolv.conf'


testeando@testeando-VirtualBox /etc $ sudo locate resolv.conf
/etc/resolvconf/resolv.conf.d
/etc/resolvconf/resolv.conf.d/base
/etc/resolvconf/resolv.conf.d/head
/usr/share/man/man5/resolv.conf.5.gz


Después de ver que no estaba busqué en su ruta '/etc/' y allí tampoco estaba, así al acordarme de que el programa resolvconf se encargaba de este fichero encontré la solución.

Solución resolv.conf linux mint:

testeando@testeando-VirtualBox ~ $ sudo dpkg-reconfigure resolvconf 

Con esto ya tenemos generado el fichero, el cual podemos editar. Muchos dirán que simplemente creando el fichero ya valdría, pero creo que esta solución es más correcta.

Añadimos nuestros DNS:

Una vez tenemos fichero añadimos nuestros dos dns, accedemos al fichero 'sudo nano /etc/resolv.conf' o 'sudo gedit /etc/resolv.conf' y añadimos dos lineas con nuestras dns, en nuestro caso pondremos las de google que son 8.8.8.8 y 8.8.4.4. Para ello escribimos en el fichero lo siguiente y luego guardamos.

nameserver 8.8.8.8
nameserver 8.8.4.4

Y para comprobar que tenemos nuestros dns funcionando podemos usar 'nslookup':

nslookup 127.0.0.1


En mi caso me devuelve lo siguiente:

testeando@testeando-VirtualBox /etc $ nslookup 127.0.0.1
Server:        8.8.8.8
Address:    8.8.8.8#53

 



martes, 14 de enero de 2014

Instalación y configuración de ssh en linux ( 3 de 3)



En esta última publicación vamos a ver como accederemos a ssh en nuestro servidor basado en Debian, en nuestro caso linuxmint y en definitiva los comandos básicos que usaremos.





¿Que podemos hacer con nuestro servidor ssh?

Una vez configurado no solo podremos acceder remotamente a nuestro servidor si no que podremos realizar copias mediante de scp, sftp.

Comenzaremos con la conexión ssh hacia nuestro servidor, se realiza con la siguiente línea de comandos.

Conexión normal:

ssh usuario@ipdelservidor

Conexión con puerto modificado:

ssh -p <puerto> usuario@ipdelservidor

Conexión gráfica segura:

ssh -X usuario@ipdelservidor

SCP (Secure copy) según wikipedia "es un medio de transferencia segura de archivos entre un host local y otro remoto usando el protocolo el Secure Shell (SSH)", este nos permitirá realizar copias seguras desde el equipo remoto hasta el local y viceversa con los siguiente ejemplos veremos como se realiza.


De local a remoto:

scp archivolocal usuario@ipdelservidor:/ruta/destino/del/archivodestino

De remoto a local:

scp usuario@ipdelservidor:/ruta/archivoremoto /ruta/para/el/nuevo/archivo

De remoto a remoto:

scp usuario@ipdelservidor1:/ruta/en/servidor1/archivo1 usuario2@ipdelservidor2:/ruta/en/servidor2

Para la copia recursiva de directorios usaremos -r como por ejemplo:

scp -r archivolocal usuario@ipdelservidor:/ruta/destino/del/archivodestino

scp -r usuario@ipdelservidor:/ruta/archivoremoto /ruta/para/el/nuevo/archivo


SFTP o SSH File Transfer Protocol, es un protocolo se usa para la transferencia y manipulación de archivos bajo seguridad.


Conectando al servidor mediante sftp:

sftp usuario@ipdelservidor



Una vez dentro mediante el comando help, se nos despliega todas las opciones para realizar, nos podemos centrar en 'get' para descargar ficheros y 'put' para subir ficheros al servidor.






Instalación y configuración de ssh en linux ( 1 de 3) 

Instalacióny configuración de ssh en linux ( 2 de 3) 

Instalación  y configuración de ssh en linux ( 3 de 3)

 

viernes, 10 de enero de 2014

Instalación y configuración de ssh en linux ( 2 de 3)

En esta publicación vamos a ver como se configura ssh en nuestro servidor basado en Debian, en nuestro caso linuxmint. 





¿Porque configurar el fichero ssh?

El fichero que se genera tras la instalación es un fichero por defecto es decir con una configuración que se conoce por cualquiera, con el puerto predefinido, el acceso mediante root,  número de intentos de login y mas directivas que veremos en adelante.

Configuración del fichero:

Lo primero accedemos al fichero donde muchas de las líneas vendrán comentadas con '#' y este fichero se ecuentra en '/etc/ssh/', mediante la siguiente linea de comando entramos en el fichero para editarlo 'sudo nano /etc/ssh/sshd_config' o 'sudo gedit /etc/ssh/sshd_config' una vez dentro comenzamos a editar el fichero.



Para cambiar el puerto por defecto (22) nos dirigimos a la linea que dice 'Port 22' editamos ese puerto por otro que queramos siempre que no sea un puerto usado o que vaya a ser usado por otro servicio, lo editamos y cambiamos el puerto por ejemplo por el 7425 quedando 'Port 7425' y apartir de esto ya tendremos que aclarar que ese servicio esta en ese puerto, por ejemplo sería 'ssh -p 7425 usuario@ipdelservidor'.



Evitamos la conexión mediante root, para ello vamos a 'PermitRootLogin yes' y lo deshabilitamos con no 'PermitRootLogin no', esto lo haremos para evitar que inicien sencillamente un ataque de fuerza bruta a nuestro servidor.





Limitando el tiempo para logear. Para esto editamos la línea 'LoginGraceTime 120' no vamos a dedicar mucho tiempo si conocemos la contraseña mucho tiempo, mas de 15, 20 segundo lo normal o demasiado, pero 120 segundo si que es demasiado. En mi ejemplo o dejaré  en 20 segundos 'LoginGraceTime 20'.




Ahora limitaremos los intentos de login, esto lo haremos añadiendo la siguiente línea 'MaxAuthTries 3' es decir bloqueamos el número de intentos a 3.





Finalmente veremos algunas configuraciones por encima:

AllowGroups / DennyGroups: Con estas directivas podremos permitir o rechazar el acceso mediante ssh a determinados grupos.


AllowUsers / DennyUsers: Con estas directivas podremos permitir o rechazar el acceso mediante ssh a determinados usuarios.


LogLevel: Esta directiva entre las cuales esta quiet, fatal, error, info, verbose y debug. Determinamos el nivel de explicidad de los logs.

Instalación y configuración de ssh en linux ( 1 de 3) 

Instalación y configuración de ssh en linux ( 2 de 3) 

Instalación y configuración de ssh en linux ( 3 de 3)

lunes, 6 de enero de 2014

Instalación y configuración de ssh en linux ( 1 de 3)

En esta publicación vamos a ver como se instala ssh en nuestro servidor basado en Debian, en nuestro caso linuxmint. 





¿que es el servicio ssh?

SSH es el acrónimo de Secure SHell, este es un protocolo incorporado en la capa 7 de la osi(capa de aplicación) que nos sirve para acceder a máquinas remotas, ya sea en una la LAN, MAN o WAN en definitiva acceder de manera remota a través de la red. Este protocolo es el sustituto claro de Telnet ya que nos permite las mismas funcionalidades pero de manera segura mediante el uso de claves RSA.

Cosas que nos ofrece:

- Acceso remoto al servidor.
- Tunelización y cifrado de comunicaciones o SSH tuneling ( navegación web, escritorios remotos cifrados).
- Copiar archivos de manera segura y subir archivos de manera segura(scp, sftp).

¿Que necesitamos?

- Una máquina propia o máquina virtual VM ( Virtualbox o VMware)
- Una imagen iso de linuxmint u otras distribuciones linux.
- Acceso a la red.

Nos dirigimos al terminal o consola y comenzamos a instalar los paquetes:


Instalamos el paquete que lo podemos el centro de software de la distribución ya sea linuxmint, ubuntu, etc. También podemos usar el gestor de paquetes synaptic, descargar openssh desde la web en su portal oficial  o usando las instrucciones de comando según vuestra distribución:

sudo apt-get install openssh-server

Con esto ya tenemos instalado nuestro servidor ssh, para conectarnos la sintaxis sera 'ssh usuario@ipdelservidor' mas adelante cambiaremos el puerto por ejemplo la sintaxis de conexión sería la siguiente 'ssh -p <puerto> usuario@ipdelservidor' y por último conexiones gráficas 'ssh -X usuario@ipdelservidor'.

Para reiniciar el servicio 'sudo service ssh restart' o simplemente como en todas o la mayoría de distribuciones 'sudo /etc/init.d/ssh restart'
 



Instalación y configuración de ssh en linux ( 1 de 3) 

Instalación y configuración de ssh en linux ( 2 de 3) 

Instalación y configuración de ssh en linux ( 3 de 3)