martes, 1 de marzo de 2011

Instalar un servidor VPN en una máquina que también hace de cortafuegos

La máquina ejecuta Ubuntu Desktop 10.04 (podría ser, perfectamente Ubuntu Server). Sirve de cortafuegos entre una red de un departamento de un IES e internet.

Se desea instalar en dicha máquina (podría ser otra de la red interna) un servidor VPN para que los profesores puedan conectarse desde casa.

El proceso es el siguiente:

En el equipo servidor:
sudo apt-get install pptpd

Ahora editamos el fichero de configuración:
sudo vi /etc/pptpd.conf

Bajamos hasta el final del fichero, donde pondremos las siguientes líneas
localip 192.168.0.1
remoteip 192.168.1.1-254


Donde localip es la IP de la interfaz interna del servidor VPN. remoteip es el rango de IPs permitidas para el equipo que se conecte por la VPN. Debe ser un rango coherente con la red interna, claro.

Ahora definimos los usuarios.
sudo vi /etc/ppp/chap-secrets

y escribimos una línea similar a esta:
fulanito pptpd contraseña *

que significa que hemos crado un usuario fulanito, con password "contraseña", para el servidor pptpd y que se puede conectar desde cualquier (*) IP.

Sólo queda reiniciar el servidor pptpd:
/etc/init.d/pptpd restart

En el cortafuegos, es necesario abrir el puerto TCP 1723 y el protocolo IP - GRE, algo que se puede hacer fácilmente si utilizamos una aplicación gráfica como Firewall Builder. En ese caso, hay que crear un servicio TCP personalizado, en el que indicaremos que el rango de puertos de destino es 1723-1723. El protocolo GRE aparece como objeto de la librería Standard, bajo la carpetilla IP.

miércoles, 9 de febrero de 2011

Instalar el plug-in de flash en Ubuntu Desktop 10.10 64 bits

Después de darle mil vueltas, el proceso que finalmente funcionó fue este:

sudo apt-get purge flashplugin-installer
sudo apt-get purge ia32-libs
sudo apt-get purge nspluginwrapper

Esto lo hacemos para limpiar otros intentos de instalación anteriores. Ojo: desinstalar las ia32-libs puede dar problemas con ciertas aplicaciones como Google Earth (por cierto, si conseguisteis que funcionara Google Earth, agradecería algún comentario explicando cómo).

Ahora ya instalamos los paquetes que hacen falta:
sudo apt-get install nspluginwrapper
sudo apt-get install flashplugin-installer

martes, 18 de enero de 2011

En Server 2008: borrar una Unidad Organizativa protegida contra la eliminación accidental

En "Usuarios y equipos de Active Directory", menú Ver -> Características avanzadas.

A continuación, botón derecho sobre la UO que queremos borrar y elegimos "Propiedades". Ahora vamos a la pestaña "Seguridad". Pulsamos "Opciones Avanzadas". Editamos los permisos del grupo "Todos" y le quitamos la denegación sobre "Eliminar" y "Eliminar subárbol".

Ahora ya se puede eliminar la UO.

Tras instalar VMware Server en Windows, con la instalación por defecto, no me funcionaba el acceso

Tras una instalación dejando todos los valores por defecto, al lanzar el "Web Access" me pedía un nombre de usuario y una contraseña. Al introducir los datos de un usuario local, me aparecía el siguiente mensaje: "The VMware Infrastructure Web Service at "http://localhost:8222/sdk" is not responding (Connection Refused)."

SOLUCIÓN: Ir a "Servicios" e iniciar el servicio "VMware Host Agent".

miércoles, 22 de diciembre de 2010

Configurar vsftpd para que el directorio de inicio de un usuario no sea /home/usuario

He tenido que configurar un servidor FTP con unos pocos usuarios. Como precisamente son muy pocos, no me he complicado en hacer usuarios virtuales, sino que estoy utilizando usuarios locales.

El problema me ha surgido cuando he necesitado que uno de esos usuarios, cuando acceda por ftp, lo haga a un directorio diferente al "home". De hecho, es un usuario que no podrá iniciar sesión en el equipo: se crea sólo para ftp.

Lo primero es crear el usuario:
sudo useradd nombre_usuario -s /bin/false
sudo passwd nombre_usuario

Ahora creamos el siguiente directorio:
sudo mkdir -p /etc/vsftpd/users

Ahora, editamos /etc/vsftpd.conf y añadimos las siguientes líneas:
# Configuraciones de usuarios
user_config_dir=/etc/vsftpd/users



Eso significa que las configuraciones que se encuentren en /etc/vsftpd/users se aplicarán por encima de las opciones por defecto.

Entonces, sólo nos queda crear el fichero: /etc/vsftpd/users/nombre_usuario e introducir en él lo siguiente:

dirlist_enable=YES
download_enable=YES
local_root=/directorio/deseado/para/el/usuario
write_enable=NO
anon_upload_enable=NO

jueves, 4 de noviembre de 2010

Convertir una base de datos en access a mysql de forma periódica (II)

Continuamos con la configuración del ordenador que hará de servidor FTP y MySql.

Si todo ha ido bien, el ordenador de la biblioteca subirá cada día una copia del fichero abies.mdb al directorio /home/biblioteca del servidor. Ahora vamos a convertir los datos de /home/biblioteca/abies.mdb a MySql.

Se supone que ya existe una base de datos creada para tal fin, a la que llamaremos biblioteca. Si dicha base de datos aún no ha sido creada, lo haremos con el siguiente comando:
echo "CREATE DATABASE biblioteca DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish2_ci ;" | mysql -u root --password=password_root
Siendo "password_root" la contraseña del usuario root de MySql. Una vez creada la base de datos, conviene trabajar con un usuario en MySql que sólo tenga privilegios sobre la citada base de datos. Para crear este usuario haremos lo siguiente (usuario: biblioteca, contraseña: password_biblio):
echo "CREATE USER biblioteca@localhost IDENTIFIED BY 'password_biblio';" | mysql -u root --password=password_root

echo "GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , EVENT, TRIGGER, SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON biblioteca.* TO biblioteca@localhost;" | mysql -u root --password=password_root

Vamos ahora a incorporar los datos desde access. Lo primero es instalar las mdbtools:
sudo apt-get install mdbtools

A continuación, crearemos un script al que llamaremos, por ejemplo, bibliotomysql.sh. Aquí dejo el script completo. Este script se encarga de transformar las tablas de Access a un formato válido para MySql e importarlos. Aún tiene ciertos problemas con la codificación de la tabla "Lectores". Estamos en ello.

Este script lo dejaremos en /home/biblioteca/ y le daremos permisos de ejecución:
chhmod +x /home/biblioteca/bibliotomysql.sh
y lo programaremos con cron:
sudo crontab -u biblioteca -e
Entramos en el editor que más nos guste e incorporamos la línea:
00 13 * * * /home/biblioteca/bibliotomysql.sh
Con lo que se ejecuará este script todos los días a las 13:00 horas.


P.D.: Información recopilada gracias a:
http://farismadi.wordpress.com/2008/07/13/encoding-of-mdb-tool/
http://nialldonegan.me/2007/03/10/converting-microsoft-access-mdb-into-csv-or-mysql-in-linux/ 

ACTUALIZACIÓN: para que mysql trabaje en UTF-8: 
http://recursive-design.com/blog/2008/06/23/force-mysql-encoding-to-utf8/
Que viene a decir que hay que añadir al fichero my.cnf las siguientes líneas:
[mysqld]
default-character-set=utf8
skip-character-set-client-handshake
 

martes, 2 de noviembre de 2010

Convertir una base de datos en access a mysql de forma periódica (I)

El escenario es el siguiente: se tiene un ordenador en la biblioteca del instituto que utiliza el famso Abies 2.0, programa de gestión de bibliotecas desarrollado por no recuerdo qué ministerio (por cierto, seguimos esperando la tan cacareada versión 3.0. A este paso la vamos a tener que hacer en código abierto).

Abies 2.0 guarda sus datos en una base de Access, formato mdb. Por otro lado, se ha desarrollado una aplicación web que muestra el estado del catálogo (libros disponibles, prestados, etc.). Esta aplicación está desarrollada en PHP y funciona sobre un servidor Apache y una base de datos en MySql. Por lo tanto es necesario convertir periódicmente la base de datos de access a MySql. Para ello hay que trabajar en dos equipos: el de la biblioteca y el servidor MySql.

1. Ordenador de la biblioteca: Hay que definir una tarea programada que ejecute el siguiente script, llamado subedatos.bat (todos los días a las 11:00, por ejemplo):
copy c:\Abies2.0\datos\abies.mdb
winzip32 -a abies.zip abies.mdb
ftp -s:biblioftp.scr
Para que este script funcione, tiene que estar instalado en el sistema el programa WinZip. También tiene que existir en el mismo directorio o carpeta un fichero, llamado biblioftp.scr, con los comandos del ftp, a saber:
open servidor.mired.local
user
biblioteca
biblioteca
put abies.zip
quit
Aquí estamos suponiendo que la máquina que alberga la base de datos MySql se llama servidor.mired.local. También podría usarse la IP de dicha máquina. También estamos suponiendo que en el servidor FTP instalado en dicha máquina hay definido un usuario llamado biblioteca, con contraseña biblioteca. Esto lo definiremos en el siguiente apartado.

2. Servidor MySql y FTP: En el equipo que hará de servidor MySql hay que configurar un servidor FTP también. Para ello instalaremos el vsftp:
sudo apt-get install vsftpd
Ahora habrá que configurar el servidor FTP modificando el fichero /etc/vsftpd.conf por ejemplo con gedit:
 sudo gedit /etc/vsftpd.conf
Cambiaremos:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

El resto de las opciones las dejaremos como vienen por defecto. Ahora definiremos el usuario para acceder por ftp:
sudo useradd -m biblioteca
sudo passwd biblioteca
Con el último comando le asignaremos la contraseña (usaremos "biblioteca", porque es la que definimos en la tarea programada del apartado 1).

Una vez hecho esto, hay que programar que todos los días, a las 12:30, por ejemplo, se descomprima el fichero abies.zip. Para ello, hay que utilizar el programa crontab, que es el equivalente a Tareas Programadas de Windows. Ejecutaremos el comando:  
sudo crontab -u biblioteca -e
Esto nos da a elegir entre varios editores. El nano (opción 2), es relativamente fácil de utilizar. El objetivo es escribir la siguiente línea: 
45 12 * * * unzip -o /home/biblioteca/abies.zip
Esto descomprime el archivo zip todos los días a las 12:45.