13 de septiembre de 2014

Cajón con ruedas bajo cama.

Otro fin de semana lluvioso y húmedo, el proyecto "mi cama" no avanzará en estos días tampoco.

De modo que cambié el orden de mi lista de proyectos y tomé uno que podía hacer con lluvia y con los materiales que tenía en casa. La excusa fue, además, poner algo de orden en el dormitorio de mi hija, que tenía el piso alfombrado de juguetes y libros.

El proyecto que hice es un sencillo cajón con ruedas que puede estacionarse debajo de la cama aprovechando ese espacio.

Materiales:
  • Resto de MDF de la cama.
  • 4 ruedas de mesa de TV, de 4 cm de altura.
  • 12 tornillos de 5/8 y 5 mm.
  • Clavos de 1 ½ '' (una pulgada y media).
  • Cordón de algodón de 8 mm.
  • Pegamento (usé cola vinílica y Titebond II).
  • Mechas de 10 mm y 3 mm.
  • Lija de grano 100.
Herramientas:
  • Sierra circular.
  • Taladro.
  • Lijadora.
  • Destornillador Philips.
  • Escuadra y regla.
  • Martillo.
  • Cuchillo o trincheta.
  • Lápiz.
  • Cinta métrica.
  • Prensas.
  • Pegamento para madera.
Para variar, el diseño de este cajón lo saqué de una revista de carpintería cuyo título ya no recuerdo, pero ocupaba sólo una carilla (lo tengo impreso por acá) así que imaginen si será sencillo. Además yo lo hice en unas cuatro horas, y con decir eso está dicho todo.

Siendo como era un "depósito móvil", no me preocupé mucho de las medidas excepto por la altura, porque quería poder guardarlo bajo la cama de mi hija sin tener que levantarla (a la cama) cada vez que lo quisiera mover. De modo que el ancho de la base es el que tiene el trozo de placa original, que no me molesté en medir.
Este es el trozo de placa que tenía para trabajar.


Lo primero que hice fue cortar los cuatro lados del cajón a 27 cm de altura, contando con que las ruedas agregarían entre 8 y 10 cm, luego conseguí las de 4 cm y el cajón quedó holgado.
El primer lado lo corté con la sierra caladora y fue una mala idea, todavía no le tengo bien tomado el pulso. Así que los siguientes los hice con la circular y ahí sí los cortes me quedaron rectos.
Como siempre se debe hacer enseguida de cortar, lijé las aristas y los cantos para evitar roturas y astillas en las piezas.


Un problema que surgió fue que no tenía prensas del largo necesario para sostener los lados mientas se secaba el pegamento, ni forma de estirar las que ya tengo, así que para sostenerlos usé clavos de 1 ½ '' de a tres por lado: al medio y a 3,5 cm de cada borde. La base del cajón sí está fija a la mesa de trabajo con dos prensas.

Pasada media hora de colocados los lados cortos, presenté los largos y quedaban anchos por 3 mm aproximadamente, así que los rebajé con formón y la lijadora hasta que calzaron. Luego encolé los cantos laterales y el inferior, y sujeté con clavos nuevamente, dos de cada lado corto.
Recuerden verificar que esté bien escuadrado (ángulos rectos lado con lado y lado con la base) antes de poner el primer clavo, después es tarde


Habrán notado que los lados largos sobresalen de los cortos, en casi 2 cm. Eso se debe a que no preví que los lados cortos cubren los cantos de la base, pero los largos van sobre ella. Como no afecta la funcionalidad del cajón lo dejé así, como un detalle "estético".

Para las asas usé cabo (o cordón) de algodón  de 8 mm, que pasé por agujeros hechos en los lados largos del cajón. Los agujeros para el cordón los hice a 3,8 cm del borde superior y 8 cm de ancho, ambas medidas a los centros.
Los trozos de cordón tienen el largo suficiente para que mi mano pase cómodamente, tampoco los medí, me gustó la idea de que quedara más rústico así. Las asas están sujetas por nudos al interior del cajón y con una arandela.


El cordón es muy usado en navegación, así que para este trabajo elegí un cuchillo japonés de marino, con hoja en acero al carbono con un corte muy suave y limpio.

Por último coloqué las ruedas en la base del cajón. Las líneas que ven en la foto siguiente son paralelas a 7,5 cm de los bordes, y las ruedas van hacia adentro del marco que forman.
Para colocar los tornillos hice agujeros con la mecha de 3 mm hasta 0,5 cm de profundidad.
La profundidad del agujero se marca en la mecha colocándole un trozo de cinta adhesiva fuerte que indica hasta donde debe entrar en la pieza.


A continuación coloqué las cuatro ruedas.



Acá está el cajón con las ruedas y las asas, esperando el secado final de los pegamentos y el traslado a su ubicación definitiva.


Y aquí está ya puesto en uso.


Sólo me falta aplicarle unas capas de protección (será barniz) pero como dije, con el clima de hoy era imposible, así que será en la próxima sesión de trabajo.

Hasta la próxima publicación.


Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.

8 de septiembre de 2014

Instalación de Samba4 como Controlador de Dominio AD en CentOS 6.5.

Hola.

Este fin de semana me quedé encerrado porque estoy enfermo. Aburrido como estaba me dio por ponerme al día con un trabajito que tenía pendiente: instalar un nuevo servidor con GNU/Linux y samba 4 como Active Directory Domain Controller para reemplazar uno con Slackware y samba 3.6.

La distro que elegí es CentOS 6 porque como servidor está muy probado, es muy estable y hay una excelente comunidad de usuarios y documentación de apoyo. Además la conozco muy de cerca porque es mi PC de escritorio en mi lugar de trabajo.
Explicar conceptos como "distro" está fuera del objetivo de esta publicación, si quieres aprender puedes empezar cliqueando aquí.

Y ahora vamos a los pasos que seguí en el proceso, guiado por la documentación que cito al final. Se supone que el servidor que estamos instalando tiene conexión a Internet.

1. Instalar el SO CentOS 6.

Instalé CentOS 6 sobre una partición LVM (Logical Volume Manager), dejando espacio libre en el disco para otra partición LVM de datos (a trabajar más adelante). Recomiendo aprender a usar LVM en Linux porque da mucha flexibilidad para resolver problemas de espacio en disco, evitando reparticionar y reiniciar servidores, ver en la bibliografía al final.

Yo instalé desde un DVD con la versión 6.2, y dejé 3 particiones así:

/boot      ext3 256 MB
/dev/sda2  LVM   64 GB
/dev/sda3  LVM  232 GB

/boot guarda ficheros necesarios para que el SO inicie y tiene que ser de tipo ext3 o ext4, /dev/sda2 será la que contenga el SO, y /dev/sda3 contendrá las particiones de datos. En las dos últimas hay mucho espacio para hacer crecer los sistemas de ficheros que alojen, llegado el caso, y esa es la utilidad de que sean de tipo LVM.

Sobre la partición ``/dev/sda2'' creé un VG (Volume Group), y sobre él los LVs (Logical Volume) para el sistema operativo:

/dev/mapper/vgservidor1-lvhome on /home type ext4 (rw)
/dev/mapper/vgservidor1-lvopt on /opt type ext4 (rw)
/dev/mapper/vgservidor1-lvtmp on /tmp type ext4 (rw)
/dev/mapper/vgservidor1-lvusr on /usr type ext4 (rw)
/dev/mapper/vgservidor1-lvvar on /var type ext4 (rw)


y el área de paginación (o swap)

/dev/mapper/vgservidor1-lvswap  swap  swap

Nuevamente, no voy a explicar en profundidad los conceptos de LVM acá, pero estúdienlo y úsenlo si van a administrar cualquier SO tipo Unix.

2. Actualizar el SO.

Una vez instalado el SO lo actualicé a la última versión estable (6.5 a la fecha) con el comando

# yum -y update --skip-broken

3. Crear usuario regular.

Terminada la actualización y reiniciado el sistema (para que ejecutara el núcleo nuevo), creé un usuario para mí que fuera miembro del grupo ``wheel'' (como el ``root''), habilité para el grupo ``wheel'' la ejecución de todos los comandos via sudo, e inhabilité el acceso de ``root'' remoto.

# useradd -c Nicolas -g wheel -G users -m nconde
# visudo

Se abre el fichero ``/etc/sudoers'', en él descomenté la línea que dice

# %wheel  ALL=(ALL)       ALL

borrándole el signo ``#'' del principio. Guardé el fichero y lo cerré.

# vim /etc/ssh/sshd_config

Aquí cambié las líneas

