Compartir portapapeles entre 2 o más servidores gráficos en Linux



Supongamos que tengo 2 servidores gráficos corriendo en mi máquina, uno para el escritorio normal y uno para un Sandbox de SELinux. Si quiero compartir el portapapeles entre estos 2 servidores X entonces lo que tengo que hacer es instalar el paquete xclip en mi sistema principal y correr en el mismo este pequeño script:


(Después de descargarlo y marcarlo como ejecutable) en una consola para lograr el efecto deseado. Con él, estaré compartiendo de manera predeterminada los clipboards del servidor gráfico :0 y :1 de manera bidireccional, pero podemos ajustar el script para trabajar con otro set de displays o incluso más de 2 servidores X.

Cómo instalar Evernote (oficial) en GNU/Linux


Evernote es una aplicación para computadora, móviles y web que gracias a la nube nos permite mantener toda una biblioteca de libretas personales que contienen notas hechas por nosotros con texto, imágenes, audio etc. sincronizada entre todos nuestros dispositivos... Evernote es gratuito (aunque hay una versión plus y una premium) y sus ventajas son innumerables: Desde estudiar, hasta organizar tu día con día o bien, ayudarte a alcanzar tus metas... ¡Reemplaza el papel en tu vida y usa Evernote hoy mismo! Crea una cuenta acá; (El enlace es para referidos, si creas tu cuenta desde él, obtendrás 1 mes de Evernote Premium completamente gratis).

En GNU/Linux existen varios clientes nativos para administrar nuestro Evernote, siendo los más conocidos Everpad y Nixnote (el segundo es lo más cercano al cliente oficial); SIN EMBARGO la verdad es que a mi en Fedora Linux nunca me han funcionado bien ni uno ni otro, así que opté por la siguiente solución obvia que era ejecutar el cliente oficial para Windows usando Wine en la distribución; Contrario a lo que algunas personas decían sobre versiones pasadas en la web, a partir de Wine 1.7.xx es posible ejecutar prácticamente cualquier versión de Evernote Windows en GNU/Linux.

NOTA: En este tutorial usaré a Fedora Linux como distribución de referencia, cambiar los comandos de instalación de paquetes por los indicados según tu distro.

1) Instalar Wine y Winetricks

# dnf -y install wine cabextract
# wget http://winetricks.org/winetricks -O /usr/local/bin/winetricks && chmod +x /usr/local/bin/winetricks

NOTA: Otras distros quizá prefieran usar /usr/bin en lugar de /usr/local/bin para winetricks.

2) Instalando Evernote

Necesitaremos descargar Evernote para Windows desde este enlace si queremos la versión más reciente que esté disponible. Necesitaremos cambiar nuestro user agent con alguna extensión, para Google Chrome yo recomiendo usar ésta; En mis pruebas a partir de la 5.7.x he notado pequeños glitches (como stacks duplicados por ejemplo); Entonces yo de momento uso la 5.6.x que pueden descargar por acá. Es cosa de que hagan la prueba con la versión más reciente y si todo les funciona bien, la usen. Si no les recomiendo la 5.6.x que para mi ha sido más que estable y funcional (ojo: ésta versión antigua no tiene algunas funcionalidades como workchat por ejemplo). Una vez descargado Evernote, corremos en consola:

$ WINEPREFIX=$HOME/.wine-evernote/ winecfg

En este paso nos aseguramos que la versión a imitar en Wine sea Windows 7 y establecemos otras preferencias que nos parezcan apropiadas para nuestro WINEPREFIX:


Aplicamos los cambios y luego corremos:

$ WINEPREFIX=$HOME/.wine-evernote/ winetricks corefonts
$ wget http://files.polosatus.ru/winefontssmoothing_en.sh
$ chmod +x winefontssmoothing_en.sh
$ WINEPREFIX=$HOME/.wine-evernote/ sh winefontssmoothing_en.sh

Aplicamos la configuración de suavizado de fuentes RGB:


Y finalmente corremos:

$ WINEPREFIX=$HOME/.wine-evernote/ wine ruta/instalador/evernote.exe

Seguimos las instrucciones de instalación habituales y listo:


3) Tweaks finales

Abrimos Evernote y accedemos con la cuenta que nos creamos previamente:


Ya como Tweaks extra, establecemos nuestras preferencias personales en las pestañas del menú de Herramientas>Opciones y finalmente disfrutamos de Evernote:


Eso sería todo, Evernote Oficial instalado en GNU/Linux sin mayores complicaciones. Cabe destacar que usando este método nuestro evernote es compatible con las actualizaciones habituales de la aplicación y prácticamente todas las funcionalidades en ella.

Extras

10+ usos para Evernote & Cuentas Premium GRATIS para todos

Cómo instalar Lightworks video editor en Fedora Linux


Yo, (como muchos) he usado Kdenlive como el editor de video por excelencia en GNU/Linux desde que tengo memoria. El problema es que a cada rato tiene uno u otro problema con MLT en mi distribución (Fedora) y por ésto me es imposible usarlo de manera continua.

La verdad es que la situación actual de la edición de video en Linux es deplorable. Las librerías para encode/decode no tienen un estándar (ffmpeg, mencoder, melt) y por lo tanto la manera programática de hacer las cosas cambia aceleradamente, dejando poco tiempo a los creadores de los editores de video para adaptarse a los rápidos cambios de las mismas (dejándonos a nosotros, los usuarios con software "paralítico"); Esto lo digo en base a mi última experiencia con los editores de video en Linux:

Kdenlive: No renderiza/procesa el proyecto (bug reportado acá) y parece que los devs sólo están esperando a que mágicamente melt se arregle por sí solo en las distribuciones con una nueva versión.

