Mostrando entradas con la etiqueta FTP. Mostrar todas las entradas
Mostrando entradas con la etiqueta FTP. Mostrar todas las entradas

enero 02, 2008

Instalando Servidor FTP seguro en Ubuntu.

Un servicio muy habitual es el ftp, sobre todo si tenemos montado un
servidor Web para que los diseñadores y webmasters puedan dejar allí sus
creaciones sin molestar a los administradores, nosotros. Con este
objetivo, vamos a montar un servidor ftp.

Usuario: cliente_01
Acceso a su directorio: /var/www/dominio1
Sin shell en el sistema y en un entorno chroot

Usuario: cliente_02
Acceso a su directorio: /var/www/dominio2
Sin shell en el sistema y en un entorno chroot

Usuario: webmaster
Acceso a su directorio: /var/www
Sin shell en el sistema y en un entorno chroot

Preparación del sistema

Antes de instalar el servidor ftp vamos a crear los usuarios y
securizarlos para que tengan los mínimos permisos y sólo puedan hacer lo
que nosotros definamos.

Crearemos un grupo llamado ftp al cual asociaremos los usuarios.

# groupadd ftp

Creamos los usuarios con sus correspondientes características.

#useradd -g ftp -d /var/www/dominio1 -c ” Cliente 1 ” client_01
#useradd -g ftp -d /var/www/dominio2 -c ” Cliente 2 ” client_02
#useradd -g ftp -d /var/www -c ” webmaster ” webmaster

Les asignamos un password a los usuarios con el comando passwd. Si no
tiene password no funcionará.

Ahora creamos una shell fantasma en el directorio correspondiente.

#mkdir /bin/ftp

Editamos el fichero /etc/shells y la añadimos en la ultima línea y
continuación editamos el fichero /etc/passwd y buscamos las líneas donde
están definidos los usuarios que hemos creado antes y les añadimos el
shell falso:

client1:x:1005:1005: Cliente 1 :/var/www/dominio1:/bin/ftp
client2:x:1006:1005: Cliente 2 :/var/www/dominio2:/bin/ftp
webmaster:x:1007:1005: webmaster :/var/www:/bin/ftp

Instalación del servidor

Ahora es cuando realmente vamos a realizar la instalación del servidor
con el comando apt-get.

#apt-get install vsftpd

Esto descargará los paquetes y los dejará ordenados en sus directorios
correspondientes junto a los scripts de arranque y parada del servicio.

Configuración del servidor

El fichero de configuración del servidor se encuentra
en /etc/vsftpd.conf. Lo editamos para configurarlo a nuestro gusto y
objetivo. El contenido es algo parecido, buscamos las líneas indicadas y
las modificamos:

# Example config file /etc/vsftpd.conf
#Escuchando
listen=YES
#
………………………………………..

# Desactivamos el acceso anónimo

anonymous_enable=NO
#
# Descomentamos la línea para que se puedan conectar
local_enable=YES
#
# Permitimos a usuarios locales escribir
write_enable=YES
#
# APLICA CONFIGURACIÓN UMASK
local_umask=003
#Mensajes welcome
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
……………………….
#
# You may override where the log file goes if you like. The default is
shown
# below.
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog
format
xferlog_std_format=YES
# Se descomenta esto para crear una jaula
chroot_local_user=YES
# You may specify an explicit list of local users to chroot() to their
home
# directory. If chroot_local_user is YES, then this list becomes a list
of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
#
# Debian customization
# secure_chroot_dir=/var/run/vsftpd
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
# This option specifies the location of the RSA certificate to use for
SSL
# encrypted connections.
#rsa_cert_file=/etc/ssl/certs/vsftpd.pem
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO

A continuación creamos el fichero vsftpd.chroot_list el cual tendrá la
lista de usuarios que no tendrán acceso al servidor:

# touch /etc/vsftpd.chroot_list

Volcamos los datos a este fichero desde etc/password con el comando.

# cat /etc/passwd | awk -F: ‘{ print $1 }’ > /etc/vsftpd.chroot_list

Esto nos genera un fichero con los login de usuarios del sistema del
cual quitamos los que si queremos que tengan acceso y los ponemos en el
fichero /etc/vsftpd.user_list.

Ejemplos de ficheros:

vsftpd.chroot_list

# usuarios con no acceso
root
daemon
bin
sys
sync
games
man
lp
mail
news

vsftpd.user_list

#usuarios con acceso
webmaster
client_01
client_02

Despues solo ejecutamos el comando:

# sudo /etc/init.d/vsftpd restart

Y Listo, Ya tenemos nuestro Servidor FTP operativo.