11/13/2009

Servidor FTP en Linux

Un Servidor FTP es un equipo que generalmente esta conectado a Internet WAN o una LAN desde el cual se pueden bajar o subir archivos mediante el protocolo FTP.

Servidor VSFTPD siglas de Very Secure FTP Daemon es un software utilizado para implementar servidores de archivos a través del protocolo FTP. Se caracteriza por su seguridad y configuración sencilla, en comparación con otras soluciones. Hoy en día se dice que VSFTPD es quizá el Servidor FTP más seguro del mundo.

Antes de empezar con la implementación del Servidor FTP debemos saber que el protocolo FTP requiere de múltiples puertos de red para funcionar correctamente. Cuando una aplicación cliente FTP inicia una conexión a un servidor FTP, abre el puerto 21 en el servidor, conocido como el puerto de comandos. Se utiliza este puerto para arrojar todos los comandos al servidor. Cualquier petición de datos desde el servidor se devuelve al cliente a través del puerto 20 llamado puerto de datos. Cuando el cliente FTP inicia una transferencia de datos, el servidor abre una conexión desde el puerto 20 en el servidor para la dirección IP y un puerto aleatorio sin privilegios (mayor que 1024) especificado por el cliente. Debido a esto muchos firewall normalmente rechazan las conexiones entrantes desde servidores FTP.

Para solucionar este pequeño obstáculo tenemos que crear reglas en el firewall que nos permitan encontrar puertos dinámicos de escucha de FTP, reglas para habilitar Connection Tracking. Bueno ahora empezamos con la implementación del Servidor FTP; el paquete requerido para este servidor es VSFTPD.

Instalamos software requerido
# yum -y install vsftpd


Fichero de Configuración
El fichero para configurar es vsftpd.conf, cuya ruta es: /etc/vsftpd/vsftpd.conf

Entramos:
# cd /etc/vsftpd/
# ls (observamos el fichero de configuración)
es bueno hacer un backup del archivo.conf que viene por defecto:
# cp vsftpd.conf vsftpd.conf.backup

Ahora editamos el archivo con nuestro editor de texto preferido:
# vim vsftpd.conf



Podemos configurar nuestro servidor FTP de tal manera que los usuarios puedan acceder como usuarios anónimos (no requiere autenticación) o usuarios autenticados.

1. Configuración de parámetros para usuarios anónimos

Para configurar correctamente un servidor FTP para usuarios anónimos debemos conocer algunos parámetros los que detallamos a continuación:


Parámetro anomymous_enable
Con este parámetro definimos si se van a permitir los accesos anónimos al servidor. Establecemos valor YES o NO.

anonymous_enable=YES


Parámetro local_enable
Permitimos los accesos autenticados de los usuarios locales del sistema. Establecemos YES o NO.

local_enable=NO


Parámetro write-enable
Aquí definimos si se permite el mandato “write” (escritura) en el servidor. Establecemos YES o NO.

write_enable=YES Parámetro anon_upload_enable


Con esto podemos permitir a usuario anónimos subir archivos al servidor. Antes tiene que estar activado el parámetro global write_enable.

anon_upload_enable=YES


Parámetro anon_mkdir_write_enable
Este parámetro permite a los usuarios anónimos, crear directorios en el servidor.

anon_mkdir_write_enable=YES


Parámetro ftp_banner
Este parámetro permite establecer una bienvenida cada vez que algún usuario se conecte al servidor.

ftpd_banner=Bienvenido al Servidor FTP de RedLinux S.R.L.


Parámetros para el Control del Ancho de Banda Parámetro anon_max_rate

Con este parámetro limitamos la tasa de transferencia en bytes por segundo para los usuarios anónimos. Por ejemplo si queremos limitar la tasa de transferencia a 50 Kb por segundo para los usuarios anónimos: (esta línea la colocamos al final de vsfftpd.conf) .

anon_max_rate=51200


2. Configuración de parámetros para usuarios locales (autenticados)
Esta es la configuración de un servidor FTP para usuarios locales:


Parámetro anomymous_enable
Con este parámetro definimos si se van a permitir los accesos anónimos al servidor. Establecemos valor YES o NO.

anonymous_enable=NO (o comentamos la línea)



Parámetro local_enable
Permitimos los accesos autenticados de los usuarios locales del sistema. Establecemos YES o NO.

local_enable=YES


Parámetro write-enable
Aquí definimos si se permite el mandato “write” (escritura) en el servidor. Establecemos YES o NO.

write_enable=YES


Parámetro anon_upload_enable

anon_upload_enable=NO (o comentamos la línea)


Parámetro anon_mkdir_write_enable

anon_mkdir_write_enable=NO (o comentamos la línea)


Parámetro ftp_banner
Este parámetro permite establecer una bienvenida cada vez que algún usuario se conecte al servidor.

ftpd_banner=Bienvenido al Servidor FTP de RedLinux S.R.L.


Parámetro chroot_local_user y chroot_list_enable
El parámetro chroot_local_user permite o no a los usuarios locales acceder al servidor. Colocamos este parámetro a la altura de la siguiente sección del vsftpd.conf.

# 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_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list



Parámetro local_max_rate
Con este parámetro limitamos la tasa de transferencia en bytes por segundo para los usuarios locales. Por ejemplo si queremos limitar la tasa de transferencia a 50 Kb por segundo para los usuarios locales. Esta línea la ponemos al final del archivo.

local_max_rate=51200


Finalmente iniciamos por primera vez el servidor VSFTPD:
# service vsftpd start


Para que se inicie automáticamente cada vez que iniciemos el sistema le damos:
# chkconfig vsftpd on


