Masalah Aneh: Reset Koneksi Oleh Peer


10

Saya mengalami beberapa masalah dengan SSH di server linux saya yang menjalankan CentOS. Saya dapat terhubung ke server saya menggunakan Putty atau ssh dari windows cmd. Hal yang sama berlaku untuk menggunakan FTP aman. Saya dapat terhubung ke server, mendapatkan daftar file dan semuanya baik-baik saja. Masalahnya terjadi ketika saya mencoba mengirim sejumlah data di jaringan.

Setiap kali saya mencoba mentransfer sesuatu di luar batas tertentu, koneksi gagal dan saya melihat pesan 'Koneksi reset oleh rekan'. Saya memiliki file sql yaitu sekitar 3 MB di direktori home saya. Jika saya mencoba untuk FTP itu, itu akan memulai transfer dan mati setelah sekitar 48k telah ditransfer. Kemudian akan memulai koneksi baru dan mentransfer 48k lainnya. Jika saya menggunakan Putty dan membuka sesi saya dapat terhubung dan masuk dengan baik. Jika saya mencoba cat file.sqllagi, koneksi terputus dan saya mendapatkan pesan 'Koneksi reset oleh rekan'. Pergi dari workstation lokal saya ke server, situasinya sama. Saya memiliki sedikit kode sumber yang harus saya komit ke repositori svn saya yang dihosting di server, tetapi pesan 'Koneksi reset oleh rekan' yang sama muncul.

Saya tahu masalahnya ada di workstation lokal saya karena saya dapat menggunakan macbook istri saya dan ssh ke server tanpa masalah. Saya dapat ssh ke kotak linux seorang teman (menggunakan pemasangan dempul yang sama) dan sftp ke server saya dari mereka dan mengunduh file, buka sesi ssh lain dari kotaknya ke server saya dan cat file. Jadi, ada sesuatu yang terjadi, tetapi saya tidak yakin apa. Adakah yang punya ide?

Memperbarui

Saya telah mencoba untuk mencari tahu lebih banyak lagi, dan sepertinya ada batasan jumlah data yang dapat saya transfer dalam satu sesi ssh. Saya langsung menekannya jika saya lakukan cat file.sqltetapi saya juga bisa terus mengetik ls -lbeberapa kali secara konsisten dan juga akan mendapatkan pesan 'Koneksi reset oleh rekan'. Saya sudah mencoba:

  • menghasilkan kunci ssh baru
  • me-restart router saya
  • nyalakan kembali komputer saya
  • memulai kembali server jarak jauh

Saya menulis tcpdump pada server jarak jauh, tetapi saya tidak mengerti TCP pada tingkat yang begitu rinci sehingga sangat masuk akal bagi saya. Saya menyalakan debugging di ssh dan di sini adalah bagian dari log yang mengarah ke koneksi yang diatur ulang:

Jul 24 23:10:56 server sshd[4507]: debug1: permanently_set_uid: 500/503
Jul 24 23:10:56 server sshd[4507]: debug1: Entering interactive session for SSH2.
Jul 24 23:10:56 server sshd[4507]: debug1: server_init_dispatch_20
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
Jul 24 23:10:56 server sshd[4507]: debug1: input_session_request
Jul 24 23:10:56 server sshd[4507]: debug1: channel 0: new [server-session]
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: session 0: link with channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: confirm session
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request pty-req reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req pty-req
Jul 24 23:10:56 server sshd[4507]: debug1: Allocating pty.
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_pty_req: session 0 alloc /dev/pts/2
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request shell reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req shell
Jul 24 23:10:56 server sshd[4508]: debug1: Setting controlling tty using TIOCSCTTY.
Jul 24 23:10:59 server sshd[4507]: Read error from remote host <my-ip>: Connection reset by peer
Jul 24 23:10:59 server sshd[4507]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: deleting credentials
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: closing session
Jul 24 23:10:59 server sshd[4505]: pam_unix(sshd:session): session closed for user <me>
Jul 24 23:10:59 server sshd[4505]: debug1: session_pty_cleanup: session 0 release /dev/pts/2

PEMBARUAN 2:

Sekitar seminggu yang lalu, saya mengubah pengaturan ssh saya di server saya menggunakan posting wiki ini: http://wiki.centos.org/HowTos/Network/SecuringSSH

Karena saya kadang-kadang perlu mengakses server saya dari kantor, dan karena port 21 terbuka di firewall kami, saya mengubah port ssh menjadi 21. Untuk mendiagnosis masalah ini lebih lanjut, saya mencoba untuk mengembalikan pengaturan ssh saya dan mengubah port ssh kembali ke 22 Rendah dan lihatlah, saya tidak menemukan kesalahan ketika saya menggunakan port 22. Ubah kembali ke 21, dan seperti jarum jam ketika saya menekan 48k data yang ditransfer - Koneksi reset oleh rekan.

Mengingat bahwa saya bisa mendapatkan koneksi awal dan bahwa saya tidak punya masalah di masa lalu membangun koneksi ftp pada port 21, sepertinya konfigurasi firewall saya tidak menjadi masalah.

Setidaknya pada titik ini, saya punya masalah dipersempit ke port ssh di server saya. Balikkan ke 21 dan masalah instan, ubah kembali ke 22, tidak ada masalah sama sekali ...

Adakah yang bisa memikirkan mengapa mendengarkan port akan membuat perbedaan? Sekali lagi, ini hanya pada kotak Windows XP saya yang menyebabkan masalah. Beri tahu saya jika ada yang memiliki pemikiran tentang apa yang menyebabkan hal ini.

Pembaruan 2:

Hanya mempersempit masalah dan saya berdiri dikoreksi - ini adalah masalah firewall, tetapi masalah firewall Windows, bukan di router saya. Jika saya menggunakan port 21 dan menonaktifkan firewall windows saya tidak menemukan pesan 'Koneksi reset oleh rekan'. Untuk menjawab pertanyaan yang jelas, ya, port 21 terbuka di windows firewall.

Karena komputer ini berada di belakang firewall pada router saya, saya hanya dapat menonaktifkannya untuk saat ini, tetapi saya akan tertarik untuk mencari tahu apa yang terjadi di sini.


+1 Saya melihat masalah yang sama di sini pada PC Windows 7 yang mencoba terhubung ke server SSH melalui port 21. Sambungannya baik untuk akses shell sampai saya mulai menggunakan terowongan melalui koneksi yang sama untuk mentransfer lebih banyak data. Jawaban Alessandro di bawah memberikannya untuk saya.
Wim Coenen

Jawaban:


10

Anda dapat menyelesaikan menggunakan baris perintah dengan perintah ini (ketikkan ini sebagai administrator):

netsh advfirewall set global statefulftp disable


Beri ini +1 untuk saya. Untuk kejelasan: perintah ini harus dijalankan pada PC Windows.
Wim Coenen

Luar biasa, saya sendiri pernah mengalami masalah ini. Semua terkait dengan firewall windows 7. Baik dengan Putty SSH lebih dari 21 dan koneksi NXclient (nxshh) lebih dari 21. advfirewall netsh mengatur statefulftp global menonaktifkan ini memungkinkan koneksi nxclient saya sekarang koneksi dan menyelesaikan koneksi sehingga saya melihat desktop.

1

Ini dapat dikaitkan dengan router Anda yang mencoba menangani pelacakan koneksi NAT NAT secara otomatis. Itu hanya akan terjadi pada port 21, bukan 22. Lihat http://www.faqs.org/docs/iptables/complexprotocols.html


Terima kasih, saya akan memeriksa artikel itu dan melihat apakah artikel ini menjelaskan apa yang terjadi.
Proflux

Ricardo tampaknya benar. Lihat diskusi di winscp.net/forum/viewtopic.php?t=9360 . Bertanya-tanya apakah ada sesuatu yang dapat dieksploitasi dalam masalah apa pun yang memicu ini di ip_conntrack_ *
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.