OpenShot: La calidad de lo procesado es pésima si se quiere hacer algo para youtube/web y las opciones avanzadas no parecen hacer mucho al respecto. Por otro lado, el renderizado tiene otros errores extraños como audio que no se escucha con auriculares y la interfaz deja mucho que desear, no es posible trabajar cómodamente con clips largos (¡no se les encuentra el final!).

Pitivi: Se traba y cierra al trabajar, no es confiable.

No me hagan hablar de Lives (que ni siquiera es usable) o de Flowblade que no pudo renderizar a otra cosa que no fuera .mpg en mis pruebas.

Conoce a Lightworks


Finalmente tenemos a Lightworks, una herramienta profesional de pago (modelo freemium pero curiosamente el editor es opensource) que al igual que las demás, deja mucho que desear en varios apartados, pero por lo menos lo intenta y cumple de cierta manera, integrando en el proceso varias features profesionales que el usuario de a pie agradecerá. Lightworks es un software extraño y al usarlo se siente claramente como algo en estado alpha ya que hacen un "bundle" de todas las utilidades (códecs y demás) en estado frozen para tener más control sobre el entorno. Esto obviamente lleva a que en lightworks no puedas importar cualquier tipo de formato (en mi experiencia sólo acepta codificación libx264/libx264rgb con pixel format yuv420p y un framerate predefinido sin importar el contenedor hablando de vídeo y audios mp3/mp4 cuando hablamos de sonido); conllevando también la limitante de que para poder exportar tus proyectos a otros formatos que NO sean Youtube 720p (MP4/H264) tengas que comprar la versión PRO. Esto último no sería una grosería de no ser porque la calidad que ofrece el único formato de exportación gratuito no es la mejor allá afuera y así grabes en FullHD (un screencast por ejemplo) originalmente recibirás algo de menor calidad al finalizar tu renderizado, no importando a qué lo puedas convertir después con ffmpeg/mencoder porque "el daño ya está hecho".

Instalar Lightworks en Fedora

Como ya expliqué, lightworks no será la octava maravilla del mundo pero al menos renderiza, sus resultados son aceptables aunque no óptimos (en la versión gratuita) y no se anda cerrando y/o cayendo a cada rato. Si quieres instalar Ligthworks en tu Fedora Linux esto es lo que has de hacer:

1) Añadir repositorios RPMFusion

# dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm && dnf -y update

2) Instalar códecs y utilidades

# dnf -y install gstreamer1-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer-ffmpeg xine-lib-extras xine-lib-extras-freeworld k3b-extras-freeworld gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg mencoder

# dnf -y install mediainfo vlc audacity-freeworld soundconverter

3) Descargar e instalar Lightworks

Descargar Ahora
dnf -y install ruta/rpm/lightworks

4) Crearte una cuenta

Crear cuenta ahora

Verificamos nuestra cuenta por e-mail como nos indican y proseguimos.

5) Configurar Lightworks

Abrimos Lightworks desde nuestro menú de aplicaciones, regresamos a la terminal (con Alt+Tab si fuese necesario), cerramos lightworks (lléndonos a la parte superior derecha de la "ventana" que aparecerá al abrirlo con el mouse y dando un click al tener un pointer) para después correr:

$ nano ~/Lightworks/UserSettings.txt

En el archivo que se nos abrirá, buscamos y modificamos las siguientes variables en el bloque de [EditorPreferences] para que nos queden así:

Lightworks window maximised=false
Lightworks window titlebar=1


Una vez hecho esto abrimos Lightworks desde nuestro menú de aplicaciones de nuevo y si se nos glitchea como en esta captura:


Simplemente arrastramos la ventana desde su barra de título forzándola a que se "redibuje", haciendo que lightworks abra como debe. En el caso de una nueva instalación se nos pedirá hacer login (una única vez) con los datos de la cuenta que registramos y después ya podremos utilizar el editor como es debido:


Lightworks es un editor de vídeo profesional donde se han editado películas como Pulp Fiction, King's Speech, Hugo y varias otras más, ¡incluso ha ganado premios! En mi opinión es lo más cercano a un Kdenlive estable (y usable) que encontrarás en GNU/Linux, tiene bastantes features muy poderosas, incluso un editor de sonido profesional built-in, efectos profesionales y muchísimas cosas más... Aunque aún le hace falta trabajar muchísimos detalles vale la pena echarle un ojo.

Para conocer más sobre Lightworks, visita su web oficial.

Cómo añadir los repositorios de RussianFedora a tu sistema


Para los que no lo sepan, la comunidad de Fedora Rusia tiene un repositorio propio parecido a RPMFusion donde hay un montón de software extra bastante útil (Chromium, Skype, Opera, paquetes para mejorar el renderizado de fuentes en Fedora, firmware, temas y un largo etcétera); Para conocer qué paquetes tienen basta con revisar su repositorio en Github:

https://github.com/RussianFedora

Y si quieren añadirlo a sus sistemas fedora basta con ejecutar:

# dnf install --nogpgcheck http://mirror.yandex.ru/fedora/russianfedora/russianfedora/free/fedora/russianfedora-free-release-stable.noarch.rpm http://mirror.yandex.ru/fedora/russianfedora/russianfedora/nonfree/fedora/russianfedora-nonfree-release-stable.noarch.rpm http://mirror.yandex.ru/fedora/russianfedora/russianfedora/fixes/fedora/russianfedora-fixes-release-stable.noarch.rpm && dnf -y update

Más información: http://ru.fedoracommunity.org/

Mejorar el renderizado de tipografías en Fedora Linux


So, tengo este amigo de Internet, +Jamin Fernandez que se la pasa quejándose del renderizado de fuentes en Fedora Linux... Hoy finalmente encontré una manera de hacer que el renderizado de fuentes en Fedora sea por demás bello (¡y lo digo yo que casi no me fijo en esas cosas dentro del S.O.!) así que voy  a compartir el procedimiento acá para los que les interese.

NOTA: Si hiciste algún cambio manual a tu configuración de fuentes (archivo ~/.fonts.conf, o los que están en /etc/fonts); deshazlo y usa únicamente este procedimiento.

1) Añadir repositorios RPMFusion

# dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm && dnf -y update

2) Añadir repositorios RussianFedora

# dnf install --nogpgcheck http://mirror.yandex.ru/fedora/russianfedora/russianfedora/free/fedora/russianfedora-free-release-stable.noarch.rpm http://mirror.yandex.ru/fedora/russianfedora/russianfedora/nonfree/fedora/russianfedora-nonfree-release-stable.noarch.rpm http://mirror.yandex.ru/fedora/russianfedora/russianfedora/fixes/fedora/russianfedora-fixes-release-stable.noarch.rpm && dnf -y update

3) Instalar utilidades

# dnf -y install gnome-tweak-tool freetype-freeworld fontconfig-infinality

4) Suavizado

Abrimos nuestra Gnome Tweak Tool y nos vamos al área de Tipografías (en otros escritorios debe haber alguna herramienta similar) para seleccionar full hinting, alisado RGBA y 1.00 como factor de escalado:


5) Antes y Después

Cerramos nuestra sesión y la volvemos a abrir. Noten esta imagen del ANTES (a pesar de que en general todo el renderizado de fuentes a nivel sistema mejoró, los elementos marcados con rojo en esta captura son aquellos que considero tuvieron una mejora bastante más notable en el después):


Ahora, tengan en cuenta los elementos marcados con rojo arriba y compárenlos con sus contrapartes en el DESPUÉS:


Sobra decir que la mejora es por demás notoria. Elementos como el texto del código en Gedit o los menús de la terminal definitivamente son "más nítidos" pero a mi parecer la mayor ganancia la tuvimos en Google Chrome y los elementos de las interfaces del sistema (menú de Gnome shell, textos de la ventana de Gedit, etc.); So... ¿Qué les parece?

Extra: Wine Apps

#QuickTip: Bellas apps Wine bajo GNU/Linux

Cómo montar un entorno aislado usando SELinux Sandbox


En algunas ocasiones (investigaciones de informática forense por ejemplo) necesitarás tener a la mano un entorno sandbox aislado para poder ver cómo se comportan ciertas aplicaciones/scripts y/o procesos sospechosos. Una máquina virtual y/o linux container pueden parecer útiles en estos casos (y muchas veces lo son) pero... ¿No sería mejor si pudiéramos tener un asistente que nos mostrara los comportamientos inesperados de las aplicaciones aisladas según se presenten? Si bien existen alternativas para tener un entorno sandbox funcional en Linux (como Glimpse según nos comentan los chicos de +Usemos Linux) Esto del sandboxing se puede lograr mediante SELinux también en sistemas que lo tengan disponible (Fedora, CentOS, RHEL y/o derivadas); sin necesidad de instalar ningún software adicional (más que paquetes propios de SELinux) en nuestros sistemas.

Relevante:
TUTORIAL: ¿Cómo c*rajo se usa SELinux?


NOTA: En este tutorial me basaré en Fedora Linux como distro de referencia, cambiar los comandos de instalación por los pertinentes según sea el caso.

Nos aseguramos de que SELinux esté activado en nuestro sistema con el comando getenforce (que nos debería regresar Enforcing); y después proseguimos...

1) Instalando utilidades

# dnf -y install selinux-policy-sandbox policycoreutils-sandbox xterm firefox

2) Creando árbol de directorios

Luego crearemos la estructura de directorios necesaria para nuestro sandbox con el siguiente comando:

$ mkdir -p ~/sandbox/home && mkdir -p ~/sandbox/tmp

3) Inicializando el sandbox


Limpiamos todas las alertas en el Asistente de alertas de SELinux (como se ve en la imagen de arriba) y después corremos:

$ cd ~/sandbox
$ sandbox -X -W gnome-session-classic -w 1024x768 -H home -T tmp -t sandbox_web_t xterm

Las cosas como siguen:

  • -X: Especifica que queremos un sandbox con capacidades de display gráfico.
  • -W: Establece el gestor de ventanas a usar
  • -w: Establece el tamaño de la ventana del sandbox 
  • -H: Establece el directorio home a usar para el sandbox
  • -T: Establece el directorio tmp a usar para el sandbox
  • -t: Establece el tipo de sandbox a usar
  • xterm: es el comando a lanzar

Para conocer más acerca del uso del comando sandbox, usa el comando:

$ man sandbox

3.1) Explicación

La razón por la que inicializo mi sandbox así es por que por medio de xterm puedo lanzar otros programas, y gracias a la sesión clásica de gnome (usa mutter en el backend me parece) puedo manipular las ventanas hasta cierto punto. Uso el tipo de sandbox sandbox_web_t para poder usar firefox y otros programas que naveguen la web, pero hasta ahí. El resto de acceso a Internet está prohibido.

Según sea el caso puedo inicializar el sandbox de un modo u otro, pero este es mi favorito porque me permite tener lo más cercano a una máquina virtual dentro de un contexto aislado que está siendo constantemente monitoreado por SELinux. De esta manera puedo revisar código malicioso, ejecutarlo e investigar en internet sobre él sin problemas.

4) Configurar Sandbox


Tras inicializar tu sandbox de esta manera no pasará nada, pero empezarán a saltar alertas en el asistente de alertas de SELinux, mismo que deberás monitorear para saber qué debes permitir de manera que puedas lanzar un sandbox lo más limitado (pero útil) posible, tal y como veremos a continuación:


En este caso la primera alerta se refiere al display gráfico que usan los sandboxes (Xephyr), así que tenemos que permitirle realizar su trabajo con:

# grep Xephyr /var/log/audit/audit.log | audit2allow -M xephyr
# semodule -i xephyr.pp

Nótese cómo hice exactamente lo mismo que el asistente de alertas me recomendó, sólo cambié el nombre de la póliza para diferenciarla de otras que vamos a habilitar más adelante.

Si volvemos a tratar de inicializar nuestro sandbox con el comando:

$ sandbox -X -W gnome-session-classic -w 1024x768 -H home -T tmp -t sandbox_web_t xterm

veremos que esta vez sí arranca:


Aquí yo tengo ZSH configurado so xterm me está pidiendo un curso de acción para la nueva inicialización, elijo 0 y tengo un entorno de terminal funcional desde donde puedo ahora correr el comando:

$ nohup firefox >/dev/null 2>&1&

Lo que me lanzará una ventana de firefox, en la que (sin importar los errores de conexión), debo abrir 2 páginas, una http y una https respectivamente, por ejemplo:



Esto hará saltar alertas de SELinux porque firefox intentó conectarse a la web por medio de HTTP y HTTPS respectivamente y ahora tenemos la información necesaria para permitirle dicho comportamiento dentro de un sandbox  (si no, ¿qué utilidad tiene?):


Ese número que ven ahí es el "nombre" de firefox para SELinux, no me pregunten porqué... Tengo 1 alerta para el puerto 80 (HTTP) y una para el 443 (HTTPS); so ahora puedo hacer:

# grep 536F636B657420546872656164 /var/log/audit/audit.log | audit2allow -M firefox
# semodule -i firefox.pp

NOTA: Esta política sólo el permitirá el acceso a la web a firefox y a ningún otro programa en el sandbox.

Y entonces Firefox:


Es muy importante el no añadir excepciones y/o generar políticas para aplicaciones y/o procesos que no son absolutamente necesarios o que no sabemos con certeza porqué lo están pidiendo, de otra manera el sandboxing pierde sentido.

5) Utilizando el Sandbox

Al momento de realizar una investigación, el Asistente de alertas de SELinux será nuestro mejor amigo explicándonos paso a paso las cosas sospechosas que suceden dentro del sandbox diseccionando un@ por un@ cada petición o movimiento que hagan los procesos y/o aplicaciones, impidiendo incluso varios comportamientos por defecto permitidos (como ya vimos en el caso de firefox y el acceso a la web) ya que el entorno está sumamente controlado:


Si quisiera utilizar/analizar archivos sospechosos sin poner en riesgo mi equipo enterándome a cada paso de lo que hacen al ejecutarlos o algo similar, simplemente los copio a la carpeta home de mi sandbox y si lanzo nautilus (por ejemplo) con:

$ nohup nautilus >/dev/null 2>&1&

Los podré ver ahí:


Listo, con esto concluimos el tutorial de SELinux Sandbox. Espero les haya resultado útil y si es así, ahí arriba (Justo debajo del título del post) hay un botón de ChangeTip para que nos envíen una propina Bitcoin ;) Muchas gracias por leernos.

TUTORIAL: ¿Cómo c*rajo se usa SELinux?



NOTA: El título se debe a que comúnmente cuando una persona cambia de una distribución que no usa un MAC (o al menos no uno tan "involucrado" como SELinux) a una que sí lo hace, generalmente de primera instancia se empieza a "dar de topes" tratando de saber porqué X o Y no funcionan en su setup habitual, para al final desactivar SELinux y ver que ése era el problema desde un inicio. Dicho título es entonces una alusión a lo incomprendida que está esta herramienta de seguridad por aquellos que no están acostumbrados a usarla.

So... Todos los que usamos Fedora, CentOS, RHEL y/o derivados, conocemos a SELinuxSecurity-Enhanced Linux, que básicamente se trata de un módulo de seguridad para el Kernel mismo que trabaja por medio de pólizas. En términos sencillos, SELinux es un programa similar a un híbrido de antivirus/firewall y protege al sistema de comportamientos inesperados por medio de una implementación MAC (Mandatory Access Control); Piensa algo así como la ventana esta molesta de Windows (¿user account control creo que se llama su implementación?):


Pero de hecho útil, poco molesto, programable y con muchísimas más funcionalidades añadidas. Cabe destacar que no voy a hablar de SELinux a fondo aquí (¡Lo creó la NSA! y sus políticas de seguridad son avaladas y aprobadas por el departamento de defensa de EEUU, so se trata de un software revisado a fondo que se usa día a día en equipos de misión crítica); solo haré un pequeño tutorial de cómo manejarlo a nivel básico en tus equipos y/o servidores.


Hasta ahora ya entendimos que básicamente SELinux impide que un programa/proceso se comporte de manera "extraña" (haga cosas que se consideran potencialmente inseguras o que comúnmente no debería de hacer) tal y como se muestra en la imagen de arriba: Sin un MAC presente, el perro podría fácilmente comerse la comida del gato sin problemas y aunque esto no se considera un escenario "inseguro" per sé (debido a que las probabilidades de que dicha comida le haga daño son mínimas); esto no es algo que debería estar pasando en primer lugar... El perro tiene su propia comida disponible:


Imágenes del SELinux coloring book

Entonces bien, cada que pasa algo que "no se supone debería pasar" recibimos una alerta de SELinux que notaremos en las notificaciones del sistema (identificándola con el ícono distintivo de la herramienta) estas alertas, ya cuando las abrimos se ven así:


En el caso de la alerta de arriba, el problema está en que tengo configurado NGINX para servir una aplicación que está escuchando en el puerto 3000, pero NGINX no tiene permiso por defecto para ver lo que está sucediendo en ese puerto con el fin de llevar a cabo su trabajo tal y como yo se lo indiqué. Esto resulta en lo siguiente cuando alguien visita dicha aplicación:


Si expandimos la alerta, El asistente de alertas de SELinux nos mostrará las posibles soluciones, (una temporal y una permanente):


En este caso la que nos importa es la permanente (la de abajo) y si hacemos lo que nos indica:

# grep nginx /var/log/audit/audit.log | audit2allow -M nginx
# semodule -i nginx.pp

Nótese cómo cambié mypol por nginx en el comando recomendado, así es como debes permitir nuevas políticas, con un nombre distintivo para cada excepción.

Veremos que pasa lo siguiente en nuestra consola:


Y más tarde, ya podremos visitar la aplicación deseada normalmente:


Para los que estén trabajando en un servidor/equipo sin GUI, generar un reporte legible de las alertas se hace con el siguiente comando:

# echo "Time: $(date)" >> /var/log/selinux-alerts.log && sealert -a /var/log/audit/audit.log > /var/log/selinux-alerts.log

Después podemos leer dicho archivo en la CLI con:

# cat /var/log/selinux-alerts.log

Ahora bien, si queremos listar las políticas que tenemos activas actualmente en el sistema (llamémosles excepciones), podemos correr:

# semodule -l

para saber si tenemos una política y/o excepción específica habilitada, usamos:

# semodule -l | grep mypol

Cambiando mypol por el nombre de la política/excepción que estemos buscando.

Para desactivar/eliminar estas excepciones/políticas, corremos:

# semodule -r mypol nginx

Reemplazando nginx y mypol por los nombres de las excepciones y/o políticas que queramos deshabilitar respectivamente.

Otro caso interesante sería si quisiéramos permitir el acceso a un puerto no predeterminado en nuestro sistema (conexiones SSH entrantes a otro puerto que no sea el 22 por ejemplo), esto en el caso de SSH (después de abrir el puerto deseado en el firewall previamente) lo haríamos así:

# semanage port -a -t ssh_port_t -p tcp puerto

Reemplazando puerto por el número de puerto deseado.

Para conocer la lista de puertos permitidos (y los nombres adecuados para modificarlos) ejecutamos:

# semanage port -l

Y pues bueno, eso es todo... Así es como se usa SELinux a nivel básico. Ya no tienen porqué desactivarlo o ponerlo en modo permisivo cuando les cause problemas, simplemente era cosa de entenderlo.

Extra: SELinux Sandbox

Cómo montar un entorno aislado usando SELinux Sandbox

P.D. Si quieren conocer más a fondo SELinux y cómo utilizarlo (¡es todo un estuche de monerías!) les recomiendo el libro The SELinux Notebook que nos mencionan en la wiki del proyecto.

(NSFW) A Bitcoin epiphany induced by Cam Girls...


Today we will talk about something a little out of order on this site: pr0n.

