Graças aos mantenedores do sssd , encontrei a resposta. Aqui está uma configuração de trabalho que faz o que eu precisava, ou seja, permitir o tunelamento SSH, mas não o login SSH para os usuários AD que são membros do AD LimitedGroup.
Observe que um membro do grupo limitado deve ssh como user@MYDOMAIN_TEST.GLOBAL
, não como [email protected]
ou não funcionará.
A essência da solução é usar o nome de domínio da seção SSSD em vez do nome de domínio do AD na diretiva simple_allow_groups
. Observe, no entanto, que a configuração também funciona sem as linhas access_provider = simple
e simple_allow_groups = ...
. Também é possível definir simple_allow_groups = group
sem a diretiva use_fully_qualified_names = True
, conforme relatado por um usuário nos comentários.
Além disso, observe que essa configuração usa ldap_user_search_base
em vez do ldap_user_search_filter
preterido.
As outras opções de configuração são apenas para integridade, pois já estavam no arquivo de configuração.
[sssd]
domains = MYDOMAIN.GLOBAL,MYDOMAIN_TEST.GLOBAL
config_file_version = 2
services = nss, pam
[nss]
default_shell = /bin/bash
[domain/MYDOMAIN_TEST.GLOBAL]
ldap_user_search_base = DC=MYDOMAIN,DC=GLOBAL?subtree?(memberOf=CN=LimitedGroup,OU=Groups,DC=MYDOMAIN,DC=GLOBAL)
default_shell = /sbin/nologin
ad_server = ad.mydomain.global
ad_backup_server = ad2.mydomain.global
ad_domain = MYDOMAIN.GLOBAL
krb5_realm = MYDOMAIN.GLOBAL
realmd_tags = manages-system joined-with-adcli
cache_credentials = False
id_provider = ad
krb5_store_password_if_offline = True
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = simple
simple_allow_groups = LimitedGroup@MYDOMAIN_TEST.GLOBAL
[domain/MYDOMAIN.GLOBAL]
ldap_user_search_base = DC=MYDOMAIN,DC=GLOBAL?subtree?(memberOf=CN=AdminsGroup,OU=Groups,DC=MYDOMAIN,DC=GLOBAL)
default_shell = /bin/bash
ad_server = ad.mydomain.global
ad_backup_server = ad2.mydomain.global
ad_domain = MYDOMAIN.GLOBAL
krb5_realm = MYDOMAIN.GLOBAL
realmd_tags = manages-system joined-with-adcli
cache_credentials = False
id_provider = ad
krb5_store_password_if_offline = True
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = simple
simple_allow_groups = [email protected]