SELinux, ProFTPd e o log silencioso

2

Eu preciso de um servidor FTP na minha máquina, um Fedora 23. Eu quero uma configuração simples, e eu decidi pelo ProFTPd e autenticação com mod_auth_unix.c (isso é apenas sobre a minha máquina).

Instalei o ProFTPd e o configurei. Eu tive algum problema em fazer o login a partir da máquina local e, finalmente, percebi que o problema estava relacionado ao SeLinux (simplesmente tente defini-lo como Permissivo).

Estou tentando (e falhando) descobrir como alterar a configuração do SELinux para adicionar a permissão de que preciso. Isso é o que eu fiz até agora:

  1. Da auditoria que recebi:

    denied  { dac_read_search } for
      pid=16049
      comm="proftpd"
      capability=2
      scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023
      tcontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023
      tclass=capability
      permissive=0
    
  2. De acordo com este artigo eu preciso habilitar o ftp_home_dir e allow_ftpd_full_access booleanos. Comecei definindo o primeiro e obtendo uma situação diferente:

    • Ainda falta registrar, mas nenhuma mensagem de auditoria
    • /var/log/secure diz:

      proftpd[16070]: 127.0.0.1 (::1[::1]) - USER dave (Login failed): No such user found
      
  3. Aparentemente, não há allow_ftpd_full_access no meu semanage boolean -l . Eu posso habilitá-lo de qualquer maneira, mas sem ter um comportamento diferente.

  4. Nenhum dos booleanos nem sempre relacionados a seguir parece funcionar (tentei todos eles, apenas para uma boa medida):

    sftpd_full_access
    ftpd_anon_write
    ftpd_connect_db
    ftpd_full_access
    ftpd_use_cifs
    sftpd_enable_homedirs
    ftpd_connect_all_unreserved
    sftpd_write_ssh_home
    ftpd_use_passive_mode
    sftpd_anon_write
    ftpd_use_nfs
    ftpd_use_fusefs
    

Deve ser um problema de selinux porque funciona se eu for permissivo. Estranhamente, no entanto, o log de auditoria não está relatando a atividade do SELinux.

Acredito que o servidor FTP está proibido de acessar /etc/passwd ou /etc/shadow .

Alguma sugestão ou ideia?

    
por Dacav 27.04.2016 / 14:40

2 respostas

3

Respondendo minha própria pergunta:

Consegui resolver o problema restaurando a configuração do meu /etc/proftpd.conf para

AuthOrder mod_auth_pam.c* mod_auth_unix.c

O SELinux foi configurado definindo os seguintes sinalizadores:

setsebool ftpd_full_access 1
setsebool ftp_home_dir 1

Aparentemente, o problema estava relacionado com mod_auth_unix.c , que é proibido pelo SELinux funcionar, enquanto mod_auth_pam.c pode fazer isso muito bem. Um caso de PEBCAK.

A única coisa que acho que não consigo entender neste momento é porque nada foi relatado em /var/log/audit/audit.log : tenho certeza de que o SELinux impediu o login, já que consegui fazer login no modo Permissivo.

    
por 28.04.2016 / 22:09
1

I believe the FTP server is forbidden to access /etc/passwd or /etc/shadow.

Isso não é verdade. Da mensagem AVC, você vê

tcontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023

que é uma parte de ftpd_t , não shadow ou passwd (esses arquivos têm contexto diferente, como você pode ver em ls -Z /etc/passwd ).

Não é uma solução completa, mas seguir em frente. Você fez todas as coisas de acordo com o artigo? Também as configurações dos grupos?

    
por 27.04.2016 / 17:59