Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

jueves, 16 de junio de 2011

Llamadas a procedimientos remotos (RPC)

Algunas veces no puede interesar ejecutar programas o procesos de forma remota en un servidor. Para poder hacer esto existe RPC.

Funcionamiento:

Una llamada RPC es inicializada por el cliente, quien manda una petición a un servidor remoto para que ejecute el procedimiento especificado con sus respectivos parámetros. El servidor remoto manda una respuesta al cliente y la aplicación continua su ejecución. Mientras el servidor ejecuta el procedimiento el cliente se bloquea hasta que el servidor termina y le avisa.

Hay muchas variaciones y sutiliesas en las distintas implementaciones de RPC, lo que hace que haya incompatibilidades entre ellos.

Una diferencia importante entre llamadas remotas y llamadas locales es que las primeras pueden fallar por problemas de conexión en la red. Estas llamadas deben lidiar con estas fallas sin saber a si realmente el procedimiento fue invocado. Es por esto que el código de estos procedimientos debe estar escrito en un lenguaje de bajo nivel.

El comando rpcinfo

Este programa da información de los programas RPC que tiene habilitado un servidor.

$rpcinfo -p

da información de la máquina local

$rpcinfo -p host

Da información del servidor host

Muestra información de todas las máquinas en la red local que están corriendo el servicio de Yellow Pages:

$rpcinfo -b ypserv 'version' | uniq

Donde 'version' es la versión actual de Yellow Pages obtenida de los resultados anteriores.

domingo, 12 de junio de 2011

Monitoreo de visitas con Apache


Esta vez vamos a utilizar un programa para analizar de forma fácil y rápida los logs de Apache para ver cuantos usuarios se han conectado a nuestro servidor Web. utilizaremos la interfaz web que provee el mismo programa. Esta aplicación se llama visitors y esta en los repositorios de Debian y Ubuntu.

Más información en:http://packages.debian.org/unstable/web/visitors

Instalémoslo

$ aptitude -y install visitors graphviz

$ mkdir /var/www/visitors

Editemos el archivo /etc/apache2/sites-available/default
añadiendo lo siguiente:
# Para configuración de visitors


Order Deny,Allow
Deny from all
Allow from localhost
Allow from 192.168.1.0/24 #Para permitir acceso al log en todo el segmento 1 de mi red local.
# IP address you allow


Cámbialo por las direcciones que necesites.

Reiniciemos apache: /etc/init.d/apache2 restart

Usos!

Generemos el reporte:

$ visitors -A /var/log/apache2/access.log -o html > /var/www/visitors/index.html

Generar reporte de páginas visitadas

$ visitors -A -m 30 /var/log/apache2/access.log -o html --trails --prefix http://TUSERVIDOR > /var/www/visitors/trails.html

Generar gráfica de páginas visitadas

$ visitors /var/log/apache2/access.log --prefix http://TUSERVIDOR -V > /var/www/visitors/graph.dot

Utiliza el programa graphviz
$ dot -Tpng /var/www/visitors/graph.dot > /var/www/visitors/graph.png

¿Qué routers visitamos antes de conectarnos con un servidor?

La internet es una red hipercompleja por donde pasa todo tipo de información. Para conectarnos a un servidor particular (e.g www.duckduckgo.com) nuestros paquetes viajan por varias máquinas que van encaminando estos paquetes por la red hasta llegar al destino requerido. Para saber por donde va pasando esta información, se puede utilizar el comando traceroute.

Este comando esta en los repositorios de Debian y Ubuntu. Para más información visita: http://traceroute.sourceforge.net/

Una vez instalado su utilización es muy fácil.
Aquí les muestro la salida del comando haciendo una consulta para el servidor www.gmail.com

traceroute to www.gmail.com (74.125.224.214), 30 hops max, 60 byte packets
1 home (192.168.1.254) 4.878 ms 5.503 ms 5.775 ms
2 dsl-servicio-l200.uninet.net.mx (200.38.193.226) 19.806 ms 22.386 ms 27.846 ms
3 reg-mex-roma-13-ge2-0-0.uninet.net.mx (201.125.67.188) 29.120 ms 31.808 ms 32.177 ms
4 bb-la-onewilshire-10-pos0-4-2-0.uninet.net.mx (201.154.119.230) 68.827 ms 72.369 ms 72.704 ms
5 * * *
6 * 64.233.174.41 (64.233.174.41) 63.324 ms 51.401 ms
7 72.14.236.13 (72.14.236.13) 53.271 ms 55.641 ms 57.164 ms
8 74.125.224.214 (74.125.224.214) 59.162 ms 62.871 ms 63.266 ms

Con este comando nos podemos dar cuenta de posibles ataques de de suplantación de identidad.