Archive for the ‘Configuracion’ Category

Compartiendo mi conexión…

November 3rd, 2008

Al fin Juan Carlos y yo nos sentamos hacer un trabajo que desde hace tiempo teníamos pendiente y era el hecho que compartir mi conexión a internet por razones obvia (chulear mi conex), actualmente me conecto mediante un Modem CDU 680 CMOTECH.
Explicando un poco que vamos hacer la idea es que cualquier persona tenga conexión a internet ya sea mediante mi interfaz de Red o Inalambrica, estas opciones son validas de acuerdo el caso que se presente pero focalizando el escenario que tengo y es que el modem CDU se conecta a mi PC mediante USB, es decir cuando establezco la conexión tengo interfaz PPP, la idea es que mi PC sea el gateway de las maquinas que se van a conectar.
Los intrumentos que necesitamos es un cable de red directo, NO cruzado y es por hecho que en distribuciones Linux automaticamente este cable se vuelve cruzado por software, hagamos la prueba para comprobar esto que les digo :-).
Conectemos ambas PC’s una vez que tengamos la dirección IP 169.254.xxx.xxx, asignemos direcciones IP a estos computadores:

PC-1
root# ifconfig eth0 192.168.0.2
PC-2
root# ifconfig eth0 192.168.0.3
root# route add default gw 192.168.0.2

Una vez hecho esto hacemos ping de computador a computador para comprobar que existe conectividad.
Ping desde el PC-2 hacia el PC-1
root# ping 192.168.0.2
Debemos obtener una salida como esta:
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.031 ms

Esto simplemente para que se vea que no necesitamos un cable cruzado :-), ahora vamos a la parte interesante en esta primera seccion lo haremos que nuestra PC-2 se conecte a internet mediante la interfaz de Red utilizando como gateway la PC-1, para esto utilizaremos brctl para crear un puente (bridge) esto lo haremos de la siguiente manera, todos estos pasos se haran en la PC-1:
root# brctl addbr br0
donde br0 es un nombre que le damos, puede ser cualquiera, una vez hecho esto levantamos este bridge, que finge como “interfaz”.
root# ifconfig br0 up
root# brctl addif br0 eth0

Le damos una dirección IP al bridge br0
root# ifconfig br0 192.168.0.2
Agregamos las siguientes reglas en el Iptables
root# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
root# iptables -A INPUT -p TCP -m state –state RELATED -j ACCEPT
root# echo 1 > /proc/sys/net/ipv4/ip_forward

NOTA: debemos detener el network-manager de la PC-1, ya que este tumba la puerta de enlace y por ende a pesar que de se este conectado por la interfaz ppp0 la PC nunca se “entera” que esta conectada.
root# /etc/init.d/network-manager stop
La configuración de la PC-2 ya tiene la dirección IP asignada (192.168.0.3) solo debemos agregar los dns, en este caso utilice los de cantv 200.44.32.12, una vez hecho esto en la PC-2 podemos intentar navegar, ya sea abriendo un navegador o haciendo ping.
root# ping www.google.com
PING www.l.google.com (74.125.95.103) 56(84) bytes of data.
64 bytes from iw-in-f103.google.com (74.125.95.103): icmp_seq=1 ttl=241 time=269 ms
64 bytes from iw-in-f103.google.com (74.125.95.103): icmp_seq=2 ttl=241 time=279 ms
64 bytes from iw-in-f103.google.com (74.125.95.103): icmp_seq=3 ttl=241 time=261 ms

Como vemos ya tenemos conectividad hacia internet mediante la PC-1 utilizando la interfaz de red, ahora lo hacemos utilizando la tarjeta inalambrica de ambos computadores, para esto quitamos el cable de Red para evitar problemas.
En la PC-1 colocamos la tarjeta inalambrica en mode ad-hoc y añadimos la interfaz inalambrica por lo general wlan0 al brctl.
root# iwconfig wlan0 essid "CaChi" mode ad-hoc channel 11
root# brctl addif br0 wlan0

