GNU/Linux >> Belajar Linux >  >> Linux

Buka port dan rutekan lalu lintas melalui firewall Anda

Idealnya, sebagian besar jaringan lokal dilindungi dari dunia luar. Jika Anda pernah mencoba menginstal layanan, seperti server web atau instance Nextcloud di rumah, maka Anda mungkin tahu dari pengalaman langsung bahwa, meskipun layanan ini mudah dijangkau dari dalam jaringan, namun tidak dapat dijangkau di seluruh dunia. web.

Ada alasan teknis dan keamanan untuk ini, tetapi terkadang Anda ingin membuka akses ke sesuatu di dalam jaringan lokal ke dunia luar. Ini berarti Anda harus dapat merutekan lalu lintas dari internet ke jaringan lokal Anda—dengan benar dan aman. Dalam artikel ini, saya akan menjelaskan caranya.

Alamat IP lokal dan publik

Hal pertama yang perlu Anda pahami adalah perbedaan antara alamat protokol internet (IP) lokal dan alamat IP publik. Saat ini, sebagian besar dunia (masih) menggunakan sistem pengalamatan yang disebut IPv4, yang terkenal memiliki kumpulan nomor terbatas yang tersedia untuk ditetapkan ke perangkat elektronik jaringan. Faktanya, ada lebih banyak perangkat jaringan di dunia daripada alamat IPv4, namun IPv4 terus berfungsi. Ini dimungkinkan karena alamat lokal.

Semua jaringan lokal di dunia menggunakan sama kumpulan alamat. Misalnya, alamat IP lokal router rumah saya adalah 192.168.1.1. Salah satunya mungkin nomor yang sama dengan router rumah Anda, namun ketika saya menavigasi ke 192.168.1.1, saya mencapai saya layar login router dan bukan Anda layar login router. Itu karena router rumah Anda sebenarnya memiliki dua alamat:satu publik dan satu lokal, dan yang publik melindungi yang lokal agar tidak terdeteksi oleh internet, apalagi bingung dengan 192.168.1.1 orang lain.

Faktanya, inilah mengapa internet disebut internet:ini adalah "web" dari jaringan yang saling berhubungan dan mandiri. Setiap jaringan, baik itu tempat kerja Anda atau rumah Anda atau sekolah Anda atau pusat data besar atau "cloud" itu sendiri, adalah kumpulan host yang terhubung yang, pada gilirannya, berkomunikasi dengan gateway (biasanya router) yang mengelola lalu lintas dari internet dan ke jaringan lokal, serta keluar dari jaringan lokal ke internet.

Ini berarti bahwa jika Anda mencoba mengakses komputer di jaringan yang bukan jaringan tempat Anda terhubung saat ini, maka mengetahui alamat lokal komputer itu tidak ada gunanya bagi Anda. Anda perlu mengetahui publik alamat gateway jaringan jarak jauh. Dan itu tidak semua. Anda juga memerlukan izin untuk melewati gateway tersebut ke jaringan jarak jauh.

Firewall

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Idealnya, ada firewall di sekitar Anda, bahkan sekarang. Anda tidak melihat mereka (semoga), tetapi mereka ada di sana. Seiring perkembangan teknologi, firewall memiliki nama yang menyenangkan, tetapi sebenarnya agak membosankan. Firewall hanyalah layanan komputer (juga disebut "daemon"), sebuah subsistem yang berjalan di latar belakang sebagian besar perangkat elektronik. Ada banyak daemon yang berjalan di komputer Anda, termasuk yang mendengarkan gerakan mouse atau trackpad, misalnya. Firewall adalah daemon yang diprogram untuk menerima atau menolak jenis lalu lintas jaringan tertentu.

Firewall adalah program yang relatif kecil, sehingga tertanam di sebagian besar perangkat modern. Mereka berjalan di ponsel Anda, di router Anda, dan di komputer Anda. Firewall dirancang berdasarkan protokol jaringan, dan merupakan bagian dari spesifikasi berbicara dengan komputer lain bahwa paket data yang dikirim melalui jaringan harus mengumumkan potongan informasi tertentu tentang dirinya sendiri (atau diabaikan). Satu hal yang berisi data jaringan adalah port nomor, yang merupakan salah satu hal utama yang digunakan firewall saat menerima atau menolak lalu lintas.

Situs web, misalnya, di-host di server web. Saat Anda ingin melihat situs web, komputer Anda mengirimkan data jaringan yang mengidentifikasi dirinya sebagai lalu lintas yang ditujukan untuk port 80 dari host web. Firewall server web diprogram untuk menerima lalu lintas masuk yang ditujukan untuk port 80, sehingga ia menerima permintaan Anda (dan server web, pada gilirannya, mengirimi Anda halaman web sebagai tanggapan). Namun, jika Anda mengirim (baik secara tidak sengaja atau sengaja) data jaringan yang ditujukan untuk port 22 server web tersebut, kemungkinan besar Anda akan ditolak oleh firewall (dan mungkin diblokir untuk beberapa waktu).

