miércoles, 2 de julio de 2008

Exportar escritorio mediante xdmcp con kdm.

Llamo servidor a un equipo que exporta su escritorio para que otro de la misma red lan acceda mediante xdmcp.

Acceso remoto por XDMCP

EN EL SERVIDOR: Editar el archivos /etc/kde3/kdm/kdmrc y modificar o descomentar las siguientes lineas según el caso. (lineas en negrita)


[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=true
# The UDP port on which KDM should listen for XDMCP requests. Do not change.
# Default is 177
Port=177
# File with the private keys of X-terminals. Required for XDM authentication.
# Default is ""
KeyFile=/etc/kde3/kdm/kdmkeys
# XDMCP access control file in the usual XDM-Xaccess format.
# Default is "/etc/kde3/kdm/Xaccess"
Xaccess=/etc/kde3/kdm/Xaccess
# Number of seconds to wait for display to respond after the user has
# selected a host from the chooser.
# Default is 15
#ChoiceTimeout=10
# Strip domain name from remote display names if it is equal to the local
# domain.
# Default is true
#RemoveDomainname=false
# Use the numeric IP address of the incoming connection on multihomed hosts
# instead of the host name.
# Default is false
SourceAddress=true
# The program which is invoked to dynamically generate replies to XDMCP
# DirectQuery or BroadcastQuery requests.
# If empty, no program is invoked and "Willing to manage" is sent.
# Default is ""
Willing=/etc/kde3/kdm/Xwilling

Editar el archivos /etc/kde3/kdm/Xaccess y descomentar las siguientes lineas para permitir el acceso a xwindow. (lineas en negrita)

#
# In all cases, xdm uses the first entry which matches the terminal;
# for IndirectQuery messages only entries with right hand sides can
# match, for Direct and Broadcast Query messages, only entries without
# right hand sides can match.
#

* #any host can get a login window

#
# To hardwire a specific terminal to a specific host, you can
# leave the terminal sending indirect queries to this host, and
# use an entry of the form:
#

#terminal-a host-a


#
# The nicest way to run the chooser is to just ask it to broadcast
# requests to the network - that way new hosts show up automatically.
# Sometimes, however, the chooser can't figure out how to broadcast,
# so this may not work in all environments.
#

* CHOOSER BROADCAST #any indirect host can get a chooser

#
# If you'd prefer to configure the set of hosts each terminal sees,
# then just uncomment these lines (and comment the CHOOSER line above)
# and edit the %hostlist line as appropriate
#

#%hostlist host-a host-b

* CHOOSER %hostlist #


Por ultimo reiniciar el servidor.

Respaldo incremental con rsync y ssh

Buenas, aca dejo un artículo de como realizar respaldos incrementales mediante rsync y ssh, las pruebas estan hechas en kubuntu feisty en el server y en el cliente.

Paquetes a instalar en el servidor y cliente:

apt-get install openssh-server openssh-client rsync


En primer lugar hay que permitir que el servidor donde se van a realizar las copias de seguridad pueda acceder a la estación de trabajo sin contraseña, empleando claves RSA sin contraseña.

Para ello ejecutamos en el servidor lo siguiente, teniendo backuphcd como el usuario del servidor que hace los backups:


$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/backuphcd/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/backuphcd/.ssh/id_rsa.
Your public key has been saved in /home/backuphcd/.ssh/id_rsa.pub.
The key fingerprint is:
91:7e:ec:01:a2:e2:f5:d7:87:f6:2c:f7:38:87:71:04
backuphcd@sistemas2

Es importante no introducir contraseña.


Crear la carpeta para el usuario backuphcd logueado como adminstrador.


cd /home

sudo mkdir backuphcd

sudo chown -R backuphcd backuphcd

sudo chgrp -R migracion backuphcd

exit (termina sesión con el usuario administrador)



Copiar clave rsa publica creada en el servidor con el usuario backuphcd


scp /home/backuphcd/.ssh/id_rsa.pub backuphcd@192.168.1.xx:/home/backuphcd


Loguearse en el cliente con el usuario backuphcd

ssh 192.168.1.xx -l backuphcd (nos pide la contraseña)

mkdir .ssh

cat id._rsa.pub >> /home/backuphcd/.ssh/authorized_keys

rm id_rsa.pub


Con estos pasos ya podemos crear procesos automatizados en el servidor que conecten vía SSH a la estación de trabajo sin que se les pida contraseña, lo cual es razonable porque no pueden introducirla.


Crear la carpeta para alojar el respaldo de los clientes y los scripts de backups.

cd /

sudo mkdir backups

sudo mkdir -p backups/nombre_cliente ( esta carpeta para cliente en particular)

sudo chown -R backuphcd:migracion backups


Crear script para cada cliente.

sudo nano nombre_cliente.sh

#! /bin/bash  

TIMESTAMP=$(date "+%d-%m-%Y-hs%H:%M")
FROM="backuphcd@nombre_cliente:/ruta_carpeta_a_respaldar"
TO="/backups/nombre_cliente/"

if rsync --delete -avb $FROM $TO-nombre_cliente-$TIMESTAMP

then

echo "BACKUP OK"

else
echo "BACKUP FAILED"
fi


Crear script principal que llama a todos los demás.

sudo nano backup.sh

#! /bin/bash  

/backups/nombre_cliente1.sh

/backups/nombre_cliente2.sh

/backups/nombre_clienten.sh

Agregar el script backup.sh al cron


sudo nano /etc/crontab

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command

17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6
* * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

45 12 * * * backuphcd /backups/backup.bash

#

Resaltada la linea en cuestión que ejecuta /backups/backup.sh todos los dias a las 12:45 por el usuario bakuphcd.

Con esto tenemos bacups incrementales dentro de una carpeta con la fecha y hora de realización.
Saludos Hugo Acosta.