Secara umum port fana digunakan oleh klien ketika membuat koneksi dengan server.
Sebagai contoh:
- Server mendengarkan pada port 80
- Seorang klien (browser, klien FTP, klien bittorent) mengirim permintaan ke server termasuk port sesaat yang ditugaskan oleh OS
- Server merespons menggunakan port ephemeral yang disediakan sebagai port tujuan
Dan sekarang pertanyaannya:
Saya menulis aplikasi server yang ingin saya mulai pada port bebas acak setiap kali dimulai (Untuk menjaga pertanyaan ini saya tidak akan menjelaskan mengapa saya ingin perilaku ini). Sekarang pertanyaan saya adalah apa implikasinya jika saya menggunakan salah satu porta fana untuk didengarkan oleh server. Apakah ada kelemahan (juga dalam hal keamanan) dalam melakukan ini?
Apakah Anda mungkin tahu contoh server yang juga menggunakan porta fana dalam praktik?
Salah satu keprihatinan saya juga pernyataan dari The TCP / IP Guide: Referensi Protokol Internet Lengkap, Ilustrasi (halaman 705) :
Sama seperti nomor port yang terkenal dan terdaftar digunakan untuk proses server, nomor port ephemeral hanya untuk proses klien.
sumber
Jawaban:
Sebagai bantuan, halaman Wikipedia di Ephemeral Port memberikan informasi lebih lanjut tentang nomor port yang sebenarnya digunakan oleh OS.
Dari yang satu ini dapat segera melihat ada banyak port yang tersedia yang biasanya tidak digunakan oleh server (proses) dan tidak dalam rentang sesaat.
Dengan demikian solusi yang jelas adalah memilih secara acak dari salah satu port lain. Ini menghindari perlu membuat asumsi tentang bagaimana OS mengalokasikan dari rentang sesaat: apakah ia memeriksa penggunaan aktual atau hanya alokasi untuk menghindari tabrakan untuk alokasi baru ?.
Pertanyaan itu mungkin tampak kecil, tetapi dengan port klien prosesnya biasanya tidak langsung menggunakan nomor port (itu dialokasikan ketika proses membuka koneksi, hanya dengan melihat properti soket dapat proses menemukan nomor: dan biasanya ini adalah sama sekali tidak perlu). Namun untuk menerima koneksi masuk, soket harus terikat ke port tertentu, sehingga proses server bertanggung jawab untuk mendapatkan nomor port.
sumber
Jika Anda mendengarkan pada porta sesaat Anda mungkin berisiko TCP self connect .
sumber