AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 991829
Accepted
Gnudiff
Gnudiff
Asked: 2019-11-15 05:35:38 +0800 CST2019-11-15 05:35:38 +0800 CST 2019-11-15 05:35:38 +0800 CST

Colocando casas vsftpd no compartilhamento do Windows AD

  • 772

Eu tenho clientes externos que fazem upload/download de arquivos via FTP vsftpd no Ubuntu 18.04. Eles usam contas linux (não virtuais), são chrooted e só precisam (e fazem) ver em seus próprios diretórios.

Agora, suas casas precisam estar acessíveis de alguma forma no Windows para visualização e possivelmente edição de uploads por nossos administradores de aplicativos e operadores de aplicativos específicos, que são usuários regulares do Windows AD.

Gostaria de mover todo o /home de um compartilhamento do Windows AD em nosso servidor de arquivos e torná-lo acessível por grupos de segurança específicos do AD, mas não tenho certeza se isso funcionará com permissões do linux? Eu explicitamente gostaria de evitar o compartilhamento de pastas do Ubuntu pela rede.

A ideia:

  • monte /home como compartilhamento CIFS do servidor de arquivos AD.

  • vsftpd -- Usuários de FTP chroot para montado / home -- cada um pode ler/escrever seu próprio diretório

  • Usuários do Windows AD - podem ver os diretórios no Windows em seu compartilhamento existente, com o grupo de segurança adequado do AD pode ler/gravar qualquer arquivo em qualquer subdiretório inicial

Isso funcionaria? Se não, o que mais posso fazer? Talvez eu precise migrar para usuários virtuais vsftpd?

Eu já tenho alguns compartilhamentos CIFS montados no Ubuntu, mas todos eles mapeiam para uid/gid único e não tenho certeza se o vsftpd funcionaria com a configuração acima.

ubuntu
  • 2 2 respostas
  • 611 Views

2 respostas

  • Voted
  1. JucaPirama
    2019-11-15T08:43:14+08:002019-11-15T08:43:14+08:00

    Acho que aqui, mas eu tentaria 3 maneiras:

    1. Usando usuários do AD no Linux (talvez usando SSSD)
    2. Usando usuários virtuais no vsftpd (acho que você precisará garantir que os arquivos do sistema de arquivos montados no CIFS sejam de propriedade do usuário vsftpd)
    3. Fazendo o oposto: Instale o Samba e faça com que administradores e operadores acessem o arquivo através dele (a solução mais simples IMHO)
    • 0
  2. Best Answer
    Gnudiff
    2019-12-05T05:30:47+08:002019-12-05T05:30:47+08:00

    Acontece que até mesmo uma mistura de usuários virtuais e reais funciona! O guia é para o Ubuntu 18.04 LTS, mas também deve funcionar em outros Linux, embora os locais dos arquivos possam mudar.

    Então, uma maneira de fazer isso é esta:

    1. Crie um diretório apropriado em seu servidor CIFS e defina um único usuário do AD com direitos apropriados nele (por exemplo, unix_server_user@domain).
    2. Monte o compartilhamento CIFS com os direitos AD de unix_server_user e usuário local mapeado para o usuário do servidor VSFTPD. /etc/fstab:

    //Your_CIFS_Server/share /mnt/cifs_homes cifs credentials=/etc/your_AD_password_data_file,uid=ftpuser,gid=ftpusers,file_mode=0770,dir_mode=0770 0 0

    Obviamente, não se esqueça de definir o arquivo de senha para ser acessível apenas pelo root para alguns pequenos bônus de segurança.

    1. /etc/vsftpd.confdeve ter pelo menos estas linhas:

    local_enable=YES nopriv_user=ftpuser chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd user_config_dir=/etc/vsftpd.userconf

    1. Você precisa modificar /etc/pam.d/vsftpdpara oferecer suporte a usuários virtuais e locais:

    Usuários virtuais: auth sufficient pam_pwdfile.so pwdfile /etc/vsftpd.passwd account sufficient pam_permit.so

    A adição de usuários virtuais é feita via htpasswd -dcomando no arquivo /etc/vsftpd.passwd. Este arquivo também pode ser acesso root apenas por alguma medida menor de segurança.

    Observe que pam_pwdfile parece oferecer suporte apenas à criptografia CRYPT do arquivo vsftpd.passwd ao usar htpasswd , que não é seguro, portanto, você deve gerar senhas com openssl conforme descrito no link ou, além disso, use pelo menos restrição de endereço SSL ou IP para acesso FTP.

    Usuários locais:

    auth required pam_shells.so

    Todas essas linhas devem estar presentes junto com as linhas usuais @include common-* e o que mais você precisar no arquivo pam vsftpd.

    Adicione arquivos para cada usuário local e virtual em /etc/vsftpd.conf/ nomeado como usuário.

    O usuário local deve ter apenas os valores normais de idle_session_timeout ou o que você precisar. Seu homedir será o usual /home ou o que estiver definido em /etc/passwd.

    Os usuários virtuais devem ter além do que você precisar para o usuário local, estas linhas:

    chroot_local_user=YES local_root=/mnt/cifs_homes/$USER user_sub_token=$USER virtual_use_local_privs=YES guest_enable=YES nopriv_user=ftpuser guest_username=ftpusers

    O que você obtém no final é:

    1) Do lado do Windows, o acesso é controlado com quaisquer usuários e grupos do AD que você definir permissões do AD nele. Apenas tenha em mente que unix_server_user@domain deve ter acesso de gravação a ele, a menos que você queira FTP somente leitura.

    2) A partir do Unix, todos os acessos de usuários virtuais são mapeados para ftpuser.ftpusers. Os usuários locais usam o servidor Unix /home como de costume.

    3) Todos os logins de FTP têm chroot para seu respectivo homedir e podem ler e escrever nele.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve