Eu tenho várias máquinas conectadas a um único servidor por túneis SSH reversos. Então, cada máquina está executando um comando como o seguinte:
while true; do
ssh -X -R 19999:localhost:22 www.sern.pro
sleep 30
done
O 19999
aqui seria variado para as diferentes conexões (por exemplo, 19990
, 19991
etc.). Essas conexões reversas do SSH podem ser acessadas do servidor usando um comando como o seguinte:
ssh -X localhost -p 19999
Como o servidor pode exibir uma lista de conexões SSH reversas ativas? Eu tentei usar netstat
, mas isso requer conhecimento prévio das portas locais em uso e não deixa claro que é uma conexão SSH reversa:
# netstat --all --timers | grep "19999"
tcp 0 0 localhost.localdo:19999 *:* LISTEN off (0.00/0/0)
tcp6 0 0 ip6-localhost:19999 [::]:* LISTEN off (0.00/0/0)
Seguindo uma sugestão de @ frank-thomas, tentei usar o comando netstat --all --timers --program --numeric | grep ssh
para procurar processos SSH não padrão. Quando faço isso, após as listagens netstat
TCP, recebo listagens do UNIX como as seguintes:
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ] DGRAM 64179539 28569/sshd: username [pr P475
unix 3 [ ] STREAM CONNECTED 60024486 14205/sshd: username [pr P60024485
unix 3 [ ] STREAM CONNECTED 62232808 5088/sshd: username [pri P62232133
unix 2 [ ] DGRAM 60024422 14205/sshd: username [pr P475
unix 3 [ ] STREAM CONNECTED 64180927 28569/sshd: username [pr P64180926
unix 3 [ ] STREAM CONNECTED 8303 3911/sshd P8304
unix 3 [ ] STREAM CONNECTED 60024487 14205/sshd: username [pr P60024488
unix 2 [ ] DGRAM 62232598 5088/sshd: username [pri P475
unix 3 [ ] STREAM CONNECTED 64180931 28569/sshd: username [pr P64180932
unix 3 [ ] STREAM CONNECTED 62232798 5088/sshd: username [pri P62232797
Como esses dados podem ser interpretados para fornecer uma listagem das portas de encapsulamento SSH reversas em uso no servidor? Como poderia um número como 19999 ser derivado disso?