PDF de programación - Sistema IDS/FW VACL

<<>>
Imágen de pdf Sistema IDS/FW VACL

Sistema IDS/FW VACLgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 22 de Noviembre del 2017)
387 visualizaciones desde el 22 de Noviembre del 2017
100,9 KB
8 paginas
Sistema IDS/FW VACL

Francisco JosØ Calvo FernÆndez

http://vacl.sourceforge.net

1. VACL

Historial de revisiones
Revisi(cid:243)n 1 - Requisitos previos

2. Introducci(cid:243)n

2.1. Requisitos previos

2.1.1. Librer(cid:237)a QT4
El sistema necesita para trabajar la librer(cid:237)a QT en su versi(cid:243)n 4. en estos momentos s(cid:243)lo estÆ disponible el
segundo adelanto tecnol(cid:243)gico preAlpha, que se puede descargar desde el FTP o(cid:2)cial de Trolltech,
ftp://ftp.trolltech.com/qt/source.
Para descargarlo podemos utilizar la herramienta wget que encontramos en
http://www.gnu.org/software/wget/wget.html:

wget ftp://ftp.trolltech.com/qt/source/qt-x11-preview-4.0.0-tp2.tar.bz2.

Tras proceder con su descarga se ha de realizar la extracci(cid:243)n del c(cid:243)digo fuente para su posterior
reconstrucci(cid:243)n:

tar xvfj qt-x11-preview-4.0.0-tp2.tar.bz2

Seguidamente es necesario realizar un enlace simb(cid:243)lico o renombrar el directorio
qt-x11-preview-4.0.0-tp21 a qt:

ln -s qt-x11-preview-4.0.0-tp2 qt

Es necesario, a continuaci(cid:243)n, (cid:2)jar ciertas variables de entorno, sobre todo es vital (cid:2)jar QTDIR, PATH y
LD_LIBRARY_PATH, para poder hacer referencia a las librer(cid:237)as dinÆmicas.

export QTDIR=$PWD/qt

1

Sistema IDS/FW VACLFrancisco JosØ Calvo FernÆndez http://vacl.sourceforge.net

export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

El paso siguiente pasa por entrar en el directorio qt y (cid:2)jar ciertas opciones de con(cid:2)guraci(cid:243)n mediante la
herramienta con(cid:2)gure, en nuestro caso hemos desactivado el soporte antialising ya que generaba un error
de compilaci(cid:243)n y le hemos especi(cid:2)cado que las librer(cid:237)as dinÆmicas estÆn en el subdirectorio lib dentro
del Ærbol de fuentes (esto parece ser un bug actual)2:

cd qt
./configure -no-xft -libdir ./lib/

Tras ello, compilamos, tendremos ejemplos y demos en los subdirectorios demos y examples.

make

2.1.2. DBUS
VACL utilizarÆ el nuevo sistema de comunicaci(cid:243)n DBUS de Freedesktop, para instalarlo hemos de
descargarlo desde http://www.freedesktop.org/Software/dbus, en estos momentos la œltima versi(cid:243)n
estable es la 0.22.
El motivo por el cual se ha optado por DBUS en lugar del DCOP de KDE es que parece ser que en un
futuro pr(cid:243)ximo, KDE 4 abandonarÆ DCOP y pasarÆ a utilizar DBUS.
Los pasos a seguir para su correcta instalaci(cid:243)n consisten, en un primer lugar en descargar su c(cid:243)digo
fuente:

wget http://www.freedesktop.org/software/dbus/releases/dbus-0.22.tar.gz

Extraemos su c(cid:243)digo:

tar xvfz dbus-0.22.tar.gz

Entramos en el directorio creado y procedemos a su compilaci(cid:243)n y posterior instalaci(cid:243)n:

cd dbus-0.22
./configure
make
make install

En caso de existir algœn paquete para su distribuci(cid:243)n es muy recomendable su utilizaci(cid:243)n; en nuestro
caso, bajo Gentoo ha sido su(cid:2)ciente con ejecutar:

emerge dbus

La instalaci(cid:243)n ha creado un usuario y grupo con la siguiente con(cid:2)guraci(cid:243)n:

2

Sistema IDS/FW VACLFrancisco JosØ Calvo FernÆndez http://vacl.sourceforge.net

* Adding group ’messagebus’ to your system ...
* - Groupid: next available
* Adding user ’messagebus’ to your system ...
* - Userid: 102
* - Shell: /bin/false
* - Home: /dev/null
* - Groups: messagebus

TambiØn se aæade un script al rc.d, con lo que para activar DBUS es su(cid:2)ciente con ejecutar:

/etc/init.d/dbus start

2.1.3. QtDBUS
Ya que VACL se encuentra programado en QT, es necesario el interfaz DBUS para QT, que podemos
encontrar de momento en http://trolls.troll.no/~harald/dbus, en las versiones estables de QT 4 se espera
totalmente estØ totalmente integrado.
Lo primero es la descarga del c(cid:243)digo fuente de la interfaz:

wget http://trolls.troll.no/~harald/dbus/qdbus-20040923.tar.gz

Tras ello, extraemos el Ærbol de fuentes.

tar xvfz qdbus-20040923.tar.gz

Antes de compilar hemos de asegurarnos de que tenemos correctamente con(cid:2)guradas las variables de
entorno anteriormente comentadas, sobre todo, y para que no causemos desastres QTDIR ha de apuntar a
las QT4, los comandos siguientes nos darÆn la respuesta:

echo $QTDIR
echo $LD_LIBRARY_PATH
echo $PATH

Si todo estÆ bien, entramos en el directorio creado y ejecutamos qmake, el cual no ha de generar ninguna
salida por la consola:

cd qdbus
qmake

Procederemos a compilar con la clÆsica make

make

Si obtenemos un mensaje parecido a:

3

Sistema IDS/FW VACLFrancisco JosØ Calvo FernÆndez http://vacl.sourceforge.net

ld: no se puede encontrar -lQtCore_debug collect2: ld devolvi(cid:243) el estado de salida 1

quiere decir que QT no ha sido compilada con las opciones de depuraci(cid:243)n, simplemente hemos de editar
el (cid:2)chero Make(cid:2)le de qdbus y reemplazar la l(cid:237)nea:

LIBS = $(SUBLIBS) -L$(QTDIR)/lib -ldbus-1 -lQtCore_debug -lQtNetwork_debug -lpthread

por

LIBS = $(SUBLIBS) -L$(QTDIR)/lib -ldbus-1 -lQtCore -lQtNetwork -lpthread

desactivando las opciones de depuraci(cid:243)n de esta forma. Otra alternativa pasa por editar el (cid:2)chero
dbdus.pro y cambiar la l(cid:237)nea:

CONFIG += debug

por

CONFIG +=

Podemos instalar con:

make install

La anterior instrucci(cid:243)n copiarÆ las librer(cid:237)as y (cid:2)cheros de cabecera a la ruta donde tengamos las QT4
((cid:2)jada por la variable de entorno $QTDIR), tal y como se muestra en el anexo.

2.2. Primeras pruebas
Con todo instalado, es la hora de comenzar, lo primero pasa por lanzar una sesi(cid:243)n de DBUS, para ello, el
usuario ha de lanzar dbus-launch, el cual retorna el ID y las caracter(cid:237)sticas de la conexi(cid:243)n:

dbus-launch
DBUS_SESSION_BUS_ADDRESS=’unix:abstract=/tmp/dbus-1wfJ51eu6w’
DBUS_SESSION_BUS_PID=24208

Ambos valores hemos de exportarlos como variables de entorno para que todo pueda funcionar:

export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-1wfJ51eu6w
export DBUS_SESSION_BUS_PID=24208

Para simpli(cid:2)car la tarea podremos realizar lo siguiente:

eval ‘dbus-launch‘

4

Sistema IDS/FW VACLFrancisco JosØ Calvo FernÆndez http://vacl.sourceforge.net

Si no tenemos permiso para arrancar una sesi(cid:243)n propia, podemos utilizar la sesi(cid:243)n del sistema, en nuestro
caso:

export DBUS_SESSION_BUS_ADDRESS=unix:path=/var/lib/dbus/system_bus_socket
export DBUS_SESSION_BUS_PID=26255 (el PID lo podemos extraer desde /var/run/dbus.pid)

El siguiente c(cid:243)digo es la base para poder conectar a DBUS desde QT4:

#include <QtCore>
#include <QtDBUS/qdbus.h>
int main(int argc, char *argv[])
{

QCoreApplication app(argc, argv);
QDBusConnection dbc = QDBusConnection::addConnection(QDBusConnection::SessionBus);

if (!dbc.isConnected()) {

qDebug() << "No puedo conectar a D-BUS:" << dbc.lastError();
printf ("No puedo conectar a D-BUS\n");

return 1;

}
return app.exec();

}

Para poder compilarlo hemos de ejecutar en el directorio donde se encuentre:

qmake -project
qmake

No es su(cid:2)ciente, ya que no lincarÆ con QtDbus, para ello hemos de abrir el Make(cid:2)le que se genera y en la
l(cid:237)nea siguiente hemos de aæadir -lqdbus tal y como se muestra:

LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lqdbus -lQtCore -lQtGui -lpthread

Podemos probar a mandar mensajes mediante:

dbus-send --system /org/kde/ping org.kde.ping int32:45

y verlos con

dbus-monitor --system

5

Sistema IDS/FW VACLFrancisco JosØ Calvo FernÆndez http://vacl.sourceforge.net

3. VACL

Sistema DBUS/DCOP
Arquitectura multihilo

.1. Ficheros del servidor

1. main.cpp

Se instancia la aplicaci(cid:243)n QT, se generan los hilos de anÆlisis y si fuera necesario se crea la ventana
principal

2. netlink/netlink.cpp

Este (cid:2)chero contiene el c(cid:243)digo necesario para analizar los datagramas mediante NETLINK/IPT.
Este c(cid:243)digo se ejecuta en un hilo (Thread). Desde aqu(cid:237) cada vez que se detecta un datagrama se
genera una retrollamada a un procedimiento de(cid:2)nido en la clase avisoUsuario.

3. ui/avisoUsuario.cpp

Contiene las implementaciones de las retrollamadas anteriores, que bien pueden generar
directamente mensajes de aviso al usuario o comunicar v(cid:237)a DBUS con otro sistema encargado de
ello (aœn no de(cid:2)nido). QuizÆs este c(cid:243)digo haya que desplazarlo a otra clase.

4. ui/Servidor.cpp

Contiene la implementaci(cid:243)n de la ventana principal de la aplicaci(cid:243)n.

4. Anexos

4.1. Lista de (cid:2)cheros instalados por DBUS

/var/
--- /var/lib/
>>> /var/lib/dbus/
>>> /var/lib/dbus/.keep
--- /var/lib/run/
>>> /var/lib/run/dbus/
--- /etc/
--- /etc/init.d/
>>> /etc/init.d/dbus
>>> /etc/dbus-1/
>>> /etc/dbus-1/system.d/
>>> /etc/dbus-1/system.conf
>>> /etc/dbus-1/session.conf

6

Sistema IDS/FW VACLFrancisco JosØ Calvo FernÆndez http://vacl.sourceforge.net

--- /usr/
--- /usr/share/
--- /usr/share/doc/
>>> /usr/share/doc/dbus-0.22-r1/
>>> /usr/share/doc/dbus-0.22-r1/dbus-tutorial.html.gz
>>> /usr/share/doc/dbus-0.22-r1/dbus-test-plan.html.gz
>>> /usr/share/doc/dbus-0.22-r1/dbus-specification.html.gz
>>> /usr/share/doc/dbus-0.22-r1/TODO.gz
>>> /usr/share/doc/dbus-0.22-r1/README.gz
>>> /usr/share/doc/dbus-0.22-r1/NEWS.gz
>>> /usr/share/doc/dbus-0.22-r1/HACKING.gz
>>> /usr/share/doc/dbus-0.22-r1/ChangeLog.gz
>>> /usr/share/doc/dbus-0.22-r1/AUTHORS.gz
--- /usr/share/man/
--- /usr/share/man/man1/
>>> /usr/share/man/man1/dbus-daemon-1.1.gz
>>> /usr/share/man/man1/dbus-send.1.gz
>>> /usr/share/man/man1/dbus-monitor.1.gz
>>> /usr/share/man/man1/dbus-launch.1.gz
>>> /usr/share/man/man1/dbus-cleanup-sockets.1.gz
--- /usr/bin/
>>> /usr/bin/dbus-daemon-1
>>> /usr/bin/dbus-glib-tool
>>> /usr/bin/dbus-send
>>> /usr/bin/dbus-monitor
>>> /usr/bin/dbus-launch
>>> /usr/bin/dbus-cleanup-sockets
>>> /usr/bin/dbus-viewer
--- /usr/include/
>>> /usr/include/dbus-1.0/
>>> /usr/include/dbus-1.0/dbus/
>>> /usr/include/dbus-1.0/dbus/dbus-glib-error-enum.h
>>> /usr/include/dbus-1.0/dbus/dbus-glib-lowlevel.h
>>> /usr/include/dbus-1.0/dbus/dbus-glib.h
>>
  • Links de descarga
http://lwp-l.com/pdf7634

Comentarios de: Sistema IDS/FW VACL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad