Pemahaman saya tentang FTP over SSL (ftps) adalah bahwa ia tidak bekerja dengan baik dengan firewall dan NAT. Dalam sesi FTP biasa, informasi tentang koneksi data dibaca, dan untuk NAT dimodifikasi, oleh firewall agar firewall dapat secara dinamis membuka port yang diperlukan. Jika informasi itu diamankan oleh SSL, firewall tidak dapat membacanya atau mengubahnya.
Menggunakan SFTP, atau scp, membuat pekerjaan administrator jaringan jauh lebih mudah - semuanya terjadi pada port 22 server, dan transaksi mengikuti model klien / server normal.
Satu hal yang tidak disebutkan adalah apakah firewall Anda menjalankan NAT dan apakah itu NAT statis atau NAT dinamis atau bukan. Jika mesin klien Anda memiliki alamat statis atau sedang disatukan secara statis, Anda mungkin tidak perlu melakukan perubahan firewall, dengan asumsi Anda mengizinkan semua lalu lintas keluar dan server hanya beroperasi dalam mode Pasif (PASV).
Untuk mengetahui persis port apa yang perlu Anda buka, Anda harus:
a) berbicara dengan vendor untuk mendapatkan spesifik tentang bagaimana sistem mereka telah dikonfigurasi.
b) Gunakan penganalisa protokol, seperti tcpdump atau wireshark, untuk melihat lalu lintas, baik dari luar firewall Anda dan di dalam firewall Anda
Anda perlu mencari tahu port mana yang merupakan Koneksi Kontrol. Anda daftar 3, yang tampaknya aneh bagi saya. Dengan asumsi server hanya berfungsi dalam mode PASV (pasif), Anda perlu mencari tahu bagaimana server dikonfigurasi untuk port DATA yang dialokasikan. Apakah mereka mengunci saluran DATA ke satu port masuk? Apakah mereka mengunci saluran DATA ke kisaran kecil atau port?
Dengan jawaban ini, Anda dapat mulai mengkonfigurasi firewall Anda.
Saya percaya port sekitar 990 adalah untuk SSL implisit, yang merupakan cara lama non-standar untuk melakukan FTP / SSL. Cara "benar" hari ini adalah SSL eksplisit, yang berarti Anda masih terhubung pada port 21 dan kemudian menegosiasikan SSL sebelum mengirim barang Anda. Untuk mendukung koneksi melalui firewall, Anda perlu menggunakan mode PASV dan mengatur port data yang akan digunakan.
Saya yakin Anda memerlukan setidaknya satu port per koneksi data yang ingin Anda dukung. Jika itu hanya Anda, Anda mungkin baik-baik saja hanya membuka beberapa port tambahan. Khusus untuk saya, saya menggunakan 21000-21010.
Dalam vsftpd.conf, saya memiliki dua baris ini (bersama semua hal lain untuk mendukung SSL):
Pada firewall saya, saya memiliki IP statis publik dengan NAT satu-ke-satu / statis ke IP internal dan hanya port tcp 21, 21000-21010 terbuka.
sumber
Saya tahu ini adalah utas yang sangat lama, namun ..
Harap dicatat bahwa SFTP sama sekali berbeda dari FTPS. (SSH vs SSL)
FTPS bekerja dalam 2 cara. Eksplisit dan Implisit. Eksplisit kurang aman karena setelah jabat tangan melewatkan enkripsi selama transfer data [jika enkripsi data dikelola dapat dikonfigurasi di sisi server dengan PROT P], sementara Implisit menyimpan enkripsi data setelah jabat tangan juga. Port FTPS Eksplisit default adalah 21. Port implisit default adalah 990 (setelah jabat tangan, port tersebut akan secara otomatis beralih ke 989 untuk transmisi data, jika tidak dikonfigurasi secara berbeda). Sementara port 21 secara umum diterima sebagai EXPLICIT FTPS dan 990 sebagai IMPLICIT FTPS, pada kenyataannya port mana saja yang akan Anda konfigurasi, kecuali 990/989, akan mengarah ke EXPLICIT FTPS sementara HANYA 990/989 akan diterima sebagai FTPL IMPLICIT.
Jadi, untuk menjawab pertanyaan Anda: - tergantung pada konfigurasi Server FTPS, Anda harus membuka port 21 atau 990/989. Namun, hanya untuk memastikan, Anda harus menghubungi admin Server FTPS dan menanyakan arah. Juga, ingatlah bahwa untuk mode pasif, seperti pada setiap perangkat lunak FTP lainnya, Anda harus membuka port tambahan (TCP / UDP) yang biasanya berkisar dari 64000-65000.
sumber
Pada dasarnya ftps hampir tidak berguna, karena Anda harus membuat permintaan memalukan kepada admin firewall. Saran untuk membatasi port menjadi 10 adalah baik. Jauh lebih menyedihkan.
sftp jauh lebih baik secara teori. Tetapi Anda memerlukan server sftp yang layak, misalnya server yang membatasi klien ke direktori home mereka sendiri.
Bergantung pada aplikasinya, pertimbangkan HTTPS. Upload file sangat sederhana, dan unduhan juga jelas. Jika Anda tetap membuat skrip FTP, mungkin akan lebih mudah untuk membuat skrip upload file HTTPS.
FTP otomatis adalah tanda masalah desain. Saya perhatikan ini ketika berhadapan dengan total sekitar selusin vendor yang 'mengharuskan' tempat saya bekerja untuk melakukan FTP otomatis (untuk SANGAT hal-hal penting), dan ketika membuat lusinan pelanggan melakukannya dengan toko yang sama (kegagalan desain sekitar 20 kegunaan berbeda yang saya saksikan). Mudah meyakinkan sebagian besar orang aplikasi untuk menggunakan HTTPS (biasanya pada saat yang disebutkan, mereka berkata "tunggu, tidak ada alasan kita tidak hanya meminta mereka mendapatkannya dengan HTTPS dari server web kita sudah menyajikan data pada mereka?" ), kecuali beberapa yang memberikan tanggapan seperti "baik, kami sudah memiliki skrip ini yang tampaknya berfungsi, dan tidak ada seorang pun di tim kami yang benar-benar pandai dalam skrip sehingga kami tidak dapat melakukan perubahan" (tim yang terdiri dari 5-10 programmer,
sumber
Vendor mungkin dapat mengonfigurasi kisaran port sempit untuk port koneksi DATA, jika belum. Kemudian Anda dapat membuka rentang yang sama di ujung Anda, untuk host yang membutuhkan akses tersebut. Mode PASV harus digunakan.
sumber
Port 22 adalah standar karena daemon SSH pada UNIX memiliki modul SFTP yang dapat Anda aktifkan untuk membuat server SFTP eksplisit. Jika Anda ingin menjalankan server FTP implisit dengan Filezilla maka Anda dapat menjalankannya pada port apa pun yang Anda inginkan tetapi ada masalah: jika Anda menggunakan klien FileZilla Anda perlu menentukan URL situs ftp sebagai ftps: //mysite.com: 8086 daripada menempatkan port di bidang port terpisah yang disediakan oleh klien FileZilla.
Untuk opsi eksplisit, Anda hanya perlu SATU port: 22. Untuk opsi implisit Anda hanya perlu membuka firewall untuk port kontrol: 8086 (yang meneruskan secara internal ke port 21 pada server filezilla Anda).
sumber
jika ftps sama dengan sftp , maka Anda hanya perlu dapat mengakses port 22 di situs vendor.
Di akhir Anda, Anda harus mengkonfigurasi firewall Anda untuk memungkinkan port 22 keluar, dan lalu lintas masuk terkait . Ini akan memungkinkan komunikasi pada setiap port masuk yang terkait dengan koneksi keluar awal pada port 22.
sumber