Port firewall apa yang harus saya buka saat menggunakan FTPS?

33

Saya perlu mengakses server FTPS (vsftpd) di situs vendor. Vendor memiliki firewall di depan server ftps. Saya memiliki firewall di depan klien FTPS saya.

Saya mengerti bahwa port 990, 991 dan mungkin 989 perlu dibuka untuk mengontrol lalu lintas.

Saya punya beberapa pertanyaan:

  1. Ketika melihatnya dari perspektif firewall vendor, haruskah port ini dibuka untuk lalu lintas masuk dan keluar?
  2. Bagaimana dengan port untuk saluran DATA?
  3. Apakah saya harus membuka semua port di atas 1000?
  4. Haruskah saya melakukannya untuk lalu lintas masuk dan keluar?
Tim
sumber

Jawaban:

19

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.

pcapademic
sumber
3
mode pasif FTPS akan menggunakan port kontrol di atas port # 1024 dan itu akan bekerja lebih baik dengan firewall daripada non-pasif. klien memberi tahu port 21 apa port batas atas untuk dibuka dan Anda dapat mengonfigurasi klien untuk mengatakan "kontrol ada di port 2000 atau 2001" dan kemudian server akan membuka port outbound 2000 atau 2001. sebagian besar klien FTP mendukung mendefinisikan rentang tertentu port untuk "kontrol" aktif dan yang membuat definisi firewall mudah.
djangofan
27

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):

pasv_min_port=21000

pasv_max_port=21010

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.

David
sumber
10

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.

Marin
sumber
2

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,

carlito
sumber
1

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.

Chris W. Rea
sumber
-1

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).

Djangofan
sumber
6
Pertanyaan yang diajukan tentang FTPS, bukan SFTP.
Michael Lang
-7

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.

Brent
sumber
11
SFTP tidak sama dengan ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP adalah protokol transfer file yang digunakan dengan SSH. FTPS adalah FTP dengan SSL, FTPS memulai koneksi DATA baru pada porta acak baru, yang membuatnya sulit untuk digunakan di belakang firewall, tetapi saya tidak dapat menghapus firewall dalam situasi ini.
2
Maaf kalau begitu Saya akan meninggalkan posting ini, kalau-kalau orang lain memiliki kebingungan yang sama.
Brent
Ini adalah kebingungan yang sangat umum. Dari sisi firewall, sftp lebih mudah untuk diizinkan, kecuali bahwa itu dibangun di atas protokol yang ditujukan untuk akses masuk. Kelalaian bagi kelompok keamanan independen untuk mengizinkan tanpa validasi independen yang signifikan. Sulit bagi sysadmin untuk menemukan / mengkonfigurasi server sftp yang masuk akal untuk klien yang tidak terpercaya. Setiap diskusi tentang sftp atau ftps harus menyebutkan protokol lain karena kebingungan sangat umum.
carlito