vsftpd virtual users centos5.5

30
CentOS 5.5 VSFTPD (Very Secure FTP server) JHON FREDY HERRERA SERVICIOS DE RED Manual Step by Step COLOMBIA (MEDELLIN) 2010

Upload: jh0n-fredy-h

Post on 08-Apr-2015

4.060 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: VSFTPD Virtual Users CentOS5.5

CentOS 5.5

VSFTPD (Very Secure FTP server)

JHON FREDY HERRERA

SERVICIOS DE RED

Manual Step by Step

COLOMBIA (MEDELLIN)

2010

Page 2: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 2

INDICE

Objetivo ............................................................................................................................... 3

Topología ............................................................................................................................. 4

Tabla de direccionamiento .................................................................................................... 6

VSFTPD ................................................................................................................................. 7

VSFTPD & Usuarios virtuales ................................................................................................. 8

VSFTPD ....................................................................................................................................................... 8

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

Page 3: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 3

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.

Page 4: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 4

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.

Page 5: VSFTPD Virtual Users CentOS5.5
Page 6: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 6

Tabla de direccionamiento

Dispositivo Interfaz Dirección IP Mascara de

subred Gateway

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

Page 7: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 7

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.

Page 8: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 8

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).

Page 9: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 9

El comando chkconfig --list | grep vsftpd nos permite visualizar si el servicio realmente si iniciara

durante el inicio del sistema.

Page 10: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 10

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

Page 11: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 11

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.

Page 12: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 12

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.

Page 13: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 13

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

Page 14: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 14

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.

Page 15: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 15

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.

Page 16: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 16

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.

Page 17: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 17

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

Page 18: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 18

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.

Page 19: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 19

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.

Page 20: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 20

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.

Page 21: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 21

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.

Page 22: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 22

Y observamos que nos logueamos correctamente.

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

Page 23: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 23

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

Page 24: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 24

Y correctamente nos cargo la nueva configuración.

Entonces nuevamente probamos.

Page 25: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 25

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

Page 26: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 26

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.

Page 27: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 27

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

Page 28: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 28

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.

Page 29: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 29

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

Page 30: VSFTPD Virtual Users CentOS5.5

Mind Wide Open™ BLOG – http://jfherrera.wordpress.com

VSFTPD & Virtual Users | CentOS 5.5 GROUP | “???”

MiNdWiDe - Group 30

Gracias… Jhon Fredy Herrera Osorno