RouterMaN’s Bloghackergotchi

November 22, 2007

Proxy en Debian Etch: Dansguardian + Squid + Sarg

Filed under: GNU/Linux, Debian, HOWTO

Como el título lo indica, el objetivo de este post es instalar estas 3 aplicaciones y que nos muestre las estadísticas de consumo. Normalmente si instalamos solo Dansguardian y Squid en los logs del squid vemos que las peticiones para loguearse son de la propia máquina. Lo cual es inútil para el Sarg, pues todas las estadísticas serían con localhost. Para arreglar este problema, se debe compilar el squid con el tag “–enable-follow-x-forwarded-for”. Para hacerlo simplemente seguimos los siguientes pasos:

  • Instalamos las dependencias del squid
    • apt-get build-dep squid
  • Descargamos las fuentes del squid
    • cd /usr/src/
      apt-get source squid
  • Modificamos las opciones de compilación
    • vim /usr/src/squid-2.6.5/debian/rules
  • En este archivo, en la parte del configure (linea 141 apróx) aumentamos la opcion:
    • --enable-follow-x-forwarded-for \
  • Editamos el changelog y le ponemos una version superior
    • vim /usr/src/squid-2.6.5/debian/changelog
  • En mi caso la linea queda squid (2.6.5-7) unstable; urgency=high
    (Antes era squid (2.6.5-6) unstable; urgency=high)
  • Ahora creamos el paquete
    • cd /usr/src/squid-2.6.5
      dpkg-buildpackage
  • Instalamos los paquetes generados con dpkg -i. En nuestro caso, estos paquetes son squid y squid-common
  • Una vez instalado los paquetes, configuramos el archivo /etc/squid.conf. Las siguientes lineas deben estar añadidas o descomentadas
    • acl localhost src 127.0.0.1/255.255.255.255
      acl redinterna src 10.1.0.0/255.255.0.0
      acl reddmz src 192.168.214.0/255.255.255.0

      follow_x_forwarded_for allow localhost
      acl_uses_indirect_client on
      log_uses_indirect_client on

      http_access allow localhost
      http_access allow redinterna
      http_access allow reddmz

    Con eso terminamos la configuración del squid. Ahora para el dansguardian y el Sarg los instalamos como cualquier otro paquete en debian, es decir, con apt-get. Debemos indicarle al Dansguardian que mande en la cabecera HTTP al squid, el cliente inicial, para eso activamos el parametro forwardedfor (línea 248 aproximadamente)

  • forwardedfor = on
  • Para el caso del sarg, simplemente se instala, pero debemos tener en cuenta el logrotate, que por defecto está en un día. Debemos cambiarlo para que sea una vez a la semana, así como también aumentar el tamaño máximo del access.log

    August 30, 2007

    RoadWarrior en OpenVPN (Debian Etch)

    Filed under: GNU/Linux, Debian, HOWTO

    Una configuración RoadWarrior es aquella en la cual se tiene una red privada con uno o varios clientes que accesarán a la red como si fueran parte de ella (arquitectura host-to-net). El presente tutorial explica como configurar correctamente el openvpn 2.0.9-4 en un Debian Etch que ya tiene configurado Shorewall. Tomé como base el tutorial de la configuración para CentOS y lo modifiqué de acuerdo a lo que yo quería.

    Primero instalamos el openvpn:

    apt-get install openvpn

    El openvpn viene con un directorio llamado easy-rsa, que tiene scripts bastante útiles para la configuración. Este directorio lo copiamos a /etc/openvpn

    cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn

    Ahora nos vamos a ese directorio recién creado y ejecutamos los siguientes comandos

    . vars
    ./clean-all
    ./build-ca

    Con ellos lo que haremos es:
    * Inicializar variables de ambiente para poder trabajar con los siguientes scripts de shell para generar las variables
    * Inicializamos el directorio de las claves (borrando potenciales archivos viejos)
    * build-ca: procedemos a generar el certificado CA

    Nos pedirá datos sobre la organización. No poner cualquier cosa ya que las preguntas se van a repetir más adelante y debemos estar seguros de lo que habíamos escrito. En Common Name debemos poner cualquier cosa pero ponerla

    Una vez creado el Certificate Authority (CA), creamos la llave del Servidor

    ./build-key-server servidor

    En Common Name ponemos Servidor u otro nombre pero que sea diferente al anterior

    Con este paso se crearon dos archivos (servidor.crt y servidor.key). Estos archivos debemos copiarlos al directorio /etc/openvpn

    Ahora generamos las claves de los clientes. Debemos ejecutar los mismos para cada cliente:

    ./build-key cliente1

    Esto genera los archivos cliente1.key (llave) y cliente1.crt (certificado)

    Creamos los parámetros Diffie-Hellman:

    ./build-dh

    Ahora todos los archivos creados menos los de los clientes deben ser copiados a /etc/openvpn/, es decir ca.crt, ca.key, server.crt, server.key y dh1024.pem

    Ahora pasamos los archivos necesarios a los clientes. Estos archivos son clientex.crt, clientex.key y ca.crt, se los podemos pasar vía sftp o scp, pero siempre tratando de que sea seguro.

    La configuración del servidor la ponemos en /etc/openvpn/server.conf

    port 1194
    proto udp
    dev tun
    persist-tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh1024.pem

    #Direcciones que se asignaran a los
    #clientes, el server es .1
    server 10.1.1.0 255.255.255.0

    ifconfig-pool-persist ipp.txt

    #Ruta para que los clientes alcancen la red local del server (1.0/24)
    push “route 192.168.1.0 255.255.255.0″

    #Para que los clientes se visualicen entre ellos
    #Debe ir junto con la opción routeback en el shorewall
    client-to-client

    keepalive 10 120
    comp-lzo
    user nobody
    group nogroup
    persist-key
    persist-tun
    status openvpn-status.log
    verb 4

    La red local de la VPN es 192.168.1.0/24 y la red de la VPN es 10.1.1.0/24. El usuario remoto, si está detrás de un NAT debe tener una dirección local no perteneciente a la red de la VPN.

    La configuración de los clientes sería así:

    client
    dev tun
    proto udp
    remote host.dominio.com
    float #debido a que la IP de arriba es dinamica
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca “D:\\Archivos de programa\\OpenVPN\\ca.crt” #Tener cuidado con el doble backslash (\\)
    cert “D:\\Archivos de programa\\OpenVPN\\clientx.crt”
    key “D:\\Archivos de programa\\OpenVPN\\clientx.key”
    comp-lzo
    verb 4

    Ahora solo falta inicializar en los clientes, para ello es necesario el siguiente código:

    openvpn –config “ruta_cliente.ovpn”

    En este caso no son necesarios los \\, con uno solo basta.

    Con las líneas de arriba se arma la VPN, ahora solo falta modificar el firewall para que esa nueva interfaz sea procesada y sus paquetes sean aceptados. Uso shorewall como frontend de iptables, y las modificaciones necesarias son las siguientes:
    /etc/shorewall/zones (agregamos la nueva zona llamada road)

    #ZONE TYPE OPTIONS IN OUT
    # OPTIONS OPTIONS
    road ipv4

    /etc/shorewall/interfaces

    #ZONE INTERFACE BROADCAST OPTIONS
    road tun+ detect routeback

    El Broadcast y las opciones se ponen siempre y cuando se pueda accesar desde la red a los usuarios de la VPN

    /etc/shorewall/tunnels

    #TYPE ZONE GATEWAY GATEWAY ZONE
    openvpnserver:1194 net 0.0.0.0/0

    openvpnserver puede ser reemplazado por openvpn, aunque no se recomienda debido a que este último no soporta a clientes detrás de un NAT.

    /etc/shorewall/policy

    #SOURCE DESTINATION POLICY
    road loc ACCEPT

    Aceptamos todo el tráfico proveniente de la VPN

    Reiniciamos el shorewall e iniciamos el openvpn y todo debería funcionar.

    June 28, 2007

    Laptops XO (OLPC) en Perú

    El día Lunes 2 de Julio a las 7 PM en la Escuela de Gerencia Continental (Jr. Junín 355 Miraflores) se llevará a cabo una conferencia sobre las características de estos equipos, la cual está siendo organizada por el PLUG y por el Centro Open Source.

    La charla estará a cargo de Eduardo Silva, quien ha colaborado con el proyecto OLPC desde sus inicios.

    La invitación está hecha, por favor visiten la página oficial del evento

    June 7, 2007

    HOWTO: AjaxTerm en Debian Etch

    Filed under: GNU/Linux, Debian, HOWTO

    AjaxTerm es un terminal basado en web. Está escrito en Python e implementa Ajax en el lado del cliente.

    En Debian se instala como cualquier otro paquete:

    # apt-get install ajaxterm

    Una vez iniciado solo acepta peticiones del mismo equipo (127.0.0.1) al puerto 8022. Sin embargo, el Apache puede actuar de proxy y hacer esa petición por nosotros. Esto lo hacemos con el mod_proxy

    # apt-get install libapache2-mod-proxy-html 

    De todas formas para que el viaje hasta el apache sea cifrado debemos usar SSL. Para esto debemos habilitar el módulo ssl del apache, que viene por defecto pero que no está habilitado, así como también el módulo proxy

    # cd /etc/apache2/mods-enable/
    voip:/etc/apache2/mods-enabled# ln -s ../mods-available/ssl.load ssl.load
    voip:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy.load proxy.load

    Existe otra forma de cargar los módulos en apache, y es con el comando a2enmod. Usamos este comando para añadir los modulos que faltan:

    # a2enmod proxy_connect
    # a2enmod proxy_ftp
    # a2enmod proxy_http

    Ahora lo que falta es crear las llaves válidas, para ello vamos a la carpeta donde estarán los certificados del apache, en este caso /etc/apache2/ssl/. Si no existiera, creamos el directorio con mkdir

     

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

    Con esto ya hemos configurado todo lo referente a lo necesario para el apache. Ahora debemos configurar explicitamente la configuración del Host Virtual. Para esto editamos el archivo /etc/apache2/sites-available/default. Añadimos lo siguiente al final del mismo.

     

    Listen 443
    NameVirtualHost *:443

    <VirtualHost *:443>
            ServerName voip.tumihost.net
            SSLEngine On
            SSLCertificateFile ssl/apache.pem

            # Suppresses the Via header
            ProxyVia Off
            # Do not flood the log
            #CustomLog /var/log/apache2/access.log combined env=!dontlog
            #SetEnvIf Request_URI "^/ajaxterm/u" dontlog

            ProxyRequests Off
            <Proxy *>
                    Order deny,allow
                    Allow from all
            </Proxy>
            ProxyPass /ajaxterm/ http://localhost:8022/
            ProxyPassReverse /ajaxterm/ http://localhost:8022/
    </VirtualHost>

     Y listo!!. Ahora para entrar a la aplicación basta hacer https://servidor/ajaxterm/
    Una vez dentro aceptar el certificado y ya podemos usar el ajaxterm cifrado.

    March 13, 2007

    Linux Week 2007

    Filed under: GNU/Linux, Vida

    Del 19 al 23 de Marzo (la próxima semana), se llevará a cabo una serie de charlas relacionadas al mundo Open Source. Las charlas se han distribuido en 5 áreas. El programa completo es el siguiente:

     Lunes 19 - Developer Day:  Programación con software libre

    1. Validación centralizada usando LDAP y PHP - Ing. Virginia Villanueva - DIA PUCP
    2. Frameworks para PHP - Natali Flores Lafosse - DIA PUCP
    3. Programación Multiplataforma con Qt - Ing. Geffrey Velasquez
    4. Unit Testing, prueba de software - Abner Ballardo
    5. Programación Ruby on Rails - Jose Luis Bernal - Linux IDES

    Martes 20 - Networking Day:  Redes y servicios

    1. Análisis de protocolos con Net Simulator NS2 - Ing. Jose Luis Muñoz - PUCP
    2. Sistema de monitoreo de redes para la RAAP - Ing. Arturo Diaz - GST PUCP
    3. Sistema de VoIP para la RAAP - Ing. Diego Quintana - GST PUCP

    4. Clusters y grids computacionales en redes avanzadas - Ing. Genghis Ríos - DIA PUCP

    Miércoles 21 - Application Day: Experiencias empresariales y educativas

    1. Enseñanza de Linux en los colegios - Ing. Francisco Nájar - INFOPUCP
    2. Nuevos desarrollos hechos por la DIA - Ing. Albert Diaz - DIA PUCP
    3. Moodle como herramienta para e-learning - Ing. Richard Marcelo - DIA PUCP
    4. Módulos Web usando LTSP - Gonzalo Alvarez - Linux IDES PUCP
    5. Certificación Linux Professional Institute - Ing. Hernan Pachas - USMP

    Jueves 22 - Security Day: Seguridad con software libre

    1. Firmas Digitales con GPG - Ing. Flavio Ramirez - PUCP
    2. Seguridad en redes inalámbricas - Oscar Diaz - Grupo GST PUCP
    3. Redes Privadas Virtuales - Aldo Lovera - Grupo GST PUCP

    4. Sistemas de Detección de Intrusos: Snort - Ing. Xavier Sanchez - IBM
    5. Security Programming - Abner Ballardo

    Viernes 23 - Community Day: Comunidades e iniciativas de software libre.

    1. Comunidad Fedora - Ing. Hernan Pachas - USMP
    2. Comunidad OpenOffice - Ing. Hernan Pachas - USMP
    3. Comunidad Asterisk-Peru - Ing. Daniel Pizarro - Infobox
    4. Comunidad Alfa-Redi - Lic. Erick Iriarte - Alfa-Redi
    5. Comunidad Hacklab- Luis Vivero

    En negrita están las exposiciones que estarán a cargo de GST.

    Tal como dice la web de Linux-IDES, "el evento está dirigido principalmente a todo estudiante o investigador que desee encontrar en el software libre una opción para su desarrollo profesional."

    La entrada es libre. Para aquellos que no son miembros de la PUCP, pueden entrar dejando su DNI en la puerta principal. El lugar de las conferencias será el CETAM (croquis aquí).

    Les dejo el afiche oficial del evento.

    Afiche LW2007

    February 22, 2007

    Netbeans 5.5 debianizado

    Filed under: GNU/Linux, Debian, Internet

    Siguiendo las instrucciones que encontré en munckfish.net, hice mi propio paquete  de netbeans en (K)Ubuntu, bueno en realidad lo unico que hice fue seguir exactamente las instrucciones mostradas ahí y cambiar la dependencia al java5 por java 6, y cambiar algunos scripts de instalación. (como por ejemplo añadir las variables de entorno PATH, CLASSPATH a los directorios del java 6).

    En el proceso de debianización, se crean dos paquetes, los cuales son:

    Estos paquetes .deb ya se encuentran colgados en GST.

    November 24, 2006

    Diapositivas 1er Seminario Nacional de Software Libre

    Como lo prometido es deuda, aunque con un poco de retraso cumplo en publicar las diapositivas usadas en el seminario. Estás se encuentran en este link

    La exposición fue dividida en 4 partes y participamos 4 personas:

    El profe Enrique Larios (larios.e[en]pucp.edu.pe) habló sobre las tendencias tecnológicas de las telecomunicaciones con software libre.
    Oscar Díaz (diaz.oa[en]pucp.edu.pe) habló sobre las aplicaciones relacionadas al Networking.
    Yo (dquintana[en]pucp.edu.pe) hablé en la tercera parte sobre las aplicaciones relacionadas a la Telefonía.
    Por último Arturo Díaz (adiazr[en]pucp.edu.pe) habló sobre otras aplicaciones usadas en Telecomunicaciones como clusters, sistemas de monitoreo, etc.

    Esta fue la primera charla de GST como grupo. Anteriormente ya habíamos presentado proyectos a diversos concursos pero no habíamos recibido invitación formal para participar en un evento.

    October 29, 2006

    1er Seminario Nacional y Taller de Aplicaciones en Software Libre

    Cevatec está organizando durante los días 9, 10 y 11 de Noviembre el 1er Seminario Nacional y Taller de Software Libre.

    GST (Grupo de Software para Telecomunicaciones de la PUCP) estará presente con el tema “Aplicaciones del Software Libre en las Telecomunicaciones”. Cuando tengamos todas las diapositivas completas las paso a publicar. La exposición promete y esperamos que el tiempo nos alcance para todo lo que tenemos pensado hacer. En otro post explicaré como hemos estructurado la expo.

    Por otro lado, he dejado un poco de lado mi blog, espero retomarlo de a pocos. Diversos motivos laborales y académicos impidieron su constante actualización. Espero que eso vaya cambiando paulatinamente.

    May 17, 2006

    GWT: Google Web Toolkit

    Leo en Planeta Linux Venezuela el lanzamiento por parte de Google de GWT (Google Web Toolkit), el cual es un framework de Java para hacer aplicaciones web usando AJAX.
    Está hecho pensando en todos los programadores que no saben tanto como se hacen las comunicaciones usando AJAX, sino tiene un enfoque más práctico. Básicamente el GWT genera a partir de clases Java, todo el código HTML y el Javascript necesarios para hacer las aplicaciones.

    Según veo por fin google se acordó de los linuxeros, pues el GWT también está disponible en esta plataforma. Prometo un segundo post probando este framework.

    April 28, 2006

    Debian y Asterisk

    Bueno, siguiendo experimentando con Debian y Asterisk, tuve un pequeño accidente con la distribución Xorcom, la cual desconfiguró por completo mi asterisk.

    No sé que ocurrió exactamente, solo supongo que fue porque me puse a modificar a la mala los archivos de configuración, cuando debí hacerlo a través de la BD. Pensé que era problema de la distribución en sí y volví a instalar pero esta vez un debian sarge, al cual agregue sólo los paquetes necesarios (AMP y asterisk) para que funcionase.

    Ahora estoy probando esta nueva fórmula y me me va bien. El webphone de nuevo está disponible.

    Saludos,






















    Get free blog up and running in minutes with Blogsome | Theme designs available here