Apa port forwarding dan untuk apa digunakan?

Jawaban:

318

Dasar

Untuk benar-benar menjelaskan penerusan porta, Anda harus terlebih dahulu memahami lebih banyak tentang apa yang dilakukan router Anda. Penyedia layanan internet Anda menetapkan satu alamat IP untuk koneksi internet Anda. Semua komputer di internet memerlukan alamat IP yang unik, tetapi Anda memiliki banyak komputer di rumah Anda dan hanya satu alamat. Jadi bagaimana cara kerjanya?

Jika Anda tahu apa itu dan hanya ingin tahu bagaimana melakukannya : http://portforward.com/ memiliki caranya dengan screenshot untuk ratusan router yang berbeda. Dokumentasi disembunyikan di balik halaman iklan untuk alat portconfig otomatis mereka. (Cukup klik sekitar sedikit dan Anda akan menemukannya.)

NAT - Apa itu? Mengapa kita menggunakannya?

Router rumah Anda memiliki fungsi yang disebut Terjemahan Alamat Jaringan, atau NAT, bawaan. Di dalam jaringan Anda, komputer memiliki alamat seperti 192.168.1.100. Semua alamat di 192.168. * Range (atau di 10. *) range adalah alamat " private " atau " reserved " . Alamat-alamat ini secara resmi ditugaskan oleh IANA untuk digunakan di dalam jaringan pribadi. Router Anda secara otomatis memberikan alamat seperti itu ke setiap komputer yang terhubung melalui DHCP . Alamat-alamat ini adalah bagaimana komputer di jaringan Anda berkomunikasi dengan router dan satu sama lain.

Perute Anda memiliki antarmuka jaringan terpisah yang menghubungkannya ke internet. Antarmuka ini memiliki alamat yang sangat berbeda yang ditetapkan oleh ISP Anda. Ini adalah satu alamat yang saya sebutkan sebelumnya, dan router Anda menggunakannya untuk berkomunikasi dengan komputer lain di internet. Komputer di dalam jaringan Anda memiliki alamat IP pribadi yang tidak dapat dirutekan , yang berarti bahwa jika mereka mengirim paket langsung ke internet, paket-paket akan secara otomatis dijatuhkan (paket dengan alamat pribadi tidak diizinkan untuk menjelajahi internet karena alasan stabilitas). Tetapi router Anda memiliki alamat routable . Terjemahan Alamat Jaringan, seperti namanya, diterjemahkan antara dua jenis alamat ini, memungkinkan beberapa komputer di dalam jaringan Anda muncul di internet sebagai satu komputer dengan satu alamat.

Rinciannya

Walaupun ini mungkin terdengar rumit, sebenarnya cukup sederhana bagaimana router Anda melakukannya. Setiap kali komputer di dalam jaringan Anda ingin terhubung ke komputer di internet, ia mengirimkan permintaan koneksi ke router (ia tahu untuk mengirimnya ke router karena parameter Default Gateway- nya diatur ke alamat router). Router kemudian mengambil permintaan koneksi itu ("permintaan SYN" dalam TCP / IP) dan mengubah alamat sumber ("reply-to" atau mengembalikan alamat) dan mengubahnya dari IP pribadi komputer ke IP publik dari router, sehingga responsnya akan dikirim ke router. Kemudian mencatat dalam database (disebut tabel NAT ) bahwa koneksi dimulai, sehingga ia mengingatnya nanti.

Ketika respons kembali dari komputer jarak jauh ("SYN-ACK"), router melihat tabel NAT-nya dan melihat bahwa koneksi ke host di port tersebut sebelumnya diprakarsai oleh komputer pribadi di jaringan Anda, mengubah tujuan alamat ke alamat pribadi komputer, dan meneruskannya di dalam jaringan Anda. Dengan cara ini, paket dapat terus transit bolak-balik antar jaringan, dengan router secara transparan mengubah alamat sehingga berfungsi. Ketika koneksi terputus, router hanya menghapusnya dari tabel NAT.

Atau pikirkan seperti ini

Ini mungkin sedikit lebih mudah untuk divisualisasikan dengan metafora - katakanlah Anda seorang pengirim barang di AS yang bekerja dengan klien Cina. Mereka perlu mengirim paket ke banyak pelanggan di AS, tetapi lebih mudah karena alasan pabean / dokumen hanya mengirim paket ke satu tempat. Jadi, sebuah paket datang kepada Anda dari salah satu klien Anda di China (jaringan pribadi, dalam contoh ini) dengan tujuan aktual di suatu tempat di AS (internet). Anda mengubah label alamat pada kotak ke alamat AS (publik), dan Anda mengubah alamat pengirim ke alamat publik Anda sendiri (karena tidak dapat dikembalikan langsung ke China tanpa mengganggu pelanggan) dan menyerahkannya ke layanan pos . Jika pelanggan mengembalikan produk, itu datang kepada Anda. Anda mencarinya di catatan Anda dan melihat dari perusahaan mana asalnya Cina,

Ini bekerja dengan baik, tetapi ada sedikit masalah. Bagaimana jika seorang pelanggan perlu mengirim sesuatu ke perusahaan, katakanlah wesel sebagai pembayaran untuk sesuatu? Atau, katakanlah bahwa komputer di internet memulai koneksi dengan router (permintaan SYN), katakan ke server web yang ada di jaringan. Surat / paket hanya memiliki alamat publik router di atasnya, sehingga router sebenarnya tidak tahu ke mana harus mengirimnya! itu bisa ditakdirkan untuk salah satu komputer di jaringan pribadi, atau tidak satupun. Anda mungkin pernah mengalami masalah ini ketika Anda menelepon telepon rumah seseorang - ketika mereka memanggil Anda itu tidak masalah, tetapi ketika Anda menelepon mereka tidak ada cara bagi mereka untuk mengetahui siapa yang menelepon, jadi orang yang salah mungkin menjawab.

Walaupun cukup mudah bagi manusia untuk menyelesaikan masalah ini, ini jauh lebih rumit untuk komputer, karena tidak semua komputer di jaringan Anda mengetahui semua komputer lain.

Dan akhirnya kami tiba di Port Forwarding

Port Forwarding adalah cara kami mengatasi masalah ini: ini adalah cara untuk memberi tahu router Anda komputer mana yang ada di dalam koneksi masuk yang harus diarahkan. Kami memiliki tiga cara berbeda untuk melakukannya:

  • Faux-DMZ : banyak router memiliki fitur yang disebut DMZ. Ini adalah singkatan dari Demilitarized Zone, yang merupakan semacam konfigurasi keamanan jaringan. DMZ pada router rumah sering disebut sebagai faux-DMZ karena tidak memiliki fitur DMZ yang sebenarnya. Yang dilakukannya adalah jenis penanganan koneksi masuk yang paling sederhana: semua permintaan koneksi masuk akan dikirim ke yang ditentukan di dalam jaringan Anda. Ini sangat sederhana - Anda mengetik alamat IP ke konfigurasi router Anda, dan semua koneksi masuk ke sana. Ini tidak selalu berhasil, karena Anda mungkin memiliki beberapa komputer yang perlu menerima koneksi masuk. Untuk itu, kami memiliki ...
  • Penerusan port : Semua permintaan koneksi jaringan menyertakan "port". Port hanyalah angka, dan itu bagian dari bagaimana komputer tahu apa paketnya. IANA telah menetapkan bahwa Port 80 digunakan untuk HTTP. Ini berarti bahwa paket masuk yang mengatakan nomor port 80 haruslah permintaan yang ditujukan untuk server web. Penerusan port pada router Anda memungkinkan Anda untuk memasukkan nomor port (atau mungkin rentang atau kombinasi angka, tergantung pada router), dan alamat IP. Semua koneksi yang masuk dengan nomor port yang cocok akan diteruskan ke komputer internal dengan alamat itu.
  • Maju port UPnP : Penerusan UPnP bekerja dengan cara yang sama persis seperti penerusan port, tetapi alih-alih Anda mengaturnya, perangkat lunak pada komputer di dalam jaringan secara otomatis mengatur router untuk meneruskan lalu lintas pada port yang diberikan padanya.

Sebuah contoh

Mari kita lihat contoh penggunaan. Banyak gim video multi-pemain (sebagai contoh, Counter Strike) memungkinkan Anda menjalankan server gim di komputer yang dapat disambungkan oleh orang lain agar dapat bermain dengan Anda. Komputer Anda tidak tahu semua orang yang ingin bermain, sehingga tidak dapat terhubung dengan mereka - sebagai gantinya, mereka harus mengirim permintaan koneksi baru ke komputer Anda dari internet.

Jika Anda tidak memiliki apa pun yang diatur di router, itu akan menerima permintaan koneksi ini tetapi tidak akan tahu komputer mana di dalam jaringan yang memiliki server permainan, jadi itu hanya akan mengabaikannya (atau, lebih khusus, itu akan mengirim paket yang menunjukkan bahwa ia tidak dapat terhubung). Untungnya, Anda tahu nomor port yang ada pada permintaan koneksi untuk server game. Jadi, pada router, Anda menetapkan port forward dengan nomor port yang diharapkan oleh server game (misalnya, 27015) dan alamat IP komputer dengan server game (misalnya, 192.168.1.105).
Router akan tahu untuk meneruskan permintaan koneksi masuk ke 192.168.1.105 di dalam jaringan, dan komputer di luar akan dapat terhubung.

Contoh lain adalah jaringan lokal dengan dua mesin, di mana yang kedua dengan IP 192.168.1.10 host situs web menggunakan Apache. Oleh karena itu router harus meneruskan permintaan port 80 yang masuk ke mesin ini. Menggunakan port forwarding, kedua mesin dapat berjalan di jaringan yang sama pada saat yang sama.

Port contoh penerusan port

Gim video mungkin adalah tempat yang paling umum bagi pengguna sehari-hari untuk menghadapi penerusan porta, meskipun sebagian besar gim modern menggunakan UPnP sehingga Anda tidak perlu melakukan ini secara manual (sebagai gantinya, ini sepenuhnya otomatis). Anda harus melakukan ini kapan pun Anda ingin dapat terhubung langsung ke sesuatu di jaringan Anda (daripada melalui perantara di internet). Ini mungkin termasuk menjalankan server web Anda sendiri atau menghubungkan melalui Remote Desktop Protocol ke salah satu komputer Anda.

Catatan tentang keamanan

Salah satu hal yang menyenangkan tentang NAT adalah bahwa ia menyediakan beberapa keamanan built-in yang bebas upaya. Banyak orang berkeliaran di internet mencari mesin yang rentan ... dan mereka melakukan ini dengan mencoba membuka koneksi dengan berbagai port. Ini adalah koneksi masuk, jadi, seperti dibahas di atas, router akan menjatuhkannya. Ini berarti bahwa dalam konfigurasi NAT, hanya router itu sendiri yang rentan terhadap serangan yang melibatkan koneksi masuk. Ini adalah hal yang baik, karena router jauh lebih sederhana (dan dengan demikian lebih kecil kemungkinannya untuk menjadi rentan) daripada komputer yang menjalankan sistem operasi penuh dengan banyak perangkat lunak. Anda harus ingat, kemudian, bahwa dengan DMZing komputer di dalam jaringan Anda (menetapkannya sebagai tujuan DMZ) Anda kehilangan lapisan keamanan untuk komputer itu: sekarang sepenuhnya terbuka untuk koneksi masuk dari internet, jadi Anda harus mengamankannya seolah-olah terhubung langsung. Tentu saja, setiap kali Anda meneruskan port, komputer di sisi penerima menjadi rentan pada port tertentu. Jadi pastikan Anda menjalankan perangkat lunak terbaru yang dikonfigurasi dengan baik.

jcrawfordor
sumber
2
Anda menyebutkannya secara singkat, tetapi Anda mungkin ingin menguraikan tentang pentingnya penggunaan penerusan port bergaya DMZ. Saya tidak bisa memikirkan satu contoh pun di mana itu akan menjadi ide yang baik, di bawah lingkungan produksi, untuk mengekspos sesuatu seperti server sql (atau apa pun) ke dunia luar. Penerusan pelabuhan dapat memungkinkan untuk mendapatkan sumber daya yang dilindungi tanpa membahayakan keamanan secara serius.
Brian Vandenberg
11
Satu perincian yang tidak diperluas di bagian NAT adalah fakta bahwa jika komputer di jaringan Anda menggunakan DHCP untuk mendapatkan alamat IP pribadi non-routable internal mereka, itu mungkin untuk yang ditugaskan kepada mereka untuk bervariasi dan jika itu terjadi port forwarding akan menjadi kacau. Yang terbaik untuk menghindari itu dengan mengatur setiap jaringan komputer menangani secara manual. portforward.com menekankan pentingnya hal ini dan memiliki panduan yang menjelaskan cara mengatur alamat IP statis pada suatu sistem, namun mereka tidak menyebutkan perlunya juga mengkonfigurasi DHCP router untuk menghindari alamat-alamat NAT yang sekarang disediakan ini.
martineau
2
@ jcrawfordor, Hai, apakah Anda keberatan menjelaskan bagaimana sebenarnya UPnP sepenuhnya otomatis? Apa itu UPnP dan bagaimana cara kerjanya?
Pacerier
1
@martineau memesan alamat DHCP adalah cara yang baik untuk melakukan ini. Beberapa router yang dapat Anda port-forward ke klien tertentu, bukan alamat, yang bahkan lebih disukai.
Baldrickk
2
Bagian dari jawaban yang mengatakan, "Port hanyalah angka, dan itu bagian dari bagaimana komputer tahu apa paket itu." menyesatkan. Memperbaiki nomor port untuk aplikasi adalah konvensi, itu bukan faktor dalam menentukan jenis paket. Paling-paling sebuah paket yang dimaksudkan untuk port 80 dapat ditebak sebagai HTTP, tidak lebih, itu sepenuhnya akan bergantung pada (pada lapisan aplikasi) aplikasi yang mendengarkan pada port 80.
codeman48