Como você colocou não permitir em negrito, suponho que você queira algum tipo de rejeição em tempo de execução no lado do cliente SSH que impeça a ligação da porta. Então, eu tive uma escavação do código-fonte para você:
serverloop.c:
/* check permissions */
if (!options.allow_tcp_forwarding ||
no_port_forwarding_flag ||
(!want_reply && listen_port == 0)
#ifndef NO_IPPORT_RESERVED_CONCEPT
|| (listen_port != 0 && listen_port < IPPORT_RESERVED &&
pw->pw_uid != 0)
#endif
) {
success = 0;
packet_send_debug("Server has disabled port forwarding.");
} else {
/* Start listening on the port */
success = channel_setup_remote_fwd_listener(
listen_address, listen_port,
&allocated_listen_port, options.gateway_ports);
}
Infelizmente, como você pode ver, não há muitas condições que parecem impedir o encaminhamento de portas para além das padrão.
Eu estava prestes a recomendar a mesma sugestão para usar mod_owner
em iptables
, mas Jeff me superou.
Sua solução mais limpa seria apenas modificar esse arquivo (por exemplo, você pode usar pw->pw_uid
para obter o uid do usuário conectando-se e mapeá-lo para a porta correta) e recompilar seu servidor SSH, mas isso dependeria como você está confortável com isso.