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?
sumber
-p
ke netstat, dan ambil untuk/ssh
. maka koneksi apa pun yang bukan pada 22 kemungkinan merupakan terowongan terbalik.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?Jawaban:
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.
sumber
Anda bisa menggunakannya
untuk mendaftar semua port TCP yang dibuka untuk didengarkan oleh
sshd
proses, termasuk pendengar default (biasanya aktiftcp/22
, tetapi di tempat lain jika Anda telah memilih untuk mengonfigurasi port alternatif untuksshd
daemon). Anda kemudian dapat memeriksa PID yang terdaftar untuk menentukan pengguna apa yang telah membukassh
koneksi yang sedang mendengarkan pada setiap port.sumber