Sunteți pe pagina 1din 30

CentOS 5.

5
VSFTPD (Very Secure FTP server)

JHON FREDY HERRERA

SERVICIOS DE RED

Manual Step by Step

COLOMBIA (MEDELLIN)
2010
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

INDICE

Objetivo ............................................................................................................................... 3
Topología ............................................................................................................................. 4
Tabla de direccionamiento .................................................................................................... 6
VSFTPD ................................................................................................................................. 7
VSFTPD & Usuarios virtuales ................................................................................................. 8
VSFTPD ....................................................................................................................................................... 8

Bibliografía ......................................................................................................................... 29

MiNdWiDe - Group 2
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Objetivo

Realizar la instalación y configuración de FTP en CentOS permitiendo la administración de los


usuarios en una base de datos local permitiendo así la creación de usuarios virtuales.

MiNdWiDe - Group 3
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Topología

A continuación se muestra por medio de una imagen la topología que se implementara para la
realización de este proyecto.

MiNdWiDe - Group 4
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Tabla de direccionamiento

Mascara de Gateway
Dispositivo Interfaz Dirección IP
subred predeterminada
SVR-WEB-FTP-01 NIC 192.168.1.253 255.255.255.0 192.168.1.254
PCCLIENTE NIC 192.168.1.1 255.255.255.0 192.168.1.254

MiNdWiDe - Group 6
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

VSFTPD

vsftpd, que significa "muy Secure FTP Daemon", es un servidor FTP para sistemas Unix, incluyendo
Linux. Es licenciado bajo la GNU General Public License. Es compatible con IPv6 y SSL.

vsftpd apoya explícita (desde 2.0.7) e implícitos FTPS (desde 2.1.0).

vsftpd es el servidor FTP por defecto en Ubuntu, CentOS, Fedora, y distribuciones de Red Hat
Enterprise Linux NimbleX Linux.

MiNdWiDe - Group 7
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

VSFTPD & Usuarios virtuales

En esta sección veremos cómo instalar y configurar los servicios de FTP para que utilice cuentas
virtuales para el inicio de secciones, esto con el fin de tener una administración de las cuentas que
se utilicen para el servicio de FTP de un amanera centralizada y flexible.

VSFTPD

Asumiendo que nuestro OS (Operating System) esté instalado y actualizado procederemos a


instalar los paquetes necesarios, comenzaremos con el servicio de ftp, para llevar a cabo esto
ejecutamos el comando como root.

yum update

Si nuestro servidor hace tiempito que lo tenemos se recomienda actualizar el kernel e iptables, lo
hacemos de la siguiente manera

yum update kernel iptables

yum install vsftpd

Debemos tener presente que en CentOS no se inicia automáticamente los servicios, ni tampoco se
inician cuando inicia el sistema, entonces con los siguientes comandos solucionaremos esto.

chkconfig vsftpd on

/sbin/service vsftpd restart (MODO GRAFICO CentOS)

service vsftpd restart (MODO CLI CentOS)

El primer comando es para que el servicio de ftp se inicie durante el inicio del sistema, el segundo
comando se debe utilizar para reiniciar el servicio si estamos trabajando en CentOS en modo
grafico, y el tercer comando se utiliza si estamos trabajando con CentOS en modo CLI (Interfaz de
Línea de Comandos).

MiNdWiDe - Group 8
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

El comando chkconfig --list | grep vsftpd nos permite visualizar si el servicio realmente si iniciara
durante el inicio del sistema.

MiNdWiDe - Group 9
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

El comando netstat -tan nos confirma que el servicio está en escucha en el puerto predeterminado
21 de tcp.

Con el siguiente comando crearemos el directorio donde alojaremos todos los archivos de
configuración de todos los usuarios virtuales que iremos creando para el servicio de FTP.

yum install db4-utils

Posteriormente a la instalación del paquete db4-utils crearemos el archivo a partir del cual se
creara la base de datos y la cual contendrá los usuarios virtuales que usaremos para el servicio de
FTP.

Nos posicionamos en el directorio /etc/vsftpd

MiNdWiDe - Group 10
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Observemos que el comando pwd nos ratifica que estamos en la ubicación /etc/vsftpd.

Creamos el archivo virtual-users.txt, en el cual agregaremos los usuarios y passwords los usuarios
deben ir en una linea y los password en otra, ejemplo:

Usuario1
passwordusuario1
usuario2
passwordusuario2

Y asi sucesivamente con todos los uaurios que queramos agregar a la base de datos para que se
puedan loguear en el servicio de FTP.

MiNdWiDe - Group 11
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Guardamos el archivo y sus cambios.

Ejecutamos el comando siguiente para guardar la información en un archivo de base de datos.

db_load -T -t hash -f virtual-users.txt /etc/vsftpd/virtual-users.db

Y eliminamos el archivo virtual-users.txt.

Nota: si deseamos en un futuro agregar más usuarios para permitir en FTP debemos crear
nuevamente el archivo virtual-users.txt con los usuarios existentes y los nuevos que se permitirán
y generar nuevamente el archivo virtual-users.db con el comando anterior.

MiNdWiDe - Group 12
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

A continuación crearemos un archivo PAM, en el cual especificaremos el archivo que contendrá los
usuarios que se permitirán loguear en el servicio de FTP.

nano /etc/pam.d/vsftpd-virtual

El archivo lo crearemos en /etc/pam.d/ con el nombre de vsftpd-virtual, y agregaremos la


siguiente información al archivo.

auth required pam_userdb.so db=/etc/vsftpd/virtual-users


account required pam_userdb.so db=/etc/vsftpd/virtual-users
session required pam_loginuid.so

MiNdWiDe - Group 13
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Guardamos los cambios.

A continuación realizaremos una copia del archivo de configuración principal de vsftpd.

