Bagaimana nomor port semua koneksi reverse SSH yang aktif dicantumkan?

0

Saya memiliki beberapa mesin yang terhubung ke server tunggal dengan membalikkan terowongan SSH. Jadi, setiap mesin menjalankan perintah seperti berikut:

while true; do
    ssh -X -R 19999:localhost:22 www.sern.pro
    sleep 30
done

Itu 19999 di sini akan bervariasi untuk koneksi yang berbeda (mis. 19990, 19991 dll.) Koneksi SSH terbalik ini dapat diakses dari server menggunakan perintah seperti berikut:

ssh -X localhost -p 19999

Bagaimana server dapat menampilkan daftar koneksi SSH terbalik aktif? Saya sudah mencoba menggunakan netstat tetapi ini membutuhkan pengetahuan awal tentang port lokal yang digunakan dan tidak menjelaskan bahwa itu adalah koneksi SSH terbalik:

# 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)

Mengikuti saran dari @ frank-thomas, saya mencoba menggunakan perintah netstat --all --timers --program --numeric | grep ssh untuk mencari proses SSH non-standar. Ketika saya melakukan ini, setelah netstat Daftar TCP, saya mendapatkan daftar UNIX seperti berikut:

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

Bagaimana data ini dapat ditafsirkan untuk memberikan daftar port terowongan SSH terbalik yang digunakan di server? Bagaimana angka seperti 19999 dapat diturunkan dari ini?

BlandCorporation
sumber
hanya koneksi ssh akan bekerja? Saya yakin Anda bisa menambahkan -p ke netstat, dan ambil untuk /ssh. maka koneksi apa pun yang bukan pada 22 kemungkinan merupakan terowongan terbalik.
Frank Thomas
@ FrankThomas Terima kasih banyak untuk sarannya. Saya sudah mencoba menggunakan netstat dengan cara seperti yang Anda sarankan dan saya sudah mengedit pertanyaan saya untuk memberikan detail tentang ini. Saya mendapatkan daftar apa yang mungkin menjadi terowongan SSH terbalik, tapi saya tidak yakin bagaimana cara menurunkan port yang digunakan dari daftar ini. Apakah Anda punya ide?
BlandCorporation

Jawaban:

0

Anda bisa mendapatkannya menggunakan:

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

Perintah ini mencantumkan semua koneksi dengan port yang diaktifkan dan mengurutkannya.

Jika Anda memiliki kisaran port yang hanya mencakup, misalnya, port dari 40000 hingga 45000 Anda dapat menambahkan 4 ke egrep seperti '127.0.0.1:4*(LISTEN|.*)' untuk mendapatkan hanya port yang dimulai dengan 4 alih-alih mendapatkan semua port.

Genaro Morales
sumber
0

Anda bisa menggunakannya

sudo ss -ltp | grep sshd

untuk mendaftar semua port TCP yang dibuka untuk didengarkan oleh sshd proses, termasuk pendengar default (biasanya aktif tcp/22, tetapi di tempat lain jika Anda telah memilih untuk mengonfigurasi port alternatif untuk sshd daemon). Anda kemudian dapat memeriksa PID yang terdaftar untuk menentukan pengguna apa yang telah membuka ssh koneksi yang sedang mendengarkan pada setiap port.

user4556274
sumber