lunes, 6 de agosto de 2007

FTP Server HOWTO RHEL 5


FTP Server HOWTO Red Hat Enterprise Linux 5
Autor: Cristhian Nunez

Introducción.

Acerca del protocolo FTP.
FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informáticos) es
uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia
de grandes bloques de datos a través de redes que soporten TCP/IP. El servicio utiliza los puertos 20
y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y
servidor. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor.
Prácticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que
permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de
este servicio a través de un cliente FTP.

Acerca de vsftpd.
Vsftpd (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 es quizá el servidor FTP
más seguro del mundo.

Tipos de Conexiones FTP
Activa
La secuencia es la siguiente:
El cliente se conecta al servidor por el puerto 21

Cuando el cliente realiza la solicitud de transferencia el servidor hace una conexion por el puerto

20 para la transferencia a un puerto del cliente por encima del 1024
Pasiva
El cliente se conecta al servidor ftp por el puerto 21

Cuando el cliente realiza la solicitud, el cliente inicia la transferencia saliendo por un puerto

encima del 1024 y llegando al servidor por otro puerto encima del 1024.

Instalación a través de yum.
yum -y install vsftpd

Ficheros de configuración.
/etc/vsftpd.user_list Lista que definirá usuarios a enjaular o no a enjaular, dependiendo
de la configuración.
/etc/vsftpd/vsftpd.conf Fichero de configuración.

Procedimientos.
Utilice un editor de texto y modifique el fichero /etc/vsftpd/vsftpd.conf. A continuación
analizaremos los parámetros a modificar o añadir, según se requiera para necesidades particulares.

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.
anonymous_enable=YES
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.
local_enable=YES
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.
write_enable=YES
Parámetro ftpd_banner.
Este parámetro sirve para establecer el banderín de bienvenida que será mostrado cada vez que un
usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente.
ftpd_banner=Bienvenido al servidor FTP de Codigo Libre
Estableciendo jaulas para los usuarios: parámetros chroot_local_user y chroot_list_file.
De modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros
directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder
utilizar su propio directorio personal, puede hacerse fácilmente con el parámetro chroot_local_user
que habilitará la función de chroot() y los parámetros chroot_list_enable y chroot_list_file para
establecer el fichero con la lista de usuarios que quedarán excluidos de la función chroot().
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendrá acceso a
su propio directorio personal y lo que este contenga. No olvide crear el fichero
/etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancará el servicio vsftpd.
touch /etc/vsftpd/vsftpd.chroot_list
Control del ancho de banda.
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:
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 locales:
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.
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 intermediario (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.
max_per_ip=5
Iniciar, detener y reiniciar el servicio vsftpd.
A diferencia de otros servicios FTP como Wu-ftpd, el servicio vsftpd no requiere configurarse para
trabajar sobre demanda, aunque tiene dicha capacidad. Por lo tanto no depende de servicio xinetd.
La versión incluida en distribuciones como CentOS 4, Red HatTM Enterprise Linux 4 y White Box
Enterprise Linux 4 puede iniciar, detenerse o reiniciar a través de un guión similar a los del resto del
sistema.
Para iniciar por primera vez el servicio, utilice:
service vsftpd start
Para hacer que los cambios hechos a la configuración surtan efecto, utilice:
service vsftpd restart
Para detener el servicio, utilice:
service vsftpd stop
Agregar el servicio al arranque del sistema.
Para hacer que el servicio de vsftpd esté activo con el siguiente inicio del sistema, en todos los
niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
chkconfig vsftpd on

Usuarios Enjaulados
Un usuario enjaulado es aquel que ve su home user como si fuera la /. Por ejemplo, Si tengo un
servidor FTP corriendo con la opcion usuarios enjaulados habilitada “chroot_local_user=YES” si yo
me quiero conectar como pepito al servidor, asumiendo que el usuario pepito tiene la ruta de su
home en /home/pepito. Cuando este se conecte via FTP le saldra que su directorio / es en realidad
/home/pepito.
Esta medida es muy utilizada para evitar que los usuarios naveguen a traves del sistema de
archivos del servidor.
Creamos el archivo definido en la opcion “chroot_list_file=/etc/vsftpd/vsftpd.chroot_list”
vi /etc/vsftpd/vsftpd.chroot_list
Luego agregamos todos los usuarios que queremos enjaular. Por ejemplo pepito y reiniciamos el
sistema
Ahora cuando pepito se conecte via ftp vera cuando ejecute pwd que el directorio actual donde se
encuentre sera /, sin embargo en realidad estara conectado a su home user /home/pepito.

Bibliografia
www.alcancelibre.org
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch15_:_Linux_FTP_Server_Set
up

3 comentarios:

Anónimo dijo...

Hi there frіends, good piece of writing and gooԁ uгging commentеd аt this place,
I аm genuіnely enjοуing by these.



Here is my blog post Arjun Kanuri

Anónimo dijo...

Τhаnκs for your ρеrѕonal maгѵеlous postіng!
I actuаlly enjoуеd reading it, you cоuld bе a gгeаt author.
I will remember to bооkmaгκ youг blog
and will oftеn comе bаck down the road.
I wаnt to enсouragе one to сοntinue yοuг grеat writіng, hаve а nice eνening!


Also ѵisit mу wеb pagе :: Arjun Kanuri

Anónimo dijo...

My ѕρouse аnd I abѕolutely lovе уour blog anԁ finԁ many of уour
pоst's to be exactly I'm looking foг.
Dοes one offeг guеst ωгiters to writе
сontеnt availаble fοr you?
I wouldn't mind publishing a post or elaborating on a number of the subjects you write related to here. Again, awesome web site!

Also visit my homepage: reputation management