sftpd (Very Secure FTP Daemon) es un equipamiento lógico utilizado para implementar servidores de archivos a través del protocolo FTP. Se distingue principalmente porque sus valores predeterminados son muy seguros, y por su sencillez en la configuración, comparado con otras alternativas como ProFTPD, y Wu-ftpd. Actualmente se presume que vsftpd podría ser quizá el servidor FTP más seguro del mundo.
Accedemos a /usr/local/src/
rokitoh@red-orbita:/# cd /usr/local/src/Descargamos Vsftpd
rokitoh@red-rbita: /usr/local/src/# wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gzDescomprimimos
rokitoh@red-orbita: /usr/local/src/# tar xvf vsftpd-2.3.4.tar.gzAccedemos al directorio.
rokitoh@red-orbita: /usr/local/src/# cd vsftpd-2.3.4instalamos!
rokitoh@red-orbita:/vsftpd-2.3.4# make
rokitoh@red-orbita:/vsftpd-2.3.4# make install
if [ -x /usr/local/sbin ]; then \
install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
elif [ -x /usr/share/man ]; then \
install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
else \
install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
install -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; ficomprobamos que está instalado.
rokitoh@red-orbita:/vsftpd-2.3.4# ls -l /usr/local/sbin/vsftpd
-rwxr-xr-x 1 root staff 107440 nov 23 23:32 /usr/local/sbin/vsftpdCopiamos el fichero de configuración a /etc
rokitoh@red-orbita:/vsftpd-2.3.4# cp vsftpd.conf /etcConfigurar vsftpd
rokitoh@red-orbita:/vsftpd-2.3.4# vi /etc/vsftpd.confParámetro anonymous_enable.
Se utiliza para definir si se permitirán los accesos anónimos al servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera.
anonymous_enable=NOParámetro local_enable
Es particularmente interesante si se combina con la función de jaula (chroot). Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca como valor YES o NO de acuerdo a lo que se requiera.
local_enable=noParámetro write_enable.
Establece si se permite el mandato write (escritura) en el servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera.
write_enable=YESParámetro ftpd_banner.
Este parámetro sirve para establecer el banner que será mostrado cada vez que un usuario acceda al servidor.
ftpd_banner= Bienvenido al servidor de Red-Orbita.es, ten cuidado con lo que tocas.Parámetro anon_max_rate.
Se utiliza para limitar la tasa de transferencia en bytes por segundo para los usuarios anónimos, algo sumamente útil en servidores FTP de acceso público. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios anónimos:
anon_max_rate=5120Parámetro local_max_rate.
Hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios lorales:
local_max_rate=5120Parámetro max_clients.
Establece el número máximo de clientes que podrán acceder simultáneamente hacia el servidor FTP. En el siguiente ejemplo se limitará el acceso a 5 clientes simultáneos.
max_clients=5Parámetro max_per_ip.
Establece el número máximo de conexiones que se pueden realizar desde una misma dirección IP. Tome en cuenta que algunas redes acceden a través de un servidor proxy o puerta de enlace y debido a esto podrían quedar bloqueados innecesariamente algunos accesos. en el siguiente ejemplo se limita el número de conexiones por IP simultáneas a 5.
max_per_ip=5Parámetro xferlog_enable
Establece si queremos guardar los LOG’S (por defecto estará en /var/log).
xferlog_enable=YESParámetros chroot_*
chroot se usan para crear y mantener una copia virtual separada del sistema operativo en un directorio del mismo.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_listCreamos el fichero donde se guardara todos los usuarios que accederán mediante el ftprokitoh@red-orbita:/vsftpd-2.3.4# touch /etc/vsftpd.chroot_listAñadimos lo siguiente en la shell
rokitoh@red-orbita:/vsftpd-2.3.4# echo /bin/ftp >> /etc/shellsy creamos /bin/ftp
rokitoh@red-orbita:/vsftpd-2.3.4# mkdir /bin/ftpAhora tocaría crear los usuarios, para ello yo he creado un pequeño script algo cutre pero funcional.
######################################################################################
######################################################################################
######################################################################################
############## SCRIPT ADMINISTRACIÓN USUARIOS FTP ##################################
##################### By rokitoh. Copyleft!!! ##################################
######################################################################################if [ $(whoami) != «root» ]; then
echo “Debes ser root para correr este script.”
echo “Para entrar como root, escribe \”su o sudo \” sin las comillas.”
exit 1
fi
while :
do
echo
echo ” Administrar Usuarios FTP”
echo “_____ ____ __________________”
echo
echo “1. Crear usuario FTP”
echo “2. Borrar usuario FTP”
echo “3. Listar usuarios FTP”
echo -n “Seleccione una opcion [1 – 3] ”
read opcion
case “$opcion” in1)
read -p “Introduzca nombre de usuario: ” user
cat /etc/passwd | grep $user > /dev/null
if [ $? -eq 0 ]
then
echo “el usuario $user ya existe”elseuseradd -m -d /home/ftp/$user -s /bin/ftp -g ftp $user; passwd $user
echo $user >> /etc/vsftpd.user_listfi;;
2)
read -p “Introduzca nombre de usuario: ” user
cat /etc/passwd | grep $user > /dev/null
if [ $? -eq 1 ]
then
echo “el usuario $user no existe”elsewhile true; do
echo
read -p “¿Estas seguro que quieres borrar el usuario? ” yn
case $yn in
yes ) break;;
no ) exit;;
* ) echo “por favor responda yes o no”;;
esac
done
userdel $user
sed ‘/$user/d’ /etc/vsftpd.user_list > /etc/vsftpd.user_list
fi;;
3)clear
echo
echo ” Usuarios disponibles”
echo “_____ ____ __________________”
echocat /etc/vsftpd.user_list
;;
*)
echo “$opcion es una opcion invalida.”
echo “Presiona una tecla para continuar…”
read foo;;esac
doneUn saludo, espero que os sirva de ayuda.
rokitoh!!
Comentarios