Preciso limitar quais portas podem ser remotamente ' ssh -R
' encaminhadas por um usuário.
Eu sei sobre a permitopen
opção em allowed_keys, mas como diz na página de manual, limita apenas o ssh -L
encaminhamento de porta local
Conforme discutido aqui, um usuário obteria o mesmo netcat
ou semelhante, mas, neste caso, o usuário não tem acesso ao shell
Eu também encontrei este tópico que fala sobre o uso do selinux ou LD_PRELOAD
, mas nunca o configurei antes e não consigo encontrar informações sobre como fazer isso LD_PRELOAD
.
talvez alguém tenha feito um patch para o openssh para implementar isso?
EDIT: Encontrei este relatório de bug, então acho que ainda não foi implementado
ssh
security
port-forwarding
Lluís
fonte
fonte
Respostas:
Isso foi implementado no OpenSSH 7.8p1, lançado em 2018-08-24. Citação das notas de versão:
fonte
Há uma opção
no-port-forwarding
que você pode usar, que impede todo o encaminhamento de porta. Apresente pelo menos a partir do OpenSSH 4.3p2 (CentOS 5.3 - máquina mais antiga à qual tenho acesso). Coloque no mesmo lugar que você colocariapermitopen
.fonte
Não é possível limitar isso usando ssh. Talvez o selinux ou o iptables possam ser usados para esse fim. No entanto, existe uma estratégia alternativa que pode ou não atender às suas necessidades. Use a ligação aos soquetes UNIX. Isso deve estar disponível a partir da versão 6.8 do openssh.
Ao usar soquetes, você tem a ACL do sistema de arquivos (embora os soquetes respeitem que possa ser * nix dependente) à sua disposição e você pode usá-lo para impedir que um usuário se vincule aos soquetes de outros. No entanto, isso não impede a ligação às portas de forma alguma, portanto, dependendo do seu caso de uso, pode não ajudar, mas talvez as portas não importem se você pode usar apenas soquetes de maneira consistente.
Com os soquetes UNIX, o manuseio de arquivos de soquete pendentes pode ser problemático, pois os editores reversos tentam se reconectar. Eu tenho outra pergunta (e resposta) para esse problema. Em suma, você provavelmente também deseja usar
StreamLocalBindUnlink yes
:Como limpar o soquete do túnel reverso SSH após a conexão ser fechada?
fonte
Duplicar: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it
Parece que você pode usar o seguinte?
Editar: Então, na configuração do servidor, adicione o seguinte
fonte