web-dev-qa-db-ja.com

パスワードなしのSSHログインを防ぐSELinux

/var/gitを使用してauthorized_keysでgit用に作成したユーザーアカウントに接続したいと思います。ただし、SELinuxは次のAVCメッセージでこれを防ぎます

SELinux is preventing sshd(sshd_t) "read" var_t

私はSELinux管理に不慣れですが、このメッセージがsshdが/varの下で何も読み取ることを許可されていないことを示していることを理解しています。 /var/gitにアクセスできるようにラベルを変更するにはどうすればよいですか? (sshdを許容モードにしないで)

/var/git/.ssh/authorized_keyssshd_key_tのラベルを付けてみましたが、効果がありません。前もって感謝します!

3
Michael Mior

私はGitを使用していないので、間違っている可能性がありますが、問題が正しければ、/ var/gitがユーザーであることをシステムに通知せずに、完全に手動でユーザーを作成した可能性があります(つまり、/ etc/passwdを編集します)。ホームディレクトリ。通常、関連するディレクトリを/etc/selinux/targeted/contexts/files/file_contexts.homedirsに配置します。たとえば、同じ設定ですが、useraddで追加された/ Var/svnを使用しています。これは、自動的に追加されたそのファイルの抜粋です。

#
# 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

(続き)

これがセットアップされると、単純なrestorecon -Rv/var/gitでうまくいくはずです。

8
niXar

これは、.sshディレクトリをssh_home_tコンテキストで作成することによっても解決できます。

例えば.

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

RHELで、次を使用してユーザーを作成しました。

useradd gitlab --home /app/gitlab

デバッグして適切なコンテキストを理解するのに時間がかかりました。 audit.logはあまり表示されませんでした。また、/etc/selinux/targeted/contexts/files/file_contexts.homedirsを再確認しましたが、コンテキストが自動作成されませんでした。

2
Sam Gleske