Centos 5.5 VSFTPD (Very Secure FTP Server) JHON FREDY
Total Page:16
File Type:pdf, Size:1020Kb
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