Deshabilitar los USBs en Linux

No todos los ordenadores con GNU/Linux tienen por que ser para uso personal, sino que puede darse el caso de que tengas la suerte de trabajar con un equipo de empresa que tenga instalado GNU/Linux. Puesto que los datos suelen ser un tema muy importante, y cada vez más, muchas empresas optan por evitar la fuga de información a través de dispositivos USB. Así que, si eres el administrador de estos equipos, lee esta entrada entera, que te podrá ser útil.
La verdad es que es un truco muy sencillo, pero a la vez muy útil, y por supuesto, fácilmente implementable con Salt o Puppet. Deshabilitar los USBs de un equipo es tan sencillo como crear el fichero /etc/modprobe.d/no-usb con el siguiente contenido,
install usb-storage /bin/true
Y tras ello, reiniciar el equipo para que surjan efecto los cambios. Una vez lo hayas hecho, al conectar un UBS tu sistema no lo reconocerá y por lo tanto no se podrá usar.
En realidad lo que acabamos de hacer es forzar la 'no carga' del módulo de manejo de USBs por parte del kernel, con lo que los dispositivos no están habilitados. Esto lo puedes comprobar con un sencillo,
shell> lsmod | grep -i usb
Donde el módulo usb-storage no podrá salir.

Habilitarlo temporalmente

Por supuesto, si eres root y deseas usar el USB en un momento dado, lo puedes hacer recurriendo a la técnica de:
  1. Cargar el módulo
    shell> modprobe usb-storage
    
  2. Usar el USB
  3. Descargar el módulo nuevamente
    shell> modprobe -r usb-storage
    

Otra forma de deshabilitar el USB

Esta forma no es más sencilla de realizar, pero sí más simple de alterar por el usuario si lo sabe, pero aquí la dejo también. Consiste en alterar la línea del Grub que hace referencia a la carga del kernel y agregar el parámetro nousb. Con ello hará que no se carguen los módulos del USB.
kernel /vmlinuz-3.11.0-12-generic ro root=LABEL=/ console=tty0 nousb
Leer más

Backup completo de PostgreSQL

Realizar un backup de MySQL, base de datos que conozco bien y de la que ya hablé varias veces aquí, es sencillo y está muy documentado. Sin embargo, si intentamos realizar el mismo proceso en una base se datos PostgreSQL, la cosa ya cambia.
Hoy os dejo el comando para realizar el proceso de sacar un dump completo (estructura y datos) de PostgreSQL.
shell> pg_dump -U user -W -h IP database > database.sql
Por supuesto, el comando pg_dump (el mysqldump de PostgreSQL) se instala con la instalación del servidor de base de datos, por lo que ya tenemos la herramienta para extraer los datos. El resto de parámetros que le pasamos quedan a continuación explicados.

Parámetro Explicación
-U
Usuario de conexión con permisos para la base de datos a realizar el backup.
-W
Forzamos a que el comando nos solicite la contraseña del usuario especificado.
-h
Indica el servidor PostgreSQL al que nos vamos a conectar para realizar el backup.
database
Base de datos de la que vamos a realizar la copia.

Importado de datos

Todo backup se hace para prevenir sustos y si uno de esos sustos nos sucede, lo mejor entonces es también saber cómo recuperar los datos. Así que, aquí queda el cómo.
shell> psql -U username -W -h IP database < database.sql
Leer más

Postfix con restricción de dominios salientes

Aunque en la mayoría de los casos cuando montamos un servidor de correo es para que éste pueda enviar correos a todo el mundo, es cierto que nunca está demás delimitar en ciertos equipos aquellos dominios a los que mandar información.
Dicho de otra forma, si estás manejando equipos, pongámosle en una DMZ, y quieres que todos ellos envíen mails a cualquier lado, la mejor solución es poner en todos tu servidor principal como relay. Así todos los correos que salgan de la red pasarán por un mismo punto y desde ahí los podrás controlar.
Si esta idea te parece compleja, pero quieres aun así controlar "un poco" aquello que puede salir por correo de tus equipos, entonces una forma de hacerlo es configurar un pequeño transport especialmente diseñado para que únicamente deje enviar correos a determinados dominios, descartando el resto de forma automática.
Para ello, lo primero es crear el fichero /etc/postfix/transport con el siguiente contenido:
net.domain.com         :
domai.com              :
example.com            :
*              discard :
Y a continuación crear el correspondiente .db con postmap, tal que así:
shell> postmap /etc/postfix/transport
Y ya por último, añadir esta nueva configuración al servidor postfix (/etc/postfix/main.cf) y hacer un restart del mismo.
transport_maps = hash:/etc/postfix/transport
Si todo fue correcto, todos aquellos correos que lleven de destino un dominio diferente al de los aceptados, tendrán un discard automático.
shell> tail -f /var/log/mail.log
Jun 07 18:37:08 server postfix/discard[65384]: AF7634BC35:
to=xyzgmail.com,
relay=none, delay=0.07, delays=0.07/0.01/0/0, dsn=2.0.0, status=sent (gmail.com)
Leer más

dpkg: warning: package not in database

Si tienes un sistema perfectamente instalado y funcionando y con todos los paquetes que necesitas, una de las formas más cómodos que Debian/Ubuntu ofrece para sacar un listado de los paquetes instalados y poder pasárselos a otro sistema para que quede con la mismos es empleando el comando dpkg.
Lo primero es sacar el listado de los paquetes del servidor origen, tal como sigue:
shell> dpkg --get-selections > packages.list
A continuación, en el nuevo servidor los importamos e instalamos,
shell> dpkg --set-selections < packages.list
shell> apt-get dselect-upgrade

Si durante este proceso aparece este error,
dpkg: warning: package not in database
La solución es relativamente sencilla,
shell> apt-get install dselect
shell> dpkg --set-selections < packages.list
shell> apt-get dselect-upgrade
Y ya tenemos una copia de todos los paquetes instalados en el sistema origen en el sistema destino.
Leer más

Colección #RefraneroInformático

La verdad es que tenía estas entrada lista desde hace ya unos meses, cuando fue #RefraneroInformático TT en Twitter, pero nunca terminé de redactarla hasta ahora. Así que aquí os dejo algunas de las mejores frases, que bien fijo a muchos informático les sacará una sonrisa y quizás a los no tan informáticos también.
Cuando a tu cuñao en Softonic veas entrar, pon un buen antivirus a descargar.
En wifi cerrada no entran moscas
Compílame despacio que tengo prisa
¿Qué le decimos a la actualización de Windows? HOY NO
Si tus datos no quieres perder, copias de seguridad debes hacer
Ama a una persona por su Software, no por su Hardware
Si el historial está borrado es que ayer hubo pecado.
Sólo hay 10 tipos de personas, las que saben binario y las que no.
Donde hay root no manda user.
Si problemas ves asomar, Ctrl + Alt + Supr deber apretar.
A quien satura, Ctrl + Alt + Supr le ayuda
Antes de ponerte a lamentar, prueba a reiniciar
Mail de muchos, cadena de tontos
Más vale http en mano que error 404 volando
No hay RAM que 100 años dure
Contra el vicio de pedir está la virtud de decir "busca en Google"
No es más listo el que más sabe, sino el que mejor busca en #Google
A buen programador, pocas lineas bastan
A código compilado no le mires los warnings
El que al compilar este libre de warnings, que lance el primer ejecutable
Leer más

Empleando pagefile en GNu/Linux

Esta entrada va dedicado a toda aquella gente que viene de sistemas Windows, acostumbrada a tener un fichero de swap en disco y que lo desea seguir manteniendo en GNU/Linux.
Por defecto, cuando se instala un sistema Linux, siempre es aconsejable y muy recomendable crear un partición de tipo swap que el sistema manejará y empleará para dicha tarea de forma automática. Si tienes varias distribuciones instaladas en el mismo equipo, todas podrán compartir dicha partición, por lo que ahorrarás bastante espacio en disco.
Sin embargo, hay veces que puedes decidir no disponer de dicha partición. Por ejemplo, si tu equipo tiene mucha memoria RAM, más de 8Gb, es raro que termines usando la swap, por lo que podrás ahorrarte ese espacio de disco que nunca lo aprovecharás. Claro que siempre terminarás por hacer alguna tarea que requiera de swap, entonces en ese momento estás fastidiado y por suerte, gracias a dd, tendrás la solución al alcance del comando ;-)
La solución no es más que imitar lo que hace Windows con el fichero pagefile.sys, es decir, crear un fichero de tamaño limitado que se empleará dinámicamente de memoria swap. Para ello, y copiando el nombre empleado por Windows para dicho fichero, podemos hacer algo tal que así,
shell> dd if=/dev/zero of=/pagefile.sys bs=4k count=2048M
Con ello acabamos de crear sobre la partición raíz de nuestro sistema un fichero, pagefile.sys, de 2Gb de tamaño. A continuación tendremos que darle formato y emplearlo como memoria swap. Primeramente formateamos,
shell> mkswap /pagefile.sys
Y a continuación lo 'montamos' como memoria swap.
shell> swapon /pagefile.sys
Este sencillo truco lo tuve que usar un par de veces el mi portátil cuando comencé a darle mucha caña, tras seguir las recomendaciones de Optimización de Linux con discos SSD y la verdad es que me pareció muy interesante compartirlo con todos.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios