CHROOT y Seguridad - Un script chroot para ftp

2 - Un script chroot para ftp

[editar]
Tutorial creado por Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=533
27 de Octubre de 2005
En general es muy mala política que un ISP proporcione cuentas Shell, a menos que sea masoquista };-), pero frecuentemente sí se dan cuentas FTP con el fin de que los usuarios actualicen sus web, etc. Aunque no es imprescindible, suele ser buena política que se configure el servidor FTP para que haga un CHROOT y un SETUID tras el "login".

Por tanto en la cuenta del usuario se necesitará, al menos, el comando "LS" y las librerías dinámicas que éste use. Es conveniente crear un fichero "passwd" y otro "group" con valores no reales (se pueden hasta poner vacíos) con el fin de que el LS nos dé un listado coherente y no tenga que esperar a un "timeout" hasta que se entera de que no existen.

A continuación incluyo el script que utilizamos en ARGO a la hora de abrir nuevas cuentas de usuario. Debe ejecutarse como "root" y desde el directorio raíz del usuario, cuyo último segmento debe coincidir con el "login" del usuario. Por ejemplo, para "jcea", podría ser "/export/home/usuarios/a/jcea". Válido para máquinas Solaris.

#! /bin/sh
# Instala todos los directorios y ficheros necesarios dentro de
# una cuenta de usuario para que pueda utilizar el FTP restringido
# y así actualizar sus páginas WEB sin tener que depender de nosotros.
#
# Jcea - Jesús Cea Avión
# Versión 1, Revisión 1 - 05 Feb 97
#
# ATENCION
#
# Este script debe ser invocado desde la cuenta del usuario, ya que
# instala todo en el directorio actual.
#
#
origen="/export/home/ftp/anonimo"
usuario=`pwd | awk -F/ '{print $NF}'`
echo El directorio fuente de la configuración es $origen
echo El nombre de usuario es $usuario
echo
umask 666
temp=`pwd`
echo Creando estructura de directorios en $temp
ln $origen/../actualizar_web ./actualizar_web
mkdir dev
mkdir usr
mkdir etc
mkdir usr/bin
mkdir usr/lib
ln -s usr/bin bin
lib=$origen/usr/lib
cd usr/lib
temp=`pwd`
echo Creando enlaces a las librerías compartidas en $temp
ln $lib/ld.so.1 ld.so.1
ln $lib/libc.so.1 libc.so.1
ln $lib/libdl.so.1 libdl.so.1
ln $lib/libintl.so.1 libintl.so.1
ln $lib/libnsl.so.1 libnsl.so.1
ln $lib/libsocket.so.1 libsocket.so.1
ln $lib/libw.so.1 libw.so.1
ln $lib/nss_dns.so.1 nss_dns.so.1
ln $lib/nss_files.so.1 nss_files.so.1
ln $lib/nss_nis.so.1 nss_nis.so.1
ln $lib/nss_nisplus.so.1 nss_nisplus.so.1
ln $lib/straddr.so.2 straddr.so.2
bin=$origen/usr/bin
cd ../bin
temp=`pwd`
echo Creando enlace a \"/bin/ls\" en $temp
ln $bin/ls ls
cd ../../etc
temp=`pwd`
umask 133
echo Creando "passwd" y "group" fantasma en $temp
cp /dev/null passwd
cp /dev/null group
dev=$origen/dev
cd ../dev
temp=`pwd`
echo Creando enlaces a dispositivos en $temp
ln $dev/tcp tcp
ln $dev/ticotsord ticotsord
ln $dev/udp udp
ln $dev/zero zero
cd ..
temp=`pwd`
echo Creando directorio raíz de páginas WEB en $temp
echo Cambiando su propietario y grupo
umask 066
mkdir publico
chown $usuario publico
chgrp usuarios publico
echo
echo ¡¡FIN!!
[editar]

Sé el primero en opinar


Tutoriales relacionados con 'CHROOT y Seguridad'

CHROOT es una llamada al sistema en UNIX que permite configurar un directorio como "raíz"... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Instalación y configuración de Postfix, Courier y MySQL para operar juntos y conseguir un completo... Más »
Las páginas que estás viendo están alojadas en mi propio servidor (IP 217. 126.10.173), que... Más »
Este documento describe los pasos y el software necesarios para crear un servidor de IRC... Más »

Autor y licencia de 'CHROOT y Seguridad'


Tutorial de Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=533 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.