¿Limitar el tráfico SSH?

11

Me gustaría poder limitar el ancho de banda SSH en mi servidor. Es decir, cada proceso sshd debe limitarse a 200 Kb / so algo así.

scp tiene esta funcionalidad, pero ssh, al estar más diseñado para un uso interactivo receptivo, no parece tener esta opción. Sin embargo, me gustaría combinar la funcionalidad -D (proxy SOCKS) con alguna capacidad para limitar de alguna manera el tráfico.

¿Hay alguna opción para esto?

usuario10640
fuente
¿Está buscando hacer esto en el servidor SSH, o está bien hacerlo en un firewall entre las dos máquinas?
Mark Henderson
Realmente prefiero hacer esto en el servidor, ya que no tengo acceso al firewall.
user10640
Si está contento de hacer esto en el cliente, pruebe la utilidad de línea de comandos 'drizzle'.
Alex J
Si bien el comando drizzle parece útil, finalmente no puedo confiar en que los usuarios lo ejecuten. Parece que estoy atascado mirando algo un poco más complicado de lo que esperaba: P. ¡Gracias a todos!
user10640

Respuestas:

4

No estoy seguro de si confiar en los usuarios es parte de la ecuación, pero tricklees muy útil para limitar la velocidad de un comando dado. Cuando subo paquetes desde casa, los compañeros de habitación adictos a WoW se dan cuenta cuando olvido algo así, ya que domina la tubería.

jldugger
fuente
1
Trickle puede ejecutarse como un demonio y administrar el ancho de banda total para múltiples comandos en la misma máquina. Práctico cuando desea activar un montón de operaciones de transferencia independientes de otro modo al mismo tiempo, pero desea que no utilicen más que una velocidad de datos establecida en total.
David Spillett
1
Desafortunadamente, no creo que eso me ayude con sshd: bifurca nuevos sshds a medida que entran nuevas conexiones. Podría estar atrapado con alguna solución de nivel de firewall, que será un poco más difícil de implementar.
user10640
¿Por qué es esta la mejor respuesta? trickleno funciona con ningún proceso que se bifurca. Eso incluye sshd!
Navin
1

Valdría la pena estudiar la implementación del modelado de tráfico HTB usando tc. Mi solución a un problema simular fue usar el script htb.init que se encuentra en http://sourceforge.net/projects/htbinit/

Lo configuré en función de limitar el tráfico desde el puerto 22, pero también puede usar iptables para marcar / destrozar los paquetes que luego se procesan en función de la marca.

Steve
fuente
+1 para la única tcrespuesta relacionada hasta ahora.
Cola
1
scp -l 8192 file.txt [email protected]:/tmp
//8192  = 8192 KB per second

Sé que este hilo es bastante antiguo, pero espero que esto ayude a alguien.

Hiroki
fuente
1
Es molesto que dos personas hayan rechazado tu respuesta sin al menos comentar. Supongo que es porque scpes un caso de uso bastante específico de ssh. Lo he probado scp -ly funciona, aunque tenga en cuenta que es kilobits (kb) por segundo, y no kilobytes (kB).
mwfearnley
0

Hay algunas opciones

Una común es implementar QoS en el puerto 22 en un firewall / enrutador entre el servidor y los clientes.

Si están en la misma red local (es decir, no hay enrutadores o firewalls entre ellos), creo que puede usar IPTables para limitar el ancho de banda al puerto 22 ... Consulte aquí para obtener más información sobre cómo hacer esto.

Mark Henderson
fuente
1
Debe tener cuidado al usar el limitador de velocidad de iptables con un servicio como ssh, porque "Es importante observar que la limitación de velocidad es conceptualmente diferente de la limitación / limitación de ancho de banda; una conexión con limitación de ancho de banda pondrá en cola los paquetes y limitará la velocidad a la que se transmiten / reciben. La limitación de velocidad no hará esto; cuando utiliza la limitación de velocidad en, por ejemplo, los intentos de conexión TCP entrante a su identidad, y las conexiones que exceden el límite especificado serán denegadas; no hay cola de paquetes ".
msanford
Hmmm buen punto
Mark Henderson
0

Podrías mirar algo como iprelay :

User-space bandwidth shaping TCP proxy daemon
iprelay can shape the TCP traffic forwarded through it to a specified
bandwidth and allow this bandwidth to be changed on-the-fly. Multiple
data streams to different sockets may be shaped to the same total
bandwidth, much like a traffic shaping router would. However, this
application runs in user space, and works by acting as a TCP proxy.
rkthkr
fuente