HowTo: Micro-intro a SELinux

He visto, para mi pesar, muchas soluciones de “chmod 777 / -R” y estupideces por el estilo.

La gran mayoría de éstos vienen de usuarios que no saben ni qué onda; generalmente ubunteros inexpertos y no propensos a leer y a saber cómo están las cosas.

Te pido que no empieces con estas soluciones. En Fedora, seguido, debemos checar si SELinux no está impidiéndonos hacer algo y asignar la etiqueta necesaria para poder hacerlo.

SELinux nos impide hacer cosas cuando las hacemos mal; por ejemplo, poner archivos de samba en /home/samba o una página web en /home/miuser/paginas

Te recuerdo que existe el Filesystem Hierarchy Standard o HFS. Búscalo y entérate de los mejores lugares para poner las cosas.

SELinux en Fedora viene pre-configurado para permitir acceso de los daemonios solo en las carpetas reglamentadas por el FHS; por ejemplo:

Las páginas web van en /var/www
Los respaldos en /var/backup
Las DBs en /var/lib/
Los archivos de usuario en /home
Las librerías en /usr/lib, /usr/lib64, /lib, /usr/local/lib, etc.

Dicho ésto, algunas veces debes re-etiquetar algunas cosas por motivos ajenos a la distribución. Un ejemplo de esto es cuando instalas o desarrollas una aplicación web que necesita escribir en algún directorio o algún archivo. Para esto, existe una etiqueta: httpd_sys_content_rw_t; la cual permite, a apache, que escriba sobre un directorio y/o archivo específico.

Para configurar esto de manera temporal; mientras pruebas, usa:

su -c 'chcon httpd_sys_content_rw_t /var/www/websites/miapp/tmp'

Pero, cuando re-etiquetes, perderás esta etiqueta si no creas la política con semanage:

su -c 'semanage fcontext -a -t httpd_sys_content_rw_t /var/www/websites/miapp/tmp'

Una vez hecho ésto, solo haz un

su -c 'restorecon -R /var/www/websites/miapp/tmp'

para que se re-etiqueten los archivos debajo de ese directorio.

Para remover tu política, solo:

su -c 'semanage fcontext -d /var/www/websites/miapp/tmp'

Y no olvides re-etiquetar.

Si aprendes algo del FHS, no tendrás tantos problemas con SELinux. Y, por cierto, NO LO APAGUES! APRÉNDELO!

Debes leer mucho más al respecto de esto si lo quieres usar. Recuerda que SELinux es otra capa de protección/regulación. Debes tomar en cuenta el sistema de permisos de GNU & Linux y, además, los permisos avanzados.

# Páginas de referencia

http://www.pathname.com/fhs/

http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux

http://en.wikipedia.org/wiki/Filesystem_permissions

http://en.wikipedia.org/wiki/Setuid

http://en.wikipedia.org/wiki/Sticky_bit

http://en.wikipedia.org/wiki/Access_control_list

http://acl.bestbits.at/

http://en.wikipedia.org/wiki/Extended_file_attributes

HowTo: Cómo reestablecer permisos en GNU & Linux

Eres nuevo y/o estás jugando con los permisos y los ownerships y te has metido en un mega-problemón porque ya no sabes qué hiciste…

No hay toz, Saint Bash y Saint RPM nos vinieron a ayudar.

Es muy fácil reestablecer los permisos de un paquete y su dueño; solo:

su -c 'rpm --setperms --setugids '

Por ejemplo, digamos que quieres reestablecer los permisos de phpMyAdmin:

su -c 'rpm --setperms --setugids phpMyAdmin'

Pero… y… si son un chingo de paquetes? Muy fácil: (actualmente, me costó un buen rato!)

su -c 'rpm --setperms --setugids $( rpm -qa --qf "%{NAME} " *zarafa* )'

Problemas con Fedora como Gateway/Router y NetworkManager

Ayer, tuve una mega-bronca.

Resulta que puse el una PC con Fedora 14 como gateway. Para ser más claro, le conecté un modem de infínitum (en modo puente) y, por la otra NIC, le pasaba internet y servicios de red (dhcp, bind, samba) a la red.

Se me ocurrió hacerlo en init 5 y usando NetworkManager para hacer la conexión pppoe.

Bueno, la conexión funcionaba de maravilla y fue taaaan fácil de configurar.

La bronca fue que, al compartir el internet (poner masquerade en la ppp y habilitar forwarding), solo podía ver páginas de google en la red…

Estuvo bien loco porque el ping respondía y todo parecía normal… nomás no se veían varias páginas…

No era el DNS… no era el DHCP… no era nada… todo estaba bien…

No supe qué pasó…

Decidí reconfigurar todo a la manera tradicional (hacer un archivo ifcfg-ppp y poner todo ahí) y funcionó a la primera!

Qué pasó? Porqué el maldito NetworkManager no creó un archivo ifcfg-X cuando le puse que la conexión debía ser usada por todo el mundo? No lo sé… Así lo hace con los ethX…

Bueno, solo para avisarles a todos. No usen NetworkManager para hacer un Gateway… todavía… voy a reportar el bug.

HowTo: Como hacer para omitir archivos en bash

Bueno, leyendo el manual de Bash, me encontré con una sección muy chida: Pattern Matching

Si haces el comando:

yelp info:bash

Y, después, vas a la sección: Basic Shell Features > Shell Expansions > Filename Expansion > Pattern Matching eoncontrarás que puedes hacer omisiones y muchas otras cosas!

Acá, explico cómo hacer una omisión.

Digamos que tienes un montón de archivos ogg y quieres conservarlos. Pero, como te los trajiste de Windoze, tendrás que eliminar un montón de cosas (.ini, .jpg. .JPG, etc)

Cómo los borras?

Muy fácil:

rm !(*.ogg)

Ahora, digamos que quieres retener los archivos .txt junto con los .ogg, muy fácil:

rm !(*.ogg|*.txt)

Y listo! Ahora te toca aportar otros ejemplos útiles a la comunidad!

Haz tu vida fácil en Fedora!

Yo he estado haciendo un script para ahorrarle problemas a la gente. Mi script instala flash y se encarga de codecs, 3D y demás ondas.

Bueno, ahora vi que hay una persona que está haciendo lo mismo: twekear tu Fedora; y está mucho mejor hecho que el mío en cuestión de diseño e interface!

http://easylifeproject.org/

Me sigue gustando mucho el mío por mi preselección de paquetes y demás. Dicho ésto, EasyLife te permite hacer más cosas (que nunca me interesaron) como instalar Java y habilitar sudo (what?! Fedora se transforma en Ubuntu?!)

Eso es lo que le criticaría. Es todo… por lo demás, úsenlo! Está bien chido! Además, lo hace un Brazileño!… espero mucho software como éste desde allá.

Google Laws!!… no! Leyco!!!

¿Cómo puedo buscar entre las leyes mexicanas? ¿Hay algún buscador de leyes en México?

Me da gusto conocer a personas tan innovadoras como Patricio Páez.

Asistente a LinuxCabal y compañero.

Uno de sus proyectos es el, ya aclamado, Leyco; un buscador de leyes mexicanas correlacionadas… así es; ni siquiera Google tiene este tipo de cosas!

http://leyco.org/

Entre otras cosas, éste es un intento bastante acertado para organizar nuestras leyes y hacerlas disponibles a meros seres humanos; con mucha ayuda integrada al correlacionarlas o, sea, te muestra links a las leyes a las que referencían las mismas.

Patricio es fan de Python. Recientemente, implementó un buscador; utilizando Xapian; más FOSS!

Ahorita, me confiesa, no tiene mucho tiempo de desarrollar activamente esta web app. Tiene pensado, en un futuro, abrirlo a la comunidad y a la participación activa de los interesados. Dicho esto, no dudes en contactarlo. Seguramente puedes revisar la página, señalar bugs y/o sugerencias!

Además, ha publicado la forma para que lo incluyas en tu página! Te agradecería que le dieras crédito!

Buscador Oficial de Leyes Mexicanas Correlacionadas (Leyco)

El buscador es muy interesante, por ejemplo, si buscas “juicio político” (con todo y comillas), te saca todas las leyes en las que incluye esta frase específica! Prueba siguiendo este link:

http://leyco.org/q/?query=%22juicio+pol%C3%ADtico%22

Gracias, Patricio, por tan útiles apps para nuestro pueblo!

p.d. no soy nacionalista!

Sigo siendo mi fan #1…

Y, mientras escucho mi música, entiendo que la disfruto tanto…

Me duele no poder reconciliarme con Windows para hacer música bien chida. Lo que significa ésto para mí es mucho; no es libre… no va con mis ideales y me siento tan incongruente cuando lo uso…

Prefiero hacer música de peor calidad en GNU & Linux a seguir haciendo música ahí. Lo sigo usando y, de vez en cuando, aprieto el estómago y hago música… pero, éste, es cada vez más distante el uno del otro…

Pero, al oir mi música… me gusta tanto… soy mi fan… y como que me dan ganas de hacer música… aunque sea en windows…

http://jamendo.com/artist/renich

RabbitVCS: Control de versiones a toda madre!

Me topé con esto en Fedora 14; buscando plugins para gEdit:
http://www.rabbitvcs.org/

Esta cosa parece integrarse con gEdit y GNOME para hacer magia y simplificar el uso de controles de versiones. Me gustó mucho y lo instalé. Ahí se los recomiendo!

Yo soy mega-fan de Git. Y, al parecer, en la siguiente versión (0.14), van a incluir soporte básico, lo cual me es suficiente!

Síguelo en:
http://wiki.rabbitvcs.org/wiki/about/roadmap

Lombard: Un gran inicio para el editor de video

Éste proyecto está de poca!

http://yorba.org/

Es una oficina de compas en San Francisco, California. Éstos vatos están haciendo FOSS a lo loco! Por ejemplo, hicieron el Shotwell; el cual es foto manager.

Bueno, ahora, están haciendo Lombard; un editor de video basado en gstreamer (el backend de video y audio para GNOME y, por tanto, fedora).

Esto es integrar. Esta madre va a jalar bien bonito y reutiliza lo que provee GNOME. Me gusta mucho el proyecto y, a pesar de que es version 0.1, está incluido en Fedora 14!

Sigue el proyecto; seguro va a estar bien chido!