Esta questão está em toda a internet, sem solução clara que eu encontrei.
Então aqui é onde eu estou nisso agora (eu atualizarei quando eu descobrir mais).
Parece que o problema fundamental é que o FTP tem usuários fazendo login e manipulando o sistema de arquivos, ao contrário de um cliente http simplesmente enviando solicitações para um processo de serviço http.
Portanto, é muito difícil limitar um usuário de FTP a fazer coisas que seu usuário tem direitos de fazer no sistema, caso ele faça logon regularmente. Os usuários de FTP precisam ter direitos de execução para diretórios além de onde queremos limitar seu acesso de visualização para que ele possa escrever ou ler a partir de seu ramo de nível inferior. Então, a única maneira fácil de limitar seu acesso à visão é colocá-lo na cadeia chroot.
Chroot jail não é seguro porque ele "modifica as pesquisas de nome de caminho de um processo e seus filhos para que qualquer referência a um caminho que inicie '/' efetivamente tenha a nova raiz, que é passada como argumento único, prefixada na caminho "mas" o diretório de trabalho atual é deixado inalterado e caminhos relativos ainda podem se referir a arquivos fora da nova raiz. " fonte link
O que isso significa em um contexto de segurança e como isso é perigoso em relação ao daemon FTP e aos direitos do usuário não posso dizer, mas significa que o 'jail' em 'chroot jail' é um equívoco.
Parece que com um controle profundo sobre o Linux, é possível definir direitos de processo e de usuário ... usar o chroot neste contexto de segurança, mas nem eu nem a miríade de internautas que lutam com isso ainda estão lá .
Também é possível endurecer a jaula do chroot onde ela realmente se comporta como prisão - Para citar o desenvolvedor do kernel Alan Cox, "o chroot não é e nunca foi uma ferramenta de segurança. As pessoas construíram coisas baseadas nas propriedades do chroot (Cadeias BSD, Linux
vserver), mas eles são bastante diferentes.Você provavelmente poderia escrever-se um módulo LSM para fazer isso também. "Eu não estou" lá "ainda, mas eu suspeito que isso no final é" a "solução, e eu também risco de que os sites ftp de distribuição lidem com a segurança ao longo dessas linhas ou similares.
Praticamente falando, tudo o que posso fazer agora é usar o chroot jail, contando com que meu servidor seja um alvo de baixa prioridade, e que meus usuários sejam basicamente confiáveis. Minha estratégia de segurança será limitar o dano que alguém pode fazer, se eles saírem da cadeia . O que implica a configuração adequada dos usuários, possivelmente usuários virtuais, e talvez a execução de todo o serviço em uma máquina virtual.
À medida que progrido nos meus estudos, espero reforçar o conceito chroot () através de um LSM ou algo parecido para segurança, e noto que de acordo com a citação de Alan Cox acima da BSD já tem um conceito de 'cadeias'. Eu poderia procurar no BSD pelas minhas necessidades de FTP.