Siloco

Just another WordPress weblog

Archive for July, 2008


Es impresionante que este tan escondida la forma de añadir YouTube al motor de búsqueda de google. No esta por defecto ni en la pagina oficial de addons.mozilla.org.

Realmente es muy simple añadirlo: Solo hay que hacer click aquí: Motor de busqueda de YouTube y permitirlo

Fundamental configurar la tecla de acceso rápido para mas comodidad.

Esta palabra clave que hemos configurado es la que se usa en los atajos de búsquedas. Esto es fundamental para todo buen usuario de firefox. Supón que vamos a buscar “kobe beef” en youtube. La forma mas eficiente es pulsar “ctrl + L” para ir a la barra de direcciónes y pulsar: yt kobe beef

Ya podemos empezar a usarlo.
Este motor ha sido creado y es conservado por: Syphen.org

Edito: Lo que he puesto arriba se ha quedado un poco desfasado con los años.  Ahora es mas frecuente usar la extensión oficial. Pincha aquí.

Todo administrador sabe que el principal agujero de seguridad son los propios usuarios. Para mejorar la seguridad en la transferencia de archivos en un servidor linux se usa mucho lo siguiente: crear usuarios con shell restringido a scp o a sftp con rssh.

El ftp común es un aujero de seguridad para el servidor y para la privacidad del usuario. El scp o el sftp son mucho mas seguros. Por defecto los usuarios que usan estos programas tienen cuenta de usuario en el servidor, incluso shell. Para  ahorrarnos preocupaciones vamos a restringir el usuario con rssh creando una jaula chroot donde solo estarán los programas justos.

Para automatizar el proceso de estos usuarios creé un simple script en bash (llamarlo script quizá es demasiado, no se programar demasiado… pero funciona). El script crea el usuario, sus carpetas, sus archivos necesarios y sus permisos y restricciones. Para que funcione el script es necesario una distribución linux, yo usé debian estable, además de conexión a Internet. Os recomiendo, ya que no es un programa sino una secuencia de comandos,que la primera vez que lo uséis ejecutéis linea por linea los comandos para comprobar que no hay ningún error.

Aqui esta el script comentado. Este texto habría que copiarlo a un archivo de texto y permitir su ejcucion con un chmod +x.

#Tenemos que tener instalado el ssh y el rssh.
#apt-get install ssh rssh

#Asignamos a la variable user el texto  que sigue al comando que
#ejecutemos en consola. Por ejemplo, si ejecutamos:
#$crearrssh medianero , User=medianero

user=$1

#Si es la primera vez que usamos esto hay que añadir el rssh a los
#shells y esta bien mirar la configuración del rssh para configurar
#a nuestro gusto.
# Desde /etc/rssh podemos configurar los protocolos que va a permitir
#el rssh.
#echo /usr/bin/rssh >> /etc/shells
#vi /etc/rssh.conf
# No se estoy seguro de que esto sea completamente necesario.
#Si no funciona correctamente el rssh probais a descomentarlo.
#La primera vez tambien se editan las opciones del syslog,
# comprobamos que esta bien y se reinicia.
#echo " # SYSLOGD_OPTIONS="-m 0 -a /users/dev/log" " >> /etc/default/syslogd
#vi /etc/default/syslogd
#/etc/init.d/sysklogd restart

#Creamos el user, modificamos su shell para caparlo y le añadimos
#la contraseña.
#En esta parte el script nos pide datos y contraseña

useradd $user
usermod -s /usr/bin/rssh $user
passwd $user

#Creamos las carpetas necesarias para el "chroot". También añado
#publico y privado, que seran la carpetas poseídas por el usuario:
#El -p se usa para crear una carpeta, incluso sus carpetas raices
#si no las tiene.

mkdir -p /www/$user/{dev,etc,lib,lib64,usr,bin,publico,privado}
mkdir -p /www/$user/usr/bin
mkdir -p /www/$user/usr/lib/rssh
mkdir -p /www/$user/usr/lib/openssh

#Hacemos dueño al user de sus carpetas:

chown $user:www-data /www/$user/publico
chown $user:www-data /www/$user/privado

#creamos el null, necesario para que funcionen el rssh y el sftp
mknod -m 666 /www/$user/dev/null c 1 3

#Copiamos algunas configuraciones. Con cuidado de no copiar
#información vital al chroot del usuario porque podrá verla.
cd /www/$user/etc
cp /etc/ld.so.cache .
cp -ar /etc/ld.so.conf.d/ .
cp /etc/ld.so.conf .
cp /etc/nsswitch.conf .
cp /etc/hosts .
cp /etc/resolv.conf .
cat /etc/passwd | grep $user >>  /www/$user/etc/passwd
cat /etc/group  | grep $user >>  /www/$user/etc/group

# Copiamos los binarios:
cd /www/$user/
cp /usr/bin/scp usr/bin
cp /usr/bin/rssh usr/bin
cp /usr/bin/sftp usr/bin
cp /usr/lib/rssh/rssh_chroot_helper usr/lib/rssh
cp /usr/lib/sftp-server usr/lib
cp /usr/lib/openssh/sftp-server usr/lib/openssh

#Copiamos las dependencias de los programas anteriores en el chroot.
#Al hacer esto a mano con ldd y cp es fácil equivocarse.
#Para automatizarlo usamos el l2chroot, que copia todas las librerías
#dependientes automáticamente. Lo descargamos de la siguiente web y
#le damos permisos de ejecución:
#wget -O l2chroot http://www.cyberciti.biz/files/lighttpd/l2chroot.txt
#chmod +x l2chroot

#Para hacer el script mas rápido, copie el l2chroot a una carpeta del disco.
cp /home/siloco/l2chroot .
chmod +x l2chroot

#En el l2chroot hay que editar la ruta donde se van a añadir los archivos.
# Tener cuidado que es fácil equivocarse o saltarse este paso.
vi l2chroot

./l2chroot /usr/bin/scp
./l2chroot /usr/bin/rssh
./l2chroot /usr/bin/sftp
./l2chroot /usr/lib/sftp-server

#Ahora añadimos el usuario restringido a la lista del rssh.
#Con esta linea permitimos el scp y el sftp
echo user=$user:022:00011:/www/$user >>  /etc/rssh.conf

#Reiniciamos el demonio rssh para comprobar que todo esta bien:
/etc/init.d/ssh restart

Para probarlo intentamos conectar por ssh:

ssh  siloco@localhost

This account is restricted by rssh.
Allowed commands: scp sftp

If you believe this is in error, please contact your system administrator.

Connection to localhost closed.

Por sftp:

sftp siloco@localhost
Connecting to localhost…
siloco@localhost’s password:
sftp>

FUNCIONA!!!!
Despues de esto podéis configurar los permisos de los nuevos archivos como queráis para permitir el acceso al grupo www-data.

Este script puede ser diferente en cada maquina, distribución y configuración. No lo ejecutes si no sabes lo que significa cada linea.

Si teneis algun problema, preguntarlo en comentarios.
Un saludo!
Mas info:
http://www.frikis.org/staticpages/index.php?page=sftp-server
http://linux.die.net/man/5/rssh.conf
http://gentoo-wiki.com/HOWTO_SFTP_Server_(chrooted,_without_shell)