Configurando o servidor FTP no redhat

1

Eu instalei o vsftpd no redhat. Tudo foi arquivo até que eu fiz isso quando eu logar no servidor ftp usando:

ftp localhost

or fileZilla recebo os seguintes erros:

ERROR:
- 500 OOPS: cannot change directory:/foo

Além disso, quando altero o diretório de log de

- /var/log/xferlog

para

- /usr/local/data

Então eu recebo:

  500 OOPS: failed to open xferlog log file:/usr/local/data/vsftpd.log

A partir deste link , a SOLUÇÃO parece ser:

This happens because SELinux isn’t properly configured for your ftp service. Either disable SELinux or configure it for ftp.

To disable SELinux, edit /etc/selinux/config and set “SELINUX=disabled”, then reboot.

Como faço para ativar o ftp sem desativar o SElinux?

    
por kinkajou 01.04.2014 / 12:50

3 respostas

1

O SELinux não permitirá que vsftpd exiba arquivos de locais diferentes de /var/ftp ou grave logs fora de /var/log de propósito . O SELinux é tudo sobre mitigação de desastres. O FTP é fundamentalmente inseguro. A execução de vsftpd no SELinux é uma boa ideia, porque minimiza o dano que um invasor pode causar se ele decidir atacar seu serviço de FTP.

Executar um serviço fundamentalmente inseguro como vsftpd sem bloqueá-lo com o SELinux é uma tolice.

Se você realmente precisa reconfigurá-lo desta forma, é necessário reescrever as políticas do SELinux relacionadas ao FTP, mas isso não é um trabalho trivial. A ferramenta audit2allow pode ajudar .

Se você decidir que desabilitar o SELinux é muito arriscado e criar uma nova política do SELinux é muito difícil, recomendo usar o SFTP ou scp em vez disso. O RHEL é enviado com sshd configurado e em execução, portanto, você não precisa fazer nada especial para que isso funcione.

    
por 01.04.2014 / 14:02
1

Geralmente, você pode encontrar negações do selinux em / var / log / messages. Tente isso (como root):

grep avc /var/log/messages | grep ftp

Revise a saída e decida se as negações estão erradas, considerando sua configuração desejada. Ajuste as instruções do grep conforme necessário para transformar as informações em apenas as instruções que você deseja corrigir. Geralmente, é útil colocar temporariamente o sistema no modo permissivo ( setenforce 0 ) e, em seguida, executar as operações que você espera precisar. /var/log/messages irá acumular uma lista de erros que precisam ser corrigidos em sua política do SELinux. Quando estiver satisfeito com a lista de negações que precisam ser corrigidas, gere uma nova política usando o seguinte:

# ensure you have audit2allow
which audit2allow

# if no audit2allow, install it:
yum install policycoreutils-python

# replace the following with your tuned grep (if necessary)
grep avc /var/log/message | grep ftp | audit2allow -M my_vsftp

No seu diretório atual, haverá dois novos arquivos: my_vsftp.te e my_vsftp.pp . o arquivo *.te é legível, o *.pp é compilado. Revise o arquivo * .te para garantir que seja apropriado.

Tenha cuidado aqui, pois a abertura de muitas regras do SELinux pode deixá-lo vulnerável. É altamente recomendável ler o SELinux.

cat my_vsftp.te

Se a política parece apropriada, instale e ative:

mkdir /usr/share/selinux/packages/my_vsftp
mv my_vsftp.* /usr/share/selinux/packages/my_vsftp/
semodule -i /usr/share/selinux/packages/my_vsftp/my_vsftp.pp

Verifique se o sistema está aplicando ( getenforce , setenforce 1 ) e teste seu servidor FTP, monitorando /var/log/messages para negações.

    
por 01.04.2014 / 16:40
0

Uma solução um pouco pesada para permitir acesso ao vsftpd em qualquer lugar, seria:

setsebool -P allow_ftpd_full_access=1

Nesse ponto, o vsftpd pode ir praticamente em qualquer lugar do sistema ...

    
por 01.04.2014 / 19:49