El directorio /home/ftp
en nuestro caso debe cumplir lo
siguiente, para que sea seguro:
/home/ftp
El directorio raíz del ftp (/home/ftp
) debe ser propiedad del
usuario root y con acceso de escritura prohibido al resto de usuarios,
pero sí de ejecución para todos (chmod 555
)
Como ejemplo:
dr-xr-xr-x 6 root root 1024 Jul 19 21:16 ftp
Es importante saber que algunas revistas, y manuales sobre ftp recomiendan
que el usuario propietario de /home/ftp
sea ftp, pero esto es un
error enorme si queremos tener un servidor seguro.
/home/ftp/bin
El directorio /home/ftp/bin
debe ser propiedad del root y sin
acceso de escritura al resto de los usuarios. Como ejemplo:
d--x--x--x 2 root root 1024 Jul 27 21:48 bin
Dentro de este directorio, los archivos que tendremos serán todos los ejecutables, en mi caso son:
---x--x--x 1 root root 15204 Oct 24 1997 compress
---x--x--x 1 root root 46324 Nov 6 1997 cpio
---x--x--x 1 root root 45660 Jul 27 21:48 gzip
---x--x--x 1 root root 29404 Jul 27 21:48 ls
---x--x--x 1 root root 62692 Oct 20 1997 sh
---x--x--x 1 root root 103968 Jul 27 21:48 tar
Como se puede ver todos ellos son pertenecientes a root
y con permisos
de sólo ejecución para todo el mundo (modo 111
). Los comandos de este
directorio son los mismos que usamos en nuestro sistema, por ejemplo
"ls
", los copiamos aquí si no los tenemos y les aplicamos los
permisos.
/home/ftp/etc
El directorio /home/ftp/etc
tendrá permiso de solo ejecución y
será propiedad de root
:
d--x--x--x 2 root root 1024 Jul 27 23:42 etc
Los archivos siguientes son los que tendremos en este directorio:
-r--r--r-- 1 root root 18 Jul 27 21:48 group
-r--r--r-- 1 root root 8376 Nov 6 1997 ld.so.cache
-r--r--r-- 1 root root 44 Jul 27 21:48 passwd
-r--r--r-- 1 root root 172 Jul 19 21:16 pathmsg
Todos los archivos deben ser de sólo lectura (modo 111
).
Tanto el archivo group
como el archivo passwd
de este directorio
deben contener la información mínima posible. Un ejemplo claro sería:
passwd
:
root:*:0:0:root::
ftp:*:10::Anonymous FTP::
group
:
root::0:
staff:::
El archivo pathmsg
es un archivo de información para el usuario
cuando introduce algún carácter no valido. Es editable por nosotros para
que ponga lo que queramos.
pathmsg
Original:
You used an illegal filename. The filenames for anonymous
users must be made of only the characters A-Z, a-z, 0-9
and "._-+" and may not begin with a "." or a "-".
pathmsg
mío actual:
Baby estas usando un nombre d'archivo erroneo. A ver zi te
enteras ke solo puedes usar los caracteres A-Z, a-z, 0-9
y "._-+" pero sin empezar por "." o "-".
Fuera de las coñas y demás, es ``algo'' más inteligible que en inglés.
El archivo ld.so.cache
contiene los nombres de las librerías
necesarias, recomiendo no tocarlo si no es necesario.
/home/ftp/lib
El directorio /home/ftp/lib
donde las librerías son contenidas,
debe tener propiedades de solo ejecución (d--x--x--x
). En el interior
encontraremos librerías y links a las mismas. Debemos tener en cuenta que
deben tener permisos de sólo lectura, pero que los links tienen todos los
permisos activados.
Como ejemplo:
-r--r--r-- 1 root root 164803 Jul 27 21:48 ld-2.0.5.so
lrwxrwxrwx 1 root root 11 Jul 14 02:23 ld-linux.so.2 -> ld-2.0.5.so
/home/ftp/pub
El directorio /home/ftp/pub
es donde se alojarán los archivos que
queremos compartir. Su propietario debería ser ftp
, y los accesos
serán de ejecución y lectura:
dr-xr-xr-x 21 ftp ftp 1024 Jul 26 20:04 pub
El permitir la escritura en este directorio no es una buena idea, puesto
que los archivos deberían estar controlados, para ello usaremos un
directorio concreto para las subidas. La recomendación es tener los
permisos de todo lo que cuelga de este directorio (pub
) como
555
.
En otros sistemas como SunOS las propiedades de este directorio son
2555
, de tal forma que se pueden crear nuevos archivos con el mismo
grupo.
/home/ftp/pub/incoming
El directorio /home/ftp/pub/incoming
es el directorio donde
permitiremos la subida de ficheros a nuestra máquina. Por ello debe tener
las siguientes propiedades:
drwxr-x-wx 2 root root 1024 Jul 19 21:16 incoming
Como se puede observar tiene permiso de ejecución (como es un directorio, realmente es permiso de acceso al directorio) y de escritura, pero no de lectura. Esto se hace para que sólo personas autorizadas vean el contenido de este directorio. Si quisiéramos que fuera un directorio para compartir ficheros, solo tendríamos que añadir la propiedad de lectura.
Por otro lado, tendremos que editar un archivo de configuración para que todo esté perfecto. Este archivo se verá en la parte de configuración avanzada.