Categoría: Administración

  • Comandos útiles (I)

    Listas todos los puertos abiertos junto con los programas que escuchan:

    lsof -i -P | grep -i «listen»

     

  • Zeya, comparte tu música

    Zeya es un media player que permite ofrecer tu música a cualquier ordenador a través de un navegador web.
    El cliente corre en cualquier navegador que soporte el formato HTML 5 — no se necesita Flash, ni Silverlight, ni applets, ni plugins, ni programas externos.
    Zeya es software libre. Se puede usar bajo los términos de la licencia GNU Affero GPL, v.3 o.

    Requerimientos del servidor:

    * Python 2.5+ (2.6+ recommended)
    * oggenc
    * mpg123 (optional— for decoding MP3 files)
    * flac (optional— for decoding FLAC files)

    Instalar y ejecutar zeya

    Zeya puede facilmente instalarse ejecutando el comando en Applicaciones->Accesorios->Terminal

    sudo aptitude install zeya

    Entonces se inicia Zeya y empieza a servir toda la música del directorio dado:

    zeya --path path/to/your/music

    Por ejemplo, para servir toda la musica del directorio ~/Music:

    zeya --path ~/Music/

    Ahora, puedes obtener la musica en cualquier ordenador visitando la dirección del servidor http://ServerIPAddress:8080 con cualquier navegador.
    Si quieres cambiar el puerto del servidor, añade el parámetro –port al comando:

    zeya –port=9000 –path ~/Music/
    Original traducido desde ubuntuguide

  • Túnel SSH

    ¿Qué es un túnel SSH?
    Un túnel SSH es una conexión SSH que transforma un puerto X en tu equipo, en el puerto Y de otra máquina, pasando por una tercera.

    ¿Se entiende?
    Es probable que no, así que me explicaré con detalles.

    Una conexión “tradicional”, es cuando quiero acceder a un cierto servicio en otra máquina, y me conecto directamente a ella. Tal como se muestra en la imagen a continuación.

    Pero, ¿qué pasa cuando aún necesito conectarme a esa máquina, pero por alguna razón ya no puedo conectarme directamente?

    En este caso, lo que se hace es usar un tunel SSH.

    • Flechas Azules: Conexiones que si son posibles realizar.
    • Flecha Verde: Túnel SSH. Conexión al otro equipo, pasando por el equipo que puede conectarse.
    • Flecha Roja: Conexión en un puerto local, equivale a la conexión de la flecha roja de la imagen anterior.

    ¿Y como funciona?

    $ ssh -L <puerto local>:<el otro equipo>:<puerto en el otro equipo> <equipo que puede conectarse> -l <usuario para el equipo que puede conectarse>

    Por ejemplo, el servidor de Tareas (carretas.inf.utfsm.cl) del LabComp está restringido para ser accesado solo desde las IP’s del DI. Para conectarme a éste seria algo así como:

    $ ssh -L 6666:carretas:22 ssh2.inf.utfsm.cl -l rcovarru

    En el ejemplo, se podría haber omitido el -l rcovarru, ya que el usuario de mi equipo es exactamente igual.
    Además, como ven, al nombre del servidor de tareas no se le agregó el dominio, eso es solo el equipo al que me estoy conectado (ssh2) también pertenece al mismo dominio.

    Ok, pero ese comando extraño, ¿Qué hace?
    Transforma el puerto 6666 de mi equipo, en el puerto 22 (puerto de ssh) de carretas.

    Esto significa, que ahora me podré conectar “directamente” a carretas por el túnel, con:

    $ ssh -p 6666 localhost -l usuario-en-carretas

    Mientras que la conexión SSH esté viva, el túnel se mantendrá igual.

    Esto, funciona para cualquier tipo de puerto, no solo para comunicarse por ssh. Si quieren conectar, por ejemplo, al servidor postgresql de carretas, el tunel debería ser:

    $ ssh -L 6666:carretas:5432 ssh2.inf.utfsm.cl -l rcovarru

    Y luego, la conexión de psql deberia ser algo así como:

    $ psql -p 6666 -h localhost dbname pguser

    Bonito, ¿verdad?

    Entrada original de Renato Covarrubias-Romero

  • Variables de entorno en Linux

    Al configurar programas, tales como Netbeans, Intellij Idea, Groovy, necesitamos especificar varias variables de entorno. Dichas variables las tenemos que controlar a través del fichero .bash.bashrc que puede estar situado en el directorio home del usuario o bien heredarse del mismo fichero en /etc.

    Las variables normales que se suelen configurar son:

    export JAVA_HOME=/usr/lib/jvm/java-6-sun

    export JDK_HOME=/usr/lib/jvm/java-6-sun

    export GROOVY_HOME=/home/miguel/groovy-1.7.0

    PATH=$PATH:$JAVA_HOME/bin:$GROOVY_HOME/bin
    export PATH

    java -version

    groovyc -version

  • Servidor NFS bajo Ubuntu

    NFS es un sistema de archivos distribuido para un entorno de red de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. A continuación se detalla la configuración del cliente y del servidor.

    Configuración en el servidor

    Los paquetes necesarios para el funcionamiento del servidor son portmap, nfs-kernel-server y nfs-common. Para la descarga de los mismos ejecutaremos los siguientes comandos:

    root@mi_equipo:~# aptitude install portmap

    root@mi_equipo:~# aptitude install nfs-kernel-server

    root@mi_equipo:~# aptitude install nfs-common

    Para la configuración de un servidor de NFS se necesitan editar tres ficheros: /etc/exports, /etc/hosts.deny y /etc/hosts.allow.

    (más…)

  • 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.

  • 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.

  • Convertir de Ext3 a Ext4

    Antes de empezar es importante tener una version del kernel actualizada o usar Ubuntu jaunty jackalope.

    Para convertir un existente sistema de ficheros ext3 a ext4 emplearemos el siguiente comando:

    $ tune2fs -O extents,uninit_bg,dir_index /dev/nuestro_sistema_de_archivos

    Donde nuestro_sistema_de_archivos es la ruta donde tenemos instalado el sistema. Por ejemplo si lo tenemos montado en /dev/sdb1 ejecutariamos (nota: previamente habras de desmontar la unidad):

    $ tune2fs -O extents,uninit_bg,dir_index /dev/sdb1

    Despues tenemos que pasar fsck al sistema de archivos:

    $ fsck -pf /dev/sdb1

    pasar fsck es necesario o Ext4 no montara el sistema de archivos. Este fsck se utiliza para devolver el sistema de archivos a un estado consistente.

    Ahora puedes montar la unidad pero eligiendo como tipo de sistema Ext4:

    $ mount -t ext4 /dev/tusistemadearchivos /punto_de_montaje

    O aun mejor, editar el fichero /etc/fstab cambiando “ext3″ por “ext4″. Nota: el Grub no lanza particiones en Ext4 así que si vas a convertir tu /boot o / (que contiene a boot) y es la particion de arranque, a Ext4 deberás utilizar grub2 en lugar de grub.
    En este caso, tambien tienes que añadir la entrada de sistema:  ’rootfs=ext4′ al /boot/grub/menu.lst

    Tomado de Ubuntu Life

  • Cómo usar una cuenta de Gmail como relay desde la consola

    terminal

    Normalmente, no necesitamos configurar un servidor de correo bajo Linux para trabajar con el escritorio. La mayoria de los programas clientes de mail (tales como Thunderbird) soportan configuraciones de cuentas POP3 de Gmail y IMAP. Pero, ¿cómo enviar correo a través de consola o mediante un shell script? Programas tales como sendmail / postfix / exim se pueden configurar como un smarthost de gmail pero esto es demasiado largo para usarlo para este fin.

    Para usar gmail como un smart host para enviar mensajes desde Linux / UNIX en un escritorio necesitamos usar un programa muy sencillo llamado ssmtp. Este programa acepta un stream de correo en la entrada standard con destinos especificados desde la linea de comandos y sincronamente, enviará el mensaje al agente de transferencia de mail. Los mensajes fallidos son colocados en dead.letter en el directorio home del usuario.

    Instalar ssmtp

    Teclee el siguiente comando bajo CentOS / RHEL / Red Hat / Fedora Linux:
    # yum install ssmtp
    Teclee el siguiente comando bajo Debian / Ubuntu Linux:
    # apt-get update && apt-get install ssmtp

    Configurar gmail como un smarthost

    Abra /etc/ssmtp/ssmtp.conf, introduciendo:
    # vi /etc/ssmtp/ssmtp.conf
    Actualice el fichero con los datos de su cuenta de gmail:

    AuthUser=xxxxxx@gmail.com
    AuthPass=Your-Gmail-Password
    FromLineOverride=YES
    mailhub=smtp.gmail.com:587
    UseSTARTTLS=YES

    Además,asegúrese de deshabilitar Sendmail:
    # service sendmail stop
    # chkconfig sendmail off
    # mkdir /root/.bakup
    # mv /usr/sbin/sendmail /root/.bakup
    # ln -s /usr/local/ssmtp/sbin/ssmtp /usr/sbin/sendmail

    Ahora, pueden usar los comandos mail / mailx para enviar mensajes. Puedes escribir un shell script para hacer backup de tus fichero y enviar un correo electrónico a continuación. Puedes testear los cambios anteriores usando la siguiente sintaxis:
    $ echo "This is a test" | mail -s "Test" [email protected]

    Una nota sobre sSMTP

    sSMTP trabaja bien para sistema de escritorio, pero no es un reemplazo para Sendmail / Postfix / Exim / Qmail para usarlo en un entorno de un servidor de email. Este software es perfecto para usar en un sistema de un usuario simple.

    Traducción hecha de nixCraft