Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

HowTo: Instalar vsftpd GNU/Linux

HowTo: Instalar vsftpd GNU/Linux

Tabla de contenidos

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/

bash
rokitoh@red-orbita:/# cd /usr/local/src/

Descargamos Vsftpd

bash
rokitoh@red-rbita: /usr/local/src/# wget  https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz

Descomprimimos

bash
rokitoh@red-orbita: /usr/local/src/# tar xvf vsftpd-2.3.4.tar.gz

Accedemos al directorio.

bash
rokitoh@red-orbita: /usr/local/src/# cd  vsftpd-2.3.4

instalamos!

bash
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; fi

comprobamos que está instalado.

bash
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/vsftpd

Copiamos el fichero de configuración a /etc

bash
rokitoh@red-orbita:/vsftpd-2.3.4# cp vsftpd.conf /etc

Configurar vsftpd

bash
rokitoh@red-orbita:/vsftpd-2.3.4# vi /etc/vsftpd.conf

Pará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.

text
anonymous_enable=NO

Pará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.

text
local_enable=no

Pará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.

text
write_enable=YES

Parámetro ftpd_banner.


Este parámetro sirve para establecer el banner que será mostrado cada vez que un usuario acceda al servidor.

text
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:

text
anon_max_rate=5120

Pará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:

text
local_max_rate=5120

Pará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.

text
max_clients=5

Pará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.

text
max_per_ip=5

Parámetro  xferlog_enable

Establece si queremos guardar los LOG’S (por defecto estará en /var/log).

text
xferlog_enable=YES

Parámetros chroot_*

chroot se usan para crear y mantener una copia virtual separada del sistema operativo en un directorio del mismo.

text
chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list
text
Creamos el fichero  donde se guardara todos los usuarios que accederán mediante el ftp
bash
rokitoh@red-orbita:/vsftpd-2.3.4# touch /etc/vsftpd.chroot_list

Añadimos lo siguiente en la shell

bash
rokitoh@red-orbita:/vsftpd-2.3.4# echo /bin/ftp >> /etc/shells

y creamos /bin/ftp

bash
rokitoh@red-orbita:/vsftpd-2.3.4# mkdir /bin/ftp

Ahora tocaría crear los usuarios, para ello yo he creado un pequeño script algo cutre pero funcional.

bash
######################################################################################

######################################################################################

######################################################################################

############## SCRIPT ADMINISTRACIÓN USUARIOS FTP  ##################################

##################### By rokitoh. Copyleft!!! ##################################

######################################################################################
bash
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” in
bash
1)

read -p “Introduzca nombre de usuario: ” user

cat /etc/passwd | grep $user > /dev/null

if [ $? -eq 0 ]

then

echo “el usuario $user ya existe”
text
else
bash
useradd -m -d /home/ftp/$user -s /bin/ftp -g ftp $user; passwd $user

echo $user >> /etc/vsftpd.user_list
bash
fi
bash
;;

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”
text
else
bash
while 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
text
;;

3)

bash
clear

echo

echo ” Usuarios disponibles”

echo “_____ ____ __________________”

echo
bash
cat /etc/vsftpd.user_list

;;

*)

echo “$opcion es una opcion invalida.”

echo “Presiona una tecla para continuar…”

read foo;;
bash
esac

done

Un saludo, espero que os sirva de ayuda.
rokitoh!!

Comentarios