Proftpd - usando virtualhosts, seção global, contexto do servidor corretamente

Proftpd - usando virtualhosts, seção global, contexto do servidor corretamente

Versão curta:

Qual é a diferença entre o contexto do servidor e uma seção virtualhost no arquivo de configuração proftpd? No sentido do que posso fazer com o primeiro, não posso fazer com o segundo.
Por exemplo, não posso colocar diretivas como UseIPv6 ou MaxInstances em um host virtual ou na seção global, mas colocá-las no contexto do servidor funciona perfeitamente. Qual seria então o uso correto dessas seções para a configuração mencionada abaixo?

Achei que o processo geral fosse o seguinte: sempre que um cliente se conecta ao servidor, o servidor verifica se existe um host virtual correspondente ao endereço ao qual o cliente se conectou. Caso contrário, a seção de contexto do servidor será escolhida (exceto que a diretiva DefaultServer é usada para evitar isso). Então pensei que a seção de contexto do servidor e uma seção virtualhost são igualmente "poderosas". Mas não pode ser esse o caso, pois existem directivas que funcionam apenas numa das secções.

Versão longa (informações adicionais):

Basicamente, tudo o que quero fazer é executar um servidor proftp em uma máquina local em casa e tornar esse servidor acessível tanto pela Internet quanto pela minha LAN. E está funcionando. Compilei o proftpd a partir do código-fonte (motivo abaixo), instalei e configurei e parece funcionar como deveria. Não preciso de ajuda para fazer o proftpd funcionar corretamente.

Não consegui fazer o servidor funcionar apenas lendo a documentação do proftpd e tive que continuar mexendo no arquivo de configuração até que tudo funcionasse bem. Portanto, ainda há algo sobre o uso de hosts virtuais, seção de contexto global e de servidor que não entendo corretamente e é por isso que fiz as perguntas acima.

Eu li sobre como configurar o proftpd atrás de um roteador e o significado de virtualhosts, seção de contexto global e de servidor:
http://www.proftpd.org/docs/howto/NAT.html
http://www.proftpd.org/docs/howto/Vhost.html
Segui vários guias e procurei no fórum por perguntas semelhantes. O servidor está funcionando, só não entendo por que está agora e por que não funcionou antes.

Esta é a estrutura do meu proftpd.conf atual (em funcionamento): <Global> User ... Group ... RequireValidShell ... DefaultRoot ... ... <IfModule mod_tls.c> TLSEngine ... TLSProtocol TLSv1.2 ... </IfModule> </Global>
#server context managing the config for access over the internet ServerName "external" Port 21 #can't be used inside a virtualhost section UseIPv6 off ... #need to masquerade ip for external address MasqueradeAddress myurl.com #needed for passive ftp mode PassivePorts 60000 65535
#virtualhost managing the config for lan access <VirtualHost 192.168.178.54> ServerName "internal" Port 21 PassivePorts 60000 65535 </VirtualHost>

Primeiro pensei que deveria apenas fazer duas seções de virtualhost, uma para LAN e outra para acesso externo e desabilitar a seção de contexto do servidor definindo a porta 0. Mas há diretivas que não posso usar dentro das seções de virtualhost. Portanto, não tenho certeza se estou usando as três seções possíveis como deveria. Preciso usar a seção de contexto do servidor para ter algum tipo de configuração padrão? Isso poderia ser feito com a diretiva DefaultServer de acordo com a documentação.

uname -a: Linux HOSTNAME 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (24/05/2015) x86_64 GNU/Linux

proftpd -v: ProFTPD versão 1.3.5 O pacote binário proftpd incluído nos repositórios debian não suporta TLS 1.2 e não quero usar FTP com versão TLS abaixo ou mesmo SSL. Então eu mesmo compilei.

Este é um texto bastante longo. Tentei abreviar, ser preciso, evitar desnecessários, mas fornecer informações suficientes. Se houver algo que eu possa melhorar ou se minha pergunta pertencer ao stackexchange unix e linux, é só me avisar. Escolhi superusuário em vez de serverfault para fazer essa pergunta porque se trata de um ambiente de servidor doméstico.

Obrigado pelo seu tempo e ajuda.

janeiro

Responder1

Existem algumas diretivas de configuração que afetam todo odaemon, como UseIPv6ou MaxInstances. Estas directivasnão podeser definido por vhost por esse motivo.

No entanto, a sintaxe do arquivo de configuração do ProFTPD não possui um contexto/seção que diz "essas diretivas são apenas para todo o daemon". Assim, por padrão (e sim, não é o ideal), essas diretivas para todo o daemon são permitidas apenas na seção "configuração do servidor", fora de <Global>, <VirtualHost>ou qualquer outro contexto.

Espero que isto ajude!

Responder2

Acontece que eu não estava certo sobre algumas informações que forneci. Vou marcar esta pergunta como respondida para evitar que as pessoas percam tempo respondendo. Uma simples edição não ajudará, pois não sei quando terei tempo para verificar novamente minha configuração do proftpd. No entanto, esclarecerei o que causou a descrição incorreta que forneci, revisarei minha pergunta e a postarei novamente em algum momento.

informação relacionada