Mengapa saya dikeluarkan dari sesi FTP setelah saya menjalankan perintah?

12

Mengapa saya dikeluarkan dari sesi FTP setelah saya menjalankan perintah? Tampaknya begitu saya berhasil masuk ke server, dapatkan yang berikut setelah menjalankan perintah seperti "ls" (Saya telah melampirkan bagian kesalahan dalam tag "[ERROR]"):

allen92@allen92-VirtualBox:~/Videos$ ftp -n ftp.FreeBSD.org
Connected to ftp.FreeBSD.org.
220 beastie.tdk.net FTP server (Version 6.00LS) ready.
ftp> user
(username) anonymous
331 Guest login ok, send your email address as password.
Password: 
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
[ERROR]
421 Service not available, remote server has closed connection
[ERROR]
ftp> 

Ini tampaknya terjadi pada server FTP jarak jauh apa pun. Semuanya berfungsi dengan baik ketika saya masuk ke mesin lokal dan menjalankan perintah FTP. Jika sebenarnya kesalahan "421" adalah kesalahan umum, apakah ada cara untuk mengetahui sumber masalahnya? Setiap petunjuk tentang ini akan dihargai. Saya belum dapat menemukan dukungan pada masalah khusus ini . Siapa pun yang memiliki masalah serupa, silakan berbagi pemikiran Anda.

CATATAN: Saya sudah menginstal VSFTPD .

AllenD
sumber

Jawaban:

13

Kemungkinan besar NAT-firewall antara Anda dan server menunjukkan gejala tersebut. (NAT-firewall menyembunyikan seluruh jaringan di belakang nomor IP tunggal).

Masalahnya adalah bahwa ftp ingin mengirim data yang dihasilkan dari perintah dalam koneksi TCP / IP baru yang terpisah dan yang tidak dapat melewati firewall karena perlu pergi dari server kepada Anda, dan Anda tersembunyi di balik firewall yang memiliki tidak ada petunjuk bahwa data tersebut ditujukan untuk mesin Anda. Ketika protokol FTP dirancang, banyak perangkat modern seperti NAT-router (yang menjadi penting ketika ada lebih banyak perangkat daripada alamat IP yang tersedia) belum ditemukan.

Gunakan pasvperintah (dapat disebut sesuatu yang berbeda di klien Anda) untuk mengubah ke koneksi pasif di mana koneksi data pergi dari Anda ke server.

Lihat http://slacksite.com/other/ftp.html untuk penjelasan lebih rinci.

Thorbjørn Ravn Andersen
sumber
Terima kasih banyak. Dalam kasus VSFTPD, perintah untuk memasuki mode pasif adalah "pasif". Itu tampaknya bekerja untuk saat ini. Saya pikir seluruh situasi ini berkaitan dengan saya menjalankan instalasi Linux pada mesin virtual dan pengaturan yang tidak terlalu standar. Saya akan mencari tahu bagaimana mengaktifkan mode "pasif" secara default. Setelah saya mengetahui saya akan memposting untuk siapa pun yang tertarik.
AllenD
Bukan tidak biasa bahwa jaringan default untuk mesin virtual adalah semacam NAT, sehingga mesin tidak terbuka. Untuk mengubah VirtualBox ke Bridged membuatnya muncul seperti mesin lain di jaringan lokal.
Thorbjørn Ravn Andersen
-1

Tambahkan atau aktifkan baris ini di /etc/vsftpd.conf

seccomp_sandbox = TIDAK

Andrej Sevčnikar
sumber
Jawaban ini menyelesaikan masalah saya, tetapi saya masih memiliki pertanyaan tentang konfigurasi tidak berdokumen ini.
A1rPun
Mengapa seccomp_sandbox=NOjawaban yang benar dalam keadaan tertentu didokumentasikan dalam /etc/vsftpd.conffile: `` `# seccomp_sanbox menambahkan lapisan keamanan tambahan yang membatasi jumlah # syscalls dapat dilakukan melalui vsftpd. Namun mungkin terjadi bahwa # daftar putih tidak mengizinkan panggilan yang sah (biasanya dipicu secara tidak langsung oleh # perpustakaan pihak ketiga seperti pam, atau openssl) dan prosesnya sedang dimatikan oleh kernel. # # Karenanya jika server Anda mati dalam situasi umum (unduh file, unggah), # batalkan komentar mengikuti baris ini dan jangan lupa untuk membuka bug di # bugzilla.novell.com se
GSchukat