1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Interesante

  • Instalar Debian COMO Este documento fue escrito con el propósito de facilitar la instalación del sistema operativo Debian GNU/Linux 3.0 por medio de CD en la plataforma i386, es decir, las llamadas PCs........

  • Cómo configurar BIND

    BIND es el servidor de nombres de dominio más popular en Internet, que trabaja en todas las plataformas informáticas principales y se caracteriza por su flexibilidad y seguridad. A continuación se puede encontrar tanto la teoría general de los servicios de DNS, como una explicación detallada de los campos y opciones de la configuración de BIND, ejemplos, opciones de seguridad, herramientas de verificación, ligas de información adicional y otras más.

     

  • Cómo montar una red wireless con Linux

    Redes Wireless con Linux

    Las redes Wireless 802.11b, de 11 Mbps están convirtiéndose en una opción muy válida y popular en los últimos meses. Además que los precios han bajado notablemente, dan una enorme comodidad si tenemos varios ordenadores en casa y el soporte que hay en Linux es muy potente y variado.

  • Cómo autentificar Squid contra OpenLDAP
    Autenticando Squid contra OpenLDAP

    Dado que últimamente se esta poniendo de moda hacer uso de un Servidor de Directorios LDAP, para unificar la autenticación de varios servicios en un sistema Linux, vamos a ver una manera (no es la única, pero si la que a mi me ha funcionado) de autenticar el proxy Squid, contra OpenLDAP. Evidentemente, antes de nada, instalaremos nuestro Servicio de Directorios y migraremos los usuarios de nuestro sistema.



  • Cómo instalar Linux

    Introducción

    Uno de los puntos más importantes para instalar Linux es tener listo nuestro disco duro. Parece un tanto raro el comentario pero ciertamente es donde más de un usuario se pierde, especialmente cuando tienen que particionar y cosas así, por lo que lo explicaremos brevemente.

    Dado que actualmente la mayoría de las PC llegan con Windows preinstalado (¿dije la mayoría?, más bien todas), los usuarios no se preocupan por mucho más que sólo prenderla y cuando llega el caso, reinstalar con un CD, pero cuando tiene que hacer que el disco duro contenga otro sistema operativo (incluso otra versión de Windows), necesitar partir (particionar) el disco duro. Y aquí empezamos con los problemas.

    Aquellos afortunados que tengan la posibilidad de adquirir otro disco duro para instalar Linux, pues adelante y se ahorrarán todo lo relativo a particionamiento de este tutorial, pero en caso contrario, pues continuamos.

    Un disco duro se divide, físicamente, en cilindros y cada uno de estos se divide en sectores, regularmente de 512 bytes y es en este espacio donde la información es grabada. En el momento que indicamos que un disco se divida en varias unidades, realizamos el proceso llamado particionamiento, en el que se le asigna un espacio especifico a cada partición.

    Verifiquemos nuestro hardware

    Un elemento que regularmente los usuarios novatos pasan por alto es el relativo a verificar la compatibilidad/estado de su hardware, lo que puede traer como consecuencia que el sistema no quede bien instalado, sea inestable o de plano nos mande por un tubo el instalador, por lo que debemos verificar los siguientes puntos:

    • Revisar que nuestro hardware esté soportado por la distribución que vamos a utilizar.
    • Revisar que funcionen correctamente las tarjetas (red, sonido, módem).
    • Revisar que el disco duro no tenga sectores dañados (debe ejecutarse el scandisk).
    • Si se manifiestan problemas con Windows (lo que no es raro), como que se congele la máquina o no termine de encender, recomendamos enviarla antes a un servicio técnico para que se le revise la tarjeta madre o el estado del RAM.

    Las revisiones de compatibilidad de hardware las pueden buscar en:

                          

                       
                         
                                                                                                             
    Para otras distribuciones deberán revisar la página Web del proveedor.

    En los casos de hardware desconocido o no compatible (caso clásico son los winmodem y softmodem) o que tengamos dañada alguna tarjeta, lo más recomendable es adquirir uno nuevo. Para el caso concreto de los módem, casi cualquiera externo por hardware funciona.

    Para los que no sepan el porque, Linux no soporta ciertos dispositivos y tarjetas debido a que los controladores los hacen los mismos miembros de la comunidad GNU/Linux y esto es posible sólo cuando el fabricante libera las especificaciones de sus componentes, por eso siempre hay un un cierto período entre que un nuevo dispositivo es lanzado y que lo soporte este SO; caso contrario con Windows/Macintosh, ya que los fabricantes mismos son quienes desarrollan y prueban los controladores. El caso de los módem por software (winmodem/softmodem) es especial, ya que diversas funciones que debería manejar el hardware se le relega a que las maneje Windows directamente, lo que es una ventaja para los fabricantes al ser muy baratos de producir, peor que imposibilita su uso fuera del SO de las ventanas.

    Una revisión previa es importante, ya que es frecuente que un usuario incauto simplemente no pueda configurar su módem, tarjeta de red o de sonido y le eche la culpa al sistema operativo, o peor aún cuando un hardware dañado truene la instalación, lo que los lleva a decir "Linux no sirve". El caso es sencillo, son los componentes, no el software. Si aparentemente todo está bien, pues continuamos.

    Antes que nada, respaldamos

    A menos a que seamos masoquistas, hayamos enloquecido o nos caiga mal el propietario de la información, es kamikaze (viento divino o irse de cabeza al barranco, como lo quieran traducir) no respaldar la información del disco duro; por lo que pueden utilizar un quemador de CD's, una unidad de Zip o Jaz o una unidad de red, también pueden utilizar alguna herramienta para generar una imagen de su disco, como:

                                  
                              

                            

    ¿Para que particionamos?

    Los motivos para particionar son varios e incluso es aconsejable aún cuando no se vaya a instalar otro sistema operativo, porque:

    • Especifica partes donde se guarda la información y donde se guardan los programas, de manera que si se corrompe una unidad, no se pierde todo. Útil también con muchos virus que atacan la unidad C de una PC.
    • Mejora el desempeño del disco duro, al tener que leer sectores más pequeños de disco duro y no toda la unidad.
    • Limita el tamaño al que pueden crecer los directorios de diversos usuarios (en ambientes de redes), para evitar que saturen el disco duro y el sistema operativo ya no pueda operar.

    ¿Con que particionamos?

    Desde DOS podemos utilizar una muy confiable pero limitada herramienta llamada >fdisk, la cual puede eliminar y crear nuevas particiones, sin embargo el contenido del disco duro se pierde y no hay manera de recuperarlo. Para activarlo simplemente es necesario, desde el prompt de DOS, teclear fdisk, eliminar todas las particiones existentes y luego crear las nuevas, después de salir de fdisk debemos dar formato las unidades ya que se pierde absolutamente todo. Nota: esta herramienta no puede funcionar desde Windows, es necesario iniciar una sesión de DOS para ello.

    Para particionar mediante fdisk pueden apoyarse en el conocido manual disponible en el sitio del proyecto Linuxdoc: http://www.linuxdoc.org/HOWTO/mini/Partition/partition-5.html.

    Se pueden recuperar particiones creadas con fdisk, pero será mejor ser cuidadoso y leer antes el siguiente manual para soporte: http://www.linuxdoc.org/HOWTO/mini/Partition/recovering.html.

    Otras opciones para crear particiones son:

                

    ¿Cómo divido mi disco duro?

    El tamaño de las particiones dependen del tamaño del disco es lógico que mientras más grande es éste, más espacio puedes dejar a Windows por un lado y Linux por el otro, pero...

    Cuidado. Un aspecto muy importante es el hecho que muchos BIOS, incluyendo los de algunas computadoras nuevas (contra lo que dicen los fabricantes), no pueden iniciar un sistema operativo que se encuentre después del cilindro 1024 (aproximadamente 7,168 MB), por lo que al determinar el tamaño debemos cuidar donde colocaremos la partición de Linux.

    En principio, a cada sistema operativo hay que dejarle el espacio suficiente para que trabajo, lo cual es variable, por ejemplo, Windows 95 ó 98 pueden funcionar dentro de particiones de 3 GB, con espacio para nuestras aplicaciones y archivos, pero Windows 2000 necesita de al menos 8 GB para trabajar bien como estación de trabajo (como servidor es mucho más); Red Hat necesita al menos de 600 MB para una instalación mínima, pero yo en lo personal dejo entre 2 y 3 GB sólo para el sistema operativo, aparte va el espacio para usuarios, archivos de bitácora y demás; es cosa de como se acomoden y lo que vayan a cargar para determinar cuanto espacio necesitan.

    Otro comentario es que, regularmente, Windows debe ir en la primera partición y que este sistema operativo es el "propietario" del Master Boot Record (MBR), que se ubica en el sector 0 del disco y que tiene la información para el arranque de (los) SO(s).

    Hace mucho tiempo cuando se utilizaba Lilo como arrancador para GNU/Linux, existía la limitación de tener que instalar éste y la partición que contuviese a /boot antes del cilindro 1024 del disco duro. Siendo que actualmente casi todas las distribuciones de GNU/Linux utilizan Grub, esta limitación ya no la hay.

    Pueden obtener más información en:

                              

    ¿Cómo identifico la unidad donde voy a instalar Linux?

    Cuando vemos un disco duro o unidades dentro de Windows, se nos presentan como letras del abecedario (C, D, E, etc.) pero dentro de Linux, es bastante diferente, ya que su estructura semeja un árbol donde cada partición y dispositivo de lectura/escritura se representa como un directorio, los nombres de las unidades de disco duro son:

    • hda: disco duro principal
    • hdb: disco duro secundario
    • hda1: primera partición del disco duro principal.
    • hdb2: segunda partición del disco secundario

                 
                                
                      
                            

    Ahora, para ejemplificar todo este proceso, supongamos que tienen un disco duro de 20 GB y generan dos particiones, uno de 5 GB para Windows y el resto para Linux, entonces es hda1 (Windows) y hda2 (Linux), siendo en este último donde crearíamos las particiones del sistema.

    ¿Qué particiones necesito para Linux?

    NOTA: Estas particiones se crean al momento de instalar, no de dividir el disco duro para varios sistemas operativos, pero es importante que las conozcan de antemano.

    En principio sólo se pueden montar tres y es suficiente para que funcione:

    /boot
    Es la partición donde se leen los parámetros para iniciar el sistema.
    Requiere al menos 75 MB en Red Hat Enterprise Linux 3.0 y White Box Enterprise Linux 3.0. Asignar más espacio puede considerarse desperdicio.
    / o raíz
    Es donde se instalarán los componentes del sistema operativo.
    Requiere de 350 a 512 MB.
    swap
    Espacio físico para la memoria virtual del sistema.
    Debe asignarse el doble del tamaño del RAM físico.
    Esta será siempre la última partición del disco duro.
    No se asigna punto de montaje.

    Otras particiones son:

    /usr
    Se trata del segundo directorio en cuanto a jerarquía en el sistema. Contiene la mayoría de los binarios (ejecutables), bibliotecas compartidas, manuales, datos de aplicaciones e imágenes que utiliza el sistema, cabeceras de desarrollo, el árbol del kernel y documentación.
    Requiere al menos 1.5 GB en instalaciones básicas. Debe considerarse el software a utilizar a futuro. Para uso general, se recomiendan no menos de 5 GB y, de ser posible, considere un tamaño óptimo de hasta 8 GB en instalaciones promedio.
    /tmp
    En éste se almacenan todos los ficheros temporales que generan los distintos programas.
    Requiere al menos 350 MB y puede asignarse hasta 2 GB o más dependiendo de la carga de trabajo y tipo de aplicaciones. Si por ejemplo el sistema cuenta con un grabador de DVD, será necesario asignar a /tmp el espacio suficiente para almacenar una imagen de disco DVD, es decir, al menos 4.2 GB.
    /var
    Corresponde a la partición de datos de servicios.
    Requiere al menos 512 MB en estaciones de trabajo sin servicios. En servidores regularmente se le asigna al menos la mitad del disco duro.
    /home
    Corresponde a la partición de datos de usuarios. Es donde se colocan los directorios para cada usuario con los perfiles de cada cuenta.
    En estaciones de trabajo se asigna al menos la mitad del disco duro a esta partición.

    Por costumbre (y experiencia) recomiendo crear particiones independientes para /boot, / (raíz), /home, /var y swap. También es aconsejable una para /usr y /tmp.


    Por Hugo Madrid Luna
    crowley arroba mexicoextremo.com.mx
    http://www.mexicoextremo.com.mx

  • Compilar Kernel con aceleración gráfica para ATI

    Aquí explico cómo se compila un kernel en Debian y como he conseguido la aceleración gráfica para mi tarjeta ATI 9600XT (es extensible a muchas tarjetas gráficas con chip ATI)

18
Sep

Configuración del sistema de arranque de Mac OS X

Escrito por J. Llorente

PDFImprimir E-mail
En este reportaje vamos a comentar el proceso de arranque que sigue Mac OS X, y como podemos configurar servicios de Mac OS X para que se ejecutan automáticamente al arrancar la máquina.
Este documento está escrito para Mac OS X 10.4 o posteriores. Si quiere configurar una versión anterior debe consultar el reportaje "SystemStarter".
El objetivo de este reportaje no es aprender a lanzar aplicaciones de usuario al arrancar el ordenador, sino otro tipo de aplicaciones conocidas como servicios o demonios, que son aplicaciones no visuales (normalmente procedentes del mundo de UNIX) que permanecen lanzadas todo el tiempo, y que dan servicios (p.e. servicios de red) como puedan ser: Apache, NFS, SSH, cron, etc.

Este reportaje está dirigido a usuarios familiarizados con sistemas UNIX, con lo que no vamos a explicar los detalles más comunes o conocidos de estos sistemas.


Nota Legal

Este reportaje ha sido escrito por Fernando López Hernández para macprogramadores.org y de acuerdo a las leyes internacionales sobre propiedad intelectual, a la Directiva 2001/29/CE del Parlamento Europeo de 22 de mayo de 2001 y al artículo 5 de la Ley 22/1987 de 11 de Noviembre de Propiedad Intelectual Española, el autor prohíbe la publicación de este documento en cualquier otro servidor web, así como su venta, o difusión en cualquier otro medio sin autorización previa.
 
Sin embargo el autor anima a todos los servidores web a colocar enlaces a este documento.  El autor también anima a cualquier persona interesada en conocer el proceso de arranque de Mac OS X y su configuración a bajarse o imprimirse este reportaje.
 

Madrid, Septiembre 2005

Para cualquier aclaración contacte con:

Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla

El programa launchd

En Mac OS X 10.4 Apple introdujo un nuevo sistema de arranque coordinado por el programa launchd. Este programa asume las responsabilidades de las que hasta ahora se habían encargado otros programas más clásicos de UNIX como son mach_init, init, xinetd o cron. Antes de Mac OS X 10.4 el proceso de arranque estaba coordinado por los procesos mach_init e init los cuales ejecutaban el script /etc/rc que preparaba el sistema para el usuario. Aunque este script todavía existe, y se sigue usando para configurar el proceso de arranque, los comandos mach_init e init han sido eliminados y sustituidos por el comando launchd (situado en /sbin/launchd) que es el nuevo proceso raíz del sistema.

 ¿Por qué el cambio en el sistema de arranque?

 
Tradicionalmente en UNIX la responsabilidad de arrancar el sistema y configurar sus distintos demonios y procesos  ha estado delegado al menos a tres programas distintos:

 
1)   init que es el primer proceso que se ejecuta, y que se encarga de arrancar y configurar los servicios más básicos.

 
2)    xinetd que es el encargado de lanzar los procesos que dan servicios de red. Aunque inicialmente los sistemas UNIX no usaban TCP/IP para comunicarse, con el tiempo se popularizó este protocolo, y fue cuando se creó xinetd. Una peculiaridad característica de xinetd es que puede lanzar los procesos bajo demanda, es decir, los demonios que dan servicios de red pueden estar siempre lanzados, pero también pueden lanzarse sólo cuando se conecta un cliente al puerto del servicio.

 
3)   cron es un proceso que una vez lanzado se encarga de ejecutar otros procesos periódicamente, o en una fecha determinada, de acuerdo a la configuración indicada en el fichero /etc/crontab. El proceso launchd ha asumido ahora estas responsabilidades.

 
launchd ofrece principalmente tres ventajas respecto al mecanismo tradicional de arranque de Mac OS X. La primera ventaja es que con launchd se centraliza y estandariza toda la gestión de los demonios. También launchd se encarga de gestionar los posibles límites de recursos que asignamos a los programas, y de decidir con que cuenta de usuario se ejecuta cada uno.

La segunda ventaja es que la configuración de todos los procesos launchd compatibles se hace en un fichero XML con la extensión .plist. Hasta ahora, cada comando tenía su propio fichero de configuración, y cada uno usaba su propio formato.


La tercera ventaja es que los procesos launchd compatibles se pueden lanzar bajo demanda, lo cual permite no tener cargados en memoria procesos que no se están usando. Además launchd

puede descargar de memoria un proceso si éste lleva mucho tiempo inactivo y se está necesitando memoria.

El proceso de arranque

 
El proceso de arranque de una máquina Mac OS X se puede resumir en cuatro pasos:

El primer paso es el arranque de la BIOS, durante este proceso se comprueba el hardware disponible y se elige el sistema operativo a ejecutar. Este primer paso se puede dividir en:

 

  • POST (Power-On Self Test) donde se determinar el hardware disponible y se comprueba que exista suficiente memoria, así como que éste está en buen estado.
    • Open Firmware construye un árbol de dispositivos hardware existentes (una representación jerárquica del ordenador), y elige el sistema operativo a ejecutar.

     
    El segundo paso sería la carga del núcleo del sistema operativo. Se carga una imagen del núcleo en memoria. Durante este proceso la máquina suele mostrar el icono con la manzana de Apple. Al acabar la carga del núcleo se lanza el proceso de usuario root, que es launchd.

    Durante el tercer paso launchd lanza los demonios necesarios para configurar el sistema. Para ello launchd lanza los procesos indicados en el script /etc/rc, así como otro procesos que comentaremos más adelante. Esta es la parte que ha sido optimizada con el uso de launchd.

    En el cuarto paso launchd lanza loginwindow que es el proceso encargado de autentificar a los usuarios y controlar su sesión.


    Configurar demonios
    launchd

     

    Los demonios launchd deben de colocarse como ficheros .plist bajo el directorio /Library/LaunchDaemons. También existe otro directorio /System/Library/LaunchDaemons, pero este directorio no debemos de usarlo, ya que está reservado para los demonios de Apple.

    Los demonios pueden ser de dos tipos:

     
    RunAtLoad, los cuales se ejecutan una vez al arrancar la máquina, y permanecen cargados durante toda la ejecución.

    OnDemand, los cuales se ejecutan sólo cuando algún cliente intenta usar el servicio.

     
    En principio, es mejor que los procesos se carguen OnDemand, pero esto no siempre es posible, ya que para que un proceso se cargue de esta forma tiene que haber seguido una serie de recomendaciones que da Apple a los desarrolladores, como son el capturar la señal SIGTERM para terminar, o el que el proceso demonio no llame a la primitiva daemon() para desligarse del proceso padre que lo creó. Si está intentando añadir un proceso ya existente a la lista de demonios de su máquina, use la opción RunAtLoad, a no ser que en la documentación del programa indique que es launchd compatible.

    Crear el fichero de propiedades del demonio

    Como hemos dicho, para crear un demonio debe de crear un fichero .plist en la carpeta /Library/LaunchDaemons, indicando a launchd como lanzar el demonio.

    Este fichero debe de contener una serie de propiedades que se resumen en la Tabla 1. Puede consultar una documentación más detallada ejecutando man launchd.plist.

     

    Clave

    Tipo

    Req.

    Descripción

    Label

    string

    Cadena única que identifica al job de launchd.

    Disabled

    boolean

    No

    Permite deshabilitar un job. Por defecto es false.

    UserName

    string

    No

    Nombre de usuario con el que ejecutar el job. Por defecto es root.

    GroupName

    string

    No

    Grupo con el que ejecutar el job. Por defecto es wheel.

    inetdCompatibility

    dictionary

    No

    La presencia de esta clave indica que el proceso espera lanzarse como si estuviera configurado para inetd

    ProgramArguments

    array of strings

    Argumentos de línea de comandos del demonio.

    Program

    string

    No

    Indica el comando a ejecutar. Si se omite se usa el primer argumento de ProgramArguments.

    OnDemand

    boolean

    No

    Indica si el proceso se lanza bajo demanda. Por defecto es true.

    RunAtLoad

    boolean

    No

    Indica si el proceso se lanza siempre al arrancar. Por defecto es false.

    RootDirectory

    string

    No

    Indica el directorio al que hacer chroot antes de ejecutar el proceso.

    WorkingDirectory

    string

    No

    Indica el directorio al que hacer chdir antes de ejecutar el proceso.

    ServiceDescription

    string

    No

    Permite dar una descripción del proceso

    EnvironmentVariables

    dictionary of strings

    No

    Variables de entorno a fijar antes de ejecutar el proceso

    Umask

    integer

    No

    Indica que debe de pasarse a umask antes de ejecutar  el proceso.

    ServiceIPC

    boolean

    No

    Indica si el proceso se comunica con launchdinetdCompatibility. usando técnicas de IPC. El flag es incompatible con

    TimeOut

    integer

    No

    El tiempo máximo que tardará el job en arrancar.

    StartInterval

    integer

    No

    Indica cada cuanto tiempo debe de lanzarse el job. Usado para jobs periódicos.

    StartCalendarInterval

    dictionary of integer

    No

    Permite indicar fechas periódicas a las que lanzar el programa. Vea man launchd.plist

    StandardOutPath

    string

    No

    Fichero a usar como stdout.

    StandardErrorPath

    string

    No

    Fichero a usar como stderr.

    SoftResourceLimits

    HardResourceLimits

    dictionary of integers

    No

    Indica límites a los recursos del proceso

    como se indica en man launchd.plist.

    Nice

    integer

    No

    Indica un valor a pasar a nice para ejecutar el comando con menos prioridad.

    Sockets

    dictionary of strings

    No

    Permite indicar que sockets lanzan este proceso al llegar un cliente como se indica en man launchd.plist.

    Tabla 1: Propiedades del fichero .plist de un demonio launchd

    Ejemplo de demonio launchd

    En la carpeta /System/Library/LaunchDaemons tiene varios demonios de ejemplo, pero aquí vamos a ver como se crearía un demonio para mldonkey, la conocida herramienta de intercambio de ficheros. Esta herramienta viene en la distribución Fink, y puede bajársela con:

     
    $ fink install mldonkey

     
    La herramienta se lanza usando el comando mlnet. Una vez ejecutado este comando, en el directorio actual se crea una serie de carpetas con la configuración del programa, así como con las carpetas donde depositar los ficheros a intercambiar. El comando se queda esperando a que nos conectemos a él: O bien haciendo un telnet al puerto 4000, o bien conectándo vía web al puerto 4080.

     
    Este es un buen ejemplo de comando que podemos tener ejecutando desde que arrancamos la máquina hasta que la paramos. Luego usaremos la entrada RunAtLoad.

     
    Para indicar donde está el directorio con los ficheros compartidos podemos usar la entrada WorkingDirectory, y su queremos dar un usuario con el que lanzar el comando podemos usar la entrada UserName y GroupName.

    La Figura 1 muestra el contenido del fichero .plist propuesto.

    Figura 1: Fichero de configuración de mlnet

     
    El fichero mlnet.plist debe de tener permisos de sólo lectura para los usuarios que no sean administradores, con el fin de evitar que un usuario sin permiso de administración modifique estos ficheros. Apple pide que tengan permiso de lectura para el grupo wheel, con el fin de poder ser lanzados. El usuario que tengan como dueño debe tener permiso de lectura y escritura (p.e. en mi caso el dueño es el usuario fernando). Los ficheros del sistema (los de la carpeta /System/Library/LaunchDaemons) tienen como dueño a system, que es el dueño de todos los ficheros bajo la carpeta /System.

    Testear un demonio

     
    Antes de poner el demonio en la carpeta /Library/LaunchDaemons y reiniciar su máquina puede probar a ver si arranca correctamente. Para ello puede usar el comando launchctl y pedirle que cargue el demonio.

     
    $ launchctl

    launchd% load /Library/LaunchDaemons/mlnet.plist

    Por la salida que produzca este programa al lanzarle podrá saber si algo está mal. Si todo va bien ya puede colocar el demonio en el directorio/Library/LaunchDaemons y reiniciar su máquina.

     

    Resto del documento:

     
    http://www.macprogramadores.org/tutoriales/propios/propios.shtml#ConfiguracionArranque

    Agregue su comentario

    Tu Nombre:
    Asunto:
    Comentario:

    Últimos contenidos

    Facebook conecta

    Total visitas

    3741913
    38.107.179.234
    UNITED STATES
    US

    Quien está en linea

    Tenemos 33 invitados conectado(s)

    Conectan

    Locations of visitors to this page

    Nos visitan desde