Necesito limitar qué puertos pueden ser ssh -R
reenviados de forma remota por un usuario.
Sé acerca de la permitopen
opción en claves_autorizadas, pero como dice en la página de manual solo limita el ssh -L
reenvío de puertos locales
Como se discutió aquí, un usuario obtendría lo mismo netcat
o similar, pero en este caso el usuario no tiene acceso de shell
También encontré este hilo que habla sobre el uso de selinux o LD_PRELOAD
, pero nunca configuré selinux antes y no puedo encontrar información sobre cómo hacerlo LD_PRELOAD
.
¿Tal vez alguien ha hecho un parche para openssh para implementar eso?
EDITAR: he encontrado este informe de error, así que supongo que aún no está implementado
ssh
security
port-forwarding
Lluís
fuente
fuente
Respuestas:
Esto se implementó en OpenSSH 7.8p1, que se lanzó el 2018-08-24. Cita de las notas de la versión:
fuente
Hay una opción
no-port-forwarding
que puede usar, que impide todo el reenvío de puertos. Presente al menos a partir de OpenSSH 4.3p2 (CentOS 5.3 - máquina más antigua a la que tengo acceso). Póngalo en el mismo lugar que hubiera puestopermitopen
.fuente
No es posible limitar eso usando ssh. Tal vez selinux o iptables podrían usarse para ese fin. Sin embargo, existe una estrategia alternativa que puede o no satisfacer sus necesidades. Utilice el enlace a los sockets de UNIX. Esto debería estar disponible a partir de openssh versión 6.8.
Cuando use sockets, tiene el sistema de archivos ACL (aunque respete los sockets que pueden depender de * nix) a su disposición y puede usarlo para evitar que un usuario se vincule a otros sockets. Sin embargo, no evita el enlace a los puertos de ninguna manera, por lo que, dependiendo de su caso de uso, puede que no ayude, pero tal vez los puertos no importen si solo puede usar sockets de manera consistente.
Con el manejo de sockets UNIX, los archivos de sockets colgantes pueden ser problemáticos ya que los editores inversos intentan reconectarse. Tengo otra pregunta (y respuesta) a ese problema. En resumen, probablemente también quieras usar
StreamLocalBindUnlink yes
:¿Cómo limpiar el zócalo del túnel inverso SSH después de cerrar la conexión?
fuente
Duplicado: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it
Parece que puedes usar lo siguiente?
Editar: Entonces, en la configuración del servidor, agregue lo siguiente
fuente