Servizo FTP

De Manuais Informática - IES San Clemente.
Revisión del 19:00 9 ene 2013 de Veiga (discusión | contribs.) (→‎Funcionamento)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Introdución

O servizo FTP (File Transfer Protocol) permite transferir ficheiros dun sistema a outro. Para iso, precísase dispoñer dunha conta na máquina que vai recibir os ficheiros. O protocolo está especificado no RFC 959.

É un servizo independente dos sistemas de ficheiros utilizados nas diferentes máquinas. Neste sentido, é transparente ao usuario.

Funcionamento

O FTP segue o modelo cliente/servidor onde o cliente é o extremo que inicia a transferencia dun ficheiro e o servidor é unha máquina remota que almacenará ese ficheiro.

UD4 1.jpg

O cliente FTP conéctase ao servidor FTP no porto 21, que é onde se executa o servizo, especificando TCP como protocolo de transporte. É precisamente mediante este porto, é dicir, mediante a conexión de control, co que o cliente consegue autorización. Unha vez autentificado o cliente visualiza ou navega polos cartafoles remotos enviando comandos mediante a conexión de control.

UD4 2.jpg

Con todo, o servidor utiliza tamén o porto 20 para a transferencia de ficheiros. Cando o servidor recibe un comando para realizar a transferencia dun ficheiro, o servidor abre unha conexión TCP nese porto para envialo ao cliente. Despois de transferir o ficheiro, o servidor pecha a conexión nese porto. Para transferir outro ficheiro o servidor ten que abrir unha segunda conexión TCP.

Á conexión de control separada da conexión de datos chámaselle conexión fóra de banda (“out of band”). O servidor FTP mantén o estado a través desta conexión: directorio actual, usuario, etc.

Máis información entre o modo de conexión FTP activo e FTP pasivo.

Instalación e configuración do cliente FTP

Dispoñemos en GNU/Linux de diversas aplicacións cliente.

Modo texto

En modo texto, o comando ftp que xa ven instalado co sistema (tamén en MS-Windows), permite establecer unha conexión cun servidor FTP. Por exemplo, se se quere iniciar unha sesión no servidor ftp.rediris.es:

ftp ftp.rediris.es

O servidor FTP solicitará o nome de usuario e clave para acceder ó equipo. O acceso dos usuarios aos directorios e ficheiros do servidor FTP depende dos permisos definidos para esa conta de usuario. Como normal xeral, o daemon FTP ocultará o directorio raíz do servidor e cambiarao ao directorio home do usuario, facendo inaccesibles o resto dos ficheiros.

En moitos casos, os servidores FTP permiten o acceso do usuario anonymous ou usuario invitado, que non precisa clave. Pola contra, ten privilexios moi limitados á hora de usar o servidor.

No cliente FTP podemos introducir distintos comandos que nos permitirán realizar as operacións sobre o servidor:

  • ascii / binary. Comandos que establecen o tipo de transferencia a ASCII (para transferir ficheiros de texto) ou binary (para ficheiros binarios), respectivamente.
  • bye / quit. Pechan a sesión co servidor e a consola FTP.
  • close / disconnect. Pechan a sesión co servidor, pero a consola ftp permanece aberta.
  • open servidor [porto]. Abre unha sesión co servidor indicado, podendo indicarse tamén o porto ao que conectarse (normalmente, úsase se o servidor non se está executando no porto por defecto).
  • pwd. Mostra o directorio do servidor ftp no que nos atopamos.
  • cd directorio. Cambia de directorio no servidor ftp.
  • delete ficheiro. Borra un ficheiro no servidor.
  • dir [directorio_remoto] [ficheiro_local]. Lista o contido do directorio do servidor e opcionalmente pode enviar a saída a un ficheiro local do cliente. Tamén se pode usar ls.
  • !ls. Amosa o contido do directorio do cliente.
  • mkdir directorio. Crea un directorio no servidor.
  • rmdir directorio. Borra un directorio do servidor (baleiro).
  • rename ficheiro novo_nome. Cambio o nome dun ficheiro no servidor.
  • get ficheiro_remoto [ficheiro_local]. Obtén unha copia do ficheiro remoto do servidor indicado no directorio actual do cliente. Pódese indicar un novo nome para o ficheiro.
  • mget ficheiros. Permite baixar múltiples ficheiros dun golpe. Podemos usar comodíns, como por exemplo mget *.txt.
  • put ficheiro_local [ficheiro_remoto]. Sobe unha copia do ficheiro local ao directorio actual no servidor. Pode indicarse un novo nome para o ficheiro.
  • mput ficheiros. Sobe múltiples ficheiros dun golpe. Podemos usar comodíns, igual que con mget.
  • lcd directorio. Cambia o directorio actual no cliente FTP.
  • help [comando]. Mostra a lista de comandos ou axuda sobre un comando concreto.

Modo gráfico

Existen tamén aplicacións en modo gráfico para GNU/Linux. Por exemplo, se usamos o contorno Gnome, pódese usar o gftp. Para instalalo hai que teclear o seguinte:

sudo apt-get install gftp

No contorno KDE, pódese utilizar o konqueror ou explorador de ficheiros de KDE para establecer sesións ftp.

Tamén é posible utilizar un navegador Web calquera para conectarnos a un servidor. Chega con introducir o URL na barra de direccións.

Instalación e configuración do servidor FTP

Existen múltiples programas que funcionan como servidor de FTP. Usarase nesta sección o vsftpd (Very Secure FTP Daemon) xa que é sinxelo de instalar e configurar, ademais de ser moi eficiente. De feito, úsase no proxecto Debian, no proxecto GNU e pola empresa Red-Hat, entre outros.

Para instalar o programa teclearase o seguinte:

sudo apt-get install vsftpd

A instalación crea un novo usuario ftp no sistema, incluído no grupo nogroup. No directorio home do usuario (/home/ftp) están os ficheiros que comparte o servidor para os usuarios anónimos.

O vsftpd utiliza o contorno chroot (change root ou gaiola chroot) que permite configurar un directorio como raíz (/) do sistema de ficheiros para un proceso e os seus fillos. Chámase gaiola chroot porque o usuario non poderá saír do directorio marcado como chroot. Por exemplo, o directorio onde se almacenan os ficheiros é o /home/ftp pero mediante chroot este directorio pasa a ser o directorio raíz.

O ficheiro executable atópase en /usr/sbin/vsftpd pero para arrancar o servizo seguirase o procedemento habitual (aínda que ao instalar o programa xa o arranca o propio sistema operativo):

sudo /etc/init.d/vsftpd [start] [stop] [restart]

Os principais ficheiros de configuración son os seguintes:

  • /etc/vsftpd.conf. É o ficheiro principal e contén todas as directivas de configuración. O seu formato é sempre directiva=valor, onde directiva é o nome da propiedade que se vai configurar e valor é o valor que se lle asigna. Non debe haber espazos antes e despois do signo =.
  • /etc/ftpusers. Contén unha lista de usuarios que non se poden conectar ao servizo FTP.

Existe ademais un ficheiro de rexistro de activididade (log) no cartafol /var/log/vsftpd.log. As directivas correspondentes para habilitalo son:

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

Inconvenientes do FTP

O principal problema do FTP é que usa un mecanismo de autentificación baseado en texto plano, co que o servidor non pode garantir que o usuario é quen di ser (non hai certificados). Derivado disto, as claves pódense capturar cun sniffer comprometendo a seguridade do sistema. Por último, as transferencias dos ficheiros tamén son en texto plano.

Para evitar isto pódese crear un certificado e habilitar as directivas correspondentes no vsFTPd.

--Arribi 11:11 27 ene 2009 (GMT)