#PermitRootLogin yes

por

PermitRootLogin no

y

#PermitUserEnvironment no

por

PermitUserEnvironment yes

Lo guardé, salí del editor y reinicié el servicio ``sshd'' con

# service sshd restart

A partir de este momento cerré la sesión remota del usuario ``root'' y abrí una nueva con ``nconde''.

4. Pasar SELinux a modo permisivo.

Bajé el nivel de SELinux editando su fichero de configuración:

$ sudo vim /etc/sysconfig/selinux
SELINUX=permissive


5. Eliminar Samba 3.

Quité todos los paquetes de samba que había instalado el sistema operativo:

$ sudo yum remove samba*

6. Descargar, compilar e instalar Samba 4.

6.1. Descargué el paquete de fuentes de samba 4 desde el sitio oficial de Samba, y lo descomprimí en el home directory de mi usuario:

$ tar -xvzf samba-4.1.11.tar.gz
$ cd samba-4.1.11


6.2. Instalé los paquetes necesarios (prerrequisitos) según la documentación oficial:

$ sudo yum install gcc libacl-devel libblkid-devel gnutls-devel \
   readline-devel python-devel gdb pkgconfig krb5-workstation \
   zlib-devel setroubleshoot-server libaio-devel \
   setroubleshoot-plugins policycoreutils-python \
   libsemanage-python setools-libs-python setools-libs \
   popt-devel libpcap-devel sqlite-devel libidn-devel \
   libxml2-devel libacl-devel libsepol-devel libattr-devel \
   keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils


6.3. Configuré y construí los binarios y bibliotecas.

# ./configure --enable-debug --enable-selftest
# make


6.4. Instalé samba 4 y creé el fichero de arranque para el sistema.

# make install

Una vez que terminó la copia de ficheros (casi 5000, paciencia), creé el script de inicio ``/etc/init.d/samba4'' como lo da la documentación de Samba y que dice así:

$ sudo vim /etc/init.d/samba4

[code]
#!/bin/bash
#
# samba4        This shell script takes care of starting and stopping
#               samba4 daemons.
#
# chkconfig: - 58 74
# description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.

### BEGIN INIT INFO
# Provides: samba4
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop samba4
# Description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

prog=samba
prog_dir=/usr/local/samba/sbin/
lockfile=/var/lock/subsys/$prog


start() {
        [ "$NETWORKING" = "no" ] && exit 1
#       [ -x /usr/sbin/ntpd ] || exit 5

                # Start daemons.
                echo -n $"Starting samba4: "
                daemon $prog_dir/$prog -D
        RETVAL=$?
                echo
        [ $RETVAL -eq 0 ] && touch $lockfile
        return $RETVAL
}


stop() {
        [ "$EUID" != "0" ] && exit 4
                echo -n $"Shutting down samba4: "
        killproc $prog_dir/$prog
        RETVAL=$?
                echo
        [ $RETVAL -eq 0 ] && rm -f $lockfile
        return $RETVAL
}

# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
status)
        status $prog
        ;;
restart)
        stop
        start
        ;;
reload)
        echo "Not implemented yet."
        exit 3
        ;;
*)
        echo $"Usage: $0 {start|stop|status|restart|reload}"
        exit 2
esac

[/code]

$ sudo ln -s /etc/init.d/samba4 /etc/rc.d/rc3.d/S80samba4
$ sudo chmod 755 /etc/init.d/samba4
$ sudo /etc/init.d/samba4 restart



7. Crear el dominio.

Con samba corriendo ya, creé el dominio con el comando

$ sudo /usr/local/samba/bin/samba-tool domain provision

y dejando todos los valores por defecto salvo el nombre del REALM (en mayúsculas, es muy importante) y la clave del usuario ``Administrator''.


8. Probar funcionamiento de Samba 4.

Para probar que samba 4 estaba funcionando con el dominio creado ejecuté

$ /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'


9. Agregar el directorio de documentación.

Agregué la ruta a las páginas de manual de Samba para que las encuentre el comando ``man'':

$ sudo vim /etc/man.config

Agregué la línea

MANPATH /usr/local/samba/share/man

después de la última que encontré comenzando con ``MANPATH''.


10. Configurar DNS.

Active Directory trae un servidor de nombres, y Samba 4 también, así que configuré y probé el DNS interno de Samba en lugar de ``bind'' u otro.

$ vim /etc/resolv.conf

Agregué las dos líneas siguientes:

[code]
domain <nombre_dominio>
nameserver <ip_del_servidor>

[/code]

Pruebo que haya resolución de nombres:

$ host -t A <fqdm_del_servidor>

Debe devolver una línea con la dirección IP del mismo.


11. Configurar Kerberos.

Respaldé el fichero de configuración original de kerberos:

$ sudo mv /etc/krb5.conf /etc/krb5.conf.orig

y enlacé (se puede copiar también) el creado por la configuración de samba4:

$ sudo ln -s /usr/local/samba/private/krb5.conf /etc/

Pruebo que haya tickets kerberos:

$ kinit Administrator@<REALM>
$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: Administrator@<REALM>

Valid starting     Expires            Service principal
[...]


¡Funciona!


12. Configurar el cortafuegos.

A continuación abrí los puertos que usa Samba en el firewall. En CentOS, Fedora, etc. se ejecuta:

$ sudo system-config-firewall-tui

Elegí ``Personalizar'', marqué ``Samba'' en la ventana de ``Servicios confiables'', guardé mos cambios y reinicié el firewall con

$ sudo service iptables restart

Verifico las reglas con

$ sudo iptables -L


13. Crear particiones a compartir.

Mi controlador de dominio también hace las veces de servidor de ficheros, así que creé las particiones para exportar a los usuarios en el dominio.
Nuevamente: estudien LVM.

13.1. Preparar las particiones.

$ sudo vgcreate vgdata /dev/sda3
$ sudo lvcreate -L 64G -n lvadmin vgdata
$ sudo mkfs -t ext4 /dev/mapper/vgdata-lvadmin

$ sudo mkdir -p /export/samba/admin

Explicado muy someramente: sobre la partición LVM /dev/sda3 del paso 1, creé un VG (volume group) llamado ``vgdata'', en ese VG creé un LV (logical volume) llamado ``lvadmin'' que ocupa 64 GB, el LV contiene un file system a compartir ("carpetas compartidas" las llaman los administradores Windows), que creé en el tercer comando.
Con el cuarto comando creé el directorio donde se montará el file system.

13.2. Agregar las particiones a ``/etc/fstab''.

Para que el SO disponga de los sistemas de ficheros (file systems) y pueda usarlos, hay que montarlos: decir desde qué directorio se accede cada uno.
Para que el SO monte los FS al iniciarse (bootear), los agregué al fichero ``/etc/fstab'' como se muestra a continuación:

/dev/mapper/vgdata-lvadmin    /export/samba/admin   ext4    defaults,user_xattr,acl,barrier=1    1 2

Las opciones las da la documentación oficial de Samba:

"ext4
fstab

For filesystems of that type shared by Samba, add the following options to your /etc/fstab:

/dev/...          /srv/samba/demo          ext4          user_xattr,acl,barrier=1          1 1

Note: The ``barrier=1“ option ensures that tdb transactions are safe against unexpected power loss.

Please be careful modifying your fstab. It can lead into an unbootable system!
"


14. Exportar los file systems.

Para que los usuarios del dominio puedan acceder a los directorios compartidos... hay que compartirlos. Eso se hace desde el fichero ``/usr/local/samba/etc/smb.conf'':

$ vim /usr/local/samba/etc/smb.conf

[pub]
    comment = Un comentario con espacios
    path = /export/samba/admin
    read only = No


$ sudo /etc/init.d/samba restart


Y eso ha sido todo. Cuando lo haya instalado y probado con clientes informaré del progreso.

Hasta la próxima.


Bibliografía:
  • https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
  • https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
  • http://tldp.org/HOWTO/pdf/LVM-HOWTO.pdf (en Inglés)
  • http://rm-rf.es/gestion-de-lvm-en-linux-logical-volume-manager/


A/C Nicolás Conde González.



Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.

1 de septiembre de 2014

Mi cama hecha en casa, parte 2.

Tenía la intención de terminar (o casi) la cama este fin de semana pero no pudo ser.
Como hay partes del proyecto que llevan mucho tiempo de espera, apenas pude preparar la madera para el armado, o casi. Además  el barniz que apliqué al cedriño (natural mate) lo oscureció mucho y le quitó el tono rojizo que tanto me gusta, así que lo lijé para empezar de nuevo con otro barniz... que no tenía este fin de semana. Y como olvidé comprar el hierro tampoco pude adelantar en la hechura de los ángulos para la caja del colchón :-(

Tablas de cedriño con sellaporos y al natural.

A pesar de eso algo hice, y ahora paso a relatarlo.

En primer lugar teñí las patas (pino) ya que su color muy claro no me gusta. Como colorante usé nogalina en polvo, disuelta en agua tibia: 1 cucharadita (de té) colmada cada 100 ml de agua, bien agitado para que se disuelva totalmente.

Para aplicar la tintura usé una muñequilla, que es un paño o trapo relleno de estopa o estropajo que se sumerge en el tinte, y luego se frota la madera para que absorba los pigmentos. Por la humedad que había dejé las patas secando por 5 horas.
Es importante usar guantes de látex para la tarea de teñir, porque el tinte no se va si se seca en la piel, hasta que tiene ganas de irse.

Pata de pino teñida con nogalina (1a. mano).

Mientras esperaba el secado de las patas, lijé las tablas de cedriño con mi lijadora orbital y papel de grano 60 sobre las aristas vivas. Son las aristas de la tabla que están bien marcadas luego de que las cortan en el aserradero, y van a raspar el forro del colchón rompiéndolo, o las piernas de los usuarios de la cama. Por ello es importante rebajarlas hasta que desaparezcan.
Para "matar" una arista pasé la lijadora sobre ella en ángulo de 45° (a ojo de buen cubero) con los lados que la forman, y luego seguí redondeándola con movimientos en "U" de lado a lado, hasta que había desaparecido al tacto. Sigue foto y un video que espero aclare la maniobra, lo filmó mi hija que insiste en llamarme "papa" en lugar de "papá", y le causa muchísima gracia.


 
Espero que se aprecie en la foto la curvatura del borde superior izquierdo, comparado con el superior derecho que tiene la arista viva todavía.


Depués de ocuparme de las aristas vivas, lijé los lados de las tablas con papel de grano 120. Aunque vengan cepilladas del aserradero, las tablas tienen imperfecciones y (seguro) astillas, invisibles hasta que se clavan en una mano. Dicen los que saben de esto que lijar las piezas hasta que están suaves al tacto casi como papel es parte fundamental del trabajo con madera.
Finalmente se limpian las piezas con un paño mojado en aguarrás mineral, el paño mojado evita que el polvo vuele y nos entre en los ojos, nariz, etc.

Pasado el lapso de secado de las patas, las lijé con papel de grano 120 y lijadora orbital, limpié con un paño limpio empapado en aguarrás mineral, y apliqué la segunda mano de tintura.
El aguarrás tiene una doble función en la madera: quitar el polvo del lijado y levantar el poro de la madera, para que absorva bien el tinte. Como se evapora rápidamente no hincha ni hecha a perder la madera, como sería el caso con agua potable. La misma limpieza hay que hacer luego de secada la última aplicación de teñido, para que penetre bien el sellaporos o la primer mano de lo que sea que le apliquemos a la madera para protegerla.
Aquí se ve el lado izquierdo de una pata que está lijado, y el derecho con la segunda mano de tintura aplicada. La pata que se ve al fondo ya tiene la segunda mano completa.


Mientras esparaba que se secara la segunda mano, usé el sellaporos que no me gustó en el cedriño sobre las tablas de pino que irán debajo del soporte de MDF para el colchón. Es una solución en proporción 1:1 (o sea: partes iguales) de aguarrás con barniz. Se aplican con muñequilla 2 manos de sellador con un mínimo de 6 horas entre ambas. Luego de 24 horas se aplican 3 manos del barniz sin diluir, o diluido a lo sumo con 10% de solvente (0,1:1) esperando 12 horas entre ellas. Cada fabricante da las especificaciones en el envase de su producto, pero estas reglas funcionan en general para todas las marcas.


Si van a usar laca nitrocelulósica como terminación y además como sellaporos, la proporción habitual para este último caso es 2:1 (solvente:laca) y el solvente será thinner (o tiner) en vez de aguarrás.

Para terminar por hoy les dejo la foto de las cuatro patas teñidas, lijadas y selladas, listas para el armado.

La próxima semana conseguiré los materiales que me faltan y, si clima y suerte acompañan, podré terminar el proyecto. Hasta la pŕoxima.


Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.