meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
aplicaciones:proftpd [2013/01/01 20:49] – [Verificar sintaxis] lcaplicaciones:proftpd [2023/01/18 14:10] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
-===== INSTALACIÓN DEL SERVIDOR PROFTPD =====+{{tag>proftpd ftp instalación quotas }} 
 +===== Proftpd =====
 ==== 1  Proftpd+Mysql+Quotas ==== ==== 1  Proftpd+Mysql+Quotas ====
 El servidor elegido es Proftpd, uno de los más utilizados en la web. La instalación se hizo sobre una distribución Debian 3.11 El servidor elegido es Proftpd, uno de los más utilizados en la web. La instalación se hizo sobre una distribución Debian 3.11
Línea 512: Línea 513:
 Como me imagino que os habreis dado cuenta, la cuenta anónima es muy especial, ya que muchas de las características de esta cuenta, hay que ponerlas dentro de la etiqueta <Anonymous> </Anonymous> Como me imagino que os habreis dado cuenta, la cuenta anónima es muy especial, ya que muchas de las características de esta cuenta, hay que ponerlas dentro de la etiqueta <Anonymous> </Anonymous>
  
-====¡ FTP unicamente anonimo ===+=== FTP unicamente anonimo ===
 Deberemos de haber seguido todos los pasos anteriores pero omitiendo el punto 3. Acontinuación deberemos de usar una etiqueta limit, arriba de la etiqueta anonymous: Deberemos de haber seguido todos los pasos anteriores pero omitiendo el punto 3. Acontinuación deberemos de usar una etiqueta limit, arriba de la etiqueta anonymous:
 <file> <file>
Línea 522: Línea 523:
  
 ====  Opciones del Servidor ==== ====  Opciones del Servidor ====
-ServerName "Nombre_del_servidor_ftp"     #Pondremos el que queramos, Servidor FTP es un ejemplo +  * ServerName "Nombre_del_servidor_ftp"     #Pondremos el que queramos, Servidor FTP es un ejemplo 
-ServerType standalone/inet                           #Nosotros usaremos standalone en vez de inetd +  ServerType standalone/inet               #Nosotros usaremos standalone en vez de inetd 
-DeferWelcome on/off                           # off ya que no queremos mostrar ningun mensage de entrada +  DeferWelcome on/off               # off ya que no queremos mostrar ningun mensage de entrada 
-ServerIdent on/off "nombre"                        #Usaremos on "nombre"+  ServerIdent on/off "nombre"              #Usaremos on "nombre
 +  * MultilineRFC2228 on                      #on para que el servidor ftp sea compatible con  todos los clientes ftp 
 +  * DefaultServer onf                      #Usaremos on, toma las opciones defualt de un servidor ftp 
 +  * ShowSymlinks on                      #on, para ver los links, si el link esta fuera de nuestro home no tendremos acceso a él 
 +  * AllowOverwrite on/                      #Usaremos on, permite sobreescribir ficheros existentes 
 +  * TimeoutNoTransfer  600                   #tiempo máximo en sg que puede estar un cliente en el ftp, sin transferencia de información  
 +  * TimeoutStalled 90                        #tiempo máximo en sg que puede estar cliente-servidor sin recibir información de una transferencia 
 +  * TimeoutIdle 200                          #tiempo máximo en sg  que puedes estar un usuario sin hacer nada  
 +  * DenyFilter \*.*/                         #Es un filtro de proteccion para el ProFTPd 
 +  * Port 21                                  #Puerto de escucha del servidor, usaremos el 21, ya que es el predeterminado 
 +  * MaxInstances 30                          #numero de conexiones al ftp que se pueden hacer a la vez(cuidado con los DOS) 
 +  * AccessGrantMsg "mensage"                 #Mesanje  a mostrar si la conexion del usuario ha sido correcta 
 +  * AccessDenyMsg "mensage"                  #Mensaje a mostrar si la conexion del usuario ha sido incorrecta 
 +  * LogFormat default "%h %l %u %t \"%r\" %s %b"   #Con LogFormat [nombre_formato] "formato", el nombre_formato se lo ponemos nosotros 
 +  * LogFormat auth  "%v [%P] %h %t \"%r\" %s"     #para ser usado despues con ExtendedLog 
 +  * LogFormat write "%h %l %u %t \"%r\" %s %b"  
 +  * TransferLog  /var/log/proftpd/transfer                   #Loguea las transferencias que se realice con el servidor 
 +  * ExtendedLog /var/log/proftpd.down_up_log WRITE,READ write #ExtendedLog es para loguear con una serie de caracteristicas 
 +  * 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                          # hacemos chroot en el home de nuestro usuario, es decir, no puede subir mas directorios 
 +  * AuthUserFile    "/etc/passwd"   #Le decimos donde tenemos el archuvo de los usuarios 
 +  * AuthGroupFile   "/etc/group"    #Le decimos donde tenemos el archivo de los grupos 
 +  * MaxClients   <numero> "mensage"       #Maximo numero de clientes que pueden estar a la vez en en servidor ej: MaxClients  6 "Max %m usuarios" 
 +  * MaxClientsPerHost  <numero> "mensage"  #Maximo numero de clientes por Host(ip) ej: MaxClientsPerHost "Solo 2 conexiones por HOST" 
 +  * MaxClientsPerUser <numero> "mensage" #Maximo numero de clientes por usuario ej: MaxClientsPerUser 2 "Solo 2 conexiones por usuario" #El mensage aparece cuando superamos el numero permitido 
 +  * RequireValidShell  off    #los usuarios no requieren, ni deben, de tener una shell "autentica"
  
