28
UNIVERSIDADE FEDERAL DO AMAZONAS INSTITUTO DE COMPUTAÇÃO PROTOCOLOS DNS - DOMAIN NAME SYSTEM E FTP FILE TRANSFER PROTOCOL Augusto Rozendo Ribeiro de Arruda 20901910 Marcos Felipe Pessoa Thayza Castro MANAUS 2012

Protocolo FTP e DNS

Embed Size (px)

DESCRIPTION

Trabalho descrevendo os protocolos FTP e DNS

Citation preview

Page 1: Protocolo FTP e DNS

UNIVERSIDADE FEDERAL DO AMAZONAS INSTITUTO DE COMPUTAÇÃO

PROTOCOLOS DNS - DOMAIN NAME SYSTEM E FTP – FILE TRANSFER PROTOCOL

Augusto Rozendo Ribeiro de Arruda – 20901910

Marcos Felipe Pessoa Thayza Castro

MANAUS 2012

Page 2: Protocolo FTP e DNS

UNIVERSIDADE FEDERAL DO AMAZONAS INSTITUTO DE COMPUTAÇÃO

Augusto Rozendo Ribeiro de Arruda – 20901910 Marcos Felipe Pessoa

Thayza Castro

Trabalho apresentado para graduação em sistemas de informação, com o tema “PROTOCOLOS DNS - DOMAIN NAME SYSTEM e FTP – FILE TRANSFER PROTOCOL” para obtenção de nota parcial na disciplina IEC018 - REDES DE COMUNICAÇÃO DE DADOS, ministrada pela Prof. Cesar Augusto Viana Melo.

MANAUS 2012

Page 3: Protocolo FTP e DNS

Índice

1. INTRODUÇÃO ............................................................................................................................................ 4

1. O DNS ........................................................................................................................................................... 5

2. HIERARQUIA DO DNS .............................................................................................................................. 6

2.1 CATEGORIAS SERVIDORES DE DOMÍNIO .................................................................................................. 6

4. EXPERIMENTO DE USO DO DNS .......................................................................................................... 9

5. FTP INTRODUÇÃO .................................................................................................................................. 13

5.1 TRANSFERÊNCIA DE ARQUIVOS ............................................................................................................ 13 5.2. ACESSO AOS SERVIDORES FTP ........................................................................................................... 13 5.3 MODOS E INTERFACES ..................................................................... ERROR! BOOKMARK NOT DEFINED. 5.4 COMANDOS DO CLIENTE FTP ................................................................................................................ 14 5.5 TRADUÇÃO DE NOMES DE ARQUIVOS .................................................................................................... 14 5.5 MENSAGENS FTP .................................................................................................................................. 14 5.6 MODO CLIENTE-SERVIDOR DO FTP ....................................................................................................... 14 5.7 CLIENTES FTP ....................................................................................................................................... 14

6. ESTUDO DE CASO .................................................................................................................................. 16

REFERENCIAS ............................................................................................................................................. 26

Page 4: Protocolo FTP e DNS

4

1. Introdução

As aplicações e a razão de ser da Internet, permitindo que os usuários possam fazer

coisas úteis e interessantes na rede. As aplicações de rede são programas que rodam nos sistemas terminais ou hosts e se comunicam entre si através da rede. Para tanto utilizam protocolos de aplicação específicos que destacamos:

O serviço de DNS (Domain Name System - Sistema de Nomes de Domínios) é um dos serviços que compõem a web. Através de um banco de dados distribuído, ele é o responsável por converter os endereços IPs em nomes e vice-versa, baseando-se em hierarquias para que assim usando servidores múltiplos, possa diminuir sua carga em qualquer servidor que provê administração no sistema de nomeação de domínios, evitando a degradação quando se adicionam mais servidores, usando a porta 53 como padrão.

O Protocolo FTP (File Transfer protocol - RFC959) e o protocolo que suporta a aplicações de transferências de arquivos entre computadores, podendo a partir de sessões um usuário transferir arquivos de um computador remoto para um computador local e vice-versa (download e upload). Usando de comandos apropriados e fornecido o endereço do computador remoto estabelecendo uma conexão TCP entre o processo FTP cliente e servidor, o usuário fornece sua identificação e sua senha para assim executar a transferência.

Page 5: Protocolo FTP e DNS

5

1. O DNS

Segundo Kurose (2008) o DNS (RFC1034 e RFC 1035) é um banco de dados

distribuído desenvolvido em um hierarquia de servidores de nomes chamados servidores DNS usando protocolo da camada de aplicação para possibilitar que os clientes (hosts) consultem o banco de dados distribuído e consequentemente resolvam ou o nome ou o IP.

Sua origem se deu pela necessidade durante a década de 80 quando a agência de Projetos de Pesquisa Avançada em Redes – ARPANET (agência de pesquisa norte americana) notou o seu crescimento com a inserção de novas redes (LAN), tornando a tarefa de localizar hosts dispendiosos, criando assim da uma organização das máquinas em domínios e para mapear nomes de hosts em endereços IPs, que foi denominado de DNS.

Hoje o DNS é um recurso capaz de identificar um endereço na web seja por seu nome de domínio, por exemplo, “www.ufam.edu.br” ou pelo endereço de IP dos equipamentos que o hospedam (200.129.163.100). Endereços de IP são usados pela camada de rede para determinar a localização física e virtual do equipamento já os nomes de domínio são mais mnemônicos para o usuário e empresas, logo, e necessário um mecanismo para traduzir um nome de domínio em um endereço IP, sendo esta a principal função do DNS.

Os servidores DNS raiz no mundo todo são 13 (treze) e sem eles a Internet não funcionaria, estão distribuídos dez nos Estados Unidos da América, um na Ásia e dois na Europa. E para que se possa aumentar a base instalada destes servidores, foram criadas réplicas localizadas por todo o mundo, inclusive no Brasil, ou seja, os servidores de diretórios responsáveis por prover informações como nomes e endereços das máquinas são normalmente chamados servidores de nomes.

Page 6: Protocolo FTP e DNS

6

2. Hierarquia do DNS

A configuração básica de para um programa cliente solicitar consultas ao serviço DNS, o programa usuário interage com o DNS por meio de um DNS local, enviando pedidos (queries) e recebendo respostas (responses). O resolvedor de nomes pode ter as informações solicitadas por um determinado usuário na memória cache, entretanto caso não possua, ele faz uma consulta a um DNS externo. Com a resposta obtida do servidor externo e passada ao usuário responsável pelo pedido que armazenada na cache do resolverdor local visando atender consultas futuras ao mesmo endereço. O DNS externo, por sua vez, pode realizar pedidos a outros servidores para obter a resposta que lhe foi solicitada. A hierarquia de servidores de nomes da Internet, os servidores DNS estão organizados nas categorias: Local Host Figura 1: DNS (RFC 1035)

2.1 Categorias Servidores de domínio

Os servidores de nomes raiz estão na maior parte na América do Norte e tem como finalidade básica replicar esses nomes para fins de segurança e confiabilidade, estes perfazem 13 servidores mas por serem um conglomerado são dispostos como se fosse um só. Sabe-se que um Servidor Raiz (Root Name Server) é um servidor de nome para a zona raiz do DNS (Domain Name System) tem como função é responder diretamente às

Programa Usuário

Resolver

Cache

Servidor de nomes exteriores

Consultas de Usuários

Respostas de Usuários

Consultas

Respostas

Cache adicionadas Referencias

Page 7: Protocolo FTP e DNS

7

requisições de registros da zona raiz e responder a outras requisições retornando uma lista dos servidores de nome designados para o domínio de topo (KUROSE 2004).

Os servidores de nomes de domínio são responsáveis pelo domínio de alto nível sendo NET, EDU, GOV e por domínios de países BR, JP, FR, tais siglas referenciam a parte de domínio de alto nível (TLD). Os servidores de domínio de topo (Top-Level Domain) e formado por nomes separados por pontos. O nome mais à direita é chamado de domínio de topo, onde cada servidor de domínio de topo conhece os endereços dos servidores autoritativos que pertencem àquele domínio de topo, ou o endereço de algum servidor DNS intermediário que conhece um servidor autoritativo. (KUROSE 2004)

Por fim os servi dores com autoridade são os que podem ser acessados publicamente na internet, para que os registros fiquem acessíveis ao internautas onde são mapeados os endereços de IPs, armazenando os registros pertinentes a organização. Os servidores autoritativo de um domínio possui os registros originais que associam aquele domínio a seu endereço de IP. Toda vez que um domínio adquire um novo endereço, essas informações devem são registradas em dois servidores autoritativos.

Dado as classes de servidores, é possível resolver qualquer requisição DNS, para

tanto basta fazer uma requisição a um servidor raiz, que retornará o endereço do servidor de topo responsável. Então repete-se a requisição para o servidor de topo, que retornará o endereço do servidor autoritativo ou algum intermediário. Repete-se a requisição aos servidores intermediários (se houver) até obter o endereço do servidor autoritativo, que finalmente retornará o endereço IP do domínio desejado. Figura 2: Name Space

Page 8: Protocolo FTP e DNS

8

O espaço de nomes de domínio e endereços IP são recursos críticos para a internet, no sentido que requerem coordenação global. Cada endereço IP deve identificar um único equipamento, de forma que não é possível atribuir endereços IP de maneira descentralizada. Da mesma forma, um nome de domínio deve identificar o conjunto de computadores que o mantém. A organização responsável por atribuir nomes de domínio e endereços IP em nível global é a ICANN

Page 9: Protocolo FTP e DNS

9

4. Experimento de uso do DNS

Para melhor apreciação do protocolo DNS e sua funcionalidade foram criadas um estudo de caso que demostra de forma prática suas funcionalidades: Foi montada estrutura com 6 maquinas cabeadas com switch sendo liberado DHCP por um servidor distinto e um servidor DNS pela equipe deste trabalho. Projeto de rede: Classe de IP para clientes: 10.10.1.1 (servidor DHCP) 10.10.1.2 (Servidor DNS) Endereço de domínio serveraspire.sis.br Estações utilizadas Ubuntu 11.10 Windows 7 Softwares utilizados

-BIND (Berkeley Internet Name Domain) ou, como chamado previamente, Berkeley Internet Name Daemon é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix, onde ele pode ser considerado um padrão de fato. Atualmente o BIND é suportado e mantido pelo Internet Systems Consortium. Figura 3 Bind9

Page 10: Protocolo FTP e DNS

10

Para que o Bind 9 funcione de forma correta e necessário ajustes de configurações a seguir: Configurações do Bind9 -Instalação # apt-get install bind9 dnsutils -configurar as zonas do DNS: # vim /etc/bind/named.conf.local Criação do arquivo named.conf.local zone "tabajara.local" { type master; // diz se o servidor dns eh o primario (master) ou secudario (slave) file "/etc/bind/zones/zone.tabajara.local"; // arquivo que contem as configuracoes do dominio }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/rev.1.168.192.in-addr.arpa"; }; -Edição do arquivo named.conf.options e informe um servidor de encaminhamento (forwarder): # vim /etc/bind/named.conf.options options { directory "/var/cache/bind"; forwarders { 208.67.222.222; 208.67.220.220; }; auth-nxdomain no; listen-on-v6 { any; }; }; -Criação do arquivo de definição de zona: # mkdir /etc/bind/zones # vim /etc/bind/zones/zone.tabajara.local O arquivo de definição de zona é onde adicionamos todos os endereços/máquinas que nosso DNS conhecerá.

Page 11: Protocolo FTP e DNS

11

$TTL 86400 ; Tempo para atualizar o cache do dns - apartir do bind9 eh obrigatoria @ IN SOA servidor.tabajara.local. root.tabajara.local.( 2010102201 ; Serial, deve ser mudado toda vez que alterar o arquivo 10800 ; refresh apos 3h 3600 ; retry apos 1h 640800 ; expire apos 1 semana 86400 ; default_ttl minimo de 1 dia ) NS servidor.tabajara.local. servidor A 192.168.1.1 www A 192.168.1.2 Definições de entrada neste arquivo: @ -> Fala onde esta localizado este dominio. IN -> Dominio Internet SOA -> Start of Authority ou Começo da autoridade, define o servidor DNS. NS -> Indica que a estação e uma servidora de nomes. Serial -> Informa o dia que este arquivo foi modificado e a quantidade de vezes q ele foi modificado naquele mesmo dia. A data + Serial e da seguinte forma: ANO MES DIA SERIAL Refresh -> Informa de 1 em 1 hora ele fara a atualização da base de nomes com o servidor secundario. Retry -> Define que de 30 em 30 min o servidor secundario tentara se comunicar com o servidor primario. Somente acontecerá isso se o servidor primario cair. Expira -> Tempo de vida util do servidor secundario caso ele nao consiga se comunicar com o servidor primario em 7 dias ele droppara todo seu banco de dados de dominio. TTL Minimo -> Tempo de resposta de um servidor, caso seja pedido a resolução de um dominio contido em seu banco de dados. Criando o arquivo de zona reversa: # vim /etc/bind/zones/rev.1.168.192.in-addr.arpa $TTL 86400 ; Tempo para atualizar o cache do dns - apartir do bind9 eh obrigatoria @ IN SOA servidor.tabajara.local. root.tabajara.local. ( 1 ; Serial, deve ser mudado toda vez que alterar o arquivo 10800 ; refresh apos 3h 3600 ; retry apos 1h 640800 ; expire apos 1 semana 86400 ; default_ttl minimo de 1 dia ) NS servidor.empresa.com. 1 PTR servidor.empresa.com. 1 PTR www

Page 12: Protocolo FTP e DNS

12

Entretanto as configurações implementadas pelo Bind 9 passam a ser mais amigáveis quando implementadas com a ferramenta WEBMIN Webmin e capaz de administrar graficamente o bind 9 e consequentemente pode-se melhorar o desempenho de configuração, edição e inserção de domínios por meio do navegador web. O Webmin remove a necessidade de editar manualmente arquivos de configuração Unix como o / etc / passwd, e permitindo o gerenciamento do sistema a partir do console ou remotamente. Figura 4 Webmin

Page 13: Protocolo FTP e DNS

13

5. FTP Introdução

FTP vem de Protocolo de Transferência de Arquivos, e é uma forma hábil e adaptável de transferir arquivos, sendo amplamente utilizado na internet. Quando falamos de FTP, podemos nos referir tanto ao protocolo (conjunto de regras) que ele utiliza, usando como base o TCP/IP (Transmissão confiável de dados), quanto também podemos nos referir ao programa que o implementa, no nosso caso, o vsftpd.

5.1 Transferência de arquivos

A transferência de arquivos ocorre entre um computador chamado cliente, que é o

computador que faz a requisição, e um servidor (aquele que recebe a solicitação de transferência e envia para o cliente solicitante). O cliente, através de programa relacionado, pode selecionar quais arquivos enviar ao servidor, ou mesmo copiar de lá, dependendo do tipo de solicitação.

Para existir uma conexão com o servidor, o utilizador informa um nome (Login) e

uma senha (password), bem como o nome do servidor ou seu endereço IP (Para se utilizar um nome ao invés do seu endereço IP, é necessário quie o servidor esteja atrelado à um domínio, com o DNS, e possua um alias). Se os dados foram informados corretamente no momento de login, a conexão pode ser estabelecida, utilizando-se um canal de comunicação, chamado de porta, que na implementação, são os Sockets que cuidam da conexão, informando nome e porta, assim sendo, identificando o processo que deseja se comunicar. Tais portas são conexões no qual é possível trocar dados. No caso da comunicação FTP, o padrão para porta é o número 21, podendo variar, como no caso da utilização do VSFTPD, no seu arquivo de configuração, há a possibilidade de mudança de porta.

5.2. Acesso aos servidores FTP

O acesso a servidores FTP pode ocorrer de mais de um modo, podendo estes modos serem por linha de comando, ou por uma interface gráfica, que implementa as funções necessárias para se estabelecer uma conexão FTP (como exemplo o Filezilla). O modo em linha de comando, responsável por tais conexões, é conhecido como telnet.

A partir de qualquer browser que possua esta função, também é possível aceder a um servidor FTP no modo gráfico. Basta, para isso, digitar na barra de endereço:

ftp:// [usuário] : [senha] @ [servidor] [opcional] : porta

Page 14: Protocolo FTP e DNS

14

5.4 Comandos do cliente FTP

A implementação do FTP não é nova, assim como seu padrão, foram propostos antes mesmo de muitos protocolos hoje existentes, e ainda assim, não sofreram tantas modificações “externas”, como de performance.

O FTP tem particularidades que são hoje pouco comuns. Depois da ativação do ftp, é

estabelecida uma conexão ao host remoto. Esta conexão envolve o uso da conta do usuário no host remoto, sendo que alguns servidores FTP disponibilizam anonymous FTP. Essa modalidade é a de que o cliente possa se conectar ao servidor sem oferecer credenciais necessariamente válidas, mas sim o login globalmente conhecido como anônimo, e um e-mail qualquer. Apesar de que a conta de anônimo tenha restrições sobre os comandos que possa exercer, não é recomendável deixa-la ativada, na maioria dos casos, por questões de segurança.

5.5 Tradução de nomes de arquivos

A sintaxe dos nomes dos arquivos pode ser incompatível entre diferentes Sistemas Operacionais. Em certas implementações, há a possibilidade de que eles possam não ser interpretados de forma correta (por exemplo, a diferença entre o padrão Unicode e ISO), causando problemas em nomes de arquivos e diretórios.

5.6 Modo cliente-servidor do FTP

O Servidor remoto aceita uma conexão de controle do cliente local. O cliente envia comandos para o servidor e a conexão persiste ao longo de toda a sessão (tratando-se assim de um protocolo que usa o TCP).

O servidor cria uma conexão de dados para a transferência de dados, sendo criada

uma conexão para cada arquivo transferido. Estes dados são transferidos do servidor para o cliente e vice e versa.

No caso de nossa utilização, ocorreu que tanto o cliente quanto o servidor estavam na mesma máquina (localhost), na qual utilizamos para demonstrar o trabalho proposto, utilizando o VSFTPD, e a conexão via SSH, utilizando o Open-SSH.

5.7 Clientes FTP

Windows •Filezilla •SmartFTP •Total Commander

Page 15: Protocolo FTP e DNS

15

Mac •Cyberduck •gFTP •Transmit Linux •KFTPGrabber •kasablanca VSFTPD - Utilizado Outros •Net2FTP

•FireFTP

Page 16: Protocolo FTP e DNS

16

6. Estudo de caso

Para simulação do serviço FTP foi descrita características usando o servidor Vsftpd para LINUX das varias implementações de servidor FTP em Linux destacam-se: - BSD FTPD - ProFTP - Wu-FTPD - vsftpd roda em: # ftp.redhat.com # ftp.suse.com # ftp.debian.org # ftp.openbsd.org # ftp.freebsd.org # ftp.gnu.org # ftp.gnome.org # ftp.kde.org # ftp.kernel.org # rpmfind.net Características - Autenticação: Servidores FTP exigem um par de usuário e senha para acesso ao mesmo. Acesso anônimo também pode ser disponibilizado. - Contas: Devido ao sistema de usuário/senha, permite acesso individualizado através de contas. - Criptografia: Não codificam quaisquer dados, inclusive nomes de usuários e senha. Existem implementações que aumentam a segurança (FTP+Kerberos) - Conexões: Baseado em conexão contínua. - Edição direta de arquivo: O FTP não foi projetado com esse objetivo. Necessário fazer o download e depois o upload do arquivo. - Multi-plataforma: Implementação de clientes em diversas plataformas - Facilidade de configuração de servidor: Normalmente a configuração básica de um servidor ftp permite ler e escrever com as mesmas permissões de um login via shell. - Servidor de FTP seguro, extremamente rápido e estável. Algumas funcionalidades: - Configuração de IP Virtual - Usuários Virtuais - Inicialização Standalone ou via inetd - Suporte a encriptação via integração via SSL - Arquivos de configuração: /etc/vsftpd/ftpusers – Usuários locais que não possuem permissão para acesso ao servidor FTP. /etc/vsftpd/user_lists – Depende do parâmetro userlist_enable no arquivo de configuração. Possui lista de usuários que podem ou que não podem se logar, dependendo do parâmetro citado. /etc/vsftpd/chroot_lists – Lista de usuários que irão ficar chrooted (não vem por padrão) /etc/vsftpd/vsftpd.conf – Arquivo de configuração do servidor VSFTP

Page 17: Protocolo FTP e DNS

17

Instalação do Vsftpd no Linux (Ubuntu) # apt-get install vsftpd Depois da resolução de pacotes e instalação dos mesmos, o VSFTPD estará instalado em sua máquina, com as configurações padrões, que podem ser modificadas em modo texto no arquivo vsftpd.conf. Abaixo, o arquivo de configuração do vsftpd, utilizado na apresentação de Redes, assim como a funcionalidade de cada linha. # Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the fftpd_bannertp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES # # Run standalone with IPv6? # Like the listen parameter, except vsftpd will listen on an IPv6 socket # instead of an IPv4 one. This parameter and the listen parameter are mutually # exclusive. #listen_ipv6=YES # # Allow anonymous FTP? (Disabled by default) anonymous_enable=YES # # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command.anonymous_enable write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) #local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. anon_mkdir_write_enable=YES #

Page 18: Protocolo FTP e DNS

18

# Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # If enabled, vsftpd will display directory listings with the time # in your local time zone. The default is to display GMT. The # times returned by the MDTM FTP command are also affected by this # option. use_localtime=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. #xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=180 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES #

Page 19: Protocolo FTP e DNS

19

# You may fully customise the login banner string: #ftpd_banner= # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # # You may restrict local users to their home dinrectories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. chroot_local_user=YES # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). #chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # Debian customization # # Some of vsftpd's settings don't fit the Debian filesystem layout by # default. These settings are more Debian-friendly. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd/empty # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # Modificações # Tempo até o servidor encerrar conexao na inicialização connect_timeout=90 # Tempo até o servidor encerrar a conexão durante transferencia de dados data_connection_timeout=180 # Tempo em segundos, até que o servidor remoto termine a conexao. idle_session_timeout=800 #Tentativa máxima de logins, até recusa do servidor remoto.

Page 20: Protocolo FTP e DNS

20

max_login_fails=5 # Retirada do password do login anônimo (ftp) no_anon_password=YES # Mostrar nome completo durante o comando dir text_userdb_names=YES # Mostrar data local use_localtime=YES #Usar banner banner_file=/etc/vsftpd/welcome.txt #Configurações de segurança, voltadas para barrar áreas específicas de modificações. deny_file={*Documentos*,*Downloads*,*Área\*,*de\*,*trabalho/*,*Imagens*,*Música*,*Modelos*,*Vídeos*,*Downloads*} #ssl_enable=YES #allow_anon_ssl=NO #force_local_data_ssl=YES #force_local_logins_ssl=YES #ssl_tlsv1=YES #ssl_sslv2=YES #ssl_sslv3=YES # Filezilla uses port 21 if you don't set any port # in Servertype "FTPES - FTP over explicit TLS/SSL" # Port 990 is the default used for FTPS protocol. # Uncomment it if you want/have to use port 990. #listen_port=990 Wireshark e Vsftpd Abaixo, alguns exemplos da utilização do vsftpd com o wireshark (farejador de pacotes) setado ao localhost, sua interação e captura de pacotes, e a demonstração da diferença entre os pacotes analisados com e sem a camada de proteção SSL. A 1º figura exibe o login feito via linha de comando no servidor FTP, através do vsftpd, em localhost. Em seguida, a próxima imagem mostra os pacotes capturados, assim como o login e a senha em “plain text”, sem qualquer uso de criptografia. Na terceira, mais detalhes sobre o mesmo uso sem criptografia. A penúltima e últimas imagens demonstram a utilização de sftp (secure ftp) com SSH, utilizando a interface gráfica do Filezilla, assim como os pacotes capturados no wireshark, e demonstra que não é possível efetuar sua leitura (ou ao menos entender o que significam os dados capturados, já que possuem criptografia).

Page 21: Protocolo FTP e DNS

21

Page 22: Protocolo FTP e DNS

22

Page 23: Protocolo FTP e DNS

23

Page 24: Protocolo FTP e DNS

24

Page 25: Protocolo FTP e DNS

25

Page 26: Protocolo FTP e DNS

26

REFERENCIAS

Redes De Computadores - Andrew S. Tanenbaum

Redes Linux: Livro de Receitas Editora: Alta Books, 2009 http://www.thegeekstuff.com/2010/11/vsftpd-setup/ http://linuxconfig.org/linux-dns-server-bind-configuration

Page 27: Protocolo FTP e DNS

27

Page 28: Protocolo FTP e DNS

28