Para para vsftpd:
# service vsftpd stop


Para para reiniciar el servicio:
# service vsftpd restart

11/12/2009

Servidor DHCP en Linux

Un Servidor DHCP se hace esencial cuando la red corporativa comienza a crecer, el número de computadores o dispositivos clientes se vuelve tan grande que es difícil poder asignar una configuración TCP/IP para cada uno de ellos.
Es por eso que si brindamos esa configuración dinámicamente se nos complica menos la vida(Al menos la del administrador de red).
Tener en cuenta que, el Servidor DHCP escucha las peticiones por el puerto 67, y responde al puerto 68 del cliente.

Vamos con la implementacion; el paquete que es necesario para un servidor DHCP en Debian se llama: dhcp3-server y en RedHat o derivados: dhcp.

Una vez que hayamos instalado el paquete, procedemos a editar el fichero "dhcpd.conf" que por lo general se encuentra dentro del directorio "/etc". En este post hemos optado por CentOS, pero en otras distros el procedimiento es similar.
Considerando como ejemplo que contamos con una red con las siguientes características:
• Dirección de red : 192.168.1.0
• Máscara de subred : 255.255.255.0
• Puerta de enlace : 192.168.1.1
• Servidor de nombres: 200.48.225.130 y 200.48.225.146
• Rango de direcciones IP a asignar de modo dinámico: 192.168.1.10­ - 192.168.1.100

Con los valores que hemos definido anteriormente para nuestra red, procedemos a modificar el fichero.
El valor definido por “subnet", indica el número de red, que en nuestro caso sería: 192.168.1.0.
El valor definido por “netmask”, indica la máscara de subred, que en nuestro caso sería: 255.255.255.0
El valor definido por “option routers”, indica la puerta de enlace, en nuestro caso sería: 192.168.1.1.
El valor definido por “subnet­mask”, indica la máscara de subred, en nuestro caso sería: 255.255.255.0
El valor definido por “option domain-­name-­servers”, indica las direcciones ip de los servidores dns en nuestro caso serían: 200.48.225.130, 200.48.225.146. Si son más de 1 se separan por comas y un espacio después de cada coma.
El valor definido por “range dynamic-­bootp”, establece el rango de direcciones que el servidor dhcp asignará a las máquinas clientes, en nuestro caso sería: 192.168.1.10-192.168.1.100.

Después de configurar todo, el fichero se debería mostrar de la siguiente manera(click en la imagen para agrandar):


Ahora, sólo nos queda iniciar el servicio:
# service dhcpd start

Configuración de red TCP/IP en Linux

La base principal para la implementación de todo servidor, es la configuración de la red TCP/IP de nuestro sistema Linux. La conecitividad de éste en la red donde se implante es el punto de partida, para evitar errores posteriores que puedan presentarse.

Bien, al grano! En primer lugar, establecemos el nombre de nuestro servidor(piscis) de la siguiente manera:
# hostname piscis

Nos aseguramos también que el nombre del servidor se encuentre en el fichero "/etc/hostname", de tal manera que podramos preguntar por él, tecleando:
# hostname
Nos devolverá el nombre del servidor: piscis.

Existe también un fichero cuya ruta es: "/etc/hosts", que podemos utilizar para poder resolver los nombres de dominio de los hosts en direcciones IPs. Este fichero, contiene una entrada por línea, que consiste en una dirección IP, un nombre de host y una lista opcional de alias para el nombre de host.

El fichero host de nuestro servidor podría contener:

127.0.0.1 localhost
192.168.1.7 piscis.redlinux.com.pe piscis
192.168.1.10 cliente1.redlinux.com.pe cliente1


Donde, la primera linea, tiene de izquierda a derecha: ip de la interfaz de loopback(127.0.0.1) y su alias(localhost).
En la segunda línea, el ip del servidor, nombre fqdn(nombre + dominio) y un alias.
La tercera línea, muestra, el ip de un cliente, su nombre fqdn y su alias.

Así, si hacemos "ping cliente1", veremos que se resuelve a 192.168.1.10.
Podemos tambien preguntar por el nombre fqdn del servidor:
# hostname -f
Para que nos devuelva: piscis.redlinux.com.pe

Para asignar los parámetros de red, llámase dirección IP, máscara de red, puerta de enlace y servidores dns; a nuestra tarjeta de red, podemos solicitarlo a un servidor DHCP(si es que existiese) tecleando:
# dhclient eth0

Pero los parámetros de red, antes mencionados para un servidor, deben ser otorgados de manera estática.
Para asignarle a la tarjeta eth0, de nuestro servidor, el ip 192.168.1.7 y la máscara por defecto(255.255.255.0), tecleamos:
# ifconfig eth0 192.168.1.7 netmask 255.255.255.0

Para asignar la puerta de enlace 192.168.1.1 a nuestro servidor, tecleamos:
# route add default gw 192.168.1.1

Los servidores DNS(por ejemplo los de Telefónica), los podemos asignar, editando el fichero /etc/resolv.conf, el cual contendría:
nameserver 200.48.225.130
nameserver 200.48.225.146


Para poder visualizar la dirección IP y máscara de la tarjeta eth0 del servidor, tecleamos:
# ifconfig eth0

Para ver la puerta de enlace, pasarela o gateway, tecleamos:
# route -n

Para ver los servidores dns, teclear:
# cat /etc/resolv.conf

Para que estas configuraciones puedan perdurar, junto con el reinicio del servidor, podemos hacer uso del comando setup en RedHat, CentOS, Fedora y afines.
En Debian y afines, podemos hacer uso del fichero /etc/network/interfaces.

Facebook Favorites

 
Design by RedLinux SRL