-MultilineRFC2228 on                                   #on para que el servidor ftp sea compatible con  todos los clientes ftp +Denegar acceso a ciertas ip 
-DefaultServer onf                          #Usaremos ontoma las opciones defualt de un servidor ftp +<file> 
-ShowSymlinks on          #on, para ver los links, si el link esta fuera de nuestro home no tendremos acceso él +<Limit LOGIN>  #Limitamos a quienes pueden intentar loguearse en el servidor 
-AllowOverwrite on/         #Usaremos on, permite sobreescribir ficheros existentes+Order deny,allow           #en esta etiqueta le decimos el orden de lectura de la informacion, 1ºleere a quien denegamos y 2º a quien aceptamos 
 +Deny from .pepito.com, xxx.xxx.xxx.xxx #La etiqueta Deny marca los host que queremos rechazar separados por una coma 
 + Allow from all #La etiqueta Allow es de quien vamos aceptar, en este caso all que representa todas las ip's 
 +</Limit>  
 +</file>
  
-TimeoutNoTransfer  600   #tiempo máximo en sg que puede estar un cliente en el ftp, sin transferencia de informacion TimeoutStalled 90             #tiempo máximo en sg que puede estar cliente-servidor sin recibir informacion de una                        
-                                          #transferencia(atascado) 
-TimeoutIdle 200               #tiempo máximo en sg  que puedes estar un usuario sin hacer nada  
  
-DenyFilter \*.*/               #Es un filtro de proteccion para el ProFTPd+Mejoras de apariencia en el archivo proftpd.conf:
  
-Port 21                             #Puerto de escucha del servidor, usaremos el 21, ya que es el predeterminado+Si os habeis fijado en las opciones donde pone "mensage" cuando pongo ejemplos pongo en algunos sitios %X siendo X una letra. Esto son opciones del FTP. Entre muchas de las posibilidades que tenemos voy a destacar las siguientes: 
 +  * %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
  
-MaxInstances 30             #numero de conexiones al ftp que se pueden hacer a la vez(cuidado con los DOS) 
  
-AccessGrantMsg "mensage"                       #Mesanje  a mostrar si la conexion del usuario ha sido correcta 
-AccessDenyMsg "mensage"                       #Mensaje a mostrar si la conexion del usuario ha sido incorrecta 
  
-LogFormat default "%h %l %u %t \"%r\" %s %b"   #Con LogFormat [nombre_formato] "formato", el nombre_formato se lo ponemos nosotros 
-LogFormat auth  "%v [%P] %h %t \"%r\" %s"     #para ser usado despues con ExtendedLog 
-LogFormat write "%h %l %u %t \"%r\" %s %b"  
  
-TransferLog  /var/log/proftpd/transfer                   #Loguea las transferencias que se realice con el servidor 
-ExtendedLog /var/log/proftpd.down_up_log WRITE,READ write #ExtendedLog es para loguear con una serie de caracteristicas 
-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                          # hacemos chroot en el home de nuestro usuario, es decir, no puede subir mas directorios 
-AuthUserFile    "/etc/passwd"   #Le decimos donde tenemos el archuvo de los usuarios 
-AuthGroupFile   "/etc/group"    #Le decimos donde tenemos el archivo de los grupos 
  
-MaxClients   <numero> "mensage"       #Maximo numero de clientes que pueden estar a la vez en en servidor ej: MaxClients  6 "Max %m usuarios" +====  Carga de ProFTPd en el inicio y arrancar el demonio ==== 
-MaxClientsPerHost  <numero> "mensage"  #Maximo numero de clientes por Host(ip) ej: MaxClientsPerHost "Solo 2 conexiones por HOST" +Para que el ftp se cargue en el arranque de nuestra maquina deberemos de seguir los siguientes pasos:
-MaxClientsPerUser <numero> "mensage" #Maximo numero de clientes por usuario ejMaxClientsPerUser 2 "Solo 2 conexiones por usuario" #El mensage aparece cuando superamos el numero permitido +
-RequireValidShell  off    #los usuarios no requieren, ni deben, de tener una shell "autentica"+
  
-Denegar acceso ciertas ip +Si hemos compilado 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 distribucion. Desde debian deberemos de poner lo siguiente: 
-<Limit LOGIN>  #Limitamos quienes pueden intentar loguearse en el servidor + 
-Order deny,allow           #en esta etiqueta le decimos el orden de lectura de la informacion, 1ºleere quien denegamos 2º a quien aceptamos +<code> ln -s /etc/init.d/proftpd /etc/rcX.d/S20proftpd</code> 
-Deny from .pepito.com, xxx.xxx.xxx.xxx #La etiqueta Deny marca los host que queremos rechazar separados por una coma + 
-Allow from all #La etiqueta Allow es de quien vamos aceptar, en este caso all que representa todas las ip's +Siendo X nuetro runlevel, si tenemos dudas de cual es nuestro runlevel, poner lo siguiente: 
-</Limit+ 
 +<code> cat /etc/inittab | grep id</code> 
 + 
 +El resultado sera algo parecido esto(siendo la X el numero de nuestro runlevel): 
 +id:X:initdefault: 
 + 
 +Para arrancar el servidor sin reiniciar deberemos de escribir lo siguiente: 
 + 
 +<code/etc/init.d/proftpd start</code> 
 + 
 +Para parar el servidor deberemos de introducir lo siguiente: 
 + 
 +<code> /etc/init.d/proftpd stop</code> 
 + 
 +Para restaurar y volver cargar una nueva coniguracion en proftpd.conf debremos de poner lo siguiente: 
 + 
 +<code> /etc/init.d/proftpd restart</code> 
 + 
 +====  Como administrar el ftp: ==== 
 +Para ver que usuarios estan conectadoque esta haciendo en este momento y desde cuando estan conectados sobrara con poner cualquiera de las siguientes ordenes: 
 +Para ver la versión <code>proftpd -v </code> 
 +para ver los módulos cargados <code>proftpd -l </code> 
 +para comprobar la sintaxis <code>proftpd -td5 </code> 
 + 
 + 
 +# ftpwho 
 +# ftptop 
 + 
 + 
 +Cada una tiene una característica, que dependiendo de gusto, le gustara mas una u otra. ftpwho es mas cuando queremos ver en un instante de tiempo, mientras que ftptop es mas un monitor que te informa en tiempo real de los cambios en tu servidor ftp, por lo que este es recomendable usarlo en una terminal aparte. 
 + 
 +Para cerrar el servidor y no permitir que ningún usuario puede acceder al servidor  y mostrar un mensaje con el motivo podemos usar la herramienta ftpshut(para mas informacion man ftpshut): 
 + 
 + 
 +<code> 
 +su 
 +ftpshut now "El servidor se encuentra cerrado por motivos técnicos"</code> 
 + 
 +Para expulsar un usuario de nuestro servidor, sobrara con mirar el numero de proceso en el que esta matar el proceso: 
 + 
 +<code> ps aux | grep proftpd</code> 
 + 
 + 
 +Un ejemplo seria el siguiente 
 + 
 +<code> ps aux | grep proftpd 
 +pepito   4299   0.0  0.9  4432 2388 ?           23:07   0:00 [proftpd] 
 +fulanito 4319  0.0  0.9  5432 3563 ?        S    23:57   0:00 [proftpd] 
 +tontito   4681  0.0  0.9  6124 4341 ?        S    01:16   0:00 [proftpd] 
 +</code> 
 + 
 +Obtendremos una lista de todos los procesos(usuarios) que estan conectados y a su derecha su PID(en este ejemplo vamos tirar a pepito): 
 + 
 + 
 +<code> kill -9 4299 </code> 
 + 
 + 
 +Para saber mas información acuérdate de usar los log'del servidor que están en /var/log/
 + 
 +====  Información extra: ==== 
 +Existe un gestor gráfico para el proftpd 
 +<code>apt-get install gproftpd</code> 
 + 
 + 
 +Manual completisimo de proftpf en ingles: aki http://proftpd.linux.co.uk/localsite/Userguide/linked/userguide.html 
 +Indice de todos los comandos a utilizar con su explicacion del proftpd: aki http://proftpd.linux.co.uk/localsite/Userguide/linked/part-reference.html
  
 +==== Referencias ====
 +  * http://www.primates.cl/?p=51
 +  * http://pagina.de/pacodebian
 +  * http://www.frikis.org/staticpages/index.php?page=proftpd
 +  * http://www.userlinux.net/post.457.php
 +  * http://max.bandaancha.st/docs/proftpd_mysql.html
 +  * http://www.carlosatares.com/?p=293
 +  * http://www.userlinux.net/post.457.php
 +  * http://www.howtoforge.com/proftpd_mysql_virtual_hosting
  
  
Línea 576: Línea 666:
  
  
-==== Verificar sintaxis ==== 
-<code> proftpd -t6 </code>