Sólo recomendamos el servicio ftp para poner un
servidor anónimo (con el usuario
anonymous
y una clave arbitraria).
No para que transfiera datos
de un usuario porque este servicio transmite claves
planas por la red, y así mismo transmite archivos
sin encripción alguna. Para transferir información
de usuarios emplee un protocolo seguro como
scp.
OpenBSD incluye un servidor de ftp auditado, para que los
usuarios del sistema puedan emplearlo
basta agregar la siguiente línea al archivo
/etc/rc.conf.local
:
ftpd_flags="-D -A"
Que especifica operar en el fondo y sólo para recibir conexiones anónimas. Para ejecutarlo sin reiniciar use:
/usr/libexec/ftpd -D -A
Para permitir conexiones anónimas debe crear una cuenta
ftp
. Los detalles
de creación al usar adduser
se presentan
a continuación (emplee una clave difícil, preferiblemente
generada con apg):
Enter username []: ftp Enter full name []: FTP anonimo Enter shell csh ksh nologin sh [ksh]: nologin Uid [1008]: Login group ftp [ftp]: Login group is ``ftp''. Invite ftp into other groups: guest no [no]: Login class auth-defaults auth-ftp-defaults daemon default staff [default]: auth-ftp-defaults Enter password []: Enter password again []:
Después puede ubicar lo que desee que aparezca en el servidor
ftp en el directorio de tal cuenta
(e.g /home/ftp
) y quitar los permisos
de escritura para todos los usuarios.
Cuando un usuario anonymous inicie una sesión, el
servidor pondrá el directorio /home/ftp
como jaula (chroot) de la conexión. Se espera que el
dueño de ese directorio sea root y no permita escritura
(modo 555), como subdirectorios se espera:
bin: puede ubicar programas que permitirá que sean ejecutados (no se recomienda). De tenerlo el dueño debe ser root y no permitir escritura ni lectura por nadie (modo 511).
etc: El dueño debe ser root y no permitir
escritura ni lectura de nadie (modo 511). Para que
ls presente nombres en lugar
de números deben estar presentes
pwd.db
y
group
(sin claves reales).
Si existe el archivo motd
será presentado tras ingresos exitosos. Estos
archivos deben tener modo 444.
pub: el dueño debe ser root, sin permitir escritura de nadie (modo 555). En este directorio se ponen los archivos por compartir.
Si desea mantener una bitácora de las descargas que se realicen
(en /var/log/ftpd
),
asegurese de agregar entre los flags en
/etc/rc.conf.local
, las opciones
-S -l
y ejecutar:
touch /var/log/ftpd
Si su servicio ftp opera en un servidor de la red interna, puede emplear ftp-proxy para hacerlo visible al exterior.
Además del ftp-proxy
que podría estar corriendo en el cortafuegos
para servir a la red interna, debe ejecutar una segunda
instancia que opere en modo reverso. Para esto
agregue en /etc/rc.local
:
pgrep ftp-proxy > /dev/null if (test "$?" != 0 -a X"${ftpproxy_flags}" != X"NO" -a \ -x /usr/sbin/ftp-proxy) then { echo -n ' ftp-proxy' /usr/sbin/ftp-proxy ${ftpproxy_flags} /usr/sbin/ftp-proxy -b 200.1.10.44 -p 21 -a 200.1.10.44 -R 192.168.1.30 } fi;
cambiando 200.1.10.44 por su IP pública y 192.168.1.30 por la IP del servidor en el que corre ftp.
Para monitorear su operación antes de activarlo
puede emplear las opciones -D 7 -dvv
que lo hará correr en primer plano enviando bitácora
a salida estándar con máximo nivel de verbosidad.