Hola: >> Es obvio (Res. 127/2007 del MIC Art. 83 inc. b) que necesito mantener >> los logs de las conexiones al menos por un año. Para resolver esto, hice >> un script en Python que se loguea en el servidor y le pregunta por los >> usuarios, cada 1 minuto, y mantiene un registro de las conexiones. El >> problema es que esos logs tengo que procesarlos de nuevo, para >> determinar los inicios y fin de conexiones, lo cual me parece muy "de >> indios". Creo que el servicio finger permitia precisamente eso, mostrar los usuarios logueados en el sistema. De esta manera, habilitando ese servicio, solo tenias que accederlo, no tenias que loguearte por telnet. Lamentablemente, ese servicio ha tenido problemas de seguridad por lo que no se aconseja su activacion. Si decidieras utilizarlo, a traves de reglas de acceso, pudieras activarlo, permitiendo que solo fuera accesible desde la direccion IP donde esta el host que recolecta dicha informacion. Es solo una variante mas. En cuanto a determinar el inicio y fin de conexion, no es que sea "de indios", sino la forma en que trabaja. Todos los servicios funcionan igual, generan trazas de eventos, queda por parte del usuario interpretar esos eventos. Un servidor web no te dice cuanto tiempo estuvo un usuario conectado al sitio, solo te dice, uno por uno, cada url que solicito. Un servidor de correo te genera una traza por cada transaccion que realiza, y no necesariamente mantiene el mismo process id durante todo el proceso para un mail determinado. En el caso que tienes a mano, por un lado, guarda las trazas tal cual son generadas, un reporte, es solo eso, un reporte que contiene un nivel de subjetividad (acorde a los objetivos que perseguia el reporte). Para la parte de reportes, estudia la parte de tacacs. Esos routers soportan tacacs (creo recordar). El tacacs era una version "mejorada" de radius. Tenia tres componentes, AAA: autentificacion, autorizacion y contabilidad (authentication, authorization, accountability). En realidad, a ti te convendria utilizar la ultima parte ;)
>> Como ese router es tan viejo, no soporta SSH, por tanto, solo podía >> loguearme por telnet desde la interfaz Ethernet, lo cual es una >> barrabasada a estas alturas. compadre, esos routers tienen una bola de años y miralos ahi funcionando. no es que sea una barrabasada (utilizar telnet hoy en dia lo es, en eso estamos de acuerdo ;), es que el fabricante asume que para estas alturas, ya tendrias funcionando un router con ssh. jajajaja, es que todavia recuerdo cuando salio la serie 2500 y lo bueeeno que eran en ese momento XD >> Anteayer logré configurar la conexión por el puerto serie del server con >> Debian Etch con la consola del Cisco, pero me falta modificar el script >> para que no vaya a hacer telnet por la interfaz Ethernet, sino por el >> puerto serie. en efecto, esa es la variante que utilizaba siempre. me conectaba por ssh a un linux y de ahi, con el minicom le tiraba al router. modificar el script seria cambiar el tty no? ttyS0 supongo (ttySx son las seriales no?) >> Antes de meterme en eso, mi pregunta es: ¿Hay alguna forma natural desde >> Debian Etch de preguntarle al Cisco 2509 por las conexiones telefónicas >> que tiene activas, que no sea con este método primitivo? ¿Serviría para >> este fin SNMP? en principio finger seria la respuesta a tu primera pregunta, pero tal como te aclaraba, finger es el metodo mas primitivo de todos. respecto a snmp, si, no lo he hecho, pero si. Con snmp puedes monitorear absolutamente todo, el truco esta en encontrar cual es el parametro a monitorear. >> Por favor, no me remitan a ningún programa propietario. Antes de usar >> alguno, prefiero programarlo todo en Python con mis propias manos. En realidad no conozco programas propietarios, nunca he visto uno en cuba (son tan caros que nadie los tiene). Pero si hay mucho script hecho para administrar/monitorear routers (cisco u otros) liberados como software libre. Perl tiene buena cantidad de modulos y python supongo que tenga algunos tambien. > Los router de Cisco con sistema de IOS son capaces de hacer un log de > sus actividades hacia una máquina que corre un demonio syslogd; son > pocas líneas de configuración como: > > logging trap debugging > logging facility local2 > logging 10.10.10.1 > > en que el IP 10.10.10.1 es él de una máquina que corre syslogd. Allá lo > puedes dirigir a ficheros para hacer análisis (con Python :-)) o mantenerlos. La respuesta de matthias es la que mas sentido tiene. Si bien, con snmp pudieras obtener dicha informacion, vas a tener que salvar las trazas un año y esto ya te ayuda. Solo le agregaria que debes configurar el syslogd en el linux para que acepte las trazas de otro host (el cisco) pues de manera predeterminada no lo hacen. De hecho, una solucion mixta pudiera funcionarte. Utilizar el syslogd (syslogd-ng, cualquiera) para almacenar las trazas (y hacerles backup, no vas a querer que si algo le pasa al server, pierdas las trazas no? ;). Y armar un script que por snmp consulte los usuarios activos cada x minutos y se encargue de llevar el registro del tiempo conectado de los usuarios. No se si el snmp te brinde la fecha de conexion del usuario (pudiera). Si no, tienes otra opcion. Puedes abrir con un script el fichero de trazas y monitorearlo en tiempo real. De ahi entonces tomas los eventos de login/logout y procesarlos en tiempo real. Saludos Osvaldo _______________________________________________ Cancelar suscripción https://listas.softwarelibre.cu/mailman/listinfo/linux-l Buscar en el archivo http://listas.softwarelibre.cu/buscar/linux-l
