Samba con full audit + recycle

Hace tiempo hablamos en este blog acerca de cómo habilitar una papelera de reciclaje en Samba y también cómo conseguir un log de auditoría desde Samba. En ambos casos, siempre era necesario emplear la siguiente variable,
vfs objects = recycle
o
vfs objects = full_audit
según lo que nos interesase habilitar. Sin embargo, si nos interesa habilitar ambas cosas, la variable la tenemos que definir tal como sigue,
vfs object = recycle full_audit
Y a continuación el resto de parámetros que nos interese.
Saber cómo definir esta variable de forma conjunta es importante, ya que si incluimos dos líneas, una con cada definición únicamente funcionará la segunda escrita. Así que si necesitas registro de actividad y papelera de reciclaje, tenlo presente.

Referencia

Leer más

Manejo de colas de correo en Postfix

Postfix es un excelente servidor de correo del que ya hemos hablado en este blog en numerosas ocasiones. Además de poder trabajar por su cuenta, también es el motor en Zimbra, del que también se han comentado cosas en numerosas ocasiones.
Como servidor de correo, tiene determinados comandos que pueden resultar muy útiles a la hora de administrar las colas de correo y los mensajes.
  • postqueue
    Es el comando que nos permite administrar directamente la cola de mensajes.
    • -f
      Intenta enviar todos los mensajes que están en las colas.
    • -p
      Muestra todos los mensajes que están en la cola.
    • -s domain
      Intenta enviar todos los mensajes que salgan del 'domain' especificado.
  • postfix
    • flush
      Intenta enviar todos los mensajes del servidor.
    • start | stop | abort
      Arranca, para o para forzosamente el servicio postfix.
    • reload
      Recarga la configuración del servidor de correo.
    • status
      Muestra el estado actual del servicio.
  • postsuper
    • -d ALL
      Elimina todos los mensajes de la cola de correo.
    • -d ALL deferred
      Elimina todos los mensajes 'rebotados' que tenga el servidor.
  • postcat -q ID
    Visualiza el correo con el ID especificado.
  • qshape
    Muestra los correos con forma de árbol.
Por supuesto, estos comandos, como casi todos los comandos GNU/Linux se pueden concatenar y crear combinaciones que nos ayuden y faciliten la administración del servidor de correo.
  • Número de mensajes en la cola de correo
    shell> postqueue -p | tail -n 1 | cut -d ' ' -f5
    
  • Borra todos los mensajes recibidos de un destino
    shell> mailq | grep '^[A-Z0-9]' | grep @domain | \
           cut -f1 -d ' ' | tr -d \* | \
           postsuper -d
    
Leer más

Instalación de Debian a un directorio

El uso de máquinas virtuales para comprobar ciertos cambios en probar cosas es algo ya cada vez más habitual. Sin embargo hay ocasiones en las que puede ser necesario instalar un sistema Debian dentro de un directorio de nuestro sistema para hacer pruebas o realizar instalaciones de otra arquitectura diferente.
Por ejemplo, una máquina con Debian de 64bits puede tener otro sistema de 32bits para hacer ciertas pruebas. Para este tipo de tareas, en Debian es muy sencillo instalar un sistema base dentro de un directorio utilizando la herramienta debootstrap.

Instalación

Lo primero es instalar debootstrap.
shell> apt-get install debootstrap

Uso

Una vez tenemos instalada la utilidad, únicamente debemos de crear el directorio sobre el que instalar la nueva máquina, por ejemplo,
shell> mkdir /data/debian-i386
Y luego emplear debootstrap para crear la nueva instalación
shell> debootstrap \
       --arch=i386 \
       wheezy \
       /mnt/debian-i386/ \
       http://ftp.debian.org/debian/
Este proceso tardará un poco y cuando termine nos mostrará un mensaje de que el proceso terminó correctamente.
I: Base system installed successfully.
Y para emplear el nuevo sistema tendremos ahora que 'conectarnos' con chroot a él.
shell> chroot /mnt/debian-i386
Esta nueva consola que acabamos de abrir es en la máquina Debian instalada. Para salir de él, como en cualquier sistema. La ventaja es que no hay que apagarla y podemos copiar ficheros directamente a él, ya que es un directorio en nuestro sistema real.
Leer más

Fail sudo en Zimbra

Hoy, después de hacer un par de cambios en el fichero de configuración de un servidor Zimbra, comenzaron a salir fallos en el estado de algunos servicios. El realidad, todo estaba funcionando correctamente, pero la salida del comando zmcontrol no daba tranquilidad.
shell> zmcontrol status
Host zimbra.local.net
 antispam                Running
 antivirus               Running
 ldap                    Running
 logger                  Running
[sudo] password for zimbra:
 mailbox                 Running
[sudo] password for zimbra:
 mta                     Running
 opendkim                Running
 snmp                    Running
 spell                   Running
 stats                   Running
 zmconfigd               Running
Como veis, algunos de los servicios se estaban ejecutando correctamente, mientras que para averiguar el estado de otros, se pedía la contraseña del usuario zimbra para sudo.
Tras el susto inicial, pensé qué era lo que había cambiado y efectivamente, algo tenía que ver con el fichero de configuración de sudo (/etc/sudoers).

Cómo solucionarlo

Por suerte, la solución no era demasiado complicada y únicamente requería volver a establecer los permisos necesarios de sudo en el fichero /etc/sudoers, dejándolo con las siguientes líneas.

%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmstat-fd *
%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmslapd
%zimbra ALL=NOPASSWD:/opt/zimbra/postfix/sbin/postfix, /opt/zimbra/postfix/sbin/postalias, /opt/zimbra/postfix/sbin/qshape.pl, /opt/zimbra/postfix/sbin/postconf,/opt/zimbra/postfix/sbin/postsuper
%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmqstat,/opt/zimbra/libexec/zmmtastatus
%zimbra ALL=NOPASSWD:/opt/zimbra/amavisd/sbin/amavis-mc
%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmmailboxdmgr
%zimbra ALL=NOPASSWD:/opt/zimbra/bin/zmcertmgr

Referencias

Leer más

Crear USB con Windows 7

Sí, lo se, no suelo hablar de temas relacionados con Windows en el blog, pero hay veces que toca hacerlo y hoy será una de esas veces. El problema vino cuando me tocó formatear un ordenador para instalar un Windows 7. Este equipo no tenía lectora de CD para poder arrancar, con lo cual, necesitaba partir de la ISO de Windows y pasarla a un pen drive y hacerlo arrancable. Para eso siempre uso unetbootin, pero esta vez no funcionaba. Investigando un poco se ve que unetbootin no termina de llevarse bien con Win7, así que tuve que buscar otra forma. Esta, la verdad, es que hasta me gustó más. El único problema es que necesitas un Windows previo. Así que... empleé el Windows que iba a 'rematar' para que crease a su asesino.
A continuación os detallo los pasos a realizar, por si a alguien le son de ayuda. El primero y obvio es tener identificado el pen drive al que va a ir el contenido de la ISO. A continuación abrimos una consola (cmd) como administrador y ejecutamos diskpart. Esto nos abrirá una shell de comandos y en ella hacemos lo siguiente,
  • list disk
    Saca un listado de los disco conectados al equipo.
  • select disk 2
    Seleccionamos el disco correspondiente al pen drive. En número puede cambiar dependiente de tu sistema.
  • clean
    Borra todos los datos del pen drive.
  • create partition primary
    Se crea una partición primaria.
  • active
    Se marca la partición como activa.
  • format fs=fat32 quick
    Se formatea el pen drive con un sistema de ficheros fat32.
  • assign
    Confirmamos los cambios.
  • exit
    Salimos del programa.
Una vez finalizados estos pasos, ya estamos casi a punto de terminar de crear nuestro pen drive booteable. Únicamente nos falta por indicarle lo que tenemos que arrancar, es decir, el Windows. Pues bien, cogemos la ISO y la descomprimimos dentro de la unidad. Cuando haya finalizado, reinicia el equipo y ya deberías de poder arrancar desde él.

En caso de que esto fallo, todavía hay un método extra. Vuelve a arrancar el equipo y arrancas una consola (cmd) y ejecutas lo siguiente. Partimos de que la unidad del pen drive es F:
cmd> F:\BOOT\bootsect /nt60 F:
Reinicia el equipo y ahora si que ya debería de poder arrancar.
Leer más

Bacula PKI, cifrando los datos

Si el otro día hablamos acerca de cómo configurar Bacula para que todos los datos de los que realiza backup viajen cifrados (puedes leer el post completo aquí), hoy vamos a ver otra parte no menos importante: la seguridad de los datos almacenados.
Casi tan importante como tener un buen respaldo de los datos es que estos estén seguros. Si alguien se hace con una cinta y tiene ahí todos los datos almacenados en texto plano, pues ya os podéis imaginar... Así que, para evitar que esto suceda, vamos a emplear la opción, también incluida en Bacula, de cifrar los datos en origen. Con ello conseguimos que los datos salgan del cliente ya cifrados, según una clave privada que sólo el cliente debe de conocer. Esto garantiza que los datos que se escriban en la cinta estén ya cifrados, no los cifra el bacula-sd o el bacula-director, sino que es en origen, es decir, bacula-fd. Aquí es importante recalcar que los datos estarán cifrados, es decir, el fichero no se sabrá lo que tiene, pero tanto ruta, permisos, nombre del fichero, etc. estarán disponibles para que en caso de que se necesite recuperar algo, se pueda hacer sin problema.

Generar las claves de cifrado

Como siempre, vamos primero a generar las claves que necesitamos para hacer el cifrado de datos. Para ello, generamos la clave maestra tal como sigue,
shell> openssl genrsa -out master.key 2048
shell> openssl req -new \
       -key master.key \
       -x509 \
       -out master.cert \
       -days 3650
En este caso, y para evitar futuros problemas, creamos un certificado con 10 años de validez. Este será nuestro certificado maestro.
Ahora debemos de generar el par de claves para cada cliente. Este es el paso que debemos de repetir en cada uno de los clientes.
shell> openssl genrsa -out a.local.net.key 2048
shell> openssl req -new \
       -key a.local.net.key \
       -x509 \
       -out a.local.net.cert \
       -days 3650
shell> cat a.local.net.key a.local.net.cert > a.local.net.pem

Configuración

Y ahora, ya únicamente nos queda por editar el fichero del agente (bacula-fd.conf) y añadir las claves de cifrado en el apartado FileDaemon.
FileDaemon {
   ...
   # Data Encryption
   PKI Signatures = Yes
   PKI Encryption = Yes
   PKI Keypair = "/etc/bacula/tls/a.loca.net.pem"
   PKI Master Key = "/etc/bacula/tls/master.cert"
}
Tras el cambio, reiniciamos el daemon y podemos lanzar una tarea de backup, en la que al finalizar aparecerá lo siguiente:
FD Files Written:       139
SD Files Written:       139
FD Bytes Written:       8,719,243,782 (8.719 GB)
SD Bytes Written:       8,719,264,244 (8.719 GB)
Rate:                   23954.0 KB/s
Software Compression:   None
VSS:                    no
Encryption:             yes
Accurate:               no
Todo el proceso de copia y restauración de backups en el cliente es completamente transparente para el administrador. Es el propio software de Bacula quien lo realiza.

Precauciones

Es muy importante tener las claves de cifrado muy bien respaldadas, pues si se pierden no será posible restaurar ningún fichero del sistema.
En caso de de que clave o certificado del cliente se pierda, mientras tengamos las claves maestro podremos restaurar los ficheros. Para ello únicamente deberemos seguir las siguientes instrucciones.
  1. Concatener las claves maestro
  2. shell> cat master.crt master.key > master.keypair
    
  3. Modificar el fichero del agente (bacula-fd.conf)
    FileDaemon {
       ...
       PKI Keypair = /etc/bacula/tls/master.keypair
    }
    

Referencias

Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios