Não, você não pode restringir o acesso ao soquete TCP / UDP por usuários assim; você deseja usar um soquete unix para isso, porque eles aparecem como um arquivo no sistema de arquivos e podem ter permissões aplicadas a eles. O problema aqui é que eu não acho que haja algum cliente SSH que suporte a criação de túneis de soquete unix (e o servidor OpenSSHd também não, então você precisaria rodar um cliente SSH customizado em seu sistema compartilhado e SSH para voltar para onde você deseja que o outro ponto de extremidade do túnel SSH esteja). Além disso, você teria que se certificar de que o (s) aplicativo (s) que você deseja encapsular suportam soquetes unix, o que pode não ser feito.
Se o aplicativo que você deseja fazer encapsulamento for compatível com pipes do sistema de arquivos ou soquetes unix, talvez você tenha sorte, mas ainda assim será necessário um bom trabalho. Você pode tentar criar um programa que abra um soquete unix e conecte-o a STDIN / STDOUT e, em seguida, use o SSH no modo não interativo para tunelizar esses dados pelos canais PTY padrão em vez de um túnel de soquete. Use o mesmo programa na outra extremidade da conexão SSH para conectá-lo a um soquete unix local.
Voilà! Um túnel de soquete, protegido por SSH, com permissões adicionais e ACLs em ambas as extremidades. Criando o programa (também conhecido como a parte difícil) deixado como um exercício para o leitor.