27 febrero 2007

[HowTo] Bluetooth 11.0

Paquetes necesarios:

  • bluez-firmware
  • bluez-hcidump
  • bluez-libs
  • bluez-utils
  • dbus
  • openobex
  • hal
  • KDE Bluetooth

  • Despues de un installpkg masivo, editamos el /etc/bluetooth/hcid.conf para que se asemeje a esto:

    options {
    autoinit yes;

    security user;

    pairing multi;

    passkey "1234"; # aqui el pin que mas os guste
    }

    device {
    name "BlueZh"; # aqui el nombre del dispositivo (pc) que mas os apetezca

    class 0x3e0100;

    iscan enable; pscan enable;

    lm accept;

    lp rswitch,hold,sniff,park;
    }

    ejecutamos (y/o añadimos a /etc/rc.d/rc.local para cargar siempre en el arranque)

    /etc/rc.d/rc.bluetooth start
    /etc/rc.d/rc.messagebus start
    /etc/rc.d/rc.hal start

    abrimos nuestro flamante kbluetoothd (acceder al dispositivo con konqueror), kbtobexclient (envio de archivos al dispositivo). [Menu K - Internet - kbluetoothd // kbtobexclient ]

    Catastrofe posible, que el dispositivo este caido.

    Para levantar el dispositivo bt del pc
    $ hciconfig
    hci0: Type: USB
    BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 678:8 SCO MTU: 48:10

    $ hcid hci0 up ## 0 en mi caso

    [ampliaré con mas comandos otro dia]

    Como curiosidad e informacion gratuita:

    El origen proviene de Harald Bluetooth, quien fuera Rey de Dinamarca en los años 940-981. Vikingo que fue reconocido por su carácter humanitario y su capacidad de ayudar a la gente a comunicarse. Cuenta la historia que en su reinado unió a Noruega y Dinamarca.

    ahi lo llevas.

    23 febrero 2007

    Cosas varias

    Lilo Grafico



    copiar imagen en /boot/
    y en /etc/lilo.conf

    #message=/boot/boot_message.txt # Comentar esta linea

    bitmap = /boot/lilo2.bmp

    bmp-table = 63,15,2,15,
    bmp-timer= 69,29,15,0,15

    Tema para el kdm


    Tema para el ksplahscreen

    Si usamos el tema SlackwareLinux de bootsplash, todo el arranque sera similar.

    Tema ksplashscreen by washap


    Para los temas del ksplash es necesario este paquete

    20 febrero 2007

    Script Calendario Series

    Poco tiene que ver esto con slack, mas con mi aficion a las series en vo, pero bueno lo subo igual aqui.

    Es un script que muestra los días del mes actual en los que se emiten capitulos de la serie que corresponda vía epguides, y también puede generar un fichero de texto (dates.conf) para integrarlo en el tema myCalendar
    añadida opcion de exportar a fichero para importar con korganizer.

    por ejemplo:

    ya se irá depurando.

    18 febrero 2007

    [HowTo] Autoarranque con kdm

    Este asunto puede resolverse graficamente en la configuracion de "Administrador de acceso" ($ kcmshell kdm), en la pestaña 'Comodidad', el tema es que por defecto al usuario root no le está permitido el autologin.

    Si queremos hacerlo tenemos que modificar en el fichero '/opt/kde/share/config/kdm/kdmrc' las siguiente lineas marcadas con ''##'':

    en slackware 12.0 rc1 '/etc/kdm/kdmrc'
    [X-:0-Core]
    AutoLoginAgain=false
    AutoLoginDelay=0
    AutoLoginEnable=true ## 'true' para habilitar el autoarranque
    AutoLoginLocked=false
    AutoLoginUser=root ## el usuario para el autoarranque
    ClientLogFile=.xsession-errors

    Happy login xDD

    12 febrero 2007

    Superkaramba [illtry note taker 1.0]

    El problema de este tema, es que no funcionaba por un par de errores en el código (al menos cuando yo me lo bajé), pasaba un entero como una cadena de caracteres, y aquí esta modificado y funcional.

    06 febrero 2007

    [HOWTO] Construir un IDS

    con Snort + MySQL + BASE + PHP5 + Apache2

    Por: Meleagro

    Introducción

    Los IDS son una parte muy importante en la prevención de ataques, constituyen una primera barrera que nos puede ayudar a corregir fallos de seguridad o a recopilar información acerca de un posible futuro atacante. Este documento está orientado fundamentalmente a la construción de un Detector de intrusos casero utilizando Snort, es por ello que no se utiliza ninguna herramienta propietaria, con lo cual ademas de salirnos gratis tendremos un IDS libre.

    Esta guía es una ampliación y actualización sobre el documento "Guía Snort + MySQL + "ACID + PHP en Slackware 10.1" que realizé haze algo más de un año.Las razones por las cuales me he decidido a actualizar dicho trabajo son varias: la actualización del software utilizado para construir el IDS (Detector de Intrusos) por ejemplo el salto a PHP5 y Apache2, e incluso la modificación del mismo (en esta ocasión cambiamos el gestor ACID por BASE) , la puesta al dia de manera más general, ya que en la anterior estaba muy marcado su uso para la distribución de Linux Slackware en una versión concreta. En esta ocasión utilizo Slackware como distribución y aunque uso algún paquete hecho especialmente por mí para este propósito (snort o pcre) los pasos son más generales y cualquier usuario de Linux podrá montarse un IDS gracias a esta guía en su propia distribución de Linux, si bien se exigen unos conocimientos previos.

    Creo que deberia comentar el cambio más drástico que incluye este documento respecto del anterior, se trata del uso de BASE en lugar de ACID. La decisión ha sido facil, por un lado ahora trabajo en seguridad informática, cosa que no hacía en el momento de escribir la primera guía y he podido ver que BASE es utilizado en mayor medida que ACID (esa es mi experiencia), por otro lado ya lo había conseguido usando ACID y la propuesta de hacer algo diferente también ha tenido su peso en la elección. A esto hay que sumar que BASE está basado en ACID y que la diferencia tampoco es tanta como para desconcertarse. Por si fuera poco ACID no se actualiza desde Agosto del 2003, con lo cual está todo dicho.

    Pocas cosas me quedan ya por decir, que todas las acciones se realizan con privilegios de root y comentar que cuando hable de lineas el numero puede variar en vuestros archivos, pero es una orientación muy aproximada. Si encontráis alguna errata podéis notificarmelo a mi correo eletrónico (dmedianero@gmail.com), cualquier mejora u obsevación es bien recibida y espero que este documento os sea de provecho ya que hay muy poca documentación en castellano al respecto.

    Instalar y configurar Snort

    Snort es la parte fundamental de esta guía. no obstante es el detector de intrusos en sí, y el resto del software de está guía está encaminada a la mejor y mas comprensible lectura de las alertas que Snort proporciona.
    Snort puede descargarse gratuitamente desde la web oficial (http://snort.org) aunque probablemente para cualquier distribución de Linux haya binarios disponibles en formato rpm, deb e incluso pra Slackware tenemos en Linuxpackages.net binarios en tgz.

    Sin embargo no he utilizado el tgz de Linuxpackages.net, ya que no está compilado con la opción del soporte para MySQL, que es especialmente importante, ya que el propósito de esta guía es que Snort vuelque sus alertas en una base de datos MySQL de la cual se leen los datos en una interfaz web construida en PHP (BASE) a través de ADODB, de manera que sea muy facil hacer graficos de las alertas, verlas por destino, por puerto, eliminarlas, archivarlas,etc.

    Bajamos el tgz de mi Ftp personal, está especialmente compilado para este fin, la orden quedaría así:

    #wget ftp://meleagro.homeunix.org/slackware/snort-2.6.0.1-i686-2dmg.tgz

    Ahora procedemos a la instalación del mismo:

    # installpkg snort-2.6.0.1-i686-2dmg.tgz

    Creamos el grupo snort, con el cual será ejecutado el programa:

    # groupadd snort

    A continuación deberíamos tener las reglas de snort en el directorio /etc/rules y el directorio de logs creado en /var/log/snort. Si has utilizado mi paquete no debes preocuparte pues está todo colocado por defecto en su sitio, en caso contrario coloca cada directorio en su lugar antes de continuar.

    Después editamos el archivo de configuración de Snort /etc/snort/snort.conf, dejandolo así:

    linea 111: "var RULE_PATH /etc/snort/rules"
    linea 684: "output database:log,mysql, user=snort password=tu_contraseña_BBDD dbname=snort" host=localhost

    Con esto le estamos indicando el lugar de donde usar las reglas de detección y que debe volcar las alertas en una base de datos MySQL llamada snort con una determinada contraseña (a elegir por nosotros). He utilizado las reglas publicas oficiales VRT en la compilación del paquete, estas pueden obtenerse gratuitamente y sin subscripción en la web oficial de Snort. Ya tenemos el Snort configurado, ahora para que se ejecute al iniciar la computadora metemos las siguientes lineas en el fichero /etc/rc.d/rc.local:

    echo 'Iniciando IDS...'
    snort -c /etc/snort/snort.conf -i eth0 -g snort -D

    Esto es válido para distribuciones con inicio de tipo BSD, para otras distribuciones con inicio SysV (Debian, Ubuntu, Mandriva, SUSE, etc) estos scripts suelen estar en /etc/init.d

    Configurar MySQL

    Suponemos que hay un servidor MySQL ejecutadosne en el sistema, sino lo instalamos con los binarios correspondientes y lanzamos el servidor, en el caso de Slackware con el comando:

    # /etc/rc.d/rc.mysqld start

    Para los usuarios de Slackware que tengan problemas con la iniciación del servidor MySQL, que muchas veces da poblemas, les recomiendo una web:
    http://mysql.conclase.net/curso/index.php?cap=instalara
    en ella se explica con detalle como poner el servidor y hay guías sobre MySQL muy interesantes. Aunque no utilizéis Slackware esta web os puede ser de mucha utilidad si tenéis dudas respecto de MySQL.

    Entramos en la consola de MySQL con el comando:

    # mysql

    Esto suponiendo que la BBDD no tenga contraseña, sino lo haríamos con el comando:

    # mysql -u usuario -p

    y se nos pedirá una contraseña para ingresar, usualmente el usuario será root. Una vez dentro creamos una BBDD que será la que utilizará Snort:

    mysql> CREATE DATABASE snort;

    y le asignamos una contraseña para entrar al servidor MySQL si no tenía una antes, lo que es especialmente recomendable:

    mysql> SET PASSWORD FOR root@localhost=PASSWORD('tu_contraseña_BBDD');

    aqui suponemos que el usuario de la BBDD es root. Salimos de la consola MySQL:

    mysql> exit;

    Ahora vamos a crear el esquema de la BBDD de Snort, que serán las tablas que se utilizarán para volcar sus alertas. Para ejecutar este paso es muy importante tener Snort compilado con soporte de MySQL, si habéis utilizado mis paquete snort el comando queda así:

    # mysql -u root -p < /usr/lib/snort-2.6.0.1/schemas/create_mysql snort se nos pedirá la contraseña que metimos anteriormente a la BBDD. Ya deberíamos tener la BBDD preparada, no obstante vamos a comprobarlo, para ello entramos en la consola MySQL y tecleamos las siguientes ordenes: mysql> use snort;
    mysql> show tables;

    la salida a la segunda orden debe ser la siguiente para comprobar que llevamos todo bien hecho hasta este paso:

    +-----------------------+

    | Tables_in_snort |

    +-----------------------+

    | data |

    | detail |

    | encoding |

    | event |

    | icmphdr |

    | iphdr |

    | opt |

    | reference |

    | reference_system |

    | schema |

    | sensor |

    | sig_class |

    | sig_reference |

    | signature |

    | tcphdr |

    | udphdr |

    +-----------------------+

    Instalación y configuración de BASE

    Base es la interfaz en PHP que con la cual nos relacionaremos para ver las alertas, eliminarlas, clasificarlas, etc. La descarga e instalación es muy sencilla e independiente de la distribución de Linux que usemos, apenas unos comandos que colocarán BASE en un lugar en el cual Apache2 pueda servirnoslo posteriormente:

    # cd /var/www/htdocs
    # wget http://belnet.dl.sourceforge.net/sourceforge/secureideas/base-1.2.6.tar.gz
    # tar zxvf base-1.2.6.tar.gz
    # mv base-1.2.6 base
    # rm base-1.2.6.tar.gz

    Una vez descargado pasamos a la configuración, esta se centrará en el fichero base_conf.php que debemos copiar de la plantilla que se nos proporciona:

    # cp /var/www/htdocs/base/base_conf.php.dist /var/www/htdocs/base/base_conf.php

    Procedemos a la configuración del fichero base_conf.php, yo utilizo el editor vi, pero podéis utilizar emacs, gvim o KWrite, mientras lo uséis con privilegios de root.
    Hay que dejar las lineas que os marco tal y como se puede ver a continuación ( las lineas no tienen porqué coincidir exacatmente, es una orientación relativa ):

    linea 44: $BASE_urlpath= '/base';
    linea 66: $DBlib_path = '/var/www/htdocs/base/adodb/';
    linea 87: $alert_dbname = 'snort';
    linea 90: $alert_user = 'root';
    linea 91: $alert_password = 'tu_contraseña_BBDD';

    guardamos el fichero y salimos. El siguiente paso a realizar es copiar las signaturas del Snort al directorio de BASE, estas signaturas son ficheros en texto plano con detalles sobre las alertas de Snort, que nos servirán como información para leer cuando salten dichas alertas, las copiamos a su destino adecuado con los siguientes comandos:

    # mkdir /var/www/htdocs/base/signatures
    # cp /usr/lib/snort-2.6.0.1/signatures /var/www/htdocs/base/signatures

    Ya tenemos BASE configurado, ahora tenemos que poner un método de autenticación, para que el acceso a BASE esté restringido a un usuario con contraseña. No have falta explicar lo peligroso que resulta no realizar este paso. Para ello creamos el fichero /var/www/htdocs/base/.htaccess y le ponemos este contenido:

    AuthName ?Base Access?
    AuthType Basic
    AuthUserFile /var/www/htdocs/base/htpasswd.users
    require valid-user

    Instalación de ADODB

    ADODB será un intermediario entre BASE y MySQL, su instalación es muy sencilla e independiente de la distribución de Linux que utilicemos, basta con escribir los siguientes comandos:

    cd /var/www/htdocs/base
    wget http://ovh.dl.sourceforge.net/sourceforge/adodb/adodb491.tgz
    tar zxvf adodb491.tgz
    rm adodb491.tgz

    Instalación de los modulos PEAR

    PEAR es un FrameWork de PHP el cual se nos instala junto con PHP5, a través de él vamos a instalar unos módulos de los que se servirá BASE para crear los gráficos de las alertas.
    El proceso es muy sencillo e independiente de la distribución de Linux que utilicemos, siempre y cuando nuestro PHP5 esté instalado correctamente e incluya PEAR, en Slackware así es. Los comandos son los siguientes:

    # cd /var/www/htdocs/base
    # wget http://pear.php.net/get/Image_Color-1.0.2.tgz
    # tar zxvf Image_Color-1.0.2.tgz
    # rm Image_Color-1.0.2.tgz
    # pear install Image_Color-1.0.2.tgz

    # wget http://pear.php.net/get/Image_Canvas-0.3.0.tgz
    # tar zxvf Image_Canvas-0.3.0.tgz
    # rm Image_Canvas-0.3.0.tgz
    # pear install Image_Canvas-0.3.0.tgz

    # wget http://pear.php.net/get/Image_Graph-0.7.tgz
    # tar zxvf Image_Graph-0.7.2.tgz
    # rm Image_Graph-0.7.2.tgz
    # pear install Image_Graph-0.7.2.tgz
    Configuración de Apache2

    Suponemos que hay un servidor http ejecutadosne en el sistema, sino lo instalamos con los binarios correspondientes. Para configurarlo paramos el servidor, en el caso de Slackware con el comando:

    # /etc/rc.d/rc.httpd stop

    Lo primero que vamos a hacer es terminar de configurar el acceso al portal de BASE, es decir configurar el acceso mediante contraseña, para ello ejecutamos los comandos:

    # mkdir /var/www/passwords
    # /usr/bin/htpasswd -c /var/www/passwords/passwords tu_usuario_portal_BASE

    con el segundo comando le estamos diciendo el usuario que tendrá acceso al portal, y tras ejecutarlo nos pedirá la contraseña para dicho usuario.
    Es recomendable que el servidor Apache2 no se ejecute como root, por ello deberíamos crear un usuario y un grupo específico para él, en algunas distribuciones la instalación de Apache crea un usuario y un grupo "apache", yo he utilizado el usuario y grupo "web":

    # groupadd web
    # useradd -g web web

    Procedemos a la configuración del servidor, todo se haze a través del fichero de configuración /etc/apache2/httpd.conf, añadiendo al fichero:

    Include /etc/apache2/mod_php.conf

    con ello habilitamos el soporte para PHP. Modificamos las lineas indicadadas ( las lineas no tienen porqué coincidir exacatmente, es una orientación relativa ):

    linea 309: User web
    linea 310: Group web

    con esto haremos que el servidor sea lanzado con los usuarios que creamos anteriormente, lo que constituye una medida de seguridad. Al final del fichero añadimos lo siguiente:


    AuthType Basic
    AuthName "Detector de Intrusos"
    AuthUserFile /var/www/passwords/passwords
    Require user tu_usuario_portal_BASE


    esto ya termina de configurar la autenticación y deja nuestro Apache2 listo para ser lanzado. Ejecutamos el servidor http:

    # /etc/rc.d/rc.httpd start

    Configuración web de BASE

    Ahora terminaremos de configurar via web el BASE, para ello ejecutamos nuestro navegador favorito y en la dirección le metemos la siguiente:

    http://localhost/base/base_main.php

    nos aparecera una imagen como la siguiente:


    lo cual indica que se ha terminado de definir la BBDD que utilizará Snort para volvar sus alertas. Ya tenemos listo el IDS, para acceder a él desde el propio PC se utiliza la dirección proporcionada antes, desde el exterior se utiliza la dirección del PC seguida de /base/base_main.php, se nos pedirá usuario y contraseña y ya tendremos la interfaz web BASE para interactuar con ella.

    Notas

    La utilización de BASE queda fuera del propósito de este manual. Es bastante sencillo lo que no lo es tanto es entender las alertas, aunque tenemos buena documentación en los enlaces que BASE nos proporciona y las signaturas de Snort.
    Levantar los servidores Apache2 y MySQL no ha sido el propósito de esta guia pero no debería ser excesivamente complicado, se supone que alguien que quiera montar un IDS debe tener ciertos conocimientos y hay abundante información sobre ello en la red.
    Repito que cualquier errata que encontréis podéis comunicarmela y así haremos de esta guía algo mejor para todos. Cualquier duda que tengáis al respecto os remito a mi Blog (http://meleagro.esp.cc) y a mi dirección de correo electrónico (dmedianero@gmail.com).

    Software necesario

    Snort 2.6.0.1 (http://snort.org/)
    PHP 5.1.4 (http://www.php.net/)
    MySQL 5.0.24 (http://www.mysql.com/)
    BASE 1.2.5 (http://secureideas.sourceforge.net/)
    Apache 2.0.58 (http://www.apache.org/)
    ADODB 491 (http://adodb.sourceforge.net/)
    PEAR (http://pear.php.net/)
    PCRE 6.7 (http://www.pcre.org/)

    Manual en .odt

    02 febrero 2007

    Instalar y configurar multifuncion brother dcp 115c

    Vamos por partes mejor, ojala fuera como el packete para las multifunciones hp, pero no se puede tener todo, al menos tenemos soporte en linux que siempre viene bien. El tema no es complicao pero si un poco pesao, haciendo lo que viene a continuacion no deberiais tener problemas, asi que cuanto antes empecemos antes acabamos.


    Para la impresora

    #Instalamos estos dos paquetes

    installpkg MFC210Clpr-1.0.2-1.i386.tgz
    installpkg cupswrapperMFC210C-1.0.0-1.i386.tgz

    #Puedes bajarlos de aqui:

    MFC210Clpr-1.0.2-1.i386.tgz
    cupswrapperMFC210C-1.0.0-1.i386.tgz

    #Despues

    #vamos a este directorio /etc/init.d/ si no está lo creamos y hacemos lo siguiente

    cd /etc
    mkdir init.d && cd init.d
    ln -s ../rc.d/rc.cups cups

    #despues vamos a este directorio y ejecutamos ese script

    cd /usr/local/Brother/cupswrapper/
    ./cupswrapperMCF210C-1.0.0

    #Si vas al asistente de impresoras verás que el cups ya ta configurado para el #modelo MFC210c que es el compatible con DCP-115c

    Para el scanner

    #Instalamos estos dos packetes

    installpkg brscan2-0.2.1-0.i386.tgz
    installpkg xsane-0.991-i486-1kjz.tgz

    #Puedes bajartelos de aqui:

    brscan2-0.2.1-0.i386.tgz
    xsane-0.991-i486-1kjz.tgz

    #Dependiendo del kernel que tengamos se añade una linea o la otra
    #Si es para kernel 2.4 para que el usuario puede acceder añadimos esto en la #consola para
    #Introducir esta line en el fstab:

    $ echo 'none /proc/bus/usb usbdevfs auto,devmode=0666 0 0' >> /etc/fstab

    #Si es para kernel 2.6 para que el usuario puede acceder añadimos esto en la #consola para
    #Introducir esta line en el fstab:

    $ echo 'none /proc/bus/usb usbfs auto,devmode=0666 0 0' >> /etc/fstab

    #Si lo haces a mano vas a /etc/fstab y añades estas lineas:

    #si es para kernel 2.4:

    none /proc/bus/usb usbdevfs auto,devmode=0666 0 0

    #Si es para kernel 2.6:

    none /proc/bus/usb usbfs auto,devmode=0666 0 0

    #Despues hacemos lo siguiente:

    $ umount /proc/bus/usb
    $ mount /proc/bus/usb
    $ mknod -m 666 /dev/usbscanner c 180 48

    #Lo siguiente es ir a la carpeta /etc/sane.d y vamos al archivo de configuracion #v4l.conf y lo dejamos de esta manera:

    #NOTA:si hay un archivo que se llama brother.conf lo borramos (esto no me hizo #falta hacerlo).

    #/dev/bttv0
    #/dev/video0
    #/dev/video1
    #/dev/video2
    #/dev/video3
    /dev/usb/lp0

    #despues de esto vamos a /etc/udev/rules.d

    #Y en el libsane.rules añadimos esto al final

    #brother
    SYSFS{idVendor}=="04f9",SYSFS{idProduct}=="018c", MODE="666",GROUP="scanner"

    LABEL="libsane_rules_end"

    #Despues de añadir esta line vamos a ejecutar brsaneconfig2 y ponemos lo #siguiente

    cd /usr/local/Brother/sane
    brsaneconfig2 -a name=SCANNER1 model=MFC-210C nodename=BRN_xxxxx

    #Luego ponemos

    brsaneconfig2 -d

    #y tendra que aparecer esto en la consola


    SCANNER1 MFC-210C BRN_xxxxx #informacion se guarda en brsanetdevice2.cfg

    #Despues ejecutamos este script

    /usr/local/Brother/sane/setupSaneScan2 -i

    #Y por ultimo ejecutamos xsane y ya nos deberia detectar el scanner y poder #scanear en entorno grafico.


    01 febrero 2007

    Control acceso con pendrive

    Hace tiempo nos planteamos añadirle un poco mas de seguridad al acceso en sistema Linux, y se nos ocurrió utilizar un pendrive.
    La ejecución al final se truncó y no llegamos a nada, y esta mañana me lo replanteé y ahi están los scripts.

    /etc/rc.d/usb.sh

    #!/bin/bash
    usb_on=`cat /proc/bus/usb/devices | grep "SerialNumber=5B6C1D8E497A"`
    ## ********************************** numero de serie de mi pendrive #
    ## Sustituir por el que convenga ##
    if [ ! -z "$usb_on" ] ; then
    exit 1;
    else
    exit 0;
    fi


    y añadimos al final de /etc/profile

    /etc/rc.d/usb.sh

    if [ $? == 1 ] ; then
    echo "Bienvenido"
    else
    echo "Inserte Pendrive para acceder al sistema"
    exit -1
    fi

    todo esto dando por supuesto que cada pendrive tiene un único numero de serie, ya ire perfeccionando el script y lo subire, que esto salio de 6 minutos de lucidez xD.

    un saludo