Bisakah server Telnet mendeteksi klien yang digunakan melalui protokol?

9

Sementara browser web mengirim, antara lain, User-Agentstring, apakah protokol Telnet memiliki metode yang sama untuk menentukan sesuatu tentang klien yang terhubung dengannya? OS? Klien Telnet tertentu? Dll

Thufir
sumber

Jawaban:

14

Tidak ada Agen-Pengguna, tetapi ada beberapa opsi protokol Telnet untuk mengirim informasi klien:

  • TERMINAL TYPE- menunjukkan tipe terminal yang digunakan (mis. Xterm, urxvt, screen-256color ...) Anda tidak dapat benar-benar menyingkirkan ini tanpa merusak barang-barang. Hal yang sama berlaku untuk NAWSyang melaporkan ukuran jendela (kolom × baris).

  • OLD-ENVIRONdan NEW-ENVIRON- dapat mengungkapkan beberapa variabel lingkungan tertentu; beberapa klien juga mengungkapkan FQDN mereka dalam variabel $ DISPLAY palsu. Mengirim lokal sistem Anda yang dikonfigurasikan ($ LANG, $ LC_ *) atau zona waktu ($ TZ) juga tidak jarang.

  • XDISPLOC - mirip dengan di atas, beberapa klien mengirim FQDN Anda sebagai lokasi tampilan X11.

  • Jika salah satu fitur otentikasi diaktifkan, mereka dapat mengungkapkan nama pengguna OS Anda.

  • Terakhir, seluruh rangkaian opsi yang dikenali bervariasi di antara implementasi dan dapat digunakan sebagai sidik jari gaya Panopticlick.

frost $ echo $ DISPLAY
: 0

frost $ telnet
telnet> setel opsi
Akan menampilkan pemrosesan opsi.
telnet> buka m-net.arbornet.org
Mencoba 162.202.67.157 ...
Terhubung ke m-net.arbornet.org.
Karakter melarikan diri adalah '^]'.
KIRIM SUPPRESS PERGI KE DEPAN
DIKIRIM AKAN TIPE TERMINAL
DIKIRIM AKAN NAWS
DIKIRIM AKAN TSPEED
DIKIRIM AKAN KENDALI
DIKIRIM AKAN LINEMODE
DIKIRIM AKAN BARU-LINGKUNGAN
DIKIRIM STATUS
DIKIRIM AKAN XDISPLOC
RCVD MELAKUKAN OTENTIKASI
DIKIRIM WONT AUTHENTICATION
RCVD AKAN SUKSES PERGI KE DEPAN
RCVD MELAKUKAN JENIS TERMINAL
RCVD DO NAWS
DIKIRIM IAC SB NAWS 0 95 (95) 0 46 (46)
RCVD DO TSPEED
RCVD DO LFLOW
RCVD DO LINEMODE
DIKIRIM IAC SB LINEMODE SLC SYNCH NOSUPPORT 0; IP VARIABEL | FLUSHIN | FLUSHOUT 3; AO VARIABEL 15; AYT NOSUPPORT 0; VARIABEL ABORT | FLUSHIN | FLUSHOUT 28; VARIABEL EOF 4; SUSP VARIABEL | FLUSHIN 26; EC VARIABEL 127; EL VARIABEL 21; EW VARIABEL 23; RP VARIABEL 18; VARIABEL LNEXT 22; XON VARIABEL 17; VARIABEL XOFF 19; FORW1 NOSUPPORT 0; FORW2 NOSUPPORT 0;
KIRIM SUPPRESS PERGI KE DEPAN
RCVD LAKUKAN BARU-ENVIRON
RCVD AKAN STATUS
RCVD DO XDISPLOC
RCVD AKAN MENYEDIAKAN
DIKIRIM TIDAK MENYEDIAKAN
RCVD LAKUKAN LAMA-ENVIRON 
DIKIRIM TIDAK AKAN LAMA-LINGKUNGAN
RCVD IAC SB MENGIRIM KECEPATAN TERMINAL
DIKIRIM IAC SB SPEED TERMINAL IS 38400,38400
RCVD IAC SB X-DISPLAY-LOCATION KIRIM
DIKIRIM IAC SB X-DISPLAY-LOCATION ADALAH "frost.nullroute.eu.org—
RCVD IAC SB BARU-ENVIRON KIRIM 
DIKIRIM IAC SB NEW-ENVIRON ADALAH VAR "DISPLAY" VALUE "frost.nullroute.eu.org—"
RCVD IAC SB TERMINAL-TYPE KIRIM
DIKIRIM IAC SB TERMINAL-TYPE ADALAH "XTERM-256COLOR"
RCVD DO ECHO
DIKIRIM TIDAK AKAN ECHO
RCVD AKAN ECHO
DIKIRIM MELAKUKAN ECHO
RCVD IAC SB TOGGLE-FLOW-CONTROL OFF
RCVD IAC SB TOGGLE-FLOW-CONTROL RESTART-XON
RCVD DONT LINEMODE
DIKIRIM LINEMODE TIDAK AKAN
RCVD IAC SB LINEMODE SLC IP VARIABEL | ACK | FLUSHIN | FLUSHOUT 3; AO VARIABEL | ACK 15; VARIABEL ABORT | ACK | FLUSHIN | FLUSHOUT 28; VARIABEL EOF | ACK 4; SUSP VARIABEL | ACK | FLUSHIN 26; EC VARIABEL | ACK 127; EL VARIABEL | ACK 21; EW VARIABEL | ACK 23; RP VARIABEL | ACK 18; VARIABEL LNEXT | ACK 22; XON VARIABEL | ACK 17; VARIABEL XOFF | ACK 19;

FreeBSD / i386 (m-net.arbornet.org) (Poin / 5)

Gabung: 
pengguna1686
sumber
2
jawaban yang bagus ketika saya membaca man telnetsatu-satunya bug yang terdaftar adalah: The source code is not comprehensible. Penasaran apakah ada orang yang pernah menulis klien yang up-to-date dalam hal selain C.
Thufir
3
Itu tidak akan banyak berguna, karena protokol itu sendiri juga sudah ketinggalan zaman, seperti kebanyakan server ... SSHv2 adalah pengganti modern. // juga, perhatikan bahwa ada beberapa klien berbeda yang disebut "telnet" - inetutils-telnet & netkit-telnet, antara lain.
user1686
1
Padahal, pada catatan terkait, SSH memang memiliki string agen pengguna.
user1686
1
@grawity telnet masih melihat banyak kegunaan misalnya untuk diagnostik. Ini menjadi sedikit kurang umum berkat proliferasi TLS (mendukung misalnya OpenSSL -connect), tetapi masih ada banyak kegunaan yang valid untuk koneksi teks yang cukup sederhana, seperti yang diberikan telnet kepada Anda ketika dipanggil ke server non-telnet. Tentu saja, maksud Anda tetap bahwa telnet bukan hanya perangkat lunak, itu protokol; itu seperti memanggil HTTP browser web.
CVn
1
@ MichaelKjörling Tetapi ketika perintah telnet digunakan untuk debugging komunikasi jaringan itu sebenarnya tidak berbicara protokol telnet. Dengan klien telnet, saya baru saja menguji dengan mengatakan nomor port mana yang akan dihubungkan akan menyebabkannya mengubah perilaku.
kasperd