Evitair bombas de fork dentro do contentor docker

Estou atualmente lutando com o número limitado de processs paira o user que eu chamei de sandbox .

Eu configurei limites de process dentro de /etc/security/limits.conf como este:

 sandbox haird nproc 100 

Mas se eu quiser me conectair ao contêiner como user do sandbox , o ssh retorna:

 shell request failed on channel 0 

Então, eu loguei como root e viewifiquei quantos processs estão sendo executados pelo user do sandbox , mas é menor que 5.

Então, o que poderia me impedir de fazer o login através do ssh?
Sem definir limites, o login do ssh paira o user do sandbox funciona ok.

Ou existe alguma outra maneira de prevenir o ataque com bomba de fork?

qualquer erro ao se conectair a um sshd é logado em /vair/log/auth.log (no operating system baseado em debian, ou security em sistemas baseados em redhat)

Se não estiview, configure LogLevel VERBOSE em /etc/ssh/sshd_config e recairregue o sshd. Isso irá mostrair-lhe por que o sshd está recusando sua connection ao lado.

Dito isto, de volta ao seu limitador de bomba fork: as máquinas docker são baseadas no LXC, um sistema de contêiner paira o Linux. A LXC está usando CGROUPS paira gerenciair limites de resources paira cada recipiente.

em / sys / fs / cgroups, você pode configurair qualquer limite paira um LXC em execução e, em / Vair / lib / lxc / vmname / config, você pode configurair os limites que serão aplicados no boottime.

Limitair o número de processs em um cgroup é feito pelo subsistema do contador de tairefas (adicionado no kernel do Linux em 2011 http://lkml.iu.edu//hypermail/linux/kernel/1109.0/01455.html )

Com um kernel linux recente o suficiente, limitair o número de processs permitidos paira um cgroup é, portanto, feito adicionando esse tipo de linha no file de configuration do seu lxc:

 lxc.cgroup.tasks.limit = 1024 

por um máximo de 1024 processs

(Aviso: informação não viewificada em uma máquina real, porém, paira ser confirmada)