Lo descomprimimos en /:
$ sudo -s
# tar xfvz xampp-macosx-0.6.1.tar.gz -C /
Si queremos dar seguridad facilmente, usar contraseñas contraseñas "xampp" para usuario "nobody".
# /Applications/xampp/xamppfiles/mampp security
Si por el contrario queremos configurarlo nosotros mismos. Debes tener en cuenta estos tres parametros para manipular el demonio de ProFTPD
<startftp>: Inicia el ProFTPD-Server.
# /Applications/xampp/xamppfiles/mampp startftp
<stopftp>: Detiene el ProFTPD server.
# /Applications/xampp/xamppfiles/mampp stopftp
<reloadftp>: actualiza los archivos de configuración.
# /Applications/xampp/xamppfiles/mampp reloadftp
Luego editamos a nuestro gusto proftpd.conf:
# nano /Applications/xampp/etc/proftpd.conf
En mi caso lo hice de esta forma, primero colocamos el nombre que queramos a nuestro servidor ProFTPD.
ServerName "patton ProFTPD"
Luego seleccionamos el tipo de arranque, se puede elegir entre inetd o bien standalone, en inetd el equipo iniciará un nuevo proceso por cada pedido ftp, en cambio standalone que ya se encuentra inicializadp será clonado para atender el proximo pedido, en mi caso seleccione inetd:
ServerType inetd
Si seleccionamos inetd debemos editar /etc/inetd.conf descomentando ftp:
#finger stream tcp nowait nobody /usr/libexec/tcpd fingerd$
ftp stream tcp nowait root /usr/libexec/tcpd ftpd -l
#login stream tcp nowait root /usr/libexec/tcpd rlogind
Luego continuamos editando proftpd.conf si así lo deseamos.
Colocamos el mensaje que queremos que aparezca cuando accedamos a nuestro ftp:
ServerIdent on "Pico ctm"
Por ejemplo:
# ftp 127.0.0.1
Connected to localhost.
220 Pico ctm
Name (127.0.0.1:patton): patton
331 Password required for patton.
Password:
230 User patton logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||55979|)
150 Opening ASCII mode data connection for file list
drwxrwxr-x 8 root admin 272 Feb 15 13:40 apache
-rw-r--r-- 1 root admin 193 Feb 15 13:40 index.html
drwxrwxr-x 2 root admin 68 Feb 15 13:40 webalizer
drwxrwxr-x 45 root admin 1530 Feb 15 13:40 xampp
226 Transfer complete.
ftp>
Si queremos hacerlo compatible con la mayoria de los servidores ftp:
MultilineRFC2228 on
Si queremos que muestre la dirección física de nuestro enlace dinamico:
ShowSymlinks on
Usaremos off, permite sobreescribir ficheros existentes
AllowOverwrite off
El numero máximo de segundos que puede estar un cliente en el ftp, para logearse y transfiriendo.
TimeoutLogin 60
TimeoutNoTransfer 500
El numero maximo de segundos que puede estar el servidor sin recibir informacion de una transferencia.
TimeoutStalled 60
El numero maximo de segundos que puedes estar un usuario sin hacer nada ej: 200
TimeoutIdle 200
Filtro de proteccion para el ProFTPd
DenyFilter \*.*/
Acá indicamos el puerto donde queremos que escuche nuestro servidor FTP. Puerto predeterminado para ftp para controlar la sesion.
Port 21
Luego especifamos el valor de umask para la creación de archivos. Observe que el valor por defecto está en forma octal, que incluye un prefijo de "0". De lo contrario el valor es tratado como un valor entero de base 10. El valor por defecto 022. La opción umask=022 es para que los usuarios diferentes de root no puedan acceder, esta mascara funciona al contrario que la forma típica en que da permisos chroot.
Umask 022
MaxInstances indica el numero de conexiones al ftp que se pueden hacer a la vez, recomendable numero bajo para prevenir ataques DoS.
MaxInstanes 2
Fije el usuario y grupo con el cual el server correra.
User nobody
Group admin
AccessGrantMsg indica el mensage sera mostrado si la conexion del usuario ha sido correcta(el user y password ha sido el correcto)
AccessGrantMsg "-= Bienvenido %u, tu acceso ha sido realizado correctamente =-"
#
Por ejemplo:
# ftp 127.0.0.1
# Connected to localhost.
# 220 Pico ctm
# Name (127.0.0.1:patton): patton
# 331 Password required for patton.
# Password:
# 230 -= Bienvenido, tu acceso ha sido realizado correctamente =-
# Remote system type is UNIX.
# Using binary mode to transfer files.
# ftp>
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
Indicamos el mensaje de acceso incorrectamente mediante AccessDenyMsg.
AccessDenyMsg "No se pudo, sorry"
ej:
# Indicamos el mensaje de acceso realizado incorrectamente:
# AccessDenyMsg "mensaje"
# ftp 127.0.0.1
Connected to localhost.
220 Pico ctm
Name (127.0.0.1:patton): paton
331 Password required for paton.
Password:
530 No se pudo, sorry
ftp: Login failed.
ftp>
Especificamos la manera que queremos que se "logueen" un tipo de conexion:
Con LogFormat [nombre_formato] "formato" de tipo:
- WRITE(escritura)
- READ(lectura)
- AUTH(accesos)
- ALL(todos los anteriores)
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"
Especificamos donde guardamos fisicamente los logs, ademas del TIPO que seleccionemos.
ExtendedLog /directorio/fichero TIPO nombreformatolog
En ese caso se guardará en /var/log/proftpd.log
ExtendedLog /var/log/proftpd.log AUTH auth
Este tipo guarda todas las transferencias realizadas:
TransferLog /var/log/proftpd/proftpd.log
AllowRetrieveRestart permite continuar una descarga o subida de un fichero, en la cual la transferencia no se completo.A esta opción se le conoce como "resume".
AllowRetrieveRestart yes
AllowStoreRestart permite la continuación de una escritura que no se realizo completamente, va unida a la opción anterior
AllowStoreRestart yes
Hacemos chroot en el directorio de nuestro ftp,
DefaultRoot ~/ftp
Es decir, no permitiremos que pueda subir a un directorio jerarquicamente superior a él.
# mkdir ~/ftp
# ls -lia /Users/patton/ftp/
# total 0
# 929287 drwxr-xr-x 2 root patton 68 Mar 11 22:51 .
# 123870 drwxr-xr-x 32 patton patton 1088 Mar 11 22:51 ..
AllowRetrieveRestart permite continuar una descarga o subida de un fichero, en la cual la transferencia no se completo. A esta opción se le conoce como "resume".
AllowRetrieveRestart yes/no
AllowStoreRestart permite la continuación de una escritura que no se realizo completamente, va unida a la opción anterior.
Código:
AllowStoreRestart yes/no
Código:
PassivePorts 6000 6010
AuthUserFile "/etc/passwd"
Le indicamos donde esta el fichero donde tenemos guardados los grupos que tienen acceso a nuestro ftp.
AuthGroupFile "/etc/group"
Maximo numero de clientes con la mismo ip, ademas adjuntamos un mensage cuando sobrepasamos el numero maximo
MaxClientsPerHost 2
Solo 2 conexiones por HOST.
Maximo numero de clientes con la misma cuenta de usuario
MaxClientsPerUser 2
Solo 2 conexiones por usuario.
Decimos si los usuarios necesitan tener una shell valida o no, aqui importante poner en off
RequireValidShell off
Mediante <Directory /directorioftp></Directory> indicamos los directorios de nuestro ftp.
Las propiedades que le damos a un directorio se heredan a lo directorios inferiores.
Las opciones que se indican en <Directory /directorioftp></Directory> estan por sobre las opciones generales que se indican arriba. Usamos las etiquetas <Limit TIPO></Limit> indicamos el acceso al direcorio.
<TIPO>: Tipo de acceso al directorio.
<READ>: Tipo de acceso de lectura.
<WRITE>: Permite modificaciones en los directorios existentes.
<STORE>: Permite escribir nuevos datos.
<LOGIN>: Quién puede acceder.
<Directory ~/ftp>
Umask 022
AllowOverwrite off
<Limit READ>
AllowAll
</Limit>
</Directory>
<Order>: en esta etiqueta le decimos el orden de lectura de la información(1. deny=denegar, 2. allow=aceptar)
<Deny>: Denegar, por ejmplo xxx.xxx.xxx.xxx. forum.osx86spain.com, etc.
<Allow from all>: Acceso a todos
<Limit LOGIN>
Order deny,allow
Deny from 192.16.0.1, 192.16.0.5
Allow from all
</limit>
<Directory ~/ftp>
Umask 022
AllowOverwrite off
<Limit READ>
AllowAll
</Limit>
</Directory>
<Directory ~/ftp/subir>
Umask 022
AllowOverwrite on
<Limit READ WRITE>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
Mediante las etiquetas <Anonymous directorio/anonimo></Anonymous> permiten acceso ftp a usuarios sin password, solo con anonymous.
<Anonymous ~/ftp/anonimo>
AccessGrantMsg "-= Bienvenido al FTP anonimo =-"
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off
MaxClients 5
MaxClientsPerHost 1
MaxClientsPerUser 5
<Directory /ftp/anonimo>
Umask 077 077
AllowOverwrite off
</Directory>
</Anonymous>
Si queremos solo acceso anonimo en vez de comentare sta parte o borrarla solo colocamos "DenyALL" entre las etiquetas <Limit LOGIN> y </Limit>
Creamos los directorios especificados arriba:
# mkdir ~/ftp
# mkdir ~/ftp/anonimo
# mkdir ~/ftp/subir
# chmod 755 ~/ftp
# chmod 755 ~/ftp/anonimo
# chmod 777 ~/ftp/subir/
Podemos descargar NO-IP desde acá:
Sólo usuarios pueden ver enlaces

lo instalan y acceden con el browser Sólo usuarios pueden ver enlaces
# ftp lobo.no-ip.org Connected to lobo.no-ip.org.
220 Pico ctm
Name (lobo.no-ip.org:patton): patton
331 Password required for patton.
Password:
230 -= Bienvenido patton, tu acceso ha sido realizado correctamente =-
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
















