Escolar Documentos
Profissional Documentos
Cultura Documentos
2011
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS INSTALACIN Y CONFIGURACIN DE UN SERVIDOR FTP EN LINUX Estimado alumno, la presente es una gua prctica auto-instructiva y complementaria a lo realizado en clase para su consulta al momento de implementar un servidor de archivo FTP. Configurar ProFTPd
Introduccin:
Un servidor de tipo FTP, tiene su campo de accin principalmente en la Internet. Hoy en da para el mundo globalizado en el que vivimos, la informacin propiamente dicha es uno de los recursos ms importante y valioso, es por ello que el uso adecuado de herramientas informticas para la comunicacin y seguridad de la misma, se ha tornado en algo indispensable. Es por ello que aprenderemos a implementar un servidor FTP teniendo como base el sistema operativo Linux, y utilizaremos la herramienta ProFTPd por ser de licencia GPL y ser un robusto programa en cuanto a la versatilidad y seguridad que nos brinda.
1.Software e Instalacin:
A la hora de instalar el servidor FTP, tenemos 2 formar de instalar dicho programa: 1.- Instalando a partir de la herramienta apt. Procedemos a descargar e instalar con el siguiente mandato:
apt-get install proftpd seguidamente empezar la descarga e instalacin de forma automtica Leyendo lista de paquetes... Hecho Creando rbol de dependencias... Hecho Se instalarn los siguientes paquetes extras: libmysqlclient15off libpq4 mysql-common Paquetes sugeridos: proftpd-doc Se instalarn los siguientes paquetes NUEVOS: libmysqlclient15off libpq4 mysql-common proftpd 0 actualizados, 4 se instalarn, 0 para eliminar y 0 no actualizados. Necesito descargar 2923kB de archivos. Se utilizarn 6893kB de espacio de disco adicional despus de desempaquetar. //el sistema te preguntar si deseas continuar con la instalacin. PROGRAMA DE COMPUTACIN E INFORMTICA
INGENIERIA DE
Sobre la mitad de la Instalacin, te preguntara como quieres configurar el servidor. Se recomienda configurarlo como Independiente por lo ya indicado en clase. Configurando libpq4 (8.1.11-0etch1) ...
INGENIERIA DE
y listo, ya tenemos el proftpd descargado e instalado en nuestro Linux, luego veremos la configuracin necesaria.
2.- Descargando el programa e instalndolo de manera manual. Primero descargaremos desde ProFTPd source: las sources (o archivos fuente) del servidor que vamos a usar. Una vez descargado deberemos de desempaquetar el programa y configurarlo: # tar xvfz proftpd-1.2.8p.tar.gz # cd proftpd-1.2.8p # ./configure withmodules=mod_auth:mod_core:mod_log:mod_ls:mod_cap:mod_ls:mod_readme:mod_rewrite
2. Configuracin:
El ProFTPd se configura mediante la edicin del archivo proftpd.conf que se encuentra en dos sitios: /usr/local/etc/proftpd.conf o /etc/proftpd.conf. En nuestro caso que utilizamos Debian, se encontrar en /etc/proftpd/ Luego tendremos que escoger como queremos ejecutar el ProFTPd standalone o inetd, en nuestro caso escogeremos standalone. Ahora deberemos de crear el directorio donde vamos a tener el ftp, nosotros usaremos el directorio /home/ftp. Si adems se quiere usar una carpeta donde los usuarios puedan subir cosas al ftp usaremos el directorio /home/ftp/subit. Recordar que cada uno puede usar el que quiera, pero recordar tambin que el directorio de subir debe de estar dentro del directorio del ftp, o como mximo ser el directorio de ftp el directorio de subida(esto se suele usar para ftp de subida nicamente):
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS # mkdir /home/ftp # mkdir /home/ftp/subir # chmod 755 /home/ftp # chmod 777 /home/ftp/subir Ahora deberemos de configurar el archivo proftpd.conf: # nano /etc/proftpd/proftpd.conf El archivo de configuracin que usaremos ser el siguiente: ServerName "Nombre_del_servidor_ftp" #Pondremos el que queramos, Servidor FTP es un ejemplo ServerType standalone #Nosotros usaremos standalone en vez de inetd
DeferWelcome off/on #En nuestro caso pondremos off ya que no queremos mostrar ningn mensage de entrada ServerIdent on/off "nombre" que tendr tu servidor FTP #Usaremos on "nombre", que viene a ser el nombre
MultilineRFC2228 on/off #Usaremos on, ya que esto har que nuestro servidor ftp sea compatible con casi todos los clientes ftp DefaultServer on/off #Usaremos on, toma las opciones defualt de un servidor ftp ShowSymlinks on/off #Usaremos on, podremos ver los links, si el link esta fuera de nuestro home no tendremos acceso a l AllowOverwrite on/off #Usaremos off, permite sobrescribir ficheros existentes
TimeoutNoTransfer <numero> #el nmero es el mximo numero de segundos que puede estar un cliente en el ftp, sin transferencia de informacin ej: 600 TimeoutStalled <numero> #el numero mximo de segundos que puede estar clienteservidor sin recibir informacin de una transferencia (atascado) ej: 90 TimeoutIdle <numero> #el numero mximo de segundos que puedes estar un usuario sin hacer nada ej: 200 DenyFilter \*.*/ #Es un filtro de proteccin para el ProFTPd
PROGRAMA DE COMPUTACIN E INFORMTICA
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS Port <numero> #Usaremos el 21, ya que es el numero de puerto predeterminado
MaxInstances <numero> #numero de conexiones al ftp que se pueden hacer a la vez (cuidado con los DOS) ej: 2 User nobody Group nogroup #lo dejamos por defecto #lo dejamos por defecto
AccessGrantMsg "mensage" #El mensaje que ser mostrado si la conexin del usuario ha sido correcta(el user y password ha sido el correcto) AccessDenyMsg "mensage" #El mensaje que ser mostrado si la conexin del usuario ha sido incorrecta, usar un mensaje "amenazador" LogFormat default "%h %l %u %t \"%r\" %s %b" #Con LogFormat [nombre_formato] "formato", el nombre_formato se lo ponemos nosotros LogFormat auth ExtendedLog LogFormat "%v [%P] %h %t \"%r\" %s" #para ser usado despus con
TransferLog /var/log/proftpd/transfer #Loguea las transferencias que se realice con el servidor ExtendedLog /var/log/proftpd.down_up_log WRITE,READ write para loguear con una serie de caractersticas #ExtendedLog es
ExtendedLog /var/log/proftpd.auth_log AUTH auth #ExtendedLog [lugar_donde_se_guarda_el_log] [Que_logear] [nombre_formato] ExtendedLog /var/log/proftpd.paranoid_log ALL default #WRITE(escritura),READ(lectura),AUTH(autentificacion, logging) y ALL(todo) DefaultRoot ~ #Con esto hacemos chroot en el home de nuestro usuario, es decir, no permitiremos que pueda subir mas directorios AuthUserFile "/etc/passwd" #Le decimos donde tenemos el archivo de los usuarios AuthGroupFile "/etc/group" #Le decimos donde tenemos el archivo de los grupos
MaxClients <numero> "mensage" #Mximo numero de clientes que pueden estar a la vez en el servidor ej: MaxClients 6 "Max %m usuarios" MaxClientsPerHost <numero> "mensage" #Mximo numero de clientes por Host(ip) ej: MaxClientsPerHost 2 "Solo 2 conexiones por HOST"
PROGRAMA DE COMPUTACIN E INFORMTICA
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS MaxClientsPerUser <numero> "mensage" #Mximo numero de clientes por usuario ej: MaxClientsPerUser 2 "Solo 2 conexiones por usuario" #El mensaje aparece cuando superamos el numero permitido RequireValidShell "autentica" off #los usuarios no requieren, ni deben, de tener una shell
Hasta aqu hemos configurado las opciones del servidor, pero an no le hemos dicho donde esta el directorio del ftp, y que permisos tenemos sobre ese directorio. Antes de ello tenemos que decidir si deseamos tener un ftp nicamente annimo, un ftp con cuentas privadas o un ftp con cuentas privadas y la cuenta de annimo. Yo no recomiendo usar la cuenta annimo, ya que, si la habilitas cualquier persona de fuera podr acceder a l, claro esta, si no usamos un firewall, como por ejemplo las iptables. Tambin podemos decirle al ftp de quien puede aceptar conexin o de quien no. Una vez decidido, seguimos con la edicin del archivo proftpd.conf: Denegar acceso a ciertas ip, esto es opcional: <Limit LOGIN> #Limitamos a quienes pueden intentar loguearse en el servidor
Order deny,allow #en esta etiqueta le decimos el orden de lectura de la informacin, 1leere a quien denegamos y 2 a quien aceptamos Deny from .pepito.com, xxx.xxx.xxx.xxx queremos rechazar separados por una coma #La etiqueta Deny marca los host que
Allow from all #La etiqueta Allow es de quien vamos aceptar, en este caso all que representa a todas las ip's </Limit> Ahora decidiremos si queremos un ftp annimo, privado o annimo y privado.
INGENIERIA DE
A continuacin deberemos de editar el archivo /etc/passwd y modificar la lnea que hace referente al usuario pepito: # nano /etc/passwd Al editar el fichero, en el final de este nos aparecer una lnea como esta(siguiendo el ejemplo anterior): pepito:x:1007:100::/home/pepito:/bin/bash Deberemos de modificarlo para que quede de as: pepito:x:1007:100::/home/ftp:/bin/false Es decir, le decimos que su carpeta personal es donde tenemos el ftp, y su shell es una shell falsa y no tendr acceso a loguearse a una terminal (/bin/false). El password como vers aparece con un x, esto quiere decir que el password esta en el archivo /etc/shadow con una encriptacin MD5 (mucho mas seguro que si ponemos el pasword en texto plano). As lo haremos con todos los usuarios que queramos aadir. Una vez listo los usuarios, continuaremos por donde nos hemos quedado con la edicin del archivo proftpd.conf: <Directory /home/ftp/> #Le decimos que el directorio del ftp es /home/ftp y a continuacin le damos unas caractersticas Umask 077 077 AllowOverwrite </Directory> off
#Si adems queremos tener nuestra carpeta de subida deberemos de aadir, debajo de </ Directory> lo siguiente: <Directory /home/ftp/subir> /home/ftp/subir Umask 077 077 #nuestro directorio de subida se encontrara en
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS AllowOverwrite on <Limit READ WRITE STOR> #El directorio tendr acceso de lectura, escritura y grabacion para todos(Allow All), en estos caso es muy recomendable AllowAll #usar dentro del limit el order, denny y allow para que solo ciertos usuarios pueden tener este privilegio, igual que cuando en </Limit> #aceptavamos o denegabamos permisos a ciertas ip's </Directory> Con esto ya tendramos el ProFTPd listo para funcionar.
PROGRAMA DE COMPUTACIN E
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS AllowOverwrite on <Limit READ WRITE STOR> #El directorio tendr acceso de lectura, escritura y grabacin para todos(Allow All), en estos caso es muy recomendable AllowAll #usar dentro del limit el order, denny y allow para que solo ciertos usuarios pueden tener este privilegio </Limit> </Directory> </Anonymous>
Como me imagino que te has dado cuenta, la cuenta annima es muy especial, ya que muchas de las caractersticas de esta cuenta, ah que ponerlas dentro de la etiqueta <Anonymous> </Anonymous>.
%m: numero de usuarios conectados al ftp %u: nombre del usuario que se ha logueado %t: fecha/hora a la que se logueo el usuario
INGENIERIA DE
Si hemos compilado (instalado de forma manual) el proftpd deberemos de introducir el script de carga, ya sea el /etc/init.d/proftpd o en /usr/local/sbin/proftpd donde corresponda, dependiendo de nuestra distribucin. En debian deberemos de poner lo siguiente: # ln -s /etc/init.d/proftpd /etc/rcX.d/S20proftpd Siendo X nuestro runlevel (nivel de arranque), si tenemos dudas de cual es nuestro runlevel, poner lo siguiente: # cat /etc/inittab | grep id El resultado ser algo parecido a esto(siendo la X el numero de nuestro runlevel): id:X:initdefault: Para arrancar el servidor sin reiniciar deberemos de escribir lo siguiente: /etc/init.d/proftpd start Para parar el servidor deberemos de introducir lo siguiente: /etc/init.d/proftpd stop Para restaurar y volver a cargar una nueva configuracin en proftpd.conf deberemos de poner lo siguiente: /etc/init.d/proftpd restart
INGENIERIA DE
INGENIERIA DE
OSCAR EDUARDO PEREZ PAREDES SISTEMAS CONCLUSIONES Y RECOMENDACIONES. Hasta aqu, ya tenemos los conocimientos necesarios para poder implementar un buen servidor de tipo FTP, si tienes alguna duda o aportacin la puedes compartir en clase o a travs del grupo del curso creado. Recuerda que de ti depende que tanto provecho le saques al tema, la vida es una continua competencia y no podemos quedarnos atrs.
XITOS!