miércoles, 9 de septiembre de 2015

Consejo Deliberante Bariloche - Migración a Software Libre




Municipalidad de Bariloche







MIGRACIÓN A SOFTWARE LIBRE EN EL CONSEJO MUNICIPAL DE LA CIUDAD DE BARILOCHE.

La Legislatura de la provincia de Río Negro sanciono en el año 2012 la ley provincial 4747, la cual establece las políticas de incorporación y gestión progresiva de Software Libre en el ámbito del Estado Provincial, Poder Ejecutivo, Legislativo, Judicial, entes descentralizados y empresas con
participación estatal. Por tal motivo y siguiendo los lineamientos de la ley antes mencionada, el Concejo Municipal de la localidad de San Carlos de Bariloche adoptó el uso de Software Libre en el ámbito de este organismo público municipal mediante la ordenanza 2338-CM-13. Con este y otros
avances que se están realizando en materia de cambios; la Provincia de Río Negro se convierte en una de las pioneras junto con Buenos Aires y Santa Fe en adoptar e impulsar la migración a Software Libre en la administración publica.




LOS MOTIVOS PARA CAMBIAR A SOFTWARE LIBRE.

Los motivos para llegar a esta decisión son varios, pero se destaca que el software libre tiene un enorme potencial en lo que respecta al desarrollo y la investigación del software en la sociedad. Tanto universidades, empresas y particulares; son algunos de los que día a día trabajan para optimizar las funciones de los distintos software para su uso cotidiano, todo esto sin las
barreras que el software privativo impone. Dentro de esto podemos destacar las siguientes características:

-Independencia tecnológica:

Mediante el uso de software libre, el estado deja de tener sus sistemas controlados por una entidad externa (con frecuencia empresas extranjeras). De esta forma rompe la dependencia tecnológica que lo tiene actualmente atado y obtiene las libertades que el software libre otorga. Además al migrar a este sistema, existirán requerimientos de aplicaciones específicas que se deben realizar mediante la inversión en materia tecnológica por parte de empresas nacionales y cooperativas que comparten los principios de participación; solidaridad y desarrollo para comunidad.

-Control de la información:

el uso del software libre permite saber exactamente las funciones que realiza un programa, qué tipo de información maneja y cómo lo hace. La transparencia en estos aspectos garantiza la seguridad en el tratamiento de los datos, lo que resulta esencial para un Estado; como es resguardar su información. En el software propietario, este principio de transparencia no está garantizado porque al no tener acceso al código fuente de los programas, no se sabe con certeza si posee funcionalidades que facilitarían el envío de los datos privados a otros equipos u otros sistemas.

-Economía:

Además hoy en día está la posibilidad de adquirir software libre sin necesidad de realizar un gasto económico. Si bien la cuestión económica nunca fue fijada como concepto inicial en lo que es el software libre, es un hecho que en los sitios donde se utiliza este sistema se obtiene una ventaja al no tener que abonar licencias de software. El ahorro que puede conseguirse es
constante ya que no se generan los gastos extras que existirían al tener que renovar o actualizar las licencias en las distintas aplicaciones propietarias.

-Reutilización:

Otra de las ventajas comparativas que tiene es que aquellos equipos que han sido considerados obsoletos pueden volverse nuevamente funcionales con la utilización de distribuciones livianas, pensadas por sus desarrolladores para estos equipos; que poseen las mismas prestaciones que en cuanto a software se refiere.

-Legalidad:

el Estado debe preocuparse de dar alternativas que permitan romper la dependencia tecnológica en la que nos encontramos, así como a los problemas que de ello se derivan, como la situación de ilegalidad que implica utilizar programas sin licencias. Esa alternativa de uso informático es el denominado software libre. Llamado así precisamente porque se basa en el
libre empleo de los programas informáticos.

Referentes

Los referentes para la realización, promulgación y posterior implementación de la Ordenanza municipal son:

Autora: Concejal Carmen Giménez (AFSP).

Colaboradores: Mariángeles Dallavía, Limay Brouckaert y Richard Gavini (Departamento de Informática y Digesto).

PROCESO DE MIGRACIÓN Y SOFTWARE UTILIZADO.

Una vez promulgada la ordenanza municipal se comenzó con el proceso de migración; para ello se llamo a licitación publica para seleccionar la empresa que se encargaría de realizar el trabajo. Así fue que en el mes de diciembre de 2013, Ramón Chiocconi, presidente del Consejo de municipal de Bariloche, firmó un convenio con el grupo precooperativo Coopetica para llevar adelante
todo lo necesario para la migración a GNU-Trisquel (SO elegido) en ese organismo público. El software elegido como Sistema Operativo para los equipos fue la distribución GNU/Trisquel versión Toutatis 6.0 LTS; la cual utiliza el sistema operativo GNU con el kernel Linux. Esta distro esta incluida por la Free Software Foundation en la lista de distribuciones GNU/Linux 100% libres disponibles en el website de GNU, siguiendo el proceso de verificación para asegurar el compromiso del equipo de desarrollo de Trisquel y su comunidad para promover y distribuir tan solo software 100% libre. A continuación especificare algunas de las características principales que la destacan:

-Paquetes disponibles:

Para la gestión de paquetes utiliza dpkg y como método de actualización usa APT. Fue inicialmente desarrollada como una distribución basada en Debian pero los repositorios se cambiaron por los de Ubuntu. El proyecto hospeda sus propios repositorios, que derivan de los
"main" y "universe" de Ubuntu, pero se ha eliminado todo el software privativo; además de que se ha sustituido el kernel Linux original por la versión sin firmware privativo llamada Linux-libre.

-Fácil utilización:

esta distribución tiene varias versiones destinadas a distintos requerimientos pero la principal que está diseñada para uso doméstico, incluye herramientas de red, multimedia, software de diseño y ofimática, así como algunos juegos. Además incluye una aplicación de media
center capaz de reproducir DVD protegidos y la mayoría de los formatos de vídeo y audio.

-Versiones estables:

desde la versión Toutais no se realizan lanzamientos regulares STS; sino que se centran solo en el desarrollo y liberación de versiones de soporte extendido a largo plazo o LTS.


Algunos de los programas utilizados para la administración en el Concejo Municipal de Bariloche son:


-Navegadores web: Abrowser (basado en Mozilla Firefox), Konqueror y Epiphany.

-Ofimática: LibreOffice y OpenOffice (Por defecto).

-Complemento para Youtube: utiliza HTML5 y el formato WebM ya que Adobe Flash es propietario.

-Entorno de escritorio: por defecto viene con GNOME y LXDE.

-Cliente de Correo y Mensajería Instantánea: Evolution y pidgin.

-Cliente de Escritorio remoto: Remmina.

-Visor de imágenes: Gimp y gThumb.

-Reproducción multimedia: Exaile Music player para reproducir audio y Totem para los vídeos.



DIFICULTADES EN EL USO DE SOFTWARE LIBRE.

Las principales dificultades que se presentaron fueron en torno a los siguientes aspectos:

Compatibilidad de formatos:

esto problema se da mayormente en los documentos de texto (generalmente creados con OpenOffice y LibreOffice), ya que al tratar de abrirlos con Microsoft Word da un mensaje de error o se pierden datos. Pero está claro que si Microsoft Word creara sus documentos con un formato abierto (o público) esto no sucedería.

Mayores costos de implantación (no directamente):

dado que el software constituye "algo nuevo", ello supone afrontar un costo de aprendizaje, de instalación, de migración, de interoperabilidad, etc; cuya cuantía puede verse disminuida por mayor facilidad en las instalaciones; además del uso de
emuladores cuando se trata de aplicaciones especificas.

Rechazo por parte de los usuarios:

Al principio se produce un rechazo y quejas por parte de los usuarios por no conocer en profundidad el nuevo software instalado. Además de tener que acostumbrarse a las funcionalidades y aspectos generales de los programas que utilizan cotidianamente.

Problemas multimedia:

Poca estabilidad y flexibilidad en el campo de multimedia y juegos.

Incompatibilidad con algunos equipos:

Menor compatibilidad con el hardware; aunque esto se produjo en casos muy particulares.

Aun así se implemento con éxito y hoy Bariloche se encuentra como unas de las ciudades pioneras en la implementación de distribuciones 100 % libres en la Argentina; que demuestra una vez más que se puede cambiar y conseguir las mismas funcionalidades por el camino de la libertad de software.


martes, 25 de agosto de 2015

Ubuntu server 14.04 LTS VirtualBox vdi imagen de 170MB

Ubuntu server dispone de la opción al momento de instalarse, en un host ubuntu, de optar por una instalación mínima para Máquina Virtual.
Cualquier imagen  que uno quiera bajar de los mirrors oficiales de ubuntu pesa entre 1.8GB y 2.5GB.
Ante esta situación, he decidido publicar una imagen de disco virtual (vdi) de un sistema ubuntu server en su instalación básica. El tamaño del mismo, comprimido con 7zip es de 176MB. Obviamente algo más rápido y sencillo para descargarse.
El usuario administrador es "ubuntu" y la clave "ubuntu"

DESCARGAR

Para utilizarlo, lanzamos virtualbox y creamos una nueva VM

Hemos elegído "ubuntu14" por la versión del mismo pero es indistinto el nombre a usar.
Aceptamos las opciones por defecto hasta llegar a la opción de discos.



Aquí seleccionamos  un disco existente y desde el icono de carpeta buscamos la imagen .vdi descargada y descomprimida.

NOTA:
Para tener ordenado el sistema de discos de virtualbox es aconsejable hacer lo siguiente:
a) La imagen descargada en formato 7z la descomprimimos.
b)  al hacerlo seleccionamos extraerlo en el directorio creado por virtualbox en el paso anterior que en nuestro caso es "ubuntu14" y esta en nuestra carpeta personal/VirtualBox VMs/ubuntu14/

Seleccionamos la imagen que acabamos de extraer y creamos la VM



 Una vez terminado iniciamos la nueva VM y en el login ponemos usario: ubuntu password: ubuntu
Es el único usuario y por tanto el administrador del sistema


















sábado, 15 de agosto de 2015

Convertir base de datos de texto a csv

Seguramente en los próximos años, cuando lea este post, terminaré lamentando mi ignorancia en el tema,
O, posiblemente, encuentre aquí la "chuleta" que me permita salir del paso.
Tarea número 1: aprender a usar sed. Claramente es la solución a este problema pero mi manejo del mismo es terriblemente básico.

Aquí el escenario:
Tengo un extracto de un sistema de biblioteca (OMP) que por las limitaciones del mismo no llega a cumplir las necesidades del momento (no se puede filtrar la salida por campos, no se puede seleccionar períodos, no se puede, no se puede, etc)
De este extracto, que termina siendo una página html con formato de base de datos semejante a vcf, tengo que obtener al menos un archivo csv.
Todo parece muy sencillo pero sin conocimiento no hay nigún programa ni conversor en linea que resuelva la necesidad.
Asi es que, de un archivo que tiene este formato:

Texto 
TL : 574.526.323 A327 Resultado 1 de 179
Autor : Albariño, Ricardo J
Título : Análisis de la fracción macrozoobentónica en un cuerpo lótico andino
Ocultar Detalles
Institución : Universidad Nacional del Comahue, Centro Regional Universitario Bariloche
Ciudad : San Carlos de Bariloche
Año : 1994
Páginas : 66 p
Descriptores : LIMNOLOGIA - PATAGONIA - TL -
Grado Académico : TL.
Tengo que obtener un archivo de campos separados por comas.
la forma en que lo logré es la siguiente:

quitamos las lineas vacías:
cat graduados.txt |sed -e '/^$/d'>grad.txt


Sacamos aquellos campos que generan conflicto y rompen el loop:
 grep -v Editorial grad.txt|grep -v Ciudad|grep -v Ocultar|grep -v Páginas>grad1.txt

concatenamos los campos separandolos con el caracter "@"
cat grad1.txt|sed '$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;'>grad2.txt

Depuramos columnas con desprolijidades
 cat sacar.txt |awk '{print $1,$2,$7}'
Y ya tenemos nuestra base de datos para manippularla a placer y hacer estadísticas, etc,etc.

______________________________________________________

Esto no es un tutorial de "copy&paste" sino una bitacora que puede servir de ayuda

Fuentes:
https://jinetedeldragon.wordpress.com/2009/06/22/sed-en-una-linea-sed-one-liners-parte-i/

jueves, 9 de julio de 2015

HFSC. El secreto mejor guardado de Linux controlando el tráfico

La siguiente es una traducción a español del la introducción al script HFSC-SHAPE pubicado por Bradoaks en github


#!/bin/bash
# Como la gente de "bufferbloat" ha recientemente re-descubierto y / o más ampliamente
# publicitado, los algoritmos para evitar la congestión (como las que se encuentran en TCP) hacen
# Un gran trabajo permitiendo a los puntos finales de la red negociar las tasas de transferencia que
# Maximizan el uso de ancho de banda de un enlace sin penalizar indebidamente ningún stream.
# Esto permite a los bulk-stream  utilizar el máximo disponible de Ancho de banda
# sin afectar la latencia del non-bulk (por ejemplo stream interactivo)
#

# En otras palabras, TCP le permite tener su pastel y comérselo también - a la vez Descargas
# rápidas y baja latencia, todo al mismo tiempo.

# Sin embargo, esto sólo funciona si los Algoritmos para evitar la congestión de TCP
# antes mencionada realmente funcionan. El método más fiable de señalización de
# Congestión es descartar paquetes. (Hay otras maneras, tales como ECN, pero
# Lamentablemente todavía no están en amplio uso.)

# Descartar paquetes para que la red funcione mejor es un poco contra-intuitivo.
# Pero, así es como funciona TCP. Y si uno se aprovecha de eso, puede hacer que
# TCP funcione muy bien.

# Descartar paquetes llama rapidamente la atención de TCP. El criterio de valoración del envío
# es revisado para evitar una mayor congestión de la red. En otras palabras, si la
# Descarga rápida se ralentiza se baja la velocidad de envío y, siempre y cuando no haya más congestión,
# El que envia aumenta gradualmente la velocidad de transferencia repitiendo el ciclo.
# Se puede dar una explicación más compleja que esta, pero el Punto principal es:
# descartar paquetes cuando hay congestión es bueno.

# control de tráfico es reducir la velocidad y / o descartar (o marcado ECN) paquetes.
# La cosa es que, es mucho mejor para la latencia simplemente descartar paquetes
# que frenarlos. Linux tiene un par de cotroladores de tráfico que no dudan
# en descartar paquetes. Uno de los más conocido es TBF  "Token Bucket Filter".
# Normalmente se ralentizan paquetes a una tasa específica. Pero también acepta una opción
# de "límite" para especificar el número máximo de paquetes de Cola. Cuando se supera
# el límite, los paquetes se descartan.

# El Algoritmo "tail-drop" de TBF es en realidad uno de los peores tipos de (AQM)
# "Gestión de cola activa"  que se puede hacer. sin embargo, este puede hacer
# Una gran diferencia. Aplicando solo TBF (con un límite lo suficientemente corto) puede hacer un
# enlace de alta latencia utilizable de nuevo en poco tiempo.

# La gran desventaja de TBF es que es un shaper "sin clases". Eso significa que
# No se puede dar prioridad a un flujo TCP sobre otro. Ahí es donde entra HTB, la
# Hierarchical Token Bucket. HTB utiliza el mismo algoritmo general como
# TBF al mismo tiempo que le permite filtrar el tráfico específico de colas de prioridad.

# Pero HTB tiene una gran debilidad: no tiene una buena y fácil forma de especificar un
# límite de Cola como sí TBF. Eso significa que, en comparación con TBF, HTB opta por
# ralentizar paquetes en lugar de descartarlos. lo cual no es bueno para la latencia.

# Así que ahora llegamos al secreto mejor guardado de Linux controlando el tráfico: el shaper HFSC.
# HFSC significa "Curva jerárquica Justa de Servicio". La implementación en Linux es tremendamente
# compleja, lo suficiente como para tener una pregunta de 9 páginas en serverfault
# ( http://serverfault.com/questions/105014/does-anyone-really-understand-how-hfsc-scheduling-in-linux-bsd-works ).
# No obstante, HFSC puede entenderse de una manera simplificada como HTB con límites.
# HFSC le permite clasificar el tráfico (como HTB, a diferencia de TBF), pero también puede
# descartar paquetes (a diferencia de HTB, como TBF).

# HFSC hace un gran trabajo al mantener una baja latencia. Con ella, es posible
# Saturar totalmente un enlace mientras se mantiene una sesión de trafico interactivo .
# Es el santo grial de la modulación del tráfico, y esta en los kernel existentes.

# Para obtener los mejores resultados, HFSC debe combinarse con SFQ (Stochatic
# Fairness Queueing) y opcionalmente un filtro de entrada. Si los tres se utilizan,
# Es posible mantener sesiones interactivas de baja latencia, incluso sin ningúna
# Priorización de tráfico. Si además añadimos priorización entonces maximizamos la
# Interactividad.

# Here's how it's done:

# set this to your internet-facing network interface:
WAN_INTERFACE=eth1

# set this to your local network interface:
LAN_INTERFACE=eth0

# how fast is your downlink?
MAX_DOWNRATE=2550kbit

# how close should we get to max down? e.g. 90%
USE_DOWNPERCENT=0.90

# how fast is your uplink?
MAX_UPRATE=1792kbit

# how close should we get to max up? e.g. 80%
USE_UPPERCENT=0.80

# what port do you want to prioritize? e.g. for ssh, use 22
INTERACTIVE_PORT=22

## now for the magic

# remove any existing qdiscs
/sbin/tc qdisc del dev $WAN_INTERFACE root 2> /dev/null
/sbin/tc qdisc del dev $WAN_INTERFACE ingress 2> /dev/null
/sbin/tc qdisc del dev $LAN_INTERFACE root 2> /dev/null
/sbin/tc qdisc del dev $LAN_INTERFACE ingress 2> /dev/null

# computations
MAX_UPNUM=`echo $MAX_UPRATE | sed 's/[^0-9]//g'`
MAX_UPBASE=`echo $MAX_UPRATE | sed 's/[0-9]//g'`
MAX_DOWNNUM=`echo $MAX_DOWNRATE | sed 's/[^0-9]//g'`
MAX_DOWNBASE=`echo $MAX_DOWNRATE | sed 's/[0-9]//g'`

NEAR_MAX_UPNUM=`echo "$MAX_UPNUM * $USE_UPPERCENT" | bc | xargs printf "%.0f"`
NEAR_MAX_UPRATE="${NEAR_MAX_UPNUM}${MAX_UPBASE}"

NEAR_MAX_DOWNNUM=`echo "$MAX_DOWNNUM * $USE_DOWNPERCENT" | bc | xargs printf "%.0f"`
NEAR_MAX_DOWNRATE="${NEAR_MAX_DOWNNUM}${MAX_DOWNBASE}"

HALF_MAXUPNUM=$(( $MAX_UPNUM / 2 ))
HALF_MAXUP="${HALF_MAXUPNUM}${MAX_UPBASE}"

HALF_MAXDOWNNUM=$(( $MAX_DOWNNUM / 2 ))
HALF_MAXDOWN="${HALF_MAXDOWNNUM}${MAX_DOWNBASE}"

# install HFSC under WAN to limit upload
/sbin/tc qdisc add dev $WAN_INTERFACE root handle 1: hfsc default 11
/sbin/tc class add dev $WAN_INTERFACE parent 1: classid 1:1 hfsc sc rate $NEAR_MAX_UPRATE ul rate $NEAR_MAX_UPRATE
/sbin/tc class add dev $WAN_INTERFACE parent 1:1 classid 1:10 hfsc sc umax 1540 dmax 5ms rate $HALF_MAXUP ul rate $NEAR_MAX_UPRATE
/sbin/tc class add dev $WAN_INTERFACE parent 1:1 classid 1:11 hfsc sc umax 1540 dmax 5ms rate $HALF_MAXUP ul rate $HALF_MAXUP

# prioritize interactive ports
/sbin/tc filter add dev $WAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid 1:10
/sbin/tc filter add dev $WAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid 1:10

# add SFQ
/sbin/tc qdisc add dev $WAN_INTERFACE parent 1:10 handle 30: sfq perturb 10
/sbin/tc qdisc add dev $WAN_INTERFACE parent 1:11 handle 40: sfq perturb 10

# install ingress filter to limit download to 97% max
MAX_DOWNRATE_INGRESSNUM=`echo "$MAX_DOWNNUM * 0.97" | bc | xargs printf "%.0f"`
MAX_DOWNRATE_INGRESS="${MAX_DOWNRATE_INGRESSNUM}${MAX_DOWNBASE}"
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate $MAX_DOWNRATE_INGRESS burst 20k drop flowid :2

# install HFSC under LAN to limit download
/sbin/tc qdisc add dev $LAN_INTERFACE root handle 1: hfsc default 11
/sbin/tc class add dev $LAN_INTERFACE parent 1: classid 1:1 hfsc sc rate 1000mbit ul rate 1000mbit
/sbin/tc class add dev $LAN_INTERFACE parent 1:1 classid 1:10 hfsc sc umax 1540 dmax 5ms rate 900mbit ul rate 900mbit
/sbin/tc class add dev $LAN_INTERFACE parent 1:1 classid 1:11 hfsc sc umax 1540 dmax 5ms rate $HALF_MAXDOWN ul rate $NEAR_MAX_DOWNRATE

# prioritize interactive ports
/sbin/tc filter add dev $LAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid 1:10
/sbin/tc filter add dev $LAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid 1:10

# add SFQ
/sbin/tc qdisc add dev $LAN_INTERFACE parent 1:10 handle 30: sfq perturb 10
/sbin/tc qdisc add dev $LAN_INTERFACE parent 1:11 handle 40: sfq perturb 10

### End of Script

Nota:
podemos chequear las estadísticas del queue con:
watch -d -- '/sbin/tc -s qdisc'

martes, 9 de junio de 2015

Actualizar Moodle a nuevas versiones

Una vez que tenemos instalado nuestra plataforma educativa virtual como mostramos en este post va a llegar un momento en que tengamos que realizar actualizaciones parciales o actualizar moodle a una versión superior completa.

Para ello, siguiendo esta  guía podemos preservar las modificaciones y personalización que le realizamos a nuestra instalación durante su utilización.

Debemos cambiarnos al directorio de nuestro repositorio moodle local

cd /opt/moodle/
una vez en él podemos editar desde esa locación cambiarnos directamente al directorio de excepciones

 vi /opt/moodle/.git/info/exclude
alternativamente,

 cd .git/info/
y editamos el archivo exclude:

 vi exclude 

en el mismo vamos a incorporar los archivos y/o directorios que queremos que no sean descargados cuando actualicemos la información del respositorio



por último ejecutamos como usuario root o como sudo "git pull" para actualizar Moodle a la versión más reciente, Git ignorará estos archivos y directorios y solamente actualizará lo restante.


Fuente:
https://docs.moodle.org/all/es/Guia_de_instalacion_paso-a-paso_para_Ubuntu#Paso_5:_Copiar_repositorio_local_a_.2Fvar.2Fwww.2Fhtml.2F


 

miércoles, 3 de junio de 2015

Instalar moodle en Ubuntu Server 14.04

Moodle  es un software de codigo abierto  diseñado para ayudar a los organizaciones educativos a crear cursos. Tales sistemas de aprendizaje en línea son algunas veces llamados VLEs (Virtual Learning Environments) o entornos virtuales de aprendizaje
¿Como instala Moodle en Ubuntu Server 14.04?

Para instala moodle una plataforma moodle, debe tener un servidor apache previamente instalado. 

Finalmente tenemos nuestro moodle en producción


miércoles, 20 de mayo de 2015

Script para lanzar aplicación con start-stop-daemon a nivel de sistema

La mayoría de las distribuciones de GNU/Linux utilizan start-stop-daemon en sus scripts de inicio systemV. Esto facilita la creación de procesos al inicio con parámetros como usuario, aplicación, entorno, etc. modificables.
En este caso, debido a la migración de un sistema windows a ubuntu, es necesario lanzar una aplicación de windows con wine y un usuario determinado.
Primero creamos el archivo script
vi /etc/init.d/opac
y le editamos el siguiente contenido:
#!/bin/sh

### BEGIN INIT INFO
# Provides:          Catalogo
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Opac CRUB
# Description:       Catalogo OnLine de la Biblioteca
#                    CRUB UNCo
### END INIT INFO

set -e
NAME=opac
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=/usr/bin/wine
DAEMON_OPTS=" /home/hector/.wine/drive_c/OpenMP/apache/Apache.exe -k start"

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
        echo -n "Starting daemon: "$NAME
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
        echo "."
        ;;
  stop)
        echo -n "Stopping daemon: "$NAME
        start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
        echo "."
        ;;
 restart)
        echo -n "Restarting daemon: "$NAME
        start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
        echo "."
        ;;

  *)
        echo "Usage: "$1" {start|stop|restart}"
        exit 1
esac

exit 0

Luego de esto damos atributo de ejecución
chmod +x /etc/init.d/opac
Y finalmente agregamos el servicio a nuestro run level.
 update-rc.d opac defaults





Fuentes:

http://www.tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap3sec21.html
http://manpages.ubuntu.com/manpages/saucy/man8/start-stop-daemon.8.html
http://blog.frd.mn/how-to-set-up-proper-startstop-services-ubuntu-debian-mac-windows/
http://manpages.ubuntu.com/manpages/hardy/es/man8/update-rc.d.8.html

viernes, 15 de mayo de 2015

Linux Configurar repositorios DSL (DamnSmallLinux)

damn Small Linux es una distribución basada en knoppix que a su vez, en aquellos inicios cuando fueron creadas ambas, están basadas en debian woody.

El objetivo de esta tarea es tener un entorno GNU/Linux conocido (debian alike) en una máquina virtual en conjunto con el simulador de redes netkit para realizar tareas prácticas en la Técnicatura de administración.
Instalar DSL en una VM no es para nada complejo. Sin embargo, a la hora de utilizar nuestra VM es probable que nos encontremos con algunos errores; sobre todo por los cambios que realizó el hosting del repositorio de DSL que es Ibiblio.
Es por ello que aqui voy a dejar las instrucciones para corregir esto y además los comandos para convertir a DSL en un verdadero debian. Con esto lo que se obtiene en primera medida es la herramienta apt-get, fundamental para instalar software adicional.

Una vez en nuestra VM-DSL lanzamos una terminal root y allí editamos el archivo de configuración de dsl:

vi /opt/.dslrc
aquí borramos la primera linea y agregamos esta:
mirror: distro.ibiblio.org/damnsmall/ 

Con esto ya tenemos nuestro DSL configurado correctamente con su repositorio.

Finalmente en esta misma consola ejecutamos dos comandos. Primero, las herramientas GNU:
/usr/sbin/gnu-utils-restore
Y luego habilitamos los repositorios debian:
/usr/sbin/dpkg-restore
Finalmente, y para sentirnos realmente en una distribución "Debian alike" ejecutamos:
apt-get update


 No recomiendo hacer un apt-get upgrade ya que ello rompería la convivencia de woody con dsl.

En proximos post explicaré cómo utilizar netkit desde el live cd de Raizo en nuestra DSL-VM

martes, 21 de abril de 2015

martes, 24 de marzo de 2015

Midnight commander For Ever

Con mucho desagrado y desilusión observo que en la distribución GNU/Linux Debian a partir de la versión Wheezy ya no es posible instalar esta fundamental herramienta de consola que es el MC.

Hay una persona que, haciéndose eco de esta perdida creó su propio repositorio para que el midnight commander pueda ser instalado siguiendo la política de repositorios.
El mismo es un Ruso y su sitio es http://www.tataranovich.com/

Pueden seguir las guías para agregar el repositorio e instalar con apt-get o ponerse cabrones e instalar los paquetes a mano.
Solo basta bajarse los dos paquetes del mc correspondientes a Versión y arquitectura que tengan e instalarlos:
mc-data_xxversionxxarch.deb
mc-xxversionxxarch.deb
buscar en:
http://www.tataranovich.com/debian


Fuentes:
http://www.tataranovich.com/
http://linuxg.net/how-to-install-midnight-commander-4-8-12-on-all-the-supported-ubuntu-linux-mint-debian-and-elementary-os-systems/



viernes, 20 de febrero de 2015

Progamar Iptables para cancelar usuarios por Mac Address

Esto es parte de un trabajo cuyo objetivo es limitar el acceso a la red WiFi de usuarios con Smartphones.

creamos el archivo del script y le damos atributo ejecutable:

touch /etc/rc.d/rc.Dropmac
chmod +x /etc/rc.d/rc.Dropmac



#!/bin/bash +x
# Usaríamos inotify para lanzar nuestro script pero considerando que dhcpd.leases tiene modificaciones permanentes  por todas las vlans, estariamos reiniciando el firewall a cada segundo
#####
# inotifywait -m -e modify,close_write /var/lib/dhcpd/
#
# iptables -N CELU > /dev/null 2> /dev/null
# Borramos manualmente las entradas en la cadena CELU
echo "#!/bin/bash">/etc/rc.d/rc.drop
iptables -S |grep CELU|grep INPUT|sed 's/-A/iptables -D/g'>>/etc/rc.d/rc.drop
/etc/rc.d/rc.drop
#
iptables -F CELU
iptables -A CELU -j LOG --log-prefix "--ANDROID"
iptables -A CELU -j DROP
cat /var/lib/dhcpd/dhcpd.leases|grep android -3|grep hardware|awk '{print $3}'| cut -f1| sort | tr -d ';'|uniq>>/etc/rc.d/vlan.acl
cat /var/lib/dhcpd/dhcpd.leases|grep Phone -3|grep hardware|awk '{print $3}'| cut -f1| sort | tr -d ';'|uniq>>/etc/rc.d/vlan.acl
for MAC in `cat /etc/rc.d/vlan.acl|sort|uniq`;
do
iptables -I INPUT -i vlan110 -m mac --mac-source $MAC -j CELU
done
editamos el cron e ingresamos nuestro script:
#crontab -e
*/15 * * * * /etc/rc.d/rc.Dropmac

jueves, 22 de enero de 2015

Linux - Configurar la Notebook como Access Point Inalámbrico (WiFi)

Si la interface de red inalámbrica de nuestra notebook soporta el modo master podemos de una manera sencilla configurar un Access Point para compartir nuestra conexión a través de la misma.
Para ello:



Creamos el archivo /etc/Network-Manager/system-connections/AP-WiFi
touch /etc/Network-Manager/system-connections/AP-WiFi
chmod 600 /etc/Network-Manager/system-connections/AP-WiFi

y en el mismo copiamos este contenido:

[connection]
id=AP-WiFi
uuid=xxx-xxx-xxx
type=802-11-wireless
[802-11-wireless]
ssid=AP-WiFi
mode=ap
mac-address=00:00:00:00:00:00
security=802-11-wireless-security
[802-11-wireless-security]
key-mgmt=wpa-psk
psk=P4sw0rD
[ipv4]
method=shared

Nota1: cambiar mac-address por la de la placa WiFi que vamos a usar. La obtenemos con el siguiente comando:
ip link show

nota2: Cambiar el uuid con uno propio generado con el siguiente comando:
uuidgen wlan0

Guardamos nuestro archivo y ya podemos conectarnos.

Primero establecemos nuestra conexión a Internet ya sea por la red cableada, USB-3G u otra que tengamos disponible.

Luego activamos el Access Point:

En modo gráfico: buscamos en el icono de NM la red AP-WiFi y nos conectamos. Si no está en la lista, configuramos una “red Oculta” con los datos de nuestro AP

en modo texto: ingresamos a una terminal y ejecutamos:
nmcli con up id AP-WiFi







Fuentes: