Como os números de porta de todas as conexões SSH reversas ativas podem ser listados?

0

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?

    
por BlandCorporation 27.06.2017 / 15:41

2 respostas

0

Você pode obtê-lo usando:

netstat -anp | egrep '127.0.0.1:*(LISTEN|.*)' | classificar

Este comando lista todas as conexões com as portas que são ativas e classifica-as.

Se você tem um intervalo de portas que inclui apenas, por exemplo, portas de 40000 a 45000, você pode adicionar o 4 ao egrep como '127.0.0.1:4*(LISTEN|.*)' para obter apenas isso aqueles que começam com 4 em vez de obter todas as portas.

    
por 27.06.2017 / 17:13
0

Você poderia usar

sudo ss -ltp | grep sshd

para listar todas as portas TCP abertas para escuta por um processo sshd , incluindo o ouvinte padrão (normalmente em tcp/22 , mas em outro lugar, se você tiver optado por configurar uma porta alternativa para o daemon sshd ). Você poderia então examinar os PIDs listados para determinar qual usuário havia aberto a conexão ssh que estava escutando em cada porta.

    
por 27.06.2017 / 17:30