SELinux evitando login SSH sem senha

3

Gostaria de conectar uma conta de usuário que criei para git em /var/git usando authorized_keys . No entanto, o SELinux impede isso com a seguinte mensagem AVC

SELinux is preventing sshd(sshd_t) "read" var_t

Sou novo na administração do SELinux, mas entendo que esta mensagem afirma que o sshd não tem permissão para ler nada em /var . Como posso reclassificar para permitir acesso a /var/git ? (sem colocar o sshd no modo permissivo)

Eu tentei rotular /var/git/.ssh/authorized_keys como sshd_key_t , mas isso não tem efeito. Obrigado antecipadamente!

    
por Michael Mior 05.08.2009 / 21:58

2 respostas

8

Eu não uso o Git para que eu possa estar errado, mas se eu acertar seu problema, você provavelmente criou o usuário inteiramente manualmente (isto é, editando o / etc / passwd), não deixando o sistema saber que / var / git é um diretório inicial do usuário. Ele normalmente coloca os diretórios relevantes em /etc/selinux/targeted/contexts/files/file_contextts.homedirs. Por exemplo, eu tenho a mesma configuração, mas com / Var / svn, adicionado com useradd, e aqui está um trecho desse arquivo, adicionado automagicamente:

#
# Home Context for user unconfined_u
#

/var/svn/[^/]*/.+       system_u:object_r:user_home_t:s0
/var/svn/[^/]*/.pulse(/.*)?     system_u:object_r:gnome_home_t:s0
/var/svn/[^/]*/.gnome2(/.*)?    system_u:object_r:gnome_home_t:s0
/var/svn/[^/]*/.*/plugins/nppdf\.so     --      system_u:object_r:textrel_shlib_t:s0
/var/svn/[^/]*/.*/plugins/nppdf\.so.*   --      system_u:object_r:textrel_shlib_t:s0
/var/svn/[^/]*/((www)|(web)|(public_html)|(public_git))(/.+)?      system_u:object_r:httpd_user_content_t:s0
/var/svn/[^/]*/\.ssh(/.*)?      system_u:object_r:ssh_home_t:s0

(continuação)

Uma vez que isto é configurado, um simples restorecon -Rv / var / git deve fazer o truque.

    
por 05.08.2009 / 22:16
2

Isso também pode ser resolvido fazendo-se o diretório .ssh com um contexto ssh_home_t .

por exemplo,

context directory
home_root_t /customhome
user_home_dir_t /customhome/user
ssh_home_t /customhome/user/.ssh
ssh_home_t /customhome/user/.ssh/authorized_keys

No RHEL, criei um usuário usando o seguinte:

useradd gitlab --home /app/gitlab

Eu tive uma depuração de tempo e descobri o contexto certo. audit.log não mostrou muito. Também verifiquei novamente o /etc/selinux/targeted/contexts/files/file_contexts.homedirs e ele não criou o contexto automaticamente.

    
por 09.09.2013 / 20:27