Ahora solo queda conectarse desde cualquier otra maquina hacia la PC-1 de la misma manera, es decir modo ad-hoc y por el canal (channel) 11 y por supuesto colocar los DNS correspondiente, en nuestro caso se colocó los de CANTV 200.44.32.12.
Con esto mis panas de la Universidad y demás, podrán “chulearme” la conexión :-) ahora solo faltaría un QoS.

Posted in Configuracion, Debian, Planeta Linux | Comments (0)

Instalando Xdebug en Debian Lenny.

April 8th, 2008

Saludos siguiendo en la tónica de las buenas prácticas de desarrollo esta vez les traigo un How To sobre Xdebug, esta es una herramienta que desde la encontré me ha sido de gran ayuda al momento de detectar cuellos de botellas y profiling en la aplicaciones que suelo desarrollar sean pequeñas o grandes (En PHP), como valor agregado que en lo personal encontrado en esta extensión es la posibilidad de entender estructura de algunos framework interesante (Tomates, Kumbia, Symfoni, otros), si alguna vez haz trabajado con FireBug sabras de lo que hablo.

Para la instalación de esta extensión lo haremos sencillo con PEAR/PECL entremos a una consola.

# pecl install xdebug

Una vez instalado este paquete vemos el infophp para verificar que la extensión se halla cargada correctamente.

screenshot.png

Si esto se muestra todo anda bien, ahora falta configurar xdebug para que nos genere los archivos con la información del debugging y profiling, esta información que muestro fue tomada del blog de Jesus Lara donde aparte de hablar de la configuración de este archivo explica la herramienta.

NOTA: donde realizo un cambio es en donde se muestra la ruta donde se instalo xdebug.so.

Configurando xdebug

Para la activación de xdebug he creado un archivo (dentro del directorio conf.d de php5) llamado xdebug.ini que contendrá las instrucciones para activar la extensión y activar de una vez el profiling.

como root:

>touch /etc/php5/conf.d/xdebug.ini

luego, agregamos:

>vim /etc/php5/conf.d/xdebug.ini

zend_extension_ts=”/usr/lib/php5/20060613+lfs/xdebug.so”

[xdebug]
xdebug.profiler_enable=1
xdebug.profiler_output_dir=/tmp/php5/profiler

donde fijense que la ruta es donde phpize envía mis extensiones (en este caso, xdebug.so)

Agrego adicionalmente una sección xdebug (se agradece mantener ordenado los archivos ini) y activar “profiler_enable” (1 lo activa, 0 lo desactiva) e indicar la ruta (especificada por profiler_output_dir) donde se ha de crear el archivo de profiling.

guardamos:

:wq!

y reiniciamos nuestro apache:

>/etc/init.d/apache2 restart

Ya con esto todo lo que ejecutemos de manera local nos genera un archivo con el debugging solo nos queda visualizar los estos archivos, pero antes debemos instalar Kcachegrinf, para hacer esto como es Debian :) ejecutamos.

#aptitude install kcachegrind

Listo ahora si buscamos los archivos en la ruta indicada en /tmp/php5/profiler

Falta instalar un paquete para que imágenes como esta se generen.

screenshot-1.png

Este es el paquete particularmente en mis repositorios no estaban si quieren pueden hacer la prueba.

#aptitude search graphviz

Si encuentran algo excelente si no les dejo el enlace donde lo puede descargar y posterior instalar con:

#dpkg -i ruta_donde_guardo/graphviz_2.16.1-3_i386.deb

Con esto ya podemos comenzar visualizar las imágenes que se muestra arriba.

Posted in Configuracion, Debian, Linux | Comments (1)

Configurando CDU-680.

March 17th, 2008

