lunes, 11 de marzo de 2013

Hilos en Java

El siguiente programa ejecuta un hilo (una serie de instrucciones en paralelo al programa principal) que genera números aleatorios cada segundo. Tip: Copia dos veces este código de modo que tengas dos objetos(ejemplo r1 y r2) y ejecutarlos, para ver el comportamiento en paralelo.


 Runnable r = new Runnable() {                   //Se crea un objeto que se ejecutará en segundo plano
    
  @Override
  public void run() {                     //Este método lo ejecutará UNA VEZ el hilo  
   // TODO Auto-generated method stub
   Random r = new Random();
     
   int x, y;
   x = y = 0;

                        /** Creamos un ciclo infinito 
                        *   de modo que las acciones se vuelvan 
                        *   a ejecutar indefinidamente **/

   while (true) {                
    x = r.nextInt(10);
    y = r.nextInt(10);
      
    System.out.printf("(%d, %d)\n", x, y);
      
    try {
     Thread.sleep(1000);  //Decimos al hilo que tome una pausa de 1 seg.
    } catch (Exception e) {
     // TODO: handle exception
     e.printStackTrace();
    }   
   }
   
  }
 };  
        /** El objeto 'r' se empieza a ejecutar como un hilo.
           Esta linea puede ir en la parte que querramos. **/
 new Thread( r ).start();       

domingo, 10 de febrero de 2013

Internet Móvil en Ubuntu

En este post se muestra un tutorial que muestra como conectar un módem de internet en Ubuntu. Este ejemplo está hecho por un dispositivo de una compañia en Guatemala, pero aplica a cualquier compañía teniendo que buscar únicamente el APN específico... Es necesario descargar el paquete USB-MODESWITCH, lo cuál se puede hacer en una computadora que si tenga internet aunque las distribuciones actuales ya lo traen.

UBUNTU RECONOCE EL DISPOSITIVO PERO NO COMO MODEM DE INTERNET

En este caso ejecutaremos el comando 'lsusb' en la terminal:

julian@hsi-ubuntu12:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 18e3:9101 Fitipower Integrated Technology Inc All-in-1 Card Reader
Bus 003 Device 002: ID 1c4f:0003 SiGma Micro HID controller
Bus 003 Device 003: ID 1c4f:0016 SiGma Micro 
Bus 004 Device 002: ID 0079:0006 DragonRise Inc. Generic USB Joystick
Bus 001 Device 008: ID 12d1:14fe Huawei Technologies Co., Ltd. 

Lo importante de este comando es la línea de nuestro módem, para este ejemplo tenemos los datos para Huawei Technologies Co, Ltd (Si ya te aparece como módem saltar hasta la configuración). Debemos apuntar el ID del dispositivo que sería en este caso 12d1:14fe. Ahora vamos al siguiente link: http://www.draisberghof.de/usb_modeswitch/device_reference.txt y buscamos nuestro dispositivo en esta lista, puedes hacerlo con Ctrl+F y buscas:

     DefaultVendor= 0x12d1
     DefaultProduct=0x14fe

Debes sustituir los parámetros con los que obtuviste con lsusb y el ID de tu modem. Cuándo encuentres  la sección de tu módem (en el link que puse anteriormente) dirá algo como:

#######################################################
# Huawei E535
#
# Contributor: Andres Septer

DefaultVendor= 0x12d1
DefaultProduct=0x14fe

TargetVendor=  0x12d1
TargetProduct= 0x1506

MessageContent="55534243123456780000000000000011062000000100000000000000000000"


#######################################################

Lo importante de esto es el MessageContent lo copias (sólo la cadena sin comillas) y ejecutas el siguiente comando:

julian@hsi-ubuntu12:~$ sudo usb_modeswitch -v 12d1 -p 14fe -M '55534243123456780000000000000011062000000100000000000000000000'

Donde los parámetros son los que obtuviste anteriormente y lo que hará será cambiar el driver con el que se maneja el modem y te puedas conectar a internet. La salida será algo como esta:

Looking for default devices ...
   found matching product ID
   adding device
 Found device in default mode, class or configuration (1)
Accessing device 008 on bus 001 ...
Getting the current device configuration ...
 OK, got current device configuration (1)
Using first interface: 0x00
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: HUAWEI  
   Model String: Mass Storage    
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Setting up communication with interface 0
Using endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Resetting response endpoint 0x81
Resetting message endpoint 0x01
 Could not reset endpoint (probably harmless): -19
 Device is gone, skipping any further commands
-> Run lsusb to note any changes. Bye.


Hay que notar que hay un número de retorno, en este caso es -19. Lo ideal sería que no hubiera un número de retorno, sin embargo con -19 no hay problema (-71 tampoco). El único caso que he visto es cuando retorna -16 que nos obliga a reiniciar la computadora y ejecutar este tutorial de nuevo. Ahora ejecutamos 'lsusb' de nuevo para ver que los cambios hayan surtido efecto (los cambios no son instantáneos, puede que tarde unos segundo para eso vuelve a ejecutar 'lsusb'):

julian@hsi-ubuntu12:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 18e3:9101 Fitipower Integrated Technology Inc All-in-1 Card Reader
Bus 003 Device 002: ID 1c4f:0003 SiGma Micro HID controller
Bus 003 Device 003: ID 1c4f:0016 SiGma Micro 
Bus 004 Device 002: ID 0079:0006 DragonRise Inc. Generic USB Joystick
Bus 001 Device 009: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

Si comparamos las salidas de lsusb podremos notar que ya hemos logrado reconocer el dispositivo como módem de internet. Ahora ejecutamos el siguiente comando para terminar:

julian@hsi-ubuntu12:~$ sudo service network-manager restart

CONFIGURANDO LA RED

Nos vamos a Conexiones de Red -> Banda ancha móvil -> Añadir. Nos despliega una pantalla de inicio y luego otra donde nos toca elegir el país:


Elegimos nuestro proveedor (en mi caso es Internet Móvil Tigo):


Elegimos nuestro plan y debemos verificar si es el correcto, de otro modo no nos dejara conectarnos. Esto es lo que se llama APN. El que muestra Ubuntu por defecto no es el correcto así que lo añadimos manualmente:


Se muestra el sumario y le damos Aplicar:


Se intentará conectar, pero puede que no puede entonces hacemos algunos cambios a nuestra conexión (Le cambiaremos el nombre pero es opcional xD). Debemos cambiar el modo de conexión a 3G.


Guardamos e intentamos conectar desde el icono de red:




domingo, 11 de noviembre de 2012

Microsoft ISA Server

Microsoft define a ISA Server como una solución de seguridad diseñada para ayudar a proteger a las empresas contra amenazas informáticas al mismo tiempo que habilita a sus usuarios a obtener el máximo provecho de su infraestructura y ancho de banda, en general se dice que es un firewall. 

ISA Server utiliza una técnica denominada Web-Caché que guarda y sirve todos los accesos a internet, de modo que el tráfico de la red pueda ser reducido y como consecuencia también provee una carga más rápida de páginas utilizadas con frecuencia.

Al igual que Active Directory, ISA server permite crear políticas para usuarios, grupos, aplicaciones, etc. Está diseñado para trabajar con sistemas operativos Windows Server 2000 o superior.

Viene en dos versiones, Standard y Enterprise la cuál difieren por el número de procesadores que pueden soportar (Enterprise está diseñada para sistemas de gran escala). Se puede ver la instalación de ISA Server en el siguiente video:


domingo, 21 de octubre de 2012

Configuración de Active Directory

Abrir el asistente de configuración del servidor e instalar 'Controlador de dominio (Active Directory)':

 Aparecerá el asistente:


Este controlador será para un dominio nuevo:


Se creará un dominio para un nuevo bosque:


Acá ingresaremos el nombre del dominio que vamos a controlar, para el ejemplo se utilizará el dominio que se creo siguiendo el tutorial previo:


Ahora debemos ingresar el nombre NetBios para el dominio (es importante recordar puesto que es el que se ingresas en las máquinas clientes para agregarlas al dominio):


Dejar la configuración de la ruta del archivo de sucesos por defecto:


Dejar este paso también por default:


Se presentará una pantalla con el resumen de todas las opciones seleccionadas:


 Seleccionar una compatiblidad para servidores Microsoft 2000 - 2003:


Ingresar una contraseña para modo remoto:


El asistente iniciará la configuración:


Al finalizar, el asistente mostrará el diálogo final:


Ahora podremos agregar cuentas de usuario en 'Usuarios y equpos de Active Directory':


Acá al hacer clic derecho podremos agregar 'Unidades Organizativas' (grupos de usuarios) , por ejemplo acá creamos una UO llamada PRACTICAS y se agregará un usuario:


Este usuario podrá iniciar sesión en cualquier equipo perteneciente al dominio, usando el nombre de usuario1:


Para que el usuario pueda iniciar sesión, habrá que agregar computadoras al dominio. Esto se puede hacer en Mi PC -> Propiedades -> Cambiar el nombre del equipo y en este paso seleccionamos dominios e ingresamos el nombre NetBios:


Listo!


domingo, 14 de octubre de 2012

Configuración del DNS con Zona Inversa

Primero hay que hacer click en Inicio -> Administre su Servidor y seleccionar 'Agregar o quitar función'...


Seleccionar el servicio DNS:


Debemos de tener una IP estática, sino la tenemos nos mostrará un asistente para configurarla:


Ingresamos una IP para el servidor DNS (192.168.0.1 por ejemplo) y también la escribimos en donde hay que especificar un servidor DNS preferido, que será el mismo:


Luego se mostrará un asistente para agregar un nuevo dominio:

Elegiremos crear una zona directa y una inversa: (La zona directa se refiere al dominio en sí por ejemplo, la zona de servidor1.com y la zona inversa se refiere a saber dónde está servidor1.com que para este ejemplo estaría en las IP's 192.168.0.x dónde x es cualquier número entre 0 y 255):


La zona inversa se creará después:


Este servidor hará los redireccionamientos:


Finalizar la instalación:

Se procede a crear una zona inversa (para decir que el rango 192.168.0.0 - 192.168.0.255 pertenece a servidor1.com):

La zona debe ser directa:

Ingresar el rango de servidor1.com:


También hay que agregar una zona directa en la cuál hay que definir el dominio 'servidor1.com' que se hace en este mismo administrador.


lunes, 8 de octubre de 2012

Instalar Windows Server

Este tutorial está hecho en una máquina virtual VBox.

El primer paso será montar la ISO en una nueva máquina virtual que tenga al menos 128 MB de RAM.
Cuando cargue saldrá una ventana como esta:



Después se aceptará la licencia de Microsoft, después habrá que elegir una opción de formato de disco, en este tutorial se utilizó un formato NTFS.



Luego del formato aparecerá esta ventana:



Se tendrá que ingresar un nombre para el Administrador y una Organización:


Se debe ingresar un nombre para el equipo y una contraseña:



Para este ejemplo se utilizará una configuración típica, pero de ser necesario que sólo se instalen ciertos componentes, entonces se debe elegir personalizada:


Se ingresa un nombre de grupo de trabajo, si este servidor será el DNS, de otro modo se tendrá que ingresar el nombre del servidor hace las funciones de este:


sábado, 29 de septiembre de 2012

Conceptos Básicos sobre Servidores

¿Qué es Active Directory?


Es un término acuñado por Microsoft para referirse a su implementación de servicio de directorio y políticas de acceso, sobre una red de computadoras, la cuál necesita que antes exista un servidor DNS para que la estructura de red y jerarquía funcione para los usuarios. Active Directory además permite desplegar aplicaciones en los equipos pertenecientes al dominio.

La estructura jerárquica de AD se basa en tres tipos, conocidos como objetos, los cuáles son: recursos, servicios y usuarios. También se define el término de <<bosque>> para referirse al conjunto de los objetos que se integran en un espacio, sin que necesariamente pertenezcan al mismo dominio; cada objeto será a su vez un árbol.


¿Qué es un DNS?


DNS significa Sistema de Nombres de Dominio y funciona como un sistema de nomenclatura jerárquica para objetos de una red (ya sea de internet o red privada). Un DNS resuelve nombres asociados a recursos permitiendo localizar y redireccionar las peticiones sobre ellos. La forma más común de operar de un DNS es sobre direcciones IP, por ejemplo si tenemos un sitio www.ejemplo.net y este se encuentra en la máquina con IP 192.68.0.1, entonces el DNS es capaz de <<traducir>> el nombre en un IP y así poder localizar el recurso.

¿Qué es DHCP?


DHCP es un Protocolo de Configuración Dinámica de Hosts. En general los servidores DHCP asignan IP's dinámicamente a computadoras clientes que forman parte del dominio. Cada vez que un cliente se conecte a un servidor(o si también puede definirse un rango de tiempo) DHCP, este le brinda una IP generada automáticamente y que pertenece a un rango que define el administrador. 

¿Qué es un Servidor FTP?


Es un Protocolo de Transferencia de Archivos. Básicamente un servidor FTP es capaz de compartir archivos con computadoras clientes o recibir archivos de ellas. Es necesario que las computadoras clientes y el servidor se encuentren en una red con TCP. La transferencia de archivos y datos de acceso se realiza como TEXTO PLANO en su totalidad, es por eso que hay que aplicar otros protocolos de seguridad(SSH por ejemplo). La transferencia se realiza por un puerto, que es algo parecido a una tubería por la cuál el cliente se comunica con el servidor.