Selinux により AuthorizedKeysCommand の使用時に sshd が失敗する

Selinux により AuthorizedKeysCommand の使用時に sshd が失敗する

私は Gitlab のガイドに従って、承認された SSH キーの高速検索を有効にしてきました。ガイドでは AuthorizedKeysCommand を使用するように指示されています。承認されたコマンドはローカルの https サーバーを呼び出しています。このコマンド チェーンは SELinux ポリシー違反につながります。

受け取ったエラーは次のとおりです:

type=AVC msg=audit(1559126095.648:64173782): avc:  denied  { name_connect } for  pid=13839 comm="gitlab-shell-au" dest=8081 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:transproxy_port_t:s0 tclass=tcp_socket permissive=0

私の記憶が間違っていなければ、カスタム SELinux ポリシーが必要です。ただし、私が見つけたガイドはすべて過度に複雑です。この例外を許可するポリシー ファイルを作成するのは簡単な作業のはずです。

sshd_t を使用したプロセスが transproxy_port_t を使用できるようにするポリシー (.te) ファイルはどのようになるでしょうか?

編集。Gitlab は、標準ポート (8080) で Unicorn を実行するときに必要なポリシーを構成します。

答え1

あなたはこれを行うことができます:

# generate the policy .te file
echo "type=AVC msg=audit(1559126095.648:64173782): avc:  denied  { name_connect } for  pid=13839 comm="gitlab-shell-au" dest=8081 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:transproxy_port_t:s0 tclass=tcp_socket permissive=0" | audit2allow -m gitlabfix1 > gitlabfix1.te

# create a module from the .te file
checkmodule -M -m -o gitlabfix1.mod gitlabfix1.te

# package it
semodule_package -o gitlabfix1.pp -m gitlabfix1.mod

# install it
semodule -i gitlabfix1.pp

もっと短い方法もありますが、その方法では .te 中間ファイルは作成されません。.te ファイルはアーカイブや理解の目的で便利です :-)。

より短い方法は次のとおりです。

# generate the policy module package in one go
echo "type=AVC msg=audit(1559126095.648:64173782): avc:  denied  { name_connect } for  pid=13839 comm="gitlab-shell-au" dest=8081 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:transproxy_port_t:s0 tclass=tcp_socket permissive=0" | audit2allow -M gitlabfix2

# and load it
semodule -i gitlabfix2.pp

教育目的の場合、.te ファイルは次のようになります。

module gitlabfix1 1.0;

require {
        type transproxy_port_t;
        type sshd_t;
        class tcp_socket name_connect;
}

#============= sshd_t ==============
allow sshd_t transproxy_port_t:tcp_socket name_connect;

関連情報