Ini bisa menjadi konsep yang aneh untuk dipahami karena, seperti alamat IP, port dan firewall tidak benar-benar "ada" di dunia fisik. Ini adalah konsep yang didefinisikan dalam perangkat lunak. Anda tidak dapat membuka komputer atau router Anda untuk memeriksa port jaringan secara fisik, dan Anda tidak dapat melihat angka yang tercetak pada chip untuk menemukan alamat IP Anda, dan Anda tidak dapat menyiram firewall Anda ke dalam air untuk memadamkannya. Tetapi sekarang setelah Anda mengetahui konsep-konsep ini, Anda mengetahui rintangan yang terlibat dalam berpindah dari satu komputer di satu jaringan ke jaringan lain di jaringan yang berbeda.

Sekarang saatnya untuk menghindari blokade itu.

Alamat IP Anda

Saya berasumsi Anda memiliki kendali atas jaringan Anda sendiri, dan Anda mencoba untuk membuka firewall Anda sendiri dan merutekan lalu lintas Anda sendiri untuk mengizinkan lalu lintas luar masuk ke jaringan Anda. Pertama, Anda memerlukan alamat IP lokal dan publik Anda.

Untuk menemukan alamat IP lokal Anda, Anda dapat menggunakan ip perintah alamat di Linux:

$ ip addr show | grep "inet "
 inet 127.0.0.1/8 scope host lo
 inet 192.168.1.6/27 brd 10.1.1.31 scope [...]

Dalam contoh ini, alamat IP lokal saya adalah 192.168.1.6. Alamat lainnya (127.0.0.1) adalah alamat "loopback" khusus yang digunakan komputer Anda untuk merujuk ke dirinya sendiri dari dalam dirinya sendiri.

Untuk menemukan alamat IP lokal Anda di macOS, Anda dapat menggunakan ifconfig :

$ ifconfig | grep "inet "
 inet 127.0.0.1 netmask 0xff000000
 inet 192.168.1.6 netmask 0xffffffe0 [...]

Dan di Windows, gunakan ipconfig :

$ ipconfig

Dapatkan alamat IP publik router Anda di icanhazip.com. Di Linux, Anda bisa mendapatkannya dari terminal dengan perintah curl:

$ curl http://icanhazip.com
93.184.216.34

Simpan nomor-nomor ini untuk digunakan nanti.

Mengarahkan lalu lintas melalui router

Perangkat pertama yang perlu disesuaikan adalah perangkat gateway. Ini bisa berupa server fisik yang besar, atau bisa juga berupa router kecil. Either way, gateway hampir pasti melakukan terjemahan alamat jaringan (NAT), yang merupakan proses menerima lalu lintas dan mengubah alamat IP tujuan.

Saat Anda menghasilkan lalu lintas jaringan untuk melihat situs web eksternal, komputer Anda harus mengirimkan lalu lintas itu ke gateway jaringan lokal Anda karena komputer Anda, pada dasarnya, tidak memiliki pengetahuan tentang dunia luar. Sejauh yang komputer Anda ketahui, seluruh internet hanyalah router jaringan Anda, 192.168.1.1 (atau apa pun alamat router Anda). Jadi, komputer Anda mengirimkan semuanya ke gateway Anda. Adalah tugas gerbang untuk melihat lalu lintas dan menentukan di mana sebenarnya menuju, dan kemudian meneruskan data itu ke internet nyata. Saat gateway menerima respons, gateway akan meneruskan data yang masuk kembali ke komputer Anda.

Jika gateway Anda adalah router, maka untuk mengekspos komputer Anda ke dunia luar, Anda harus menetapkan port di router Anda untuk mewakili komputer Anda. Ini mengonfigurasi router Anda untuk menerima lalu lintas ke port tertentu dan mengarahkan semua lalu lintas itu langsung ke komputer Anda. Bergantung pada merek router yang Anda gunakan, proses ini menggunakan beberapa nama berbeda, termasuk penerusan porta atau server virtual atau terkadang bahkan pengaturan firewall.

Setiap perangkat berbeda, jadi tidak ada cara bagi saya untuk memberi tahu Anda dengan tepat apa yang perlu Anda klik untuk menyesuaikan pengaturan Anda. Umumnya, Anda mengakses router rumah melalui browser web. Alamat perute Anda terkadang dicetak di bagian bawah perute, dan diawali dengan 192.168 atau 10.

Arahkan ke alamat router Anda dan masuk dengan kredensial yang Anda berikan saat mendapatkan layanan internet. Ini sering sesederhana admin dengan kata sandi numerik (terkadang, kata sandi ini juga dicetak pada router). Jika Anda tidak mengetahui loginnya, hubungi penyedia internet Anda dan tanyakan detailnya.

Di antarmuka grafis, arahkan lalu lintas masuk untuk satu port ke port (yang sama biasanya paling mudah) dari alamat IP lokal komputer Anda. Dalam contoh ini, saya mengarahkan lalu lintas masuk yang ditujukan untuk port 22 (digunakan untuk koneksi SSH) router rumah saya ke PC desktop saya.

Anda dapat mengarahkan ulang port apa pun yang Anda inginkan. Misalnya, jika Anda menghosting situs web di komputer cadangan, Anda dapat mengalihkan lalu lintas yang ditujukan untuk port 80 router Anda ke port 80 host situs web Anda.

Mengarahkan lalu lintas melalui server

Jika gateway Anda adalah server fisik, Anda dapat mengarahkan lalu lintas menggunakan firewall-cmd. Menggunakan aturan kaya opsi, Anda dapat meminta server Anda mendengarkan permintaan masuk di alamat tertentu (IP publik Anda) dan port tertentu (dalam contoh ini, saya menggunakan 22, yang merupakan port yang digunakan untuk SSH), dan kemudian mengarahkan lalu lintas itu ke IP alamat dan porta di jaringan lokal (alamat lokal komputer Anda).

$ firewall-cmd --permanent --zone=public \
--add-rich-rule 'rule family="ipv4" destination address="93.184.216.34" forward-port port=22 protocol=tcp to-port=22 to-addr=192.168.1.6'

Setel firewall Anda

Sebagian besar perangkat memiliki firewall, jadi Anda mungkin menemukan bahwa lalu lintas tidak dapat masuk ke komputer lokal Anda bahkan setelah Anda meneruskan port dan lalu lintas. Mungkin saja ada firewall yang memblokir lalu lintas bahkan di dalam jaringan lokal Anda. Firewall dirancang untuk membuat komputer Anda aman, jadi tahan keinginan untuk menonaktifkan firewall Anda sepenuhnya (kecuali untuk pemecahan masalah). Sebagai gantinya, Anda dapat mengizinkan lalu lintas secara selektif.

Proses memodifikasi firewall pribadi Anda berbeda-beda sesuai dengan sistem operasi Anda.

Di Linux, ada banyak layanan yang sudah ditentukan. Lihat yang tersedia:

$ sudo firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client
bgp bitcoin bitcoin-rpc ceph cfengine condor-collector
ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch
freeipa-ldaps ftp [...] ssh steam-streaming svdrp [...]

Jika layanan yang Anda coba izinkan terdaftar, Anda dapat menambahkannya ke firewall Anda:

$ sudo firewall-cmd --add-service ssh --permanent

Jika layanan Anda tidak terdaftar, Anda dapat menambahkan port yang ingin Anda buka secara manual:

$ sudo firewall-cmd --add-port 22/tcp --permanent

Membuka port di firewall Anda khusus untuk zona Anda saat ini . Untuk informasi lebih lanjut tentang firewall, firewall-cmd, dan port, lihat artikel saya Jadikan Linux lebih kuat dengan firewall , dan unduh lembar contekan Firewall kami untuk referensi cepat.

Langkah ini hanya tentang membuka port di komputer Anda sehingga lalu lintas yang ditujukan untuk port tersebut pada port tertentu dapat diterima. Anda tidak perlu mengalihkan lalu lintas karena Anda sudah melakukannya di gerbang Anda.

Buat koneksi

Anda telah menyiapkan gateway dan jaringan lokal untuk merutekan lalu lintas untuk Anda. Sekarang, ketika seseorang di luar jaringan Anda menavigasi ke alamat IP publik Anda, yang ditujukan untuk port tertentu, mereka akan diarahkan ke komputer Anda di port yang sama. Terserah Anda untuk memantau dan menjaga jaringan Anda, jadi gunakan pengetahuan baru Anda dengan hati-hati. Terlalu banyak port terbuka dapat terlihat seperti undangan ke aktor dan bot jahat, jadi hanya buka yang ingin Anda gunakan. Dan yang terpenting, bersenang-senanglah!


Linux
  1. Cara Memeriksa Port Terbuka di Linux dengan netstat, lsof, dan nmap

  2. Buka port di firewall Linux untuk mengakses server email POP dan IMAP

  3. Cara Memantau dan Mencatat Lalu Lintas Jaringan di Linux Menggunakan vnStat

  1. Alat sumber terbuka dan tip untuk meningkatkan kinerja PC Linux Anda

  2. Bagaimana saya bisa menyalurkan semua lalu lintas jaringan saya melalui SSH?

  3. Mengapa lalu lintas jaringan Linux hanya melewati eth0?

  1. Cara Membuka Jaringan dan Pusat Berbagi di Windows Server 2012

  2. Cara Membuka Jaringan dan Pusat Berbagi di Windows Server 2008

  3. Cara Memantau Switch dan Port Jaringan Menggunakan Nagios