viernes, 11 de enero de 2013

[HOWTO] Abrir Puertos Router NUCOM R5000UN


Si usas los servicios de internet de Movistar Chile, y tienes un Router como el de la imagen, te comunico que dicho Router es el NUCOM R5000UN. Movistar siempre ha sido celosa de cuidar las configuraciones de sus equipos, pero en este router es posible hacer Port Forwarding de una manera muy sencilla.

El Port Forwarding (también conocido como "abrir puertos" o "desbloquear puertos") es una técnica que tienen los routers de procesar las conexiones desde el exterior a los equipos que se encuentran dentro de la red local del dispositivo. Normalmente Movistar deshabilita de sus routers el Port Forwarding, pero al parecer no lo hicieron en este modelo.

La utilidad de abrir los puertos es redirigir todas las conexiones entrantes a dicho puerto a uno de los dispositivos que tenemos en la red local. Por ejemplo, abrimos el puerto 6881 para las conexiones via Bittorrent o el puerto 80 para conexiones HTTP (vía Apache).

Los requisitos para hacer Port Forwarding son:
  • Conocer con claridad el o los puertos que se van a abrir (generalmente el mismo programa o servicio te especifica o te da a elegir los puertos).
  • Fijar una IP Estática en el PC o dispositivo que recibe la conexión.
  • Tener un Router NUCOM R5000UN de Movistar Chile.

Primero que todo abrimos nuestro navegador web favorito e insertamos la IP 192.168.1.1, al aceptar nos pedirá un usuario y contraseña, los cuales son los siguientes:
Usuario: user
Contraseña: admin

Con esto entramos a la página de configuración del Router, que sería algo como esto:


De ahi vamos a Advanced Setup -> NAT -> Virtual Servers, y se nos abrirá una pantalla como esta:


En Virtual Servers setup podemos especificar las reglas de los puertos abiertos. Primero hacemos click en Add para agregar una nueva regla con lo que accederemos al siguiente cuadro:


Explicaré los elementos que aquí nos sirven:
  • Use Interface: Para que el Port Forwarding nos funcione, este parámetro tiene que estar establecido en ppp0. Si lo dejamos en atm1 o ppp3g0 no va a funcionar el procedimiento.
  • Service Name: Podemos establecer una regla predefinida (con Select a service) o definir nosotros mismos la regla (con Custom Service).
  • Server IP Address: Es la IP a la que apunta el Port Forwarding. Es decir, cada vez que accedamos desde el exterior hasta nuestro router en el puerto especificado, el router va a retransmitir la comunicación al dispositivo con la IP establecida en este parámetro. Es importante que la IP que lleve este dispositivo sea Estática, ya que si fuera Dinámica, tendríamos que cambiar la regla cada vez que se conecte el dispositivo.
  • Status: Puede ser Enable o Disable. Déjalo en Enable para que la regla quede activada.
  • External Port: Es el o los puertos que queremos abrir. Si deseamos abrir solo un puerto ponemos en Start y End el mismo valor. Si es un rango de puertos, ponemos los límites en Start y End respectivamente.
  • Protocol: Si la conexión es TCP, UDP o ambos, generalmente suele ser TCP.
  • Internal Port: Es el puerto de destino de nuestro dispositivo objetivo. Usa las mismas reglas del External Port, y generalmente suelen ser los mismos valores.
  • Apply/Save: Guarda nuestros cambios.
Acá estoy creando una excepción para el cliente P2P Soulseek, que me pide abrir los puertos 2235 y 2236, a los cuales dirigiré al PC con la IP Local 192.168.1.32:


Podemos establecer un máximo de 32 reglas con este método. Con la ventana principal de Virtual Servers podemos activarlas, desactivarlas o eliminarlas a gusto:


Bueno, eso es todo el HOWTO, espero que les haya servido, de ser así, te pido que sigas la página de Programador Chasquilla en Google+ para recibir más artículos interesantes. ¡Saludos!

jueves, 10 de enero de 2013

[TIPS] Comandos básicos de la Terminal de Linux (Parte 1)


Muchos usuarios actualmente están viendo como una opción válida el migrar a Linux debido a la seguridad, estabilidad y aparente "simpleza" de las nuevas distribuciones linuxeras. Junto con esto, distros como Ubuntu (y derivados), Fedora, Debian y OpenSUSE han facilitado enormemente la transición de usuarios debido a su desarrollo e integración con manejadores de escritorio como GNOME o KDE.

Aunque los manejadores de escritorio en Linux muchas veces nos facilitan la tarea, a veces es necesario manejar un poco de la Terminal (también llamada Consola) para poder solucionar ciertos problemas que las interfaces gráficas no nos pueden solucionar. Cabe destacar que en Linux la interfaz gráfica (también conocida como X11 o X) es sólo una capa que traduce todos los comandos a la Terminal, así que todo se reduce a conocer cómo funciona esta.

Comenzaremos este post con el inicio de la Terminal y algunas tareas básicas...

La Terminal al inicio:

Generalmente cuando abrimos la Terminal, nos aparece algo como esto:
[user@localhost ~]$
Esta linea nos da información valiosa sobre nuestra posición sobre el sistema de archivos. El parámetro user nos indica el usuario que está ejecutando la opción (generalmente es nuestro usuario o root). El parámetro localhost nos indica el nombre de que recibe la computadora en la que trabajamos (a menos que estemos trabajando en red con varias computadoras, esto no debiese importar mucho). El ~ nos indica el directorio actual que estamos trabajando, si es ~ es porque trabajamos desde nuestra Home, si no indicará el directorio actual. Finalmente el $ indica si estamos trabajando como superadministrador (root) o no, si estamos en modo root, el símbolo será un #.

En los ejemplos a continuación, usaré [gacix@GaciX-LAPTOP ~]$ así que ya se figurarán de quién es la máquina y el resto de sus parámetros...

Manejo de Archivos y Directorios:

pwd
Nos muestra el directorio en que actualmente nos encontramos.
[gacix@GaciX-LAPTOP ~]$ pwd
/home/gacix

cd [directorio]
Nos llevará al directorio que especifiquemos, si no introducimos directorio, nos llevará al directorio Home del usuario.
[gacix@GaciX-LAPTOP ~]$ cd /usr/bin
[gacix@GaciX-LAPTOP bin]$ pwd
/usr/bin
[gacix@GaciX-LAPTOP bin]$ cd
[gacix@GaciX-LAPTOP ~]$ pwd
/home/gacix

ls
Lista y muestra en pantalla todos los archivos y carpetas que se encuentran en el directorio actual.
[gacix@GaciX-LAPTOP ~]$ ls
build    Documents  GRUB2 Scripts  LoginServer.sh  texto1.txt  VirtualBox VMs
Desktop  Downloads  Images         ProjectSync     Torrents

cp [archivo] [destino]
Copia el archivo en la ruta de destino.
[gacix@GaciX-LAPTOP ~]$ cp texto1.txt /tmp
[gacix@GaciX-LAPTOP ~]$ cp /tmp/texto2.txt /home/gacix/Documents

mv [archivo] [destino]
Mueve el archivo hacia la ruta de destino.
[gacix@GaciX-LAPTOP ~]$ mv texto1.txt /tmp
[gacix@GaciX-LAPTOP ~]$ mv /tmp/texto2.txt /home/gacix/Documents

rm [archivo]
Elimina el archivo seleccionado.
[gacix@GaciX-LAPTOP ~]$ rm texto1.txt
[gacix@GaciX-LAPTOP ~]$ rm /tmp/texto2.txt

mkdir [nombre]
Crea una carpeta en el directorio actual con el nombre seleccionado, o bien en el directorio especificado.
[gacix@GaciX-LAPTOP ~]$ mkdir MiCarpeta1
[gacix@GaciX-LAPTOP ~]$ mkdir /tmp/MiCarpeta2

rmdir [nombre]
Elimina la carpeta con el nombre y ruta designados.
[gacix@GaciX-LAPTOP ~]$ rmdir MiCarpeta1
[gacix@GaciX-LAPTOP ~]$ rmdir /tmp/MiCarpeta2

Esa sería la lección por ahora, más adelante continuaré con más comandos útiles para la terminal.

¡Saludos!

miércoles, 9 de enero de 2013

[HOWTO] Cambiar Contraseña WiFi Router NUCOM R5000UN


Si has contratado recientemente servicios de Internet con Movistar Chile, o si eres cliente antiguo que ha cambiado el router, lo más probable es que tengas un router como el de la imagen de arriba. Dicho router es el NUCOM R5000UN, el nuevo dispositivo encargado de entregarnos servicios de internet a nuestras computadoras.

En este HOWTO explicaré como cambiar el nombre y la contraseña WiFi de dicho router, ya que la mayoría de los técnicos olvida explicar como se hace este procedimiento ya sea por apuro u olvido.

ADVERTENCIA: En este HOWTO nos introduciremos en configuraciones avanzadas del Router, por lo que recomiendo modificar sólo los parámetros que aquí se indican. Si no se siguen los pasos al pie de la letra o se modifican otras funciones, es posible que el comportamiento del dispositivo no sea el adecuado, con el mal rato que ello conlleva.

Primero abriremos nuestro Navegador Web de preferencia desde un PC que esté conectado a la red (ya sea cableado o WiFi), en el cuadro de la dirección insertaremos la siguiente IP: 192.168.1.1

Luego nos pedirá un usuario y contraseña, los cuales son user y admin respectivamente.

Habiendo ingresado a la configuración del router, nos recibirá una pantalla asi:



Luego vamos a Wireless -> Basic y tendremos una ventana asi:


En esta pantalla cambiaremos solo el parámetro SSID, el cual es el nombre de la Red WiFi. Puedes cambiar el SSID por el nombre que a ti se te anoje. Luego presionamos en Apply/Save abajo para guardar los cambios. Ahora vamos a Wireless -> Security y tendremos una pantalla como esta:



Acá tenemos varios parámetros para modificar, los explicaré brevemente:
Select SSID: Es la red que se va a editar. Procura seleccionar la misma que pusiste en SSID del paso anterior.
Network Authentication: Es el nivel de seguridad de la contraseña. Déjala en Mixed WPA2/WPA -PSK para una mayor seguridad.
WPA/WAPI passphrase: Es la contraseña de la red, pon la que tu estimes conveniente, aunque debe ser como mínimo de 8 caracteres.
WPA/WAPI Encryption: Es la encriptación de la contraseña. Con AES debiese bastar.

Luego le das a Apply/Save al final abajo, y puedes cerrar la ventana. Cabe destacar que todos los dispositivos se desconectarán después de haber cambiado el nombre y/o la contraseña de la red inalámbrica. Así que te toca conectarlos de nuevo con los nuevos parámetros configurados.

Eso es todo, espero que les haya gustado este tutorial, de ser así, te pido que sigas la página de Programador Chasquilla en Google+ para recibir más artículos interesantes. Saludos.

martes, 8 de enero de 2013

[HOWTO] Instalar CentOS 6 en un PC con poca Memoria RAM


Bueno, como parte de mis "Proyectos de Verano" me propuse tomar una vieja torre de un PC de Escritorio que me fue quedando desde hace tiempo, y decidí transformarla en un Servidor Casero. Primero empecé formateando el PC, generando las nuevas particiones y luego instalando CentOS como sistema operativo.

El problema es que mi máquina tenía solo 384MB de RAM, y el instalador no quería ejecutarse debido a que había poca memoria, lo que me parecía raro siendo que los requisitos de memoria de CentOS son mucho menores que eso.

Luego descubrí que por un extraño bug de Anaconda (el script encargado de manejar los paquetes durante la instalación), el sistema no consideraba la memoria SWAP a la hora de hacer la instalación, haciendo que la memoria disponible sea mucho menor que la real.

Por suerte este bug se puede corregir "al vuelo" de la instalación, para ello necesitamos:

  • Un disco LiveCD o LiveDVD de CentOS 6 en adelante.
  • Que la máquina a la cual se le va a instalar CentOS tenga sus particiones ya creadas: Como mínimo una partición de SWAP, y dos particiones ext4 (para el / y el /home).
  • Que la cantidad de memoria disponible (RAM+SWAP) sea mayor o igual a 1GB.
Primero booteamos el LiveCD (o LiveDVD) en modo gráfico (si hay más de 256MB de RAM) o en modo texto (con menos de 256MB de RAM). Luego entramos como usuario root con el siguiente comando desde la terminal:
su -

Luego abrimos en el editor de texto el archivo /usr/sbin/anaconda, en modo gráfico usaremos:
gedit /usr/sbin/anaconda

O en modo consola:
vim /usr/sbin/anaconda

En el archivo /usr/sbin/anaconda buscaremos  la palabra within y modificaremos la función within_available_memory añadiendo la linea return True, quedando así:
def within_available_memory(needed_ram):
    return True
    # kernel binary code estimate that is
    # not reported in MemTotal by /proc/meminfo
    epsilon = 15360 # 15 MB
    return needed_ram < (iutil.memInstalled() + epsilon)

Guardamos el archivo. Con esto eliminamos un requerimiento de memoria absolutamente innecesario (que nadie sabe por qué se puso en el código).

Ahora abrimos el archivo /usr/lib/anaconda/storage/__init__.py, de la misma forma que lo hicimos con el archivo anterior:
gedit /usr/lib/anaconda/storage/__init__.py

O bien:
vim /usr/lib/anaconda/storage/__init__.py

Busca la cuarta ocurrencia de la palabra swapoff y modifica una parte de la función umountFilesystems de:
    for device in devices:
        if not device.format.mountable and \
           (device.format.type != "swap" or swapoff):
           continue

Para que quede como:
    for device in devices:
        if not (device.format.mountable and \
           (device.format.type != "swap" or swapoff)):
           continue

Si no lo ves bien, la idea es poner un paréntesis abierto después de if not y un cierre de paréntesis después de or swapoff. Con esto se debiese eliminar el bug de los requisitos de memoria. Guardamos el archivo. Ahora en la consola introducimos el siguiente comando:
liveinst

Se va a ejecutar el instalador de CentOS, ya no debería haber problemas con la instalación. Se ha probado este método en máquinas virtuales desde 192MB en RAM en adelante, así que ese debiese ser el mínimo para poder instalar CentOS. Espero que hayan disfrutado el HOWTO. ¡Saludos!

Fuente: http://lists.centos.org/pipermail/centos/2011-July/115367.html

lunes, 7 de enero de 2013

[LINK] Webs para aprender C#, Java, PHP y Android


¿Tienes tiempo libre, una conexión a internet y ganas de aprender lenguajes nuevos? Acá encontré 4 webs del mismo autor que te enseñan a programar de una manera didáctica y simple. Tal vez la metodología y la rigurosidad no sean las correctas, pero sí te pueden ayudar si es que ya tienes una base formada en programación.


Saludos!

domingo, 6 de enero de 2013

Bienvenida al Blog


¡Bienvenidos a Programador Chasquilla!

Mi nombre es Daniel Gacitúa y he creado este blog con el objetivo de mostrar tips y tutoriales de temas de la Computación y la Informática (especialmente de Programación). Mi obejtivo es compartir los diferentes conocimientos que voy adquiriendo para que queden registrados acá y sean de su utilidad.

El nombre del blog se debe a los maestros chasquilla, término que se le acuña en Chile a los fontaneros que saben de todo un poco y son capaces de arreglar cualquier desperfecto del hogar. Por lo mismo, me considero un programador chasquilla, ya que me gusta saber de todo un poco de lo que respecta a la Informática.

¡Eso es todo! Disfruten de mi blog, y cualquier duda o sugerencia déjenla en los comentarios.