So, yesterday I was browsing Reddit as I usually do on my spare time and noticed that someone posted the link of a website with free sex cams (or however they are called); asking the users about how it could be improved in one of the subreddits I follow (don't remember which one).

I had never explored this kind of content before, but a friend of mine pitched a similar business idea to me the other day, so I went in there to see what all that fuss it's about... Now, I'm not a porn-savvy guy (my thing it's more like tinder and real life women as I grew up with dial-up internet); So bear with me as I describe my experience to you (and how it induced this bitcoin epiphany on me):


NOTE: This post isn't going to be actually NSFW (or so I hope!) so you don't actually have to worry about who's around when you're reading it, promise.

Ladies and Gentlemen, meet "hottkaty"

She looks like a funny Sims character, doesn't she?

In a very rough way, cams are like women zoos where people "feed them" tips to "do fun stuff" (like taking their clothes off).

So, I'll give it to you straight: For me, cams felt like a zoo. I mean, girls just sit there in the privacy of their rooms where nobody can see or disturb them (IRL), and then start streaming. Horny people arrive and send them tips (called "tokens" in this particular website) so the fun can get started. As you can see from the screenshot above, girls set "goals" for the things people might request. If a cam it's very new or "a ghost town" the girl might start dancing like in the screenshot for free in order to attract/tease males or encourage them to start tipping for more. (most experienced camgirls seem to stop doing this as they build an audience, only staring at their screens in front of the keyboard waiting for their tip demands to be satisfied first).

Girls with large audiences (or with seemingly some time on the site) seem to develop a personal brand around them, Most girls don't talk (apart from the occasional "thanks user1234!" when tipped/flattered) but other girls talk about regular topics like movies and their life in a very open way (while nude/teasy); fulfilling incoming requests as users tip them. Other girls seem to engage in some sort of games (like drinking games or so) to make their cam more entertaining.

Finally, girls (called "models" on this specific site) can do "group shows" and "private sessions" I don't know what these are, but everytime a girl engaged in one of these two activities their cam "turned off" marking them busy "in a private session/group show". I think it is safe to asume that users pay a premium/fee for these kind of stuff, where the girl does more intense feats. I think on group shows girls become like musicians fulfilling specific requests from a select crowd (think like, unplugged shows) and private sessions are more like a 1-1 thing (think backstage, maybe?).

Remote Strippers?

So, enough with my cam site review, let's get to the important stuff: When I saw all of this, I wondered many things and couldn't stop thinking about the fact that most of them are normal girls liike any of my female friends or dates... However, at the privacy of their rooms when they're alone, they earn money secretely as if they where strippers. They just tag their bodyparts with a price in "tokens" and then wait in there for hours 'til the audience arrives to keep encouraging them  with more money. I was "alienated" by this realization, I mean, look at her! so peaceful browsing other profiles or writting on the chat with that chill Sims character look on her face:

She's a college student struggling to pay one of those college loans.


They doesn't need to go make a dubious "modeling" casting or engage in umconfortable sexual scenarios they might not be ok with in order to earn money.

The impactful thing here isn't what she's doing (streaming naked for a bunch of random people) or the fact that she's earning money "like a stripper" but the fact that she's participating inside a microeconomy that feeds from (or it's part of) the porn industry: There, alone at her room, armed only with a webcam and a smile. She doesn't need to go make a dubious "modeling" casting or engage in umconfortable sexual scenarios she might not be ok with in order to earn money. She just have to turn the cam on, wait for a few minutes 'til the "clients" arrive (obviously applying some marketing hooks of sorts) hang in there a couple of hours and bingo, the tip jar fills little by little 'til it reaches a substantial amount.

As I said before, I'm not that into porn, but I understand the overall attractiveness of this kind of business:

We can all agree it's a stupid thing to stare at a webcam for hours as these girls do (or watch someone live for hours as their viewers do too) but, as people wanna see more, registered users tip with their money and then the overall audience enjoys. As IRL, girls set the boundries, so many times if someone wants to see masturbation or specifically requested stuff they have to pay more (become premium) and engage in group or private sessions, which (I guess) have a greater economic benefit for the "model". This private/group sessions are closed to guests/unpaid members and as we've seen with many startups over the years (such as facebook) the idea of "elitism/selectiveness" generates curiosity and morbid thoughts, a desire to belong if you will. It is also not far fetched to think that many of these girls are on many different sites with different kind of "branding" so their followers know what (and where) is going to be the monday show, the tuesday show, the wednesday show and so on...

Porn it's an addiction (or has the potential to become one) both for those who only consume it (Guest Audience in this case); as for those who encourage it (Registered/Paying Members) and also for the Cam Girl, who (if she manages to stablish a successful "brand" and earns good money) will hardly stop streaming over the years and as we know, there are not many things that are so lucrative as addictions.

Talking about lucrative stuff, there were girls with 1915 viewers online tipping and tipping and tipping them (ones many times actually) without them doing anything. A girl happened to know a user IRL and this guy was tipping her a lot just for calling him for his real name instead of his username... Imagine if every one of them tipped the girl $1 USD, that's $1915 USD in... what? 1-3 hrs!? There is a chance the site keeps a share of the model's earnings but that might not be the case, and even if it were, let's suppose the model gets $0.75 for every dollar she earns, that's $1436 USD for her still (and almost $479 USD for the site in just that short period of time for just that model's stream BTW). Even if the girl made only $100 dollars per an 1-3 hours stream it is still a good deal for her, that's like... (a waitress shift?) in a fraction of the time with little to no effort, so... yeah.

Enter the IoT and Bitcoin



Autonomous dishwashers (in the future) might not need tech-guys for repair, they'll need bitcoin-purchased hotfixes and upgrades, just like videogames DLC's.

The important part of these microeconomies is that they're the perfect fit for Bitcoin. Services like Changetip are a proof about that. Today most of these economies are centered around content. Blog posts, videos, (cams in this case), podcasts... Users seem to like endorsing the content creators they cherish with small tips, and content creators are therefore incentivized to continue producing quality content for their audiences.

As I said, Nowdays most of these economies are centered around content and gratitude, freemium & selectiveness; But in the future when the Internet of Things becomes an every day topic for almost every household on earth, it doesn't seem too far fetched to think that the manufacturers might not bother to send you a tech-guy to repair your autonomous dishwasher anymore and instead, they'll charge you a fee over an app on your smartphone to deploy/upload a hotfix for the machine via the internet. Same thing would happen when you'd like to upgrade/add features (think videogame DLC's but in everyday use machines).

Nowdays these kind of deployments (just as the DLC and videogame patches/expansions examples) are a little bit "expensive" in many cases but that's just because they're targeted to a very specific niche at "medium scale", they're not a macro consumer product per sé. These future hotfixes and upgrades I'm talking about are going to be cheap simply because millions of people will be purchasing them at very low prices (making manufacturers earn a lot of money in the process), and it also isn't too far fetched to think that they might be doing so with bitcoin because in today's world many families have access to a washing machine and a smartphone, but not a credit card. It seems "just natural" for companies to create service apps where people can have underlying bitcoin wallets without their explicit knowledge (think "credits") that they can load up with cash going to any convenience store near them so they can buy hotfixes and upgrades for their internet-enabled machines.

So... What do you think? Do you think a "remote everything" macroeconomy powered by bitcoin it's feasible? Let me know in the comments down below and if you liked the article, don't forget to tip me at changetip:



P.S. For those of you who might have recognized the image at the beginning of the article, here's an interesting video about Cicada 3301, The Internet's most secret organization...

¿Qué hacer después de instalar Fedora 22? (Workstation/Server)


Guía de Post-Instalación
(Workstation & Server)

$ = usuario normal
# = usuario root

Workstation


Primero abriremos una terminal y cambiamos a modo root con el siguiente comando en la consola:

$ su -

Ahora sí, comencemos con la guía...




Optimizar DNF

# dnf -y install yumex dnf-plugins-core

Actualizar tu Sistema

# dnf -y update

Repositorios Extra (Necesarios)

Añadiendo éstos repositorios a tu sistema, podrás encontrar prácticamente cualquier paquete de software (programa) sin problemas. Sólo tienes que recordar que algunos de éstos repositorios contienen paquetes que no se consideran 100% software libre. Sin embargo, en muchos casos necesitarás uno o dos paquetes que vengan de estos repositorios para hacer funcionar ciertas aplicaciones.

RPM Fusion (Free & Non-Free)

# dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

# dnf -y update

KDE RedHat (Sólo usuarios de KDE)

# dnf -y install wget && wget http://apt.kde-redhat.org/apt/kde-redhat/fedora/kde.repo -O /etc/yum.repos.d/kde.repo


Drivers Gráficos Libres (NVIDIA ATI, INTEL)

Éstos son los drivers gráficos que deberías usar sin importar tu GPU si estás en Fedora Linux. En el post que enlazamos abajo, explicamos cómo sacar el máximo partido a tu hardware usando dichos drivers sin necesidad de recurrir a los drivers propietarios de los fabricantes.

Mejorar rendimiento de drivers gráficos libres (MESA) en Fedora Linux
Drivers Gráficos Propietarios

Úsalos solo si NO notas un buen rendimiento gráfico con los drivers libres aún después de seguir las instrucciones especificadas en el paso de arriba (y reiniciar) o bien, si vas a hacer gaming pesado en tu máquina.

NOTA: Si cuentas con gráficos AMD/ATI la verdad no vale la pena utilizar los drivers propietarios (a menos que tengas una muy buena razón como la minería de criptodivisas o algo así) ya que los libres funcionan muchísimo mejor en todos los casos de uso comunes, desde videos, pasando por gaming y hasta rendering (entre otras cosas).


 

Códecs y Aplicaciones


Los códecs son escenciales para poder reproducir diferentes archivos de audio/video en tu sistema independientemente del formato. Instálate un buen códec pack con el siguiente comando en consola:

# dnf -y install gstreamer1-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer-ffmpeg xine-lib-extras xine-lib-extras-freeworld k3b-extras-freeworld gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg mencoder

Como en todo Sistema Operativo, en Fedora necesitas aplicaciones para poder trabajar en tu computadora con diferentes archivos y bajo diferentes circunstancias/situaciones. Aquí una lista detallada de apps que no pueden faltar en tu sistema Fedora Linux según categoría:

Diseño/Edición

# dnf -y install gimp scribus inkscape blender audacity-freeworld calligra-krita shutter pencil

En esta categoría otras apps importantes son el gestor de fotografías y editor rápido. GNOME tiene a Shotwell mientras que KDE tiene a DigiKam/ShowFoto.

Edición de Vídeo
Cómo instalar Lightworks video editor en Fedora Linux
Multimedia (Audio/Vídeo)

# dnf -y install vlc clementine soundconverter mediainfo

Rip & Burn

# dnf -y install k3b sound-juicer kid3

Administración del sistema

# dnf -y install gparted nano wget curl smartmontools htop inxi bleachbit firewall-config beesu pysdm

Mensajería y Comunicación

# dnf -y install pidgin xchat

E-mail

# dnf -y install thunderbird

Compresión/Decompresión

# dnf -y install unrar unzip zip p7zip p7zip-plugins

Impresoras/Escáneres

# dnf -y install python-qt4 hplip hplip-gui libsane-hpaio simple-scan

Internet

# dnf -y install firefox epiphany uget gigolo

Juegos

# dnf -y install steam

Wine

# dnf -y install wine cabextract
# wget http://winetricks.org/winetricks -O /usr/local/bin/winetricks && chmod +x /usr/local/bin/winetricks

Java

# dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel icedtea-web

Otros

# dnf -y install screenfetch rfkill lsb

Utilidades GNOME

# dnf -y install cheese gnome-shell-extension-common dconf-editor gnome-tweak-tool gtk-murrine-engine* libreoffice-langpack-es

Utilidades KDE

# dnf -y install kamoso digikam kde-i18n-Spanish kde-l10n-es

Software básico de compilación

Necesitarás instalar éstos paquetes si piensas compilar algo dentro de tu Fedora Linux (nunca está demás, siempre te puedes topar con software del que únicamente tengas un tarball por ejemplo); Es definitivamente recomendable instalarlos.

# dnf -y install kernel-headers kernel-devel dkms
# dnf -y install kernel-PAE-devel (Sólo Si tienes Kernel PAE)
# dnf groupinstall "Development Tools" && dnf groupinstall "Development Libraries"

Y con esto termina la parte de códecs y aplicaciones... Aquí también puedes aprovechar para personalizar un poco la selección de apps en tu sistema, yo personalmente elimino todo lo referente a evolution y rhythmbox (con mucho cuidado de no cargarme el sistema con las dependencias) ya que reemplazo estas 2 apps con thunderbird y clementine respectivamente.

Seguridad


Si tienes tu máquina Linux en red junto a máquinas Windows/Mac siempre es bueno tener a la mano un buen anti-rootkit y antivirus (por protección de los demás), ya que aunque linux es prácticamente invulnerable a las amenazas de malware comunes, los otros sistemas no:
Protección anti-malware en Linux (5 tips básicos)
Otras Apps


NOTA: Las apps que se descarguen como paquetes rpm en este apartado se instalan con el comando

dnf -y install ruta/al/paquete.rpm

Esto instalará las dependencias por nosotros y después el paquete descargado como es de esperarse.

LibreOffice (Si usas KDE)

# dnf -y install libreoffice libreoffice-kde libreoffice-langpack-es && dnf -y remove calligra*

Google Chrome

Muy importante ya que es la única manera oficial de poder disfrutar de Flash Player y Netflix en sistemas Linux como Fedora:

Descarga RPM - http://chrome.google.com/

Skype

Descarga RPM - http://www.skype.com/intl/es/get-skype/on-your-computer/linux/

Spotify
Instalar Spotify Linux en Fedora 21 y 22
Atom Editor

Fedora es un sistema operativo mayormente enfocado para programadores e ingenieros, así que asumí que incluir ésta aplicación aquí no estaría demás:
Instalar Atom Editor en Fedora 21 y 22 
Electrum Bitcoin Wallet

En el mundo de hoy nunca está demás tener una cartera bitcoin a la mano:
#QuickTip: Install Electrum Bitcoin Wallet on Fedora Linux
PlayOnLinux
Instalar PlayOnLinux en Fedora 21 y 22
VirtualBox
Instalar VirtualBox en Fedora Linux
Extras



Y pues bueno, aquí termina la parte de post-install para la edición Workstation. Espero como con cada lanzamiento esta guía sea su referencia de elección tras instalar Fedora Linux y pues cualquier cosa no duden en dejarnos un comentario abajo.

Si esta guía te fue de ayuda, apóyanos con un tweet



Server


DNF y utilidades

# dnf -y install nano wget curl dnf-plugins-core smartmontools htop inxi mc

Actualiza tu sistema

# dnf -y update

Configurar firewall

NOTA: Si por alguna razón quisieras usar iptables en lugar de firewalld puedes seguir estas instrucciones en lugar de los pasos descritos a continuación.

Primero necesitamos obtener la(s) zona(s) activas:

# firewall-cmd --get-active-zones

Este comando nos devolverá el nombre de la(s) zona(s) activa(s) (ej. public) y las interfaces de red que están ligadas a ella(s) como podrían ser eth0, p16p1, wlan0 etc.

Es recomendable también listar los puertos y servicios permitidos en la(s) zona(s) activas para hacer personalizaciones, esto se hace con:

# firewall-cmd --zone=myzone --list-all

Obviamente usando el nombre de la zona indicada en lugar de myzone.

Luego para abrir y cerrar puertos podemos usar:

# firewall-cmd --zone=myzone --add-port=xxxx/tcp --permanent
# firewall-cmd --zone=myzone --remove-port=xxxx/udp --permanent

Respectivamente, cambiando myzone por la zona indicada, xxxx por el número de puerto deseado y especificando el protocolo (tcp/udp) según corresponda. Si quisiéramos remover algunos de los servicios que vengan activados por defecto (por ejemplo el servicio de SSH si cambiamos el puerto 22 por otro para nuestro acceso y no requerimos ya tener el 22 abierto), tenemos que ejecutar:

firewall-cmd --zone=myzone --remove-service=myservice --permanent

Cambiando myzone por la zona indicada según nuestro caso y myservice por el servicio que queramos desactivar. Al finalizar tus cambios en el firewall deberás ejecutar:

service firewalld restart

para verlos aplicados.

Activar rc.local
Activar /etc/rc.local en Fedora Linux
Habilitar tuned

# dnf -y install tuned
# setenforce 0
# tuned-adm list
# tuned-adm profile perfil-deseado
# setenforce 1

Después añadimos a nuestro rc.local:

# Tuned
setenforce 0
service tuned start
setenforce 1

Esto se hace con el comando:

# nano /etc/rc.d/rc.local

Asumiendo que ya hayas activado el rc.local previamente.

Kernel VM Tunings
Kernel VM tunnings para mejorar rendimiento en Linux
Habilitar Zswap
Haz tu Linux más rápido con Zswap
Instalar Entorno Gráfico

NOTA: Hacerlo sólo si tienes una muy buena razón para ello.
Cómo instalar un entorno gráfico en Fedora Server
Protección Anti-Malware

En un servidor esto es cosa de sí o sí. Recuerda que en el caso de ClamAV (citado en el artículo a continuación) es recomendable establecer un cronjob como root para el análisis y limpieza de archivos infectados en directorios relevantes (por ejemplo el directorio de subidas públicas en un servidor web):
Protección anti-malware en Linux (5+ tips básicos)
Configurar Google DNS

Si no lo hiciste al instalar tu sistema y configurar tu red vale la pena hacerlo:
Google Public DNS
Aprende a usar SELinux
TUTORIAL: ¿Cómo c*rajo se usa SELinux?
Extras
Y pues bueno, aquí termina la parte de post-install para la edición Server. Espero que al igual que en el caso de la edición para estaciones de trabajo, esta guía se convierta en su referencia de elección tras instalar Fedora y pues cualquier cosa no duden en dejarnos un comentario abajo.

Si esta guía te fue de ayuda, apóyanos con un tweet

Ksplice: Actualizaciones de seguridad rebootless para Linux


Ksplice Uptrack es un gestor de actualizaciones de seguridad (como las del kernel y similares) para GNU/Linux y su ventaja sobre de las herramientas comunes para el trabajo es que permite la aplicación de dichas actualizaciones en vivo (sin necesidad de reiniciar) cosa que es increíblemente buena para los que manejamos servidores. El uso de Ksplice es sencillo: Simplemente tenemos que descargar e instalar el paquete indicado desde su web oficial (Es gratuito para Ubuntu y Fedora) y entonces tendremos a la mano tanto una GUI como una CLI (se habilita una/la otra o las dos según se necesite) para manejar este nuevo gestor de updates. Cabe destacar que Ksplice no se contrapone a tu gestor de paquetes actual, es más bien un refuerzo que cumple con la tarea específica de instalar actualizaciones de seguridad en vivo en lugar representar un reemplazo para el gestor de paquetes en turno y el trabajo que éste realiza.


Si te encuentras en un servidor Ubuntu 14.04 (por ejemplo) puedes instalarlo de la siguiente manera:

# wget https://www.ksplice.com/uptrack/dist/trusty/ksplice-uptrack.deb -O ksplice-uptrack.deb
# dpkg -i ksplice-uptrack.deb
# apt-get install -f

Y en el caso de estar en Fedora Server correríamos:

# wget https://ksplice.oracle.com/uptrack/dist/fedora/XX/ksplice-uptrack.rpm -O ksplice-uptrack.rpm
# dnf -y install ksplice-uptrack.rpm

(Obviamente reemplazando user por tu nombre de usuario en los comandos y XX por la versión de fedora a utilizar, ej: 21 y/o 22); Una vez isntalado el programa actualizamos nuestro sistema normalmente:

# apt-get update && apt-get upgrade (Ubuntu)
# dnf -y update (Fedora)

Y corremos:

# uptrack-upgrade -y

Lo que nos presentará una licencia si es la primera vez que corremos el comando. La aceptamos y el programa debería tratar de instalar las actualizaciones pertinentes (en este caso no habría). Verificamos la versión efectiva del kernel con:

# uptrack-uname -r

Y eso es todo.

Recuerda que puedes controlar ksplice-uptrack con los comandos de la CLI que están listados por acá.