Ya encontré una forma mas elegante de configurar mi modem CDU-680 ya que en el articulo anterior menciono que tuve un problema para que mi sistema operativo (Debian Lenny) reconociera el dispositivo como /dev/ttyACM0, la solución al problema lo encontré ejecutando un pequeño programa que viene junto con el modem específicamente lo que hice fue lo siguiente:

Copie el archivo ejecutable itfchg al directorio /usr/bin para tenerlo global en mi sistema y no tener la necesidad de desplazarme a ningun directorio para ejecutarlo.

#cp donde_este_itfchg/itfchg /usr/bin
#./itfchg /dev/sdb

/dev/sdb es el nombre con el que se monta el dispositivo inicialmente ya que el mismo se comporta como una unidad de almacenamiento (pendrive), posterior a ejecutar el programa podemos verificar que ya se reconoció el dispositivo como nos interesa.

# ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2008-03-17 16:24 /dev/ttyACM0

una vez hecho esto solo nos queda ejecutar:

#pon cantv.net

NOTA: el programa itfchg viene con el modem.

Posted in Configuracion, Debian | Comments (36)

Modem EvDO CDU-680 en Debian Lenny.

February 27th, 2008

Hoy les traigo un How To bien sencillo para aquellas personas que están interesadas en adquirir un Modem EvDO CMOTECH CDU-680 que lo comercializa movilnet o que simplemente ya lo adquirieron, la idea es configurar este dispositivo en una distribución Debian Lenny y Etch aunque esta también debe funcionar en cualquiera de los sabores de Ubuntu.

CDU-680-kit

La conexión se va a configurar con pppconfig en caso que no lo tengas instalado, simplemente ejecuta sobre tu consola.

#aptitude install pppconfig

Conectado el dispositivo a la PC ejecutamos verificamos que exista como el modem en nuestro sistema, esto lo hacemos verificando /dev/ttyACM0 si este se encuentra todo esta bien, de lo contrario necesitaras copiar la carpeta que dice Linux en el directorio que mas te guste lees un momento las instrucciones y haces los cambios que ahí explican, luego desde una consola ejecutas el binario que dice ./connect este comando te mostrara una traza como esta.

680d interface changer-1.0.1
Find CMOTECH CDM680 at scsi 2
Command:: ./itfchg /dev/sdb
Command:: ./itfchg /dev/sdc
Need read/write permissions for /dev/sdc .
--> CDU680DORA Linux Connection generic\n
Modem Port Scan<*1>: S0   S1   S2   S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- MANUFACTURER: C-MOTECH Co., Ltd.
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
cdu680config: Can't open 'cdu680config' for reading: No such file or directory
cdu680config: ...starting with blank configuration.
ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
--> Dialing...\n
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Configuration does not specify a valid login name.
--> Configuration does not specify a valid password.

Una vez este mensaje simplemente presionamos Ctrl + C para finalizar la ejecución del programa, la ejecucion de este programa solo me sirvio para que mi sistema me reconociera el dispositivo como /dev/ttyACM0 una vez verificado que ahora si existe el dispositivo, ejecutamos.

# pppconfig

Nos muestra una pantalla como esta para crear nuestra conexión (presionar enter).

img1

Colocamos el nombre de la conexión para efecto del how to la llamaremos cantv, esta puede tener el nombre que les guste.

Nombre Conexion

Configuración de los DNS, lo vamos a colocar dinámicos.

DNS

El método de autenticacion lo colocamos PAP.

Configuracion del Nombre de Usuario, aqui colocamos el que asigna movilnet ej. xxxx@cantv.net donde xxxx es el numero que fue asignado SIN el 0416.

Contraseña no hay mucho que decir. :)

Velocidad de la conexion la dejamos por defecto en 115200.

Tipo de marcado lo colocamos en tono.

Configuración del numero de marcado para nosotros #777.

Configuración del dispositivo aquí es la importancia de lo que se hablo al principio /dev/ttyACM0

Todo hecho deberiamos obtener una pantalla como esta.

Una vez finalizada la configuración de la conexión de ppp nos corresponde establecer la conexión o activar toda la configuración que hicimos, como lo hacemos? sencillo ejecutemos desde nuestro terminal.

#pon cantv

donde cantv es el nombre que le dimos al momento de iniciar nuestra configuración en caso que le hallamos dado otro nombre simplemente colócalo, si al momento de ejecutar ese comando no te muestra ningún mensaje, error o algo parecido todo esta bien verifica la luz del modem y si esta encendida una de color azul significa que ya estamos conectado para verificar nuestra dirección IP.

#ifconfig ppp0 up
#ifconfig

Con este ultimo comando nos lista la interfaces presente, buscamos la que dice ppp0 y nos muestra la dirección IP, ya podemos abrir iceweasel y a navegar.

Posted in Configuracion, Debian | Comments (18)

Instalando Apache + SSL + Subversion + WebDAV + WebSVN en Ubuntu Server.

February 11th, 2008

El propósito en este artículo es explicar una opción para configurar Apache2, Múltiples repositorios con Subversión, Acceso a los repositorio mediante WebDav y OpenSSL en Ubuntu Server (Casi un Debian).

Como siempre menciono en los artículo en lo que el tema de configuración trata, esta configuración fue la que me funcionó de acuerdo a la experiencia al momento de configurar los servicios que a lo largo de este How To se mencionan, si alguien tiene alguna sugerencia, critica, etc. para mejorar esta configuración será bien recibida.

Por favor no corte y pgue todo lo que se escribe ejecute los comando y lea las instrucciones antes de hacer algo.

Habrá momento de la configuración que no me detendré a explicar asumiendo que son cosas sencillas y se deben manejar.

Lo primero que haremos es instalar los siguientes paquetes.
El Servidor Web Apache.

#aptitude install apache2

Instalamos Subversión y el modulo de apache de este Sistema de Control de Versiones.

#aptitude install subversión
#aptitude install libapache2-svn

Ya con estos paquetes instalados podemos crear repositorios para ilustrar el how to crearemos dos repositorios en el directorio que mejor nos parezca en mi caso los cree en /var/svn/.

Creamos el directorio svn

#mkdir /var/svn/

Y ahora creamos los repositorios.

#svnadmin create /var/svn/web1
#svnadmin create /var/svn/web2

Donde web1 y web2 son nuestros repositorios, para no tener problema de permisos con apache le asignare los permisos necesarios, para hacer esto le asignaré el directorio donde se encuentran nuestros repositorios (/var/svn/) y todo lo que este ahí adentro al usuario de apache (www-data), ejecutando el siguiente comando.

#chown -R www-data:www-data /var/svn/*

Ahora colocaremos un archivo en el directorio que mas les guste para que nos sirva como data de prueba en nuestro repositorio web1 con la finalidad que el mismo este haciendo el trabajo.

#echo “Test Repositorio” > /tmp/test.txt

Subimos este archivo al repositorio y verificamos que el mismo este el repositorio, para referencia sobre los comando de svn pueden consultar aquí.

#svn import –m “Import inicial del repositorio web1” \
/tmp/ svn+ssh://127.0.0.1/var/svn/web1
#svnlook tree /var/svn/web1

Hacemos un checkout del repositorio y lo guardaremos en el directorio checkout.

#svn co svn+ssh://127.0.0.1/var/svn/web1 checkout

Si verificamos que contiene este directorio el mismo deberá contener el archivo test.txt

#ls –l checkout

Hasta aquí hemos configurado el Subversión, ahora corresponde hacer la configuración al WebDav de Subversión el cual nos va a permitir acceder al repositorio mediante apache.
Para esto cargamos los siguientes módulos.

#a2enmod dav
#a2enmod dav_svn

Una vez cargados estos módulos creamos el ficheros de acceso.

#htpasswd –c /etc/apache/svn.passwd user1
#htpasswd  /etc/apache/svn.passwd user2

Algo importante al momento de crear este fichero se puede observar en el comando de arriba que la primera línea tiene la opción –c esto se hace solamente cuando creamos por primeras el fichero si colocamos esta opción ya creado el fichero simplemente borrara los usuarios que estén creados.

ditamos el archivo /etc/apache2/mods-available/dav_svn.conf, en este archivo indicamos donde se encuentra nuestro repositorio vamos a configurar web1 para los demás repositorios el lo mismo, el url que se encargara de atender la petición, el fichero de acceso (svn.passwd) y el tipo de autenticación.

Este es archivo deberá quedar así:

10
11
12
13
14
15
16
<location>
    DAV svn
    SVNPath /var/svn/web1
    AuthName “Subversion Repositorio web1”
    AuthUserFile /etc/apache2/svn.passwd
    Require valid-user
</location>

Recargamos la configuración de apache

#/etc/init.d/apache2 force-reload

Nos queda probar si esta funcionando Subversión, para esto abrimos nuestro navegador y colocamos http://localhost/svn/web1, nos debe solicitar usuario y clave, estos datos fueron los que se colocaron al momento de crear el fichero svn.passwd. Una vez autenticado podremos ver el archivo test.txt que subimos inicialmente, de la misma forma podremos hacer checkout del repositorio colocando la misma url.

http://localhost/svn/web1 checkout

Esta es una vista muy básica del repositorio mediante una interfaz web para mejorar esta presentación vamos a instalar websvn y enscript este paquete nos muestra el código fuente coloreado de acuerdo al lenguaje que se utilice, pero ante debemos instalar php ya que websvn esta hecho en php.

#aptitude install php5
#aptitude install websvn

dejo una imagen que muestra al momento de configurar websvn.

config2websvn.png

#aptitude install enscript

Con esto si volvemos a colocar en el navegador http://localhost/svn/web1 debe mostrarse más amigable el contenido del repositorio.

El siguiente paso es configurar el SSL, para efecto del How to yo coloco la configuración del SSL para todo el sitio esto significa que escucha por el puerto 80 en caso que ustedes desean ponerlo por otro puerto simplemente sustituyan 80 por por el puerto que ustedes prefieran normalmente se coloca en el puerto 443.

Lo primero que haremos es generar nuestro Certificado Digital.

#openssl req $@ -new -x509 -days 365 -nodes -out \
/etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem

Al ejecutar ese comando le solicitara cierta información que debe colocar.
Una vez generado el certificado editamos el archivo /etc/apache2/sites-available/default y debera quedar algo como este.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
NameVirtualHost *:80
<virtualhost>
   ServerAdmin admin@ser.com
   DocumentRoot /var/www/
   SSLEngine on
   SSLCertificateFile /etc/apache2/ssl/apache.pem
   LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
 
   <directory>
      Options FollowSymLinks
      AllowOverride All
   </directory>
 
   <location>
      Options FollowSymLinks
      order allow,deny
      allow from all
      AuthType Basic
      AuthName "Subversion Repository"
      Require valid-user
      AuthUserFile /etc/apache2/svn.passwd
   </location>
 
   <directory>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
      RedirectMatch ^/$ /principal/
   </directory>
 
   ServerSignature On
</virtualhost>

Volvemos a cargar la configuración de nuestro servidor web.

#/etc/init.d/apache2 force-reload

Solo nos queda ingresar a nuestro sitio vía https. https://localhost/

Si quieren probar toda esta configuración pero en la web y no de manera local pueden consultar Servidor Web con Dirección IP dinamica.

De esta manera a quedado configurado nuestro servidor de manera segura, espero les sirva esta configración.

Enlaces con los cuales me apoye al momento de hacer la configuración.

http://blog.odonnell.nu/32.html

http://www.reviewingit.com/index.php/content/view/62/1/

Posted in Configuracion, Debian, Linux | Comments (1)