lunes, 15 de septiembre de 2008

SSH: llave privada y pública

En el lado del cliente, en primer lugar tenemos que generar nuestras llaves: la pública, que es la que podemos compartir y la privada, que sólo debemos tener nosotros.
Ejecutamos el comando ssh-keygen :
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_rsa): (1)
Enter passphrase (empty for no passphrase): (2)
Enter same passphrase again:
Your identification has been saved in /home/usuario/.ssh/id_rsa.
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
eb:1f:e7:30:9b:1c:f8:4b:b1:2f:3b:2b:4e:ab:4b:db

En el paso (1) se nos pedirá la ruta donde se almacenarán las llaves, por defecto será en ~/.ssh/id_rsa (privada) y en ~/.ssh/id_rsa.pub la llave publica. En principio dejaremos que se generen en las rutas por defecto.
En el paso (2) y (3) se pide si queremos introducir una "frase de paso". Esto significa que cada vez que se vaya a usar la llave, se nos pedirá esta contraseña. Es recomendable introducir una frase de paso, para asegurar que sólo nosotros podemos usar la llave privada, y por ejemplo aunque perdamos el ordenador o alguien consigua nuestra llave privada, no pueda usarla. Es recomendable usar una contraseña fuerte(carácteres extraños y sobre todo longitud),dado que podrían reventarla por fuerza bruta (existen programas para ello).

En el lado del servidor, presuponiendo que tenemos el servidor ssh correctamente instalado (ver algunos consejos aqui). Supondremo que nos vamos a conectar a usario@miservidorssh
1) En el servidor pondremos los permisos adecuados:
$ chmod 700 $HOME/.ssh
$ chmod 600 $HOME/.ssh/authorized_keys

2)En el servidor, para autorizar a un cliente para que se conecte con ssh, copiaremos la llave publica que nos facilitará el cliente en el archivo $HOME/.ssh/authorized_keys del servidor:
a)Si tenemos acceso al servidor con ssh (usando el password de usuario ):
ssh usario@miservidorssh 'cat $HOME/.ssh/id_dsa.pub >> .ssh/authorized_keys'
b)Si solo hay acceso físico: cat id_dsa.pub >> .ssh/authorized_keys
c)Si no tenemos acceso, facilitaremos el archivo con la llave publica ( id_dsa.pub) al "root" del servidor para que nos la coloque él en su sitio.

Como se puede ver usamos cat archivo_con_llave publica >> . Donde >> indica que se insertará al final del archivo.

Si en el servidor queremos que únicamente se autentiquen usuarios mediante llaves publica/privada en el archivo /etc/ssh/sshd_config buscaremos la opcíón PasswordAuthentication y la pondremos en no:
PasswordAuthentication no

SQLLOADER: unicode (UTF8)

Si cargamos un archivo con carácteres UTF-8 txt o csv a través de sqlloader (Cómo convertir archivos a UTF-8) puede ocurrir que al ver la tabla donde la insertamos no se hayan insertado correctamente algunos carácteres. Para solucionarlo, si nuestra base de datos fue creada con unicode podemos cargarlos correctamente añadiendo la sentencia CHARACTERSET UTF8. Por ejemplo:

LOAD DATA
CHARACTERSET UTF8
INFILE *
INTO TABLE "PATRONESUNICODE"
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED '"'
TRAILING NULLCOLS
(IDP,CC,ORGANIZACION,ORIGEN)
begindata
8008;"ES";"Universidad de Granada";"UNESCO";14027
8009;"ES";"Universidad de Huelva";"UNESCO";14270
8010;"ES";"Universidad de Jaén";"UNESCO";14319

viernes, 12 de septiembre de 2008

SAMBA: como ver los archivos de otros ordenadores

En opensuse 11.0 podemos encontrarnos con el problema de no poder ver los otros ordenadores de la red, a pesar de haber configurado correctamente el servidor Samba. Sin embargo cuando desactivamos el cortafuegos a través de Yast2/cortafuegos si podremos listarlos.

Para navegar a través de nuestra red samba / netbios podemos abrir un navegador Nautilus (alt F2 nautilus) y escribir en la barra de direcciones smb:// . Con este comando deberia listarnos todas las maquinas conectadas a nuestro grupo de trabajo, pero si está el cortafuegos no funcionara, ni tampoco podremos navegar a atraves de las carpetas compartidas de otros ordenadores. Si desactivamos el cortafuegos debería funcionar (a través de yast2).

Vamos a autorizar a Samba como cliente para que podamos ver los otros ordenadores:
1) Vamos a yast/cortafuegos
2) En la parte de la izquierda pulsamos en "Difusión"
3) Pulsamos "añadir"
4) Seleccionamos obligatoriamente "zona externa" y en servicio "Exploracion de SAMBA". La red la dejamos por defecto en 0/0 (todas las redes) o bien podemos restringirla con la nomemclatura normal. Por ejemplo podríamos limitarla a nuestra red local de la forma 192.168.1.0/255.255.255.0
5) Le damos a aceptar.

Con estos pasos ya deberiamos poder ver otros ordenadores y carpetas compartidas a través de nautilus de la forma: smb://nombreordenador o smb:///