cp -v vsftpd.conf vsftpd.conf-orig

El modificados -v se agrega para ver la copia en tiempo real.

MiNdWiDe - Group 14
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Ejecutaremos el comando:

> /etc/vsftpd/vsftpd.conf

Esto con el fin de limpiar todo la información que contenga el archivo vsftpd.conf y empezar a
agregar las directivas que requerimos.

MiNdWiDe - Group 15
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Editamos el archivo vsftpd.conf y agregaremos la siguiente información.

background=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd-virtual
user_sub_token=$USER
local_root=/var/www/html/$USER
anon_root=/var/www/ftp
chroot_local_user=YES
hide_ids=YES
listen=YES
listen_port=21
pasv_min_port=65500
pasv_max_port=65535
connect_from_port_20=YES
local_umask=022
max_clients=20
max_per_ip=10
secure_chroot_dir=/usr/share/empty

Si observamos el directorio root del servicio FTP será /var/www/html, y que en el cual se irán
creando los directorios root para cada sitio web que demos de alta en Apache. Y que el nombre
del servicio de PAM que vamos a utilizar es el archivo que creamos vsftpd-virtual.

MiNdWiDe - Group 16
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

El directorio y subdirectorios de /var/www se crean en el momento de instalar apache entonces


realizaremos la instalación de apache con el siguiente comando.

yum install httpd

E igualmente agregamos el servicio en el inicio del sistema.

chkconfig httpd on

Creamos los directorios siguientes.

mkdir -p /usr/share/empty

mkdir -p /var/www/ftp

A continuación crearemos los directorios raíz para cada usuario que agregamos en el archivo de
base de datos de usuarios virtual-users.txt y que lo pasamos a una base de datos anteriormente.

mkdir /var/www/html/adminjoomla
mkdir /var/www/html/adminjoomla
chown ftp:ftp /var/www/html

MiNdWiDe - Group 17
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Con esto estamos creando los directorios, igualmente estamos especificando que el directorio
/var/www/html pertenece a el usuario ftp e igualmente a el grupo ftp, el usuario ftp y grupo ftp
se creó cuando instalamos el servicio de vsftpd.

NOTA: es importantísimo que los nombres de los directorios sean los mismos que los nombres
de usuarios que se definieron en el archivo virtual-users.txt, muy importante.

Con esta tarea realizada ejecutaremos el siguiente comando.

usermod -d /var/www ftp

Con la ejecución de este comando estamos especificando que el nuevo directorio del usuario ftp
será /var/www.

El comando usermod nos permite modificar el directorio home o raíz de un usuario.

MiNdWiDe - Group 18
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Y podemos observar con el comando ls –la /var/www que efectivamente el nuevo propietario de
la carpeta html es ftp y que el grupo es ftp.

MiNdWiDe - Group 19
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Reiniciamos el servido de ftp y podemos corroborar que se nos inicio correctamente.

Ejecutamos el comando ftp localhost para logearnos en el servicio de FTP.

MiNdWiDe - Group 20
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Observemos que nos saca un error que es 500 OOPS cannot change directory /var/www, esto es
porque el selinux de CentOS nos está prohibiendo cambiar de directorio para solucionar esto
ejecutamos el siguiente comando:

setsebool -P ftp_home_dir=1

-P es para que sea permanente y si reiniciamos no tengamos que ejecutamos nuevamente el


comando.

Nuevamente intentamos loguearnos.

MiNdWiDe - Group 21
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Y observamos que nos logueamos correctamente.

Ahora vamos a loguearnos desde la PCCLIENTE que tiene la ip 192.168.1.1/24.

MiNdWiDe - Group 22
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Y de momento observamos que no nos conecta con el servidor, esto es porque debemos abrir el
puerto 20 y 21 en el firewall de CentOS que es iptables.

Editamos el archivo /etc/sysconfig/iptables

Y agregaremos las siguientes directivas.

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT

Reiniciamos el servico de iptables.

service iptables restart

Y verificamos que si nos halla cargado la configuración correctamente con el comando.

iptables -L

MiNdWiDe - Group 23
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Y correctamente nos cargo la nueva configuración.

Entonces nuevamente probamos.

MiNdWiDe - Group 24
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Observemos que ya nos conecta pero se queda en LIST o sea se queda listando y no se obtiene
ninguna respuesta por parte del servidor, NUEVAMENTE TENEMOS QUE EDITAR EL Firewall.

Y modificaremos la directiva:

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Por

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

MiNdWiDe - Group 25
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

NOTA: no se pueden dejar saltos de línea ya que si se dejan nos generaría un error y no iniciaría
nuestro Firewall.

Nuevamente reiniciamos el servicio.

service iptables restart

Y verificamos que si nos halla cargado la configuración correctamente con el comando.

iptables -L

Y nuevamente intentamos iniciar sección con nuestro cliente de FTP.

MiNdWiDe - Group 26
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Y UFFFFF como podemos observar ya iniciamos sección correctamente.

MiNdWiDe - Group 27
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

SI recibimos el error de que no podemos subir archivos, ejecutamos el siguiente comando.

setsebool -P ftpd_disable_trans 1

NOTA: se requiere que reinicie el OS.

Y reiniciamos el equipo.

Y ya nos deja subir archivos.

MiNdWiDe - Group 28
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Bibliografía

http://www.alcancelibre.org/staticpages/index.php/09-como-vsftpd

http://en.wikipedia.org/wiki/Vsftpd

http://xyzvn.com/linuxunix/setup-of-vsftpd-virtual-users.html

MiNdWiDe - Group 29
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
VSFTPD & Virtual Users | CentOS 5.5
GROUP | “???”

Gracias…
Jhon Fredy Herrera Osorno

MiNdWiDe - Group 30

S-ar putea să vă placă și