Blog

  • Autenticación en lighttpd.

    Hay ciertas webs que uso para administración del servidor web (estadisticas), que no me interesa que sean accesibles por todo el mundo. Para ello, vamos a configurar la autenticación en lighttpd.

    Activamos el módulo:

    lighty-enable-mod auth

    Configuramos el fichero /etc/lighttpd/conf-enabled/10-auth.conf, donde especificaremos que queremos proteger:

    auth.backend = "htdigest"
    auth.backend.htdigest.userfile = "/etc/lighttpd/light.digest.user"
    
    $HTTP["host"] == “estadisticas.dominio.com” {
            auth.require = ( “/” =>
            (
                    “method” => “digest”,
                    “realm” => “Estadisticas de Dominio”,
                    “require” => “valid-user”
            )
            )
    }

    Uso el método de autenticación digest ya que es el mas seguro.

    Auth.require: Entre las comillas indicamos que path protegeremos, si queremos solo un directorio dentro de ese dominio, pondriamos “/directorio”. Yo lo quiero protegerlo entero, por lo que pongo “/”.
    method: El método de autenticación.
    realm: Una cadena de texto que se le mostrara al usuario cuando pida la contraseña, además de ser utilizada para calcular el hash.

    Una vez configurada la autenticación, generamos una contraseña para un usuario valido:

    echo -n "Usuario:Estadisticas de Dominio:Clave"|md5sum|cut -b -32

    La cadena de texto resultante la metemos en /etc/lighttpd/light.digest.user:

    vim /etc/lighttpd/light.digest.user

    Usuario:Estadisticas de Dominio:6fdc0056d71b7dafc31520ec0f4ea617

    Podemos resumir los dos pasos anteriores en uno solo:
    echo "Usuario:Estadisticas de Dominio:`echo -n "Usuario:Estadisticas de Dominio:Clave"|md5sum|cut -b -32`" >> /etc/lighttpd/light.digest.user

    Reiniciamos el lighttpd.

    /etc/init.d/lighttpd restart

    Y al ir a la url http://estadisticas.dominio.com, nos debería de pedir usuario y contraseña.

    Información recogida de esta web.

  • Proteger carpetas con .htaccess y .htpasswd

    Aprende a proteger directorios de tu página web mediante archivos .htaccess de una forma sencilla. Algunos paneles de control tienen la opción integrada, pero nunca está de más saber hacerlo manualmente. Sobre todo porque así es más extendible.

    Conociendo a .htaccess y .htpasswd

    Así se llaman los dos archivos más importantes para modificar cosas en nuestro servidor. No tienen ni extensión ni nombre, simplemente son así. Contienen texto plano, por lo que pueden ser editados con el Bloc de Notas, el Programmers Notepad, Gedit, nano, wim, … cualquier cosa que trabajo con texto plano (Word NO) El archivo .htaccess además de para proteger carpetas, sirve entre otras cosas para utilizarlo con el mod_rewrite de Apache y nos salgan urls cortas, como la de este tutorial. En esta ocasión, .htaccess establecerá el tipo de permiso necesario y qué usuarios pueden acceder a qué archivos, mientras que .htpasswd guardará el nombre de usuario y contraseña de cada uno de ellos.

    .htaccess

    Este archivo lo colocaremos en la carpeta que queremos proteger. Editemos el .htaccess con algo similar a :

    AuthUserFile /ruta/absoluta/hacia/.htpasswd
    AuthName AquiPuedesPonerLoQueQuieras
    AuthType Basic
    
    require user test123

    Veamos línea a línea

    AuthUserFile /ruta/absoluta/hacia/.htpasswd 

    Le tenemos que indicar la ruta absoluta (del servidor) hacia nuestro archivo .htpasswd, por norma general el archivo de contraseñas se pone fuera del alcance de la web, es decir, fuera de la carpeta public_html o similar, como por ejemplo «/home/usuario/.htaccess».

    Recuerden: Dejen siempre el archivo .htpasswd fuera del alcance público, en caso de que eso no sea posible, cambienle el nombre por algo del estilo .aSf5cHJ9D. No evitarás que puedan descubrir tus usuarios y contraseñas, pero le pones el camino bastante más dificil.

    AuthName AquiPuedesPonerLoQueQuieras

    Muestra el nombre del sitio, te aparecerá una ventanita preguntando el nombre de usuario y contraseña con un mensaje similar a «Está intentando entrar a AquiPuedesPonerLoQueQuieras, debe especificar un nombre de usuario y contraseña». Da exactamente igual lo que pongas, no tiene un efecto sobre el nombre real de la carpeta o archivos.

    AuthType Basic

    Indica que el tipo de autentificación es básico.

    require user test123

    Indica que el único usuario que puede entrar es test123, cualquier otro -aunque la contraseña sea correcta- no será válido.
    Tenemos variaciones de esa línea como por ejemplo :

    require user test123 otrousuario unusuariomas

    Donde especificar 2, 3 o más usuarios. Tambien tenemos :

    require valid-user

    Donde podrán entrar todos los usuarios especificados en el archivo .htaccess (u otro nombre si así lo indicaste en la primera línea).

    Podemos incluso proteger sólo algunos archivos de la manera :

    AuthUserFile /ruta/absoluta/hacia/.htpasswd
    AuthName AquiPuedesPonerLoQueQuieras
    AuthType Basic
    
    <Files "miwebporno.html">
     Require valid-user
    </Files>
    
    <Files "misvideosxxx.html">
     Require user test123
    </Files>

    Como ven admite mucho juego.

    .htpasswd

    Me referiré a .htpasswd como el nombre del archivo, pero como ya dije anteriormente, si no lo pueden esconder de la vista pública, al menos cámbienle el nombre.

    Este archivo contiene una lista de nombres de usuario y contraseñas, en formato usuario:contraseña y cada nombre-clave en una línea independiente, por ejemplo :

    test123:12JvVkeJRgm8A
    otrousuario:$1$UNHEaBiV$NzwYQ8NhjzIOUmFyfGyrO/

    Como ven, la contraseña está encriptada, por lo general con una variación del algoritmo MD5 realizada por Apache.

    Si disponemos de un servidor apache en local o acceso SSH a nuestro servidor web, podemos ejecutar el comando htpasswd para que nos cree el archivo, o nos devuelva la cadena en la misma consola :

    htpasswd -nb usuario contraseña

    Esta línea imprimirá en consola la cadena a agregar (manualmente) a nuestro archivo .htpasswd

    htpasswd -cb .htpasswd usuario contraseña

    Esta otra escribirá en el .htpasswd la cadena corespondiente. La documentación del comando htpasswd es corta pero bastante interesante.

    Puedes consultar el original en esta web.

    Nota:

    Puede ser, cómo ha sido mi caso que vuestro apache ignore los ficheros configurados anteriormente. La solución viene dada porque por motivos de seguridad una directiva de nuestro apache venga deshabilitada por defecto. Para corregir esto primero editamos el archivo a continuacion /etc/httpd/conf/httpd.conf.

    El siguiente paso es agregar el siguiente texto al archivo que indica que en la carpeta donde tenemos el archivo .htaccess quedara activado de la siguiente manera

    <Directory /var/www/html/directorio_de_nuestro_web>
    AllowOverride All
    </Directory>

    con esto habilitamos AllowOverride que normalmente biene con el valor none.

  • Desmitificando Postfix

    Artículo aparecido en la revista TuxInfo nº 19.

    En este tutorial, se tratará de instalar postfix con courier imap, y un
    repositorio ldap, para las consultas. Se generará un repositorio LDAP, con
    contenedores para usuarios, y agenda de direcciones, para ser usado con el
    Squirrelmail. Puntualmente, yo usaré una versión de Squirrelmail modificada,
    llamada Squirrelmail Outlook, que le da una visión muy parecida a la del
    Outlook Web Access (OWA).

    A la vez, lo que se buscará con este tutorial, es sentar las bases de
    funcionamiento de un servidor Postfix con LDAP, y webmail. Estas mismas
    bases serán las que necesitaremos para entender cómo funciona Zimbra, una
    poderosa solución de correo electrónico, que explicaremos en un futuro
    artículo.

    Lo primero que haremos, es instalar el postfix.
    root@marcelo:/home/marcelo# apt­get install postfix
    smtpd_banner = Mailserver de Ejemplo
    biff = no
    home_mailbox=Maildir/
    #[1] esto no va, pero es mostrar que escogemos maildir
    append_dot_mydomain = no
    myhostname = webmail.ejemplo.com.ar
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = webmail.ejemplo.com.ar,ejemplo.com.ar
    relayhost =
    mynetworks = 127.0.0.0/8, 192.168.1.0/24
    mailbox_command =
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all

    Luego, lo configuraremos, para que el tipo de buzón que reciba, sea Maildir, para que
    nuestro hostname, sea ejemplo.com, y para que las redes que permita relay, sean las
    192.168.0.1/24, y la red de la placa local, 127.0.0.1/8

    (más…)

  • Configuración de Time Machine (Mac os x) en un NAS no soportado nativamente

    Algunos de nosotros disponemos de dispositivos Network Attached Storage (NAS) y nos parece que el Time Capsule de Apple es demasiado caro. Esta guía te ayudará a activar Time Machine en cualquier dispositivo NAS permitiendo la funcionalidad de un Time Capsule con el hardware de tu elección.

    1. Prepara tu NAS. Asegurate que es totalmente funcional. Esta miniguia asume que tienes un disco duro NAS que funciona perfectamente y que sabes cómo configurarlo.
    2. Es deseable que asignes una dirección IP estática a tu NAS. Comprueba tu router y las guia de configuración del NAS para hacer esto.
    3. En OS X, abre un Terminal y teclea el siguiente comando para permitir que Time Machine funcione con tu NAS: defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
    4. Sal de la sesión y logéate de nuevo. No es necesario reiniciar tu máquina.
    5. Time Machine salva los backups en un formato específico y usaremos un «sparsebundle» para hacer esto. El nombre de sparsebundle name consiste en tu NombreOrdenador_DireccionMAC.sparsebundle.
    6. Para encontrar la dirección MAC de la tarjeta de red interna Ethernet teclearemos ifconfig en0 | grep ether | sed s/://g | sed s/ether// en una consola. Este comando nos devolverá una linea de salidad con la direccón MAC de nuestra tarjeta Ethernet en un formato de 14 números hexadecimales (letras y número, por ejemplo, 001ec4b8f9b3). 
Incluso si los backups los hacemos usando un interfaz de red distinta (por ejemplo AirPort: normalmente en1), el sistema usará la dirección MAC de en0 como parte del identificador del sistema.
    7. Hacemos una nuevo “sparsebundle” en el disco local (NO en el disco del Time Machine!). Este sparsebundle es una imagen de un sistema de ficheros virtual el cual copiaremos al NAS, y Time Machine accederá a él remotamente. Por defecto los sparsebundles pueden crecer hasta llenar el NAS, pero en este escenario como tenemos otras cosas en el NAS limitaremos el tamaño del sparsebundle a 70 GB. Introduzca el siguiente comando en el Terminal:
      sudo hdiutil create -size 70g -type SPARSEBUNDLE -nospotlight -volname «Backup of My Mac» -fs «Case-sensitive Journaled HFS+» -verbose ./Computername_MACaddress. Esto creará un sparse-bundle de 70 GB como sensible a mayúsculas-minúsculas, del tipo journaled HFS+ sin indexación de spotlight. Sustituye las variables en rojo por los nombres apropiados a tu sistema. Computername_MACaddress puede ser en la forma de “Ordenador-de-Miguel_001ec4b8f9b3
    8. Logúeate en tu NAS y crea una cuenta de usuario (Por ejemplo, “TimeMachine”). Puedes asignar quotas de disco si lo necesitas.
    9. En tu NAS, crea una carpeta compartida (por ejemplo, “TimeMachine”). Añade la cuenta del usuario anterior que creaste en el paso 8 y dále permisos de lectura-escritura sobre esta carpeta.
    10. En el Finder, sitúate en el menú Ir>Connectarse al Servidor. En la dirección del servidor, teclea smb://TimeMachine@ip-address-of-nas/TimeMachine. Pulsa Connect y cuando te pregunte, introduce la clave y sálvala en el anillo de claves.
    11. Ahora copia localmente el sparsebundle creado anteriormente a la compartición TimeMachine. Si no cambiaste la carpeta cuando introdujiste el comando para crear el sparsebundle, lo puedes encontrar en tu carpeta de usuario (/Users/nombreusuario).
    12. En tu NAS, comprueba que el fichero se ha copiado correctamente a la cuenta del usuario.
    13. Abre las preferencia de Time Machine, selecciona tu “TimeMachine”-carpeta como destino deseado y el backup comenzará.
    14. Nota: Para el primer backup es recomendable conectar via LAN, y obtendrás una velocidad de 10-30MB/sec.
    15. Si tu NAS te lo permite, puedes ocutar la carpeta TimeMachine para no verla en la lista de comparticiones de la red.

    Espero que les sea de ayuda.

    Traducción del original

  • Montar FTP o SFTP como una unidad en Windows

    Problema
    Necesidad de montar carpetas desde un hosting web  sobre sftp (ssh) en tu máquina Windows.

    Discusión
    Actualmente no hay aplicaciones sencillas que me permitan montar una conexión SFTP como una unidad en Windows. Sin embargo, existen aplicación como NetDrive (NetDrive_SETUP) o FTPDrive que permiten montar una conexión FTP como una unidad. Necesitaremos entonces crear un puente FTP sobre SFTP. ¿Qué significa esto? Crear un proxy FTP para tu conexión SFTP. Esto permitirá enviar comandos al servidor FTP sobre una conexión SFTP. Hay varias herramientas que van a satisfacer nuestras necesidades. Entre ellas usaremos la creada por Bitvise: Tunnelier.

    Solución

    1. Instale NetDrive
    2. Una vez instalado, ábralo y cree un Nuevo Sitio
    3. Teclee localhost en el nombre del sitio
    4. Teclee localhost en la IP del sitio (hay que recordar que el tunel debe ya estar habilitado)
    5. Teclee 21 en el puerto
    6. Seleccione FTP para el puerto
    7. Seleccione una letra para la Unidad
    8. Teclee la clave y contraseña de la cuenta ftp en el servidor remoto
    9. Pulse en Save
    10. Pulse en Connect
    11. Pulse la X para cerrar la ventana (se minimizará en la barra del sistema)

    ¡Ya lo tenemos! Una conexión SSH/SFTP como una unidad de Windows.

  • CONEXION VPN FACIL CON PPTPD

    Con la herramienta PPTPD es una forma muy sencilla y fácil de crear VPN para la comunicación entre máquinas de ka oficina a equipo remoto. Por medio de PPTPD podremos conectarnos a la red privada para poder obtener algunos recursos de la red local.

    1) Lo que tenemos que hacer es instalar el servicio de PPTPD en nuestra distribución preferida.

    —- debian/ubuntu y derivados
    ascariote:# apt-get install pptpd

    —- RHEL/Centos/Fedora y derivados
    root@ascariote:~$ yum install pptpd

    2) Ya teniendo instalado los paquetes tendremos que hacer las siguientes configuraciones para que nuestro servicio funcione sin problemas.

    Tendremos que configurar el siguiente archivo
    ascariote:# vim /etc/ppp/options.pptpd

    Debe contener los siguientes parámetros:
    name pptpd
    refuse-pap
    refuse-chap
    refuse-mschap
    require-mschap-v2
    require-mppe-128
    lock
    nodefaultroute
    nobsdcomp
    novj
    novjccomp
    nologfd
    ms-dns 208.67.222.222
    ms-dns 208.67.220.220

    3) Ahora configuraremos otro parámetros del PPTPD, en el cual indicaremos la IP que tiene el servidor y reservamos una cantidad de IP que se ocuparan para el servicio PPTPD.
    ascariote:# vim /etc/pptpd.conf

    localip 192.168.5.1
    remoteip 192.168.5.234-240

    4) Deberemos agregar las cuentas de usuarios que se van a conectar a la VPN, para esto tendremos configurar el siguiente archivo.
    ascariote:# vim /etc/ppp/chap-secrets

    En este archivo tendremos que agregar los usuarios, el protocolo a utilizar, contraseña y también podremos asignarle una IP estática

    # Secrets for authentication using CHAP

    # client server secret IP addresses
    clientlpt pptpd 123456 192.168.5.236
    djtux pptpd qwerty *
    moy pptpd 54321 192.168.5.238
    lptpruebas pptpd qwerty12 192.168.5.240

    5) Solo queda iniciar el servicio de PPTPD

    ascariote:# /etc/init.d/pptpd restart

    6) Clientes PPTPD.

    Para clientes de S.O GNU/Linux
    —- debian/ubuntu/derivados
    lucifer:# apt-get install network-manager-pptp

    —- RHEL/Centos/Fedora y derivados
    root@mantis:~# yum install NetworkManager-pptp

    Para clientes del S.O Windows, ya viene agregado solamente tendremos que hacer la conexión desde el asistente de conexión a red e indicarle que es una red del tipo VPN.

    Original tomado de Linux para Todos.

  • Tunelizando con Tunnelier

    q-logoLa empresa bitvise tiene una excelente programa Tunnelier que te permitirá hacer tunneling de varios puertos o incluso crear una compartición de directorios de equipos remotos.

    Este programa crea un fichero de configuración con los parámetros ya configurados. Para mis necesidades muestro aquí el fichero que he utilizado para solucionar un caso práctico.

    Las características de esta configuracion tunnelier consiste en:

    1. Redireccionamiento del puerto 3306 (mysql) de un equipo local XP a un servidor remoto.

    2. Utilización de una tarjeta de bucle local para acceder a unas carpetas compartidas en un servidor remoto.

    El programa lo puedes descargar desde la página web de la empresa bitvise o bien localmente desde aquí.

  • Securing Windows File Sharing With SSH

    q-logo

    En bitvise se puede encontrar una solución profesional a un problema bastante interesante. Compartir en equipos windows carpetas de servidores ssh remotos (o locales) a través del protocolo ssh. Esta técnica, llamada tuneling, sirve además para redireccionar otros servicios (mysql) a otras máquinas remotas pero centrándonos en que la conexión sea seguro.  A continuación transcrivo los pasos a seguir. El artículo original lo podeis encontrar en la página de bitvise.

    Tunneling Windows file shares is useful if you want to comfortably access files on a Windows machine that is only accessible via SSH, and you don’t want to use SFTP or SCP.

    To tunnel Windows file shares over an SSH connection, you need to forward connections on port 139 on the sharing-consumer machine via SSH to the sharing-provider machine. The exact setup differs depending on the version of Windows on the sharing-consumer machine:

    • Windows 2000: configure the SSH client to listen on interface 127.0.0.2 and connect to ‘127.0.0.2sharename’. This is all that is necessary.
    • Windows XP: same as for Windows 2000, but before using the forwarded share, the local (client’s) Windows file sharing server needs to be stopped via ‘net stop server’. To disable it permanently, run ‘sc config lanmanserver start= disabled’. To re-enable it at a later time, run ‘sc config lanmanserver start= auto’. Note the space between ‘start= ‘ and the following parameter – sc will fail without it.

    (más…)

  • Loopback Adapter file share tunneling: XP, 2003

    The following instructions document how the Microsoft Loopback Adapter can be installed and configured for use with file share tunneling on Windows XP and 2003:

    1. Installing the Loopback Adapter:
      1. Open Start, Control Panel, Add Hardware.
      2. Click Next on the introduction dialog box.
      3. Select ‘Yes, I have already connected the hardware’ and click Next.
      4. Scroll to the bottom of the list of hardware, select ‘Add a new hardware device’, then click Next.
      5. Select ‘Install the hardware that I manually select from a list (Advanced)’, then click Next.
      6. Select ‘Network adapters’, then click Next.
      7. Select ‘Microsoft’ as the manufacturer, select ‘Microsoft Loopback Adapter’ as the adapter, then click Next.
      8. Click Next to confim the installation.
      9. Click Finish to complete the installation.
    2. Configure the newly created adapter:
      1. Open Start, Control Panel, Network Connections.
      2. Select the newly created connection (should be named ‘Local Area Connection N’, where N is its order number).
      3. Right click on the selected connection and choose Properties from the menu.
      4. Confirm that ‘Microsoft Loopback Adapter’ (or ‘Microsoft Loopback Adapter #N’) is displayed in the ‘Connect Using:’ field. If it isn’t, return to step 2 and retry properties for another adapter.
      5. Uncheck (disable) everything except ‘Internet Protocol (TCP/IP)’.
      6. Select ‘Internet Protocol (TCP/IP)’, then click Properties to open ‘Internet Protocol (TCP/IP) Properties’.
      7. Select ‘Use the following IP address:’ and fill in the ‘IP address:’ and ‘Subnet mask:’ fields (e.g. 10.10.10.10, 255.255.255.0).
      8. Click Advanced to open ‘Advanced TCP/IP Settings’.
      9. Switch to WINS and select ‘Disable NetBIOS over TCP/IP’.
      10. Click OK to close ‘Advanced TCP/IP Settings’.
      11. Click OK to close the ‘Internet Protocol (TCP/IP) Properties’.
      12. Optionally (on XP only) uncheck (disable) ‘Notify me when this connection has limited or no conectivity’ to remove the connection warning icon from the system notification area.
      13. Click OK to close the connection properties.

    If you later want to uninstall the Microsoft Loopback Adapter (once it is not needed any more for the forwarding of a Windows file share), you can uninstall it using Control Panel > System > Hardware > Device Manager.

  • Sobre distros…

    Hace tiempo que deseaba escribir algo que no fuera puramente técnico. Esta vez quiero expresar una opinión personal que es casi una opinión política. Pero aún así me gustaria reflejarla.

    En España tenemos un esquema territorial bastante curioso basado en Comunidades Autónomas. Para mí este sistema es antinatural y antieuropeo. Me explico: en Europa todos los paises queremos unirnos, tener cosas en común, libre mercado, libre tránsito, etc. Pues en España «queremos» justamente lo contrario: separarnos, tener distintos idiomas que nos impidan la integración, distintos derechos, distinta sanidad, distinta educación. Pues eso: el mundo al revés.

    Este enfoque, llevado al mundo Linux sigue un enfoque igual: si tenemos 17 comunidades autónomas tendremos 17 distribuciones linux diferentes. Los esfuerzos hechos por una comunidad para tener una distribución Linux avanzada, la tienen que volver a hacer el resto de comunidades para sacar una distribución del mismo nivel.

    Y digo yo: no sería mejor colaborar, unir esfuerzos para tener una distribución común, si este es el deseo. Esto se podria traspolar a nivel mundial aunque me conformaría que esta unión se produjera a nivel nacional. Con esto se conseguiría, bajo mi opinión, tener una distribución mejor, con menos esfuerzo y que nos uniera en lugar de separarnos.

    Como dije al principio, esto es mi opinión personal, habrá muchos enfoques distintos a los que respeto aunque no comparta. Espero que mi humilde opinión sea igualmente respetada.