Conectar a una VPN con vpnc

27 10 2008

vpnc es un cliente libre de redes VPN para Unix, que se usa a través de la consola. Existen otros clientes de este estilo que incluso utilizan la interfaz gráfica.

Para instalarlo utilizaremos lo siguiente:

sudo apt-get install vpnc

Que tendrá en cuenta que todas las dependencias con otras librerias están correctamente instaladas.

vpnc buscará los ficheros /etc/vpnc.conf o /etc/vpnc/default.conf, si ninguno de estos ficheros existe, al ejecutar vpnc pedirá por consola los parámetros necesarios.

Para que vpnc utilize un fichero de configuración distinto a los anteriores, tiene que utilizar se puede utilizar la siguiente orden:

sudo vpnc miconfiguracion

o

sudo vpnc miconfiguracion.conf

cuyo fichero tiene que estar en el directorio /etc/vpnc/ y necesita la extensión .conf.

El aspecto de este fichero es el siguiente:

IPSec gateway gateway
IPSec ID nombre_del_grupo
IPSec secret contraseña_del_grupo
Xauth username mi_usuario
Xauth password mi_contraseña

Para desconectar de la VPN, se usa el siguiente comando:

sudo vpnc-disconnect

Fuente.





Administrar usuarios de MySQL

26 10 2008

Para administrar los usuarios de una base de datos de mysql, existen los siguientes comandos:

mysql> use mysql;
Database Changed
mysql> set password for 'elforum'@'localhost' = password('98m4@9er');
Query OK, 0 rows affected (0.00 sec)
mysql> set password for 'mysysad'@'localhost' = password('950v4.Kr');
Query OK, 0 rows affected (0.00 sec)

Y para mostrar los usuarios, y las passwords asociadas…

mysql> SELECT user, password FROM user;
+---------------+-------------------------------------------+
| user | password |
+---------------+-------------------------------------------+
...
| elforum | *EAE7DE143B1B9598745AD571885A98E723ABE9056 |
| mysysad | *Ebe7D596878627EDD581EADEFSA98E723ABE9C58 |
...





Qué son los ficheros FIFO

22 10 2008

FIFO es el acrónimo de First Input First Output (Primero que entra, primero que sale). En informática se suele utilizar para crear estructuras de datos.

Usando esta teoría, en UNIX existen una especie de ficheros que se utilizan para comunicar procesos, de modo que se puedan sincronizar e intercambiar información. El funcionamiento es bastante sencillo, un proceso se  encarga de escribir en el fichero FIFO, y otro de leer. Cada uno de los procesos se quedarán bloqueados hasta que el otro actúe.

Esto lo podemos probar del siguiente modo:

$ mkfifo /tmp/fi

Con el comando anterior, habrás creado el fichero FIFO. Puedes comprobarlo con un ls -l /tmp

$ echo Hola Mundo > /tmp/fi

El proceso que hemos lanzado, se quedará bloqueado intentando escribir hasta que haya otro proceso lea ese fichero. Para ello lanzamos este comando:

$ cat /tmp/fi
Hola Mundo

En este momento, habrán quedado ambos procesos desbloqueados.





lsof (List Open Files)

22 10 2008

Ya hice una pequeña introducción de lsof, pero se merece una entrada completa. Se trata de una de las herramientas más útiles para administrar un sistema basado en Unix. El nombre de lsof viene de Lists Open files y nos puede dar toda la información que necesitamos acerca de los descriptores que tiene el sistema en un momento determinado. Entiéndase descriptores, tanto las conexiones de red, como descriptores de ficheros.

Los usos más interesantes son los siguientes:

  • lsof -i :80: Muestra información acerca de los procesos que están en estado LISTEN en el puerto 80.
  • lsof -iTCP: Muestra las conexiones TCP.
  • lsof  +D /home/usuario: Muestra qué procesos están utilizando el directorio /home/usuario.
  • lsof -u usuario: Muestra los descriptores de fichero abiertos por el usuario.
  • lsof -i@192.168.1.5: Muestra conexiones con una determinada IP.
  • lsof -i@192.168.1.5:2322: Muestra conexiones con una determinada IP y un determinado puerto.
  • lsof -c httpd: Muestra los ficheros y conexiones tiene abiertas un proceso determinado, dado el nombre del proceso.
  • lsof -p 12212: Muestra los descriptores de fichero asociados a un proceso, dado su PID.
  • kill -HUP `lsof -t -c sshd`: Enviaría una señal a los procesos que estén corriendo de sshd.
  • lsof +L1: Muestra los ficheros que tienen menos de un enlace apuntando a ellos. Suelen ser ficheros que un cracker intenta ocultar.

Fuente: lsof, lsof 2





Crear BBDD en mysql, y dar permisos a un usuario

17 10 2008

Para crear una base de datos en mysql se utiliza la siguiente sentencia:

mysql> CREATE DATABASE NombreBaseDeDatos;

Para dar permisos a un usuario para que use la base de datos, se utiliza el siguiente comando:

mysql> GRANT ALL ON NombreBaseDeDatos.* TO el_usuario@localhost IDENTIFIED BY "la_password";
mysql> FLUSH privileges;

También hay más formas de hacerlo:

# mysql -u root -p
mysql> CREATE DATABASE moodle;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
mysql> quit
# mysqladmin -p reload

La diferencia es que la primera forma da todos los privilegios al usuario, y en la segunda se va especificando uno a uno los privilegios que le quieres dar al usuario sobre la BBDD. Además en la primera se aplican los cambios con la sentencia flush y en la segunda con un reload de la BBDD.





Autenticación web con Apache

15 10 2008

Para realizarla autenticaciónde usuarios a través de Apache, hay que añadir las siguientes directivas en el fichero de configuración de Apache (por defecto /etc/httpd/httpd.conf).

<Files "mailgraph.cgi">
AuthUserFile /var/www/mailgraph/.htpasswd
AuthName "Mailgraph"
AuthType Basic
require valid-user
</Files>

Con esto se consigue que se compruebe el usuario al acceder al fichero “mailgraph.cgi” en función de los usuarios provisionados en el fichero /var/www/mailgraph/.htpasswd

Para provisionar usuarios en este fichero, se utiliza el siguiente comando:

/usr/sbin/htpasswd /usr/share/mailgraph/.htpasswd nombreUsuario





Comandos Unix para administrar sistemas

12 10 2008

Hoy he descubiertos dos nuevos comandos para Unix bastante útiles a la hora de la administración de un sistema:

  • pstree -cpal: Muestra de forma jerárquica los procesos que tiene el sistema corriendo.
  • pstree -p 2323: Muestra la jerarquía de procesos a partir del proceso 2323.
  • lsof: (ls Open Files) Muestra los descriptores de fichero que tiene el sistema abiertos, ya sean descriptores de ficheros, o conexiones de red… que UNIX las trata también como descriptores de fichero.
  • watch -d: Ejecuta un comando cada X segundos, y muestra la diferencia de la salida por pantalla con respecto a la iteración anterior.

Más información: watch, lsof, pstree.