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:



miércoles, 5 de noviembre de 2014

Introducción a iptables

iptables es la herramienta de espacio de usuario para la configuración de reglas de firewall en el kernel de GNU/Linux.

En realidad, es una parte del framework netfilter. Tal vez porque iptables es la parte más visible del sistema netfilter, el framework es comúnmente referido colectivamente como iptables.
iptables ha sido la solución de firewall de GNU/Linux desde el kernel 2.4.


En GNU/Linux la configuración del firewall iptables consta de un conjunto de cadenas integradas (agrupadas en cuatro tablas) que comprenden cada una una lista de "reglas". Por cada paquete, y en cada etapa del proceso, el kernel consulta la cadena adecuada para determinar el destino del mismo.

Las cadenas se consultan en orden, sobre la base de la "dirección" del paquete (remoto-a-local, remoto-a-remoto o local-a-remoto) y su actual estado de procesamiento (antes o después del enrutamiento) .


Fuente:
http://www.linuxjournal.com/content/advanced-firewall-configurations-ipset