meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
aplicaciones:proftpd [2010/05/17 12:09] – creado lc | aplicaciones:proftpd [2023/01/18 14:10] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | La directiva SQLHomedirOnDemand on hay que cambiarla por CreateHome on | + | {{tag> |
+ | ===== Proftpd ===== | ||
+ | ==== 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 | ||
+ | |||
+ | Lo primero es instalar los paquetes… en Debian existe un paquete específico para el servidor proftpd con apoyo de myql: | ||
+ | |||
+ | < | ||
+ | |||
+ | El instalador nos preguntará si queremos arrancar el ftp como servicio de red (inetd) o como ’standalone’ (independent); | ||
+ | |||
+ | Si lo vamos a hacer des el código fuente deberemos desempaquetar el programa y configurarlo: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | |||
+ | Una vez instalado miramos si Proftpd tiene los módulos necesarios para seguir con la configuración. Para ver los módulos | ||
+ | |||
+ | < | ||
+ | |||
+ | Lo segundo es crear un usuario y grupo específico para el ftp que seran los propietarios de los archivos que se transfieran. Ya que los usuarios del ftp no son usuarios reales. | ||
+ | < | ||
+ | groupadd -g 2001 ftpgroup | ||
+ | useradd -u 2001 -s /bin/false -d /bin/null -c " | ||
+ | </ | ||
+ | |||
+ | A continuación cambiamos la clave del root del mysql y creamos la base de datos y un usuario específico para esa base de datos: | ||
+ | < | ||
+ | |||
+ | Entramos en el MysSQL | ||
+ | < | ||
+ | |||
+ | Creamos la base de datos ftp y le damos los permisos al usuario proftpd | ||
+ | |||
+ | < | ||
+ | mysql > create database ftp; | ||
+ | mysql > GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ' | ||
+ | mysql > GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ' | ||
+ | mysql > FLUSH PRIVILEGES; | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | Una vez creada la tabla procedemos a crear las tablas de la base de datos que contendrán la información de los usuarios que podrán acceder al ftp: | ||
+ | |||
+ | < | ||
+ | mysql > USE ftp; | ||
+ | mysql > CREATE TABLE ftpgroup ( | ||
+ | groupname varchar(16) NOT NULL default '', | ||
+ | gid smallint(6) NOT NULL default ' | ||
+ | members varchar(16) NOT NULL default '', | ||
+ | KEY groupname (groupname) | ||
+ | ) TYPE=MyISAM COMMENT=' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | mysql > CREATE TABLE ftpquotalimits ( | ||
+ | name varchar(30) default NULL, | ||
+ | quota_type enum(' | ||
+ | per_session enum(' | ||
+ | limit_type enum(' | ||
+ | bytes_in_avail int(10) unsigned NOT NULL default ' | ||
+ | bytes_out_avail int(10) unsigned NOT NULL default ' | ||
+ | bytes_xfer_avail int(10) unsigned NOT NULL default ' | ||
+ | files_in_avail int(10) unsigned NOT NULL default ' | ||
+ | files_out_avail int(10) unsigned NOT NULL default ' | ||
+ | files_xfer_avail int(10) unsigned NOT NULL default ' | ||
+ | ) TYPE=MyISAM; | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | mysql > CREATE TABLE ftpquotatallies ( | ||
+ | name varchar(30) NOT NULL default '', | ||
+ | quota_type enum(' | ||
+ | bytes_in_used int(10) unsigned NOT NULL default ' | ||
+ | bytes_out_used int(10) unsigned NOT NULL default ' | ||
+ | bytes_xfer_used int(10) unsigned NOT NULL default ' | ||
+ | files_in_used int(10) unsigned NOT NULL default ' | ||
+ | files_out_used int(10) unsigned NOT NULL default ' | ||
+ | files_xfer_used int(10) unsigned NOT NULL default ' | ||
+ | ) TYPE=MyISAM; | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | mysql > CREATE TABLE ftpuser ( | ||
+ | id int(10) unsigned NOT NULL auto_increment, | ||
+ | userid varchar(32) NOT NULL default '', | ||
+ | passwd varchar(32) NOT NULL default '', | ||
+ | uid smallint(6) NOT NULL default ' | ||
+ | gid smallint(6) NOT NULL default ' | ||
+ | homedir varchar(255) NOT NULL default '', | ||
+ | shell varchar(16) NOT NULL default '/ | ||
+ | count int(11) NOT NULL default ' | ||
+ | accessed datetime NOT NULL default ' | ||
+ | modified datetime NOT NULL default ' | ||
+ | PRIMARY KEY (id), | ||
+ | UNIQUE KEY userid (userid) | ||
+ | ) TYPE=MyISAM COMMENT=' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | Algunas aclaraciones al respecto. La tabla ftpgroup lista los usuarios de cada grupo, como solo habrá un grupo (inicialmente) no necesita más registros para comenzar a usar el servicio. La tabla ftuser guarda los usuarios, estadísticas y es la usada por Proftpd para comparar los datos de autentificación. Usando la directiva ' | ||
+ | |||
+ | |||
+ | Ahora configuraremos el proftp: | ||
+ | Abre el fichero / | ||
+ | < | ||
+ | |||
+ | Sitúate al final y añade todas estas líneas y sálvalo: | ||
+ | < | ||
+ | | ||
+ | |||
+ | |||
+ | # The passwords in MySQL are encrypted using CRYPT | ||
+ | SQLAuthTypes | ||
+ | SQLAuthenticate | ||
+ | |||
+ | |||
+ | # used to connect to the database | ||
+ | # databasename@host database_user user_password | ||
+ | SQLConnectInfo | ||
+ | |||
+ | |||
+ | # Here we tell ProFTPd the names of the database columns in the " | ||
+ | # we want it to interact with. Match the names with those in the db | ||
+ | SQLUserInfo | ||
+ | |||
+ | # Here we tell ProFTPd the names of the database columns in the " | ||
+ | # we want it to interact with. Again the names match with those in the db | ||
+ | SQLGroupInfo | ||
+ | |||
+ | # set min UID and GID - otherwise these are 999 each | ||
+ | SQLMinID | ||
+ | |||
+ | # create a user's home directory on demand if it doesn' | ||
+ | SQLHomedirOnDemand on | ||
+ | |||
+ | # Update count every time user logs in | ||
+ | SQLLog PASS updatecount | ||
+ | SQLNamedQuery updatecount UPDATE " | ||
+ | |||
+ | # Update modified everytime user uploads or deletes a file | ||
+ | SQLLog | ||
+ | SQLNamedQuery modified UPDATE " | ||
+ | |||
+ | # User quotas | ||
+ | # =========== | ||
+ | QuotaEngine on | ||
+ | QuotaDirectoryTally on | ||
+ | QuotaDisplayUnits Mb | ||
+ | QuotaShowQuotas on | ||
+ | |||
+ | SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, | ||
+ | |||
+ | SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, | ||
+ | |||
+ | SQLNamedQuery update-quota-tally UPDATE " | ||
+ | |||
+ | SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies | ||
+ | |||
+ | QuotaLimitTable sql:/ | ||
+ | QuotaTallyTable sql:/ | ||
+ | |||
+ | RootLogin off | ||
+ | RequireValidShell off | ||
+ | </ | ||
+ | |||
+ | Reinicia el servidor ftp: | ||
+ | |||
+ | < | ||
+ | |||
+ | Si queremos poner un mensaje con el espacio disponible/ | ||
+ | < | ||
+ | SQLNamedQuery gettally | ||
+ | |||
+ | SQLNamedQuery getlimit | ||
+ | |||
+ | SQLNamedQuery getfree | ||
+ | |||
+ | SQLShowInfo | ||
+ | </ | ||
+ | Reiniciar el servidor porftpd de nuevo | ||
+ | |||
+ | < | ||
+ | |||
+ | Ahora vamos a crear un usuario de prueba: | ||
+ | < | ||
+ | $: mysql -u root -p | ||
+ | mysql > USE ftp; | ||
+ | |||
+ | INSERT INTO `ftpgroup` (`groupname`, | ||
+ | |||
+ | INSERT INTO `ftpquotalimits` (`name`, `quota_type`, | ||
+ | |||
+ | INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, ' | ||
+ | quit; | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ahora vamos a crear un usuario de prueba: | ||
+ | |||
+ | Hemos creado un usuario exampleuser para probar el servicio. Agreguemos ahora una cuota para ese usuario de 15Mb: | ||
+ | |||
+ | Si queremos cambiarle la cuota tenemos que entrar a la base de datos y ejecutar : | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Hemos creado un usuario llamado ‘exampleuser’, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
http:// | http:// | ||
- | ==== Verificar sintaxis | + | ==== |
- | # proftpd -t6 | + | Para poder configurar el soporte de transferencia encriptada de datos y autenticación en un servidor ftp, en este caso proftpd, es necesario compilar proftpd con el modulo mod_tls o en su defecto si utilizas una version superior a la 1.2.8, el soporte ya viene compilado y listo para utilizar, basta activar el soporte en el archivo de configuración (/ |
+ | |||
+ | Estos son los pasos para habilitar este servicio de manera de que soporte: | ||
+ | * encriptación de datos de control y datos en si. | ||
+ | * acepte sólo clientes con soporte ssl/tls | ||
+ | |||
+ | Lo primero, generar los certificados con el comando (ingresar los datos que se solicitan): | ||
+ | openssl req -new -x509 -nodes -out ftpd-rsa.pem -keyout ftpd-rsa-key.pem | ||
+ | |||
+ | < | ||
+ | |||
+ | Esto genera dos archivos ftpd-rsa.pem , ftpd-rsa-key.pem que copiamos en / | ||
+ | |||
+ | Ahora, modificaremos el archivo de configuración / | ||
+ | < | ||
+ | # soporte TLS | ||
+ | # habilitar el modulo TLS | ||
+ | TLSEngine on | ||
+ | # logs | ||
+ | TLSLog / | ||
+ | # Versión del protocolo a autilizar. | ||
+ | TLSProtocol SSLv23 | ||
+ | # Si sólo permitimos el acceso con SSL | ||
+ | TLSRequired on | ||
+ | # Dónde se encuentran los certificados. | ||
+ | TLSRSACertificateFile / | ||
+ | TLSRSACertificateKeyFile / | ||
+ | # certificados de los usuarios | ||
+ | TLSVerifyClient off | ||
+ | # Si solicitamos el certificado del cliente. | ||
+ | TLSOptions NoCertRequest | ||
+ | </ | ||
+ | |||
+ | |||
+ | Reiniciamos el servicio y probamos conectandonos con ftp-ssl o el filezilla | ||
+ | |||
+ | Para ver como van pasando los datos podemos usar tcpdump de la siguiente manera: | ||
+ | tcpdump dst portrange 20-21 -qX | ||
+ | |||
+ | Podemos hacer esta prueba conectandonos desde clientes con/sin soporte ssl/tls y ver como pasan los datos e identificar algunos textos como USER.. | ||
+ | |||
+ | Otra forma es la siguiente: | ||
+ | < | ||
+ | openssl genrsa 1024 > | ||
+ | openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > | ||
+ | cat host.cert host.key > host.pem | ||
+ | chmod 0400 host.key host.pem | ||
+ | </ | ||
+ | |||
+ | Y modificar el fichero /etc/proftpd.conf | ||
+ | < | ||
+ | TLSEngine on | ||
+ | TLSLog / | ||
+ | TLSProtocol TLSv1 | ||
+ | # Are clients required to use FTP over TLS when talking to this server? | ||
+ | TLSRequired off | ||
+ | # Server' | ||
+ | TLSRSACertificateFile / | ||
+ | # Key to the server certificate | ||
+ | TLSRSACertificateKeyFile / | ||
+ | # CA the server trusts | ||
+ | TLSCACertificateFile / | ||
+ | # Authenticate clients that want to use FTP over TLS? | ||
+ | TLSVerifyClient off | ||
+ | </ | ||
+ | |||
+ | Debido a las últimas actualizaciones del servidor proftpd algunos | ||
+ | añadir la línea siguiente al inicio del proftpd.conf | ||
+ | < | ||
+ | include / | ||
+ | comentar la línea SQLAutenthicate users* groups* | ||
+ | añadir AuthOrder mod_sql.c | ||
+ | </ | ||
+ | |||
+ | |||
+ | El archivo de configuracion resultante de todo es el siguiente: | ||
+ | < | ||
+ | # | ||
+ | # / | ||
+ | # To really apply changes reload proftpd after modifications. | ||
+ | # | ||
+ | include / | ||
+ | |||
+ | ServerName | ||
+ | ServerType | ||
+ | DeferWelcome | ||
+ | UseIPV6 | ||
+ | |||
+ | MultilineRFC2228 | ||
+ | DefaultServer | ||
+ | ShowSymlinks | ||
+ | |||
+ | TimeoutNoTransfer | ||
+ | TimeoutStalled | ||
+ | TimeoutIdle | ||
+ | |||
+ | DisplayLogin | ||
+ | DisplayFirstChdir | ||
+ | ListOptions | ||
+ | |||
+ | DenyFilter | ||
+ | |||
+ | |||
+ | |||
+ | # Port 21 is the standard FTP port. | ||
+ | Port 21 | ||
+ | |||
+ | # To prevent DoS attacks, set the maximum number of child processes | ||
+ | # to 30. If you need to allow more than 30 concurrent connections | ||
+ | # at once, simply increase this value. | ||
+ | # in standalone mode, in inetd mode you should use an inetd server | ||
+ | # that allows you to limit maximum number of processes per service | ||
+ | # (such as xinetd) | ||
+ | MaxInstances | ||
+ | |||
+ | # Set the user and group that the server normally runs at. | ||
+ | User nobody | ||
+ | Group | ||
+ | |||
+ | # Umask 022 is a good standard umask to prevent new files and dirs | ||
+ | # (second parm) from being group and world writable. | ||
+ | Umask | ||
+ | # Normally, we want files to be overwriteable. | ||
+ | AllowOverwrite | ||
+ | |||
+ | # Delay engine reduces impact of the so-called Timing Attack described in | ||
+ | # http:// | ||
+ | # It is on by default. | ||
+ | # | ||
+ | |||
+ | # Enjaulamos a los usuarios | ||
+ | DefaultRoot ~ | ||
+ | |||
+ | # Usar SSL para encriptar las comunicaciones | ||
+ | TLSEngine on | ||
+ | |||
+ | # logs | ||
+ | | ||
+ | |||
+ | # Versión del protocolo a autilizar. | ||
+ | TLSProtocol SSLv23 | ||
+ | |||
+ | # Si sólo permitimos el acceso con SSL | ||
+ | TLSRequired off | ||
+ | |||
+ | # Server' | ||
+ | TLSRSACertificateFile / | ||
+ | TLSRSACertificateKeyFile / | ||
+ | |||
+ | #si le pedimos certificados a los usuarios | ||
+ | TLSVerifyClient off | ||
+ | |||
+ | # Si solicitamos el certificado del cliente. | ||
+ | TLSOptions NoCertRequest | ||
+ | |||
+ | AuthOrder mod_sql.c | ||
+ | # The passwords in MySQL are encrypted using CRYPT | ||
+ | SQLAuthTypes | ||
+ | # | ||
+ | |||
+ | |||
+ | # used to connect to the database | ||
+ | # databasename@host database_user user_password | ||
+ | SQLConnectInfo | ||
+ | |||
+ | |||
+ | # Here we tell ProFTPd the names of the database columns in the " | ||
+ | # we want it to interact with. Match the names with those in the db | ||
+ | SQLUserInfo | ||
+ | |||
+ | # Here we tell ProFTPd the names of the database columns in the " | ||
+ | # we want it to interact with. Again the names match with those in the db | ||
+ | SQLGroupInfo | ||
+ | |||
+ | # set min UID and GID - otherwise these are 999 each | ||
+ | SQLMinID | ||
+ | |||
+ | # create a user's home directory on demand if it doesn' | ||
+ | SQLHomedirOnDemand on | ||
+ | |||
+ | # Update count every time user logs in | ||
+ | SQLLog PASS updatecount | ||
+ | SQLNamedQuery updatecount UPDATE " | ||
+ | |||
+ | # Update modified everytime user uploads or deletes a file | ||
+ | SQLLog | ||
+ | SQLNamedQuery modified UPDATE " | ||
+ | |||
+ | # User quotas | ||
+ | # =========== | ||
+ | QuotaEngine on | ||
+ | QuotaDirectoryTally on | ||
+ | QuotaDisplayUnits Mb | ||
+ | QuotaShowQuotas on | ||
+ | |||
+ | SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, | ||
+ | |||
+ | SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, | ||
+ | |||
+ | SQLNamedQuery update-quota-tally UPDATE " | ||
+ | |||
+ | SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies | ||
+ | |||
+ | QuotaLimitTable sql:/ | ||
+ | QuotaTallyTable sql:/ | ||
+ | |||
+ | RootLogin off | ||
+ | RequireValidShell off | ||
+ | </ | ||
+ | |||
+ | ==== Configuración FTP privado ==== | ||
+ | Si hemos decidio esta opcion deberemos de crear las cuentas de usuario antes. Las cuentas se crean como un usuario cualquiera de linux, es decir: | ||
+ | < | ||
+ | # su | ||
+ | # adduser < | ||
+ | # passwd < | ||
+ | </ | ||
+ | |||
+ | Acontinuacion deberemos de editar el archivo /etc/passwd y modificar la linea que hace referente al usuario pepito: | ||
+ | |||
+ | < | ||
+ | |||
+ | Al editar el fichero, en el final de este nos aparecera una linea como esta(siguiendo el ejemplo anterior): | ||
+ | |||
+ | < | ||
+ | |||
+ | Deberemos de modificarlo para que quede de asi: | ||
+ | |||
+ | < | ||
+ | |||
+ | Es decir, le decimos que su carpeta personal es donde tenemos el ftp, y su shell es una shell falsa(/ | ||
+ | |||
+ | Asi lo haremos con todos los usuarios que queramos añadir. | ||
+ | |||
+ | Una vez listo los usuarios, continuaremos por donde nos hemos quedado con la edicion del archivo proftpd.conf: | ||
+ | < | ||
+ | < | ||
+ | Umask 077 077 | ||
+ | AllowOverwrite off | ||
+ | </ | ||
+ | </ | ||
+ | Si ademas queremos tener nuestra carpeta de subida deberemos de añadir, debajo de </ | ||
+ | < | ||
+ | < | ||
+ | Umask 077 077 | ||
+ | AllowOverwrite on | ||
+ | <Limit READ WRITE STOR> | ||
+ | AllowAll #usar dentro del limit el order, denny y allow para que solo ciertos usuarios pueden tener este privilegio, igual que cuando aceptavamos o denegabamos permisos a ciertas ip's | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Configuracion FTP Privado y anonimo: === | ||
+ | Para configurar el ftp de esta forma hemos de haber seguido todos los pasos del punto anterior. Una vez hecho esto deberemos de editar al final del fichero proftpd.conf unas nuevas lineas: | ||
+ | < | ||
+ | < | ||
+ | AccessGrantMsg " | ||
+ | User ftp | ||
+ | Group nogroup | ||
+ | UserAlias anonymous ftp | ||
+ | RequireValidShell off | ||
+ | MaxClients < | ||
+ | MaxClientsPerHost < | ||
+ | MaxClientsPerUser < | ||
+ | <Limit LOGIN> | ||
+ | AllowAll # | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Umask 077 077 | ||
+ | |||
+ | AllowOverwrite off | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Umask 077 077 | ||
+ | AllowOverwrite on | ||
+ | <Limit READ WRITE STOR> | ||
+ | AllowAll # | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 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 < | ||
+ | |||
+ | === 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: | ||
+ | < | ||
+ | <Limit LOGIN> | ||
+ | DenyAll | ||
+ | </ | ||
+ | </ | ||
+ | Con esta etiqueta denegaremos cualquier intento de loguearse de cualquier usuario que este creado en / | ||
+ | |||
+ | ==== Opciones del Servidor ==== | ||
+ | * ServerName " | ||
+ | * ServerType standalone/ | ||
+ | * DeferWelcome on/off # off ya que no queremos mostrar ningun mensage de entrada | ||
+ | * ServerIdent on/off " | ||
+ | * MultilineRFC2228 on #on para que el servidor ftp sea compatible con todos los clientes ftp | ||
+ | * DefaultServer onf # | ||
+ | * ShowSymlinks on #on, para ver los links, si el link esta fuera de nuestro home no tendremos acceso a él | ||
+ | * AllowOverwrite on/ # | ||
+ | * TimeoutNoTransfer | ||
+ | * 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 " | ||
+ | * AccessDenyMsg " | ||
+ | * LogFormat default "%h %l %u %t \" | ||
+ | * LogFormat auth "%v [%P] %h %t \" | ||
+ | * LogFormat write "%h %l %u %t \" | ||
+ | * TransferLog | ||
+ | * ExtendedLog / | ||
+ | * ExtendedLog | ||
+ | * ExtendedLog | ||
+ | * DefaultRoot | ||
+ | * AuthUserFile | ||
+ | * AuthGroupFile | ||
+ | * MaxClients | ||
+ | * MaxClientsPerHost | ||
+ | * MaxClientsPerUser < | ||
+ | * RequireValidShell | ||
+ | |||
+ | Denegar acceso a ciertas ip | ||
+ | < | ||
+ | <Limit LOGIN> #Limitamos a quienes pueden intentar loguearse en el servidor | ||
+ | Order deny, | ||
+ | Deny from .pepito.com, | ||
+ | Allow from all #La etiqueta Allow es de quien vamos aceptar, en este caso all que representa a todas las ip's | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | Mejoras de apariencia en el archivo proftpd.conf: | ||
+ | |||
+ | Si os habeis fijado en las opciones donde pone " | ||
+ | * %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 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Carga de ProFTPd en el inicio y arrancar el demonio ==== | ||
+ | Para que el ftp se cargue en el arranque de nuestra maquina deberemos de seguir los siguientes pasos: | ||
+ | |||
+ | Si hemos compilado el proftpd deberemos de introducir el script de carga, ya sea el / | ||
+ | |||
+ | < | ||
+ | |||
+ | Siendo X nuetro runlevel, si tenemos dudas de cual es nuestro runlevel, poner lo siguiente: | ||
+ | |||
+ | < | ||
+ | |||
+ | El resultado sera algo parecido a esto(siendo la X el numero de nuestro runlevel): | ||
+ | id: | ||
+ | |||
+ | Para arrancar el servidor sin reiniciar deberemos de escribir lo siguiente: | ||
+ | |||
+ | < | ||
+ | |||
+ | Para parar el servidor deberemos de introducir lo siguiente: | ||
+ | |||
+ | < | ||
+ | |||
+ | Para restaurar y volver a cargar una nueva coniguracion en proftpd.conf debremos de poner lo siguiente: | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Como administrar el ftp: ==== | ||
+ | Para ver que usuarios estan conectado, que esta haciendo en este momento y desde cuando estan conectados sobrara con poner cualquiera de las siguientes ordenes: | ||
+ | Para ver la versión < | ||
+ | para ver los módulos cargados < | ||
+ | para comprobar la sintaxis < | ||
+ | |||
+ | |||
+ | # ftpwho | ||
+ | # ftptop | ||
+ | |||
+ | |||
+ | Cada una tiene una característica, | ||
+ | |||
+ | 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): | ||
+ | |||
+ | |||
+ | < | ||
+ | su | ||
+ | ftpshut now "El servidor se encuentra cerrado por motivos técnicos"</ | ||
+ | |||
+ | Para expulsar a un usuario de nuestro servidor, sobrara con mirar el numero de proceso en el que esta y matar el proceso: | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Un ejemplo seria el siguiente | ||
+ | |||
+ | < | ||
+ | pepito | ||
+ | fulanito 4319 0.0 0.9 5432 3563 ? S 23:57 0:00 [proftpd] | ||
+ | tontito | ||
+ | </ | ||
+ | |||
+ | Obtendremos una lista de todos los procesos(usuarios) que estan conectados y a su derecha su PID(en este ejemplo vamos a tirar a pepito): | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Para saber mas información acuérdate de usar los log's del servidor que están en / | ||
+ | |||
+ | ==== Información extra: ==== | ||
+ | Existe un gestor gráfico para el proftpd | ||
+ | < | ||
+ | |||
+ | |||
+ | Manual completisimo de proftpf en ingles: aki http:// | ||
+ | Indice de todos los comandos a utilizar con su explicacion del proftpd: aki http:// | ||
+ | |||
+ | ==== Referencias ==== | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ |