Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

ConkyWizard: Configura Conky de forma grafica.

Posted by Epsilon On agosto - 20 - 2010

Conky es considerado como un monitor  para nuestro , es decir, Conky nos permite tener una barra en nuestro escritorio con alguna informacion de nuestro , como hora y fecha, consumo de cpu y ram, temperatura del disco,  datos transmitidos y recibidos, entre muchos otras cosas, algo similar a los widgets en Windows.

La gran ventaja de conky consiste en que nosotros podemos crear neustros propios scripts, para poner en aquella barra del escritorio informacion personalizada que se util para nosotros como por ejemplo:

  • Correos nuevos.
  • Estado del tiempo.
  • Slideshow
  • Reproductor de musica
  • Entre otros.

Sin embargo, la desventaja de este monitor, radica en su configuracion, ya que esta  se realiza  por medio de codigo.  Aunque el codigo es bastante facil de entender (para alguien que conozca un poco de programacion) muchos usuarios no lo usaban por que no lograban configurar el monitor a su gusto.

Para solucionar este inconveniente nacio una interfaz grafica llamada ConkyWizard, la cual te ayuda de una forma muy intuitiva y sencilla a configurar tu conky. A continuacion  los pasos para instalar conky y el conkywizard.

Instalar Conky

Para instalar conky usamos el gestor de paquetes:

apt-get install conky

Con eso quedara instalado, si lo deseas lo puedesejecutar y en tu escritorio saldra una sidebar por defecto.

Instalar ConkyWizard

Descargamos las fuentes desde la pagina oficial del proyecto. Ahora descargamos el paquete que acabamos de descargar, y ejecutamos el binario.

tar xvf ConkyWizard_32bits_V1.0_Beta1.tar.gz
./ConkyWizard_32bits_V1.0_Beta1

conkywizard.th ConkyWizard: Configura Conky de forma grafica.

Este es el asistente que  te llevara en la configuracion de tu conky,  en cada apartado puedes ecoger las opciones que mas te gustan, hasta el final que el ejecutara el resultado de tu configuracion.

Aunque es una interfaz beta, es algo muy util y muy sencillo para todos nosotros los amantes de conky

Culmina la Campus Party Colombia edicion 2010

Posted by Epsilon On julio - 7 - 2010

Despues de 6 dias, 144 horas y 8640 minutos llenos de , conocimiento, innovacion y diversion, termina la Campus Party Colombia 2010. Para todos aquellos que tuvimos la suerte de asistir,  fue una experiencia unica donde hubo tiempo para todo, donde encontramos:

  • Reto forense
  • Retos de programacion
  • Concursos
  • Regalos
  • Fiesta
  • Conferencias
  • Mucho frio
  • Comodidad con los puff
  • Modding
  • Juegos
  • Y muchas cosas mas..

29062010047 Culmina la Campus Party Colombia edicion 2010

29062010051 Culmina la Campus Party Colombia edicion 2010

30062010060 Culmina la Campus Party Colombia edicion 2010

Para cualquer GEEK o amante de la esta semana fue un paraiso, por que siempre  en cada instante, habia algo diferente que conocer; algun gadget, nueva , juegos, y mucho conocimiento.  Ademas de esto, la Campus Party sirvio para  conocer nuevas personas, y reencontrarse con viejos amigos, los cuales solo se  pueden ver en algun evento de este tipo.  Muchas gracias a todos mis viejos y nuevos amigos, con los que tuve la oportunidad de vivir una experiencia como esta, compartir una semana llena de vivencias, risas y aprendizaje continuo.

Por ultimo quiero invitar a todos aquellos que no han tenido la oportunidad de asistir a una campus party, que empiecen a ahorrar desde ya, para asistir a la proxima,  y no se pierdan nuevamente el evento tecnologico mas grande del pais.

Y nuevamente empieza la cuenta regresiva 365 dias  para la CP2011.

Siguiendo con las entradas relacionadas con el gran lenguaje programacion llamado PYTHON , hoy quiero mostrar como con un sencillo y corto codigo de PYTHON podemos  descargar un archivo desde cualquier servidor FTP al cual tengamos acceso.  A continuacion un ejemplo.

#!/usr/bin/python
from ftplib import FTP
ftp = FTP(‘ip_servidor”);
ftp.login(user=’usuario, passwd=’password’)
ftp.cwd(“carpeta_donde_esta_el_archivo”);
ftp.retrbinary(‘RETR archivo.txt’,open(‘archiv.txt’,'wb’).write)
ftp.quit()

Como pueden ver es bastante sencillo, peor muy util cuando necesitamos descargar algun tipo de archivo o informacion, en el momento en que trabajamos con Python

Programa Cliente-Servidor en Python

Posted by Epsilon On abril - 14 - 2010

Navegando por la web me encuentro con este enlace, el cual contiene la informacion que estaba buscando  y quiero compartirla hoy con ustedes. Se trata de un   Cliente-Servidor desarrollado en Python. Para aquellas personas que no saben que es un cliente-servidor:

Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un operativo multiusuario distribuido a través de una red de computadoras.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo . Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Esta arquitectura la usamos todos los dias, por ejemplo, cuando navegamos  accedemos al servidor web desde nuestro cliente el cual es el navegador, independientemente de cual sea.

Ahora, desarrollar un de este tipo en Python es demasiado sencillo,  en esta ocasion mostrare el codigo del cliente.py   y servidor.py y cualquier persona con conocimientos basicos en programacion no tendra problemas en entenderlo y modificarlo a su gusto:

servidor.py

#+----------------------------------+
#| Server  TCP/IP                    |
#+----------------------------------+
 import socket
#Creo el  objeto socket
 s = socket.socket()

#Invoco  al metodo bind, pasando como parametro
#una tupla con IP y puerto
 s.bind(("localhost",  9999))

#Invoco  el metodo listen para escuchar conexiones
#con el numero maximo de  conexiones como parametro
 s.listen(1)

#El  metodo accept bloquea la ejecucion a la espera de conexiones
#accept  devuelve un objeto socket y una tupla Ip y puerto
 sc, addr = s.accept()
 print "Recibo conexion de " + str(addr[0]) + ":" + str(addr[1])

while  True:

#invoco  recv sobre el socket cliente, para recibir
#un maximo (segun parametro)  de 1024 bytes
 recibido = sc.recv(1024)
 if  recibido == "by":
 break
 print  "Recibido:", recibido

#Envio  la respuesta al socket cliente
 sc.send(recibido)

print  "adios"

#cierro  sockets cliente y servidor
 sc.close()
 s.close()

Cliente.py

#+----------------------------------+ #| Client TCP/IP                    | #+----------------------------------+ import socket s = socket.socket() #invoco el metodo connect del socket pasando como parametro la tupla IP , puerto s.connect(("localhost", 9999)) while True: mensaje = raw_input("Mensaje a enviar: ") #invoco el metodo send pasando como parametro el string ingresado por el usuario s.send(mensaje) if mensaje == "by": break print "adios" #cierro socket s.close()

Como pueden ver es algo muy sencillo de realizar y comprender, solo falta cambiar la direccion IP en el cliente, por la IP donde estara el servidor a la escucha.  Todo lo que se desee que realice el servidor cuando reciba el mensaje by tendra que ir dentro del if.

Espero que lo hayan entendido, a mi me servio mucho este ejemplo, y por eso quiero agradecer publicamente al autor de esta entrada por compartir  buenos conocimientos. Recuerden la identacion ya que es fundamental en Python.

Seguridad en transacciones de SAP

Posted by SpiderM@N On marzo - 26 - 2010

SAP logo 300x156 Seguridad en transacciones de SAP

“She was more like a beauty queen from a movie scene”

Tengo que aceptar que esta canción me recuerda a Campus Party, las pocas veces que la escucho lo hago pero en la versión acústica que tiene Chris Cornell.  Por lo mismo os la recomiendo.

Antes que nada debo disculparme enormemente con las personas que nos leen puesto que llevo mucho tiempo sin escribir en RinconInformatico.NET y sin querer he terminado por acostumbrado a no hacerlo, y eso es un grave error de mi parte.

Hoy quiero hablar un poco de mi trabajo.

SAP como todo (¿Gran?) de administración de empresas (ERP) maneja autorizaciones para los usuarios y esta es una buena parte de la seguridad como tal.  Como bien definida por la etimología de la palabra:

Autorización es la capacidad que se le otorga a un individuo para realizar una actividad.

Las autorizaciones en SAP se manejan por medio de ROLES y dentro de los roles encontramos los PERFILES, en estos perfiles de usuario se almacenan las AUTORIZACIONES y son estas las que configuramos por medio de OBJETOS de AUTORIZACION.

¿Claro?

Espero que sí.  Sin embargo y comenzando por lo pequeño… un objeto de autorización simplemente es un mecanismo usado para INSPECCIONAR los privilegios de un usuario para acceder a determinados datos o ejecutar determinados programas.

Es en los objetos de autorización donde se configuran las ACTIVIDADES permitidas a un usuario, para que modifique determinado campo o cambio una descripción:

Ejemplo 1:

El usuario A, desea cambiar la descripción de un material pues resulta que tiene un error gramatical, el objeto de autorización X controla las modificaciones sobre las descripciones en los textos de los materiales.  Por lo tanto el Usuario A debe tener a X en su ROL configurado de la manera adecuada para que le permita ejecutar el cambio.

¿Qué es un Rol?

El rol de un usuario es un contenedor de perfiles, y los perfiles a su vez (como antes lo indicábamos) son los que contienen a las autorizaciones, y estas son simplemente las configuraciones de los Objetos de autorización.  El Rol es lo que en las últimas versiones SAP a implementado con el fin de que la seguridad de accesos al R/3 de SAP pueda ser administrada por una persona sin grandes conocimientos ni experiencia en este tipo de Sistemas de información.

¿Un usuario puede tener varios Roles?

Completamente, de hecho es lo recomendado para las cosas más genéricas, por ejemplo el permiso para imprimir.

¿Un Rol puede tener varios Perfiles?

No, solo hay un rol por perfil.

Entonces ¿Puede haber varias autorizaciones en un perfil?

Afirmativo.  Cada vez que ingresamos un objeto de autorización en un rol o perfil este crea una nueva autorización, con la configuración que se le de al objeto de autorización.

¿Puede darse ese caso?

Todo el tiempo:

Ejemplo 2:

El mismo usuario A quien tiene permiso de modificar descripciones de textos en los materiales de la empresa, NO debe tener acceso de modificación al rango de materiales 100-200 porque estos son materiales para pruebas de calidad y no es necesario, pero si debe tener acceso a la visualización de estos materiales.  Este tipo de permisos son administrados por el objeto Y el cual tiene la posibilidad de configurar la creación, modificación y la visualización sobre los materiales.  Lo que hace un administrador de accesos es agregar DOS objetos, uno que permita la modificación de los rangos que si tiene acceso y otro donde permita la visualización de todos los materiales.

En este caso tendríamos un Rol, un perfil, pero dos autorizaciones y por lo tanto dos objetos de autorización, iguales; pero de diferente configuración.

¿Puede llegar a ser complicado?

Mi experiencia me dice que sí.  Pues las recomendaciones de “los que saben” siempre es que los roles deben configurarse de manera GENERICA, por si alguien más requiere de estos permisos.  Sin embargo YO personalmente NO comparto esta teoría, puesto que la mayoría de las veces que se requiere restringir un acceso implica tener que modificar estos roles genéricos (Y lo que conlleva con ello, bien sea quitando acceso a TODOS lo que tengan dicho ROL u otorgando mas de los necesario a las mismos que tengan dicho rol) y terminar creando roles particulares.  Resultando en lo mismo que crear Roles particulares desde el principio.

Finalmente, los programas estándar de SAP tienen definida las peticiones de información a los roles de los usuarios, a nivel programacional, es decir, en ABAP la sentencia que verifica las autorizaciones es:

Chequeo de Autorizaciones Seguridad en transacciones de SAP

Donde “Z_TCODE” es el nombre del objeto de autorización, ID es el campo que controla y FIELD es la actividad que permitida el usuario.

Esta es una explicación a groso modo y para que la entiendan las personas que no manejan SAP todos los días.  En un futuro si lo creo necesario podemos hablar de cómo se realizan las autorizaciones, es decir, un manual donde veamos paso por paso como asignar permisos en los usuarios de un R/3.  Por ahora no lo creo necesario, pero puede llegar el caso.

Así funciona la seguridad en los accesos de SAP, no es ni más ni menos.

Como hoy para mi persona es un día especial, quería compartir estos pensamientos de un personaje de película, en español es llamada como “Nada es para Siempre”, es la parte final de dicha Historia y dice así:

Claro, ya estoy muy viejo para pescar bien.

Casi siempre voy a pescar solo.  Aunque me dicen que no lo haga.

Pero a solas, en la media luz de la cañada…toda la existencia parece esfumarse y quedan mis recuerdos…y los rumores del río y el ritmo en compás de 4…y la esperanza de que muerdan.

A la larga todos los paisajes se funden…atravesados por un río.

El río se formó del gran diluvio…y corre sobre las piedras del tiempo.

Sobre algunas piedras, hay gotas eternas.

Bajo las piedras, están las palabras.

Y algunas de las palabras son suyas.

El río me consuela.

Artículo enteramente dedicado al Mejor de Todos Los Tiempos a mi Papá, a Don Germán.

QtCreator un Excelente IDE para C++

Posted by SpiderM@N On octubre - 2 - 2009

Quienes estamos aprendiendo a escribir Pequeños programas en C++ normalmente lo hacemos en editores de texto comunes y corrientes (nano, vi, gedit, kate o Bloc de Notas, WordPad, notepad ++) pero a medida que los proyectos se vuelven más grandes vamos teniendo más necesidades como por ejemplo que podamos compilar el desde donde lo estamos escribiendo y entonces ahí entran los IDE (Integrated development environmenet por sus siglas en ingles, en Español es algo como Ambiente de Desarrollo integrado).

Escribir programas en un IDE es algo “normal” pero la verdad es que tiene muchas ventajas:

  • Auto-Completar
  • Sugerencias
  • Marcado de palabras clave
  • Marcado de comienzao y terminación de terminadores
  • Depurador

Esta última es quizá la más grande las ventajas que ofrece un ambiente de desarrollo, la capacidad de hacer depuración del para así determinar (si está fallando) que parte debemos corregir o si estamos aprendiendo que valores toman las variables a medida que el va avanzando en su ejecución.

Instalación:

El (QtCreator) se descargar des la página de Nokia, el un archivo con extensión BIN así que tiene un asistente bastante sencillo de instalar:

QtCreator

Una vez se tenga instalado el hay que descargar las librerías de QT yo las descargue desde el siguiente enlace:

http://www.icewalkers.com/download/Qt/765-3202/old/

Una vez las tenemos en nuestro Disco Duro  simplemente instalamos con el ya clásico:

./configure

Make

Make install

¿Se demora?  Tristemente tengo que aceptarlo, si,  unas 3 horas después tendrás QT 4.5.1 instalado en tu maquina y QtCreator podrá funcionar con todas las opciones activas.

QtCreator install

Les recomiendo, si estan aprendiendo a programar con QT que lean la ayuda que trae este excelente software.

Descargar QtCreator.

Dive into Python 3

Posted by mirphak On septiembre - 18 - 2009

51n9hk7wglsl300 Dive into Python 3

Dive Into Python  (Inmersion en Python) es un libro escrito por Mark Pilgrim, dirigido a programadores  en otros lenguajes y por que no,  a los que  tienen poca experiencia en programacion  y quieren  aprender el idioma de la pitòn.

Es  “dificil” encontrar libros de Python que abarquen con profundidad los temas esenciales de este lenguaje de programacion, Inmersion en Python cumple a cabalidad  este requisito. El motivo de este post  es  presentarles la nueva version de este libro y dejarles los enlaces de versiones anteriores que han sido traducidas al español.


- Dive Into Python en español

- Descarga Dive Into Python 3 (ingles)

Segun la pagina oficial esta nueva version del libro cubre  las diferencias entre  la version 2 y 3 de Python, ademas de incluir un 80% de nuevo material.

Nice Python Networking Modules [Parte 1]

Posted by mirphak On junio - 4 - 2009

—¿Que sabes de este asunto?— pregunto el Rey a Alicia.
—Nada— dijo Alicia.
—¿Absolutamente nada?— insistio el Rey.
—Absolutamente nada— dijo Alicia.
—Esto es importante— dijo el Rey, volviendose hacia los jurados.

Lewis Carroll, Alicia en el pais de las maravillas.

Fragmentos como este me encontraba en cada capítulo del libro “Introducción a la Programacion en python” de la Universitat Jaume I, fue con el libro que primero me topé cuando quise saber de Python. Si me preguntan que pienso de Python, diria que tiene personalidad, es elegante, es de esos lenguajes que uno quisiera aprender a escribir. Y si me preguntan que sé de este asunto, como Alicia, respondería -Nada-.
Lo seguro, son las ganas que uno puede llegar a tener por dominar este lenguaje.

Scapy

Seguramente si se leen cosas como esta: “Scapy is a Python program that enables you to forge, dissect, emit or sniff network packets, probe, scan or attack networks.”, uno pensaria que es una herramienta que no se deberia dejar pasar por alto.

paquete en debian:  apt-get install python-scapy o  del sitio oficial   http://www.secdev.org/projects/scapy/

Impacket

Es una coleccion de clases que proporcionan acceso a los paquetes de red, permitiendo trabajar y decodificar dichos paquetes de una manera simple y consistente.

paquete en debian: apt-get install python-impacket  python-pcapy o  del sitio oficial  http://oss.coresecurity.com/projects/impacket.html

#!/usr/bin/env python
#[mirphak.j@gmail.com]
#
#
#
import sys
from impacket import smb
from scapy import sr,IP,TCP

class Scancan:

    def __init__(self, rango):
        self.rango= rango

    def scan(self):
        res, unans = sr (IP(dst=self.rango)/TCP(dport=139),timeout=3)

        if res:
            print "ok\n\n"

            for r,s in res:

                print "Carpetas Habilitadas para: %s"%r.dst

                try:
                    mrSmb= smb.SMB ('*SMBSERVER','%s'%r.dst)               
                    mrSmb.login('','')

                    for share in mrSmb.list_shared():
                        print "---| %s"%share.get_name()

                except:
                    print 'Acceso denegado'

        else:
            print "No contestaron."

if __name__ == "__main__":

    try:
        rang=sys.argv[1]
        scan= Scancan(rang)
        scan.scan()
    except:
       print "ej: python scan.py 192.168.2.0/24"

Mirando un poco el código:

Con lo anterior lo que hacemos es  “escanear” las máquinas de una red  por ejemplo  192.168.2.0/24,   buscando que tengan abierto el puerto 139, si es así , trata que crear una  sesion nula  y nos muestra el resultado.

- Scapy

res, unans = sr (IP(dst=self.rango)/TCP(dport=139),timeout=3) = Miramos si el puerto 139 esta open en la máquina actual, con un tiempo de respuesta de 3 segundos

- Impacket

mrSmb.login(”,”) = Sesiones Nulas 1 2

print “—| %s”%share.get_name() =  Nos muesta las carpetas, impresoras compartidas

Como dice el título,  la idea es  conocer  más detalladamente estas herramientas en próximas entradas, diferencias, bondades. etc.

Más implementaciones:

En RincónInformático ya se ha escrito sobre Scapy (Laboratorio DoS)

Aquí un artículo (Envenenamiento ARP) también con Scapy

Programacion del FLisol 2009 en la ciudad de Pereira

Posted by Epsilon On abril - 18 - 2009

Poco a poco se acerca la fecha  del Flisol 2009, en entradas anteriores hemos explicado en que consiste este festival,  la fecha del mismo y el lugar. Hoy se dio a conocer la programacion donde estan las charlas y los talleres  que se van a dictar ese dia, cabe resaltar que ademas de las charlas y talleres se estara haciendo de forma paralela una jornada de instalacion de GNU/Linux. Asi pues publico la programacion para que  se animen y nos acompañen,  y aprendan un poco  sobre el software libre.

9:00 a 9:30 A.M. Instalación Evento.
9:30 a 10:30 A.M. Propuesta didáctica para la enseñanza de la programación empleando robots Lego Mindstorms y software de código abierto. – Jairo Alberto Mendoza Vargas
10:30 a 11:30 “Blender como herramienta de Expresión” Primeros pasos en la Universidad Tecnológica de Pereira. – Jaime Romero Hernandez – Caludia Monsalve valencia
11:30 a 12:30 Charla Grupo GNU/Linux Universidad Católica Popular del Risaralda.

2:00 a 3:00 P.M. Software Libre y Voz IP – Jorge Iván León
3:00 a 4:00 P.M. “Blender Aplicado a la Animación” Demostración del uso de Blender en Cut-Out. – Jaime Romero Hernandez – Caludia Monsalve valencia.
4:00 a 6:00 P.M. Foro: Aplicación del Software Libre en la sociedad

Actualizacón 13:00

En la hermosa ciudad de Santiago de Cali tambien se han definido TODAS las charlas que se van a dar.  Como les decia en la anterior entrada, espero ver a muchos conocidos por la Universidad Libre de Colombia.

Link Conferencias Santiago de Cali.