Siloco

Just another WordPress weblog

Archive for the ‘Conocimiento’ Category


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)

Estimado Navegante. Si has llegado hasta aquí ya conocerás los beneficios que tiene un permalink adecuado (un mal ejemplo) así que al grano. Vamos a ver que problemas pueden surgir al activarlo.

Supongamos un Apache 1.3 sobre Linux. Por defecto, al activar los permalinks en Wordpress las direcciones apuntan a un Not Found o error 404. No es problema de Wordpress, sino de la configuración del server. Vamos a ver que cosas hay que comprobar:

¿Existe el .htaccess?

En alguna carpeta madre (mejor en la raíz) del Wordpress debe existir un archivo .htaccess

¿Wordpress puede escribirlo?

El usuario que corra el apache debe tener permiso de escritura sobre el archivo .htaccess. Por defecto el archivo tiene una configuración 644 podemos ampliarla a 664 como en mi caso para que el grupo tenga permiso de escritura o a 666 si sabemos lo que hacemos.

chmod 664 /ruta/.htaccess

Si wordpress tiene permiso sobre el archivo habrá añadido el siguiente código:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Si no quieres dar mas persisos de los necesarios puedes dejarlo como solo lectura y añardir el codigo a mano. Esto es lo mas recomendable.

¿Apache lee el .htaccess?

Si lo anterior no funciona hay que comprobar que el htaccess se emplea realmente.
En la configuración del apache (/etc/apache/httpd.conf) debe aparecer la directiva:

AllowOverride All

Si se usan VirtualHost es mejor ponerlo dentro del host, asi:

<VirtualHost *>

DocumentRoot /ruta/siloco

ServerName siloco.es

<Directory /ruta/siloco>

AllowOverride all

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Después de esto hacemos:

#Apachectl configtest (si todo OK:)

# Apachectl restart

¿Tienes activado el mod_rewrite?

Si todo lo anterior no funciona debes comprobar que el modulo mod_rewrite esta activo. En la configuración del apache tendrás que descomentar la siguiente línea o añadirla si no la encuentras:

LoadModule rewrite_module modules/mod_rewrite.so

Es facil que el modulo ya este cargado y nos de una advertencia como esta:
[warn] module rewrite_module is already loaded, skipping

Si no, repetimos el:

#Apachectl configtest
# Apachectl restart

¿Es un “canonicalization problem”?

Hay 4 formas de entrar a un post, con o sin las www y con o sin la ultima barra ” / “. Si de alguna de estas formas falla tienes un canonicalization problem, puedes seguir a Adseok para arreglarlo. En las ultimas versiones de Wordpress este problema ya esta arreglado.

Puedes confundir este problema con otro de la configuracion de apache. Si el virtual host solo reconoce el dominio sin las www (si solo tienes una linea en httpd.conf que ponga ServerName siloco.es) debes añadir el alias con las www:

ServerAlias www.siloco.es

Ya debería funcionar bien después de todo esto. No os preocupéis por los enlaces antiguos. Se redirigen automáticamente.

Creo que he repasado los problemas mas frecuentes que se pueden tener, el mio fue sobre el AllowOverride. Si habéis tenido mas problemas, comentarlos por favor.

Fuentes:

My digital life

tensaiweb.info

Como aprender ingles

Posted on: 15, Jun

Supongo que el ingles se ha ido integrando en las culturas de todo el mundo poco a poco. Ya todo el mundo usa “Inglesismos” y los niños estudian ingles a la vez que aprenden a escribir. Muchos ya dicen que los idiomas pequeños están destinados a desaparecer y que el ingles sea el estándar en el lenguaje del futuro. Así que cuanto antes lo dominemos mas puertas tendremos abiertas.

No voy a entrar en demagogias de motivación, esfuerzo, trabajo constante, etc. Esto ya lo doy por supuesto. Al grano.

Recordando los tiempos de la escuela

Después de años de aprendizaje forzado en la escuela ya se tiene suficiente base gramatical y el vocabulario justo para empezar un aprendizaje freelance. Para asegurarse de que se tiene esta base esta bien darse una vuelta por la mansión del ingles donde hay excelentes repasos de gramática, vocabulario y mucho mas.

Si queremos repasar lo básico podemos cotillear un rato por Mango languages tiene un sistema de aprendizaje natural que se hace efectivo a base de reiterar vocabulario y estructuras gramaticales. Lo triste de esta pagina es que se vuelve de pago cuando le coges el gusto. Típico. De todas formas el sistema es mas útil y económico que un profesor desmotivado..

Mejorar la base

Para reforzar la base un buen comienzo es seguir algún blog en ingles de un tema que te guste o leer algún libro enfocado en los estudiantes de ingles. Cuando estemos en alguna pagina inglesa podemos evitarnos el tiempo de búsqueda en diccionarios con lingro. Lingro va a resolvernos la búsqueda de una palabra con solo un clic haciendo la lectura mas cómoda.

Para no perder el interés y recibir excelentes consejos profesionales os recomiendo añadir a vuestro feed el blog del ingles. Es un blog de una profesora de ingles bilingüe que nos ayudará a mejorar nuestro ingles y nos motivará semana tras semana. También reiterará la importancia que tiene fijarse en los detalles, es decir, pensar en el sentido y la razón de todas las palabras y estructuras que nos encontramos. Requiere bastante esfuerzo pero es imprescindible.

Otro metodo curioso, curioso, el ingles en 1000 palabras que anuncian en la radio. No parece suficiente pero se presupone al menos necesario conocer las palabras que mas se usan en el idioma. El mismo recurso lo tenemos ampliado y más económico en inet: 3000 Most Commonly Used Words in the English Language

Mejorar el listening

Tras años de esfuerzo viendo mis series preferidas en ingles subtitulado, me fije en que me solía abstraer en los subtítulos en español e ignorar el audio. Luego intente verlas con subtítulos en ingles, de esta forma aunque te fuerzas a entender el ingles necesitas mucho tiempo pausando el video o buscando en diccionarios. Me sentía casi frustrado. Hasta que conocí Yappr.com.

Yappr.com

Yappr.com es la pagina que siempre he querido hacer si hubiera diseñado una seria así…que fácil es decir esto ahora. En Yappr vemos vídeos en ingles con subtítulos en ingles y en español. Podemos repetir una frase si no la hemos pillado y si el ingles es muy rápido o difícil de entender podemos reproducirlo es velocidad lenta. Probarlo, en unos minutos estaréis enganchados.

Otra buena practica es escuchar vaughan radio , esta radio esta dedicada exclusivamente al aprendizaje del ingles para todos los niveles. Ademas viene de perlas para ocupar los ratos muertos del autobús o la bici.

Mejorar la escritura

Para los que van para nota esta pagina es perfecta, listen-and-write. En esta web tendremos que hacer dictados al mas puro estilo E.G.B. Puede resultar tedioso si no se tiene un poco de paciencia pero es muy útil para pulir las faltas y reforzar los conocimientos.

Mas recursos

En este post de Mimetist tenéis un montón de recursos e ideas que seguro os son útiles: howto aprender ingles de una vez por todas