Langsung ke konten utama

Jurang Pengembangan Software di Dunia Open-Source

     E ra D i srupsi      2 025 ini adalah tahun terpesat dimana dunia A rtificial I ntelligence berkembang pesat, dimana pengerjaan kode sudah terlampaui oleh sistem kecerdasan buatan ini, semua aspek komprehensif didalam dunia programming seperti syntax itu sudah terkuasai oleh data, sehingga memungkinkan penggunanya untuk cukup memerintahkan penulisan kode yang begitu sederhana. Namun, di lain waktu, cara orang untuk mempelajari bahasa pemrograman pun akan terlihat lebih sederhana karena bantuan alat kecerdasan buatan, AI .

Linux NAT : Sekedar Coretan Tentang NAT



Kadang orang-orang yang sering ngulik pada konsep jaringan menemukan hal ini, NAT. Mungkin alasannya ketika ingin memblokir atau mencegah koneksi agar supaya tidak masuk ke mesin Linux yang dipakainya, atau mungkin gimana cara jaringan lokal bisa konek ke Internet lewat mesin Linux yang dipakainya. Kepanjangan NAT adalah Network Address Translation, atau bahasanya Translasi Alamat Jaringan.

Ya, definisi NAT yang diambil di Wikipedia adalah "A method of remapping one IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic routing device." Yang artinya "Sebuah metode untuk memetakan ulang satu ruang IP address ke IP address yang informasinya dimodifikasi di header paket disaat paket itu sedang transit di perangat perutean lalu lintas".

NAT bisa juga dibilang salah satu fungsi dari router, karena memang fungsinya untuk mengubah informasi paket IP address, mulai dari destination address, source address, dan bahkan memberikan aksi pada paket itu sendiri ( ACCEPT, REJECT, DROP, DNAT, SNAT, dll. ).
Salah satu hal yang populer pada NAT ini yakni bisa menampung beberapa Alamat IP Privat dibelakang satu IP. Selain itu juga DNAT, SNAT dan MASQUERADING.

Dalam OS GNU/Linux, NAT dikendalikan oleh kernel dan dapat dikonfigurasikan memakai IPTables.


Tabel NAT di IPTables Linux
Seperti yang bisa i lihat di gambar, Linux memiliki tabel NAT, bisa dilihat memakai perintah iptables -t nat -L. Tabel NAT dalam IPTables mempunyai Chain, chain ini menentukan jalur paket yang mana yang akan diberikan tindakan. Dalam tabel NAT ini ada 4 chain :
  • PREROUTING, paket yang sebelumnya akan masuk ke chain INPUT.
  • POSTROUTING, paket yang akan keluar setelah chain OUTPUT.
  • INPUT, paket yang masuk ke mesin lokal.
  • OUTPUT, paket yang keluar dari mesin lokal.

Karena spesialitasnya, Chain PREROUTING dapat digunakan untuk mengubah informasi paket sebelum paket itu datang ke mesin lokal Linux. Dan sebaliknya pada POSTROUTING, yakni dapat mengubah paket sebelum paket itu keluar dari mesin lokal Linux.


Paket-paket yang masuk lewat interface jaringan akan melalui Chain PREROUTING terlebih dahulu. Paket yang masuk ke Chain PREROUTING dapat ditindak, sebagaimana yang kita mau. Contohnya DNAT, yakni dapat merubah alamat tujuan dari sebuah paket, atau REDIRECT, membelokan paket ke mesin lokal Linux, dan masih banyak lagi.

Bila tidak ada tindakan, paket yang sampai ke mesin lokal pada Chain PREROUTING akan memilih rute mana yang akan dilewati. Bila tujuan paket itu memilih rute ke mesin lokal Linux, maka jalur yang dilewati adalah Chain PREROUTING ke Chain INPUT dan seterusnya sampai Chain POSTROUTING. Bila mesin Linux itu dipakai sebagai router, maka rute jalur yang dilewati adalah Chain PREROUTING ke Chain FORWARD, lalu ke Chain POSTROUTING.

Perintah & Aksi IPTables NAT
Chain-chain pada IPTables mempunyai aksi, artinya kita dapat menindak paket dan akan kita apakan paket itu. Misal, kita ingin memblokir paket yang masuk dari IP Address ini, port sekian, MAC Addressya ini, ataupun bisa pula kita menerima paket yang masuk dari IP Address ini, port sekian, MAC Addressnya ini, dan sebagainya.
Perintah umum iptables bisa dilihat opsi-opsinya menggunakan opsi --help.


Tabel yang kita gunakan adalah NAT,  jadi kita pakai opsi -t nat setiap memberikan perubahan pada iptables, dan dapat melihat aturan-aturan pada berbagai chain dengan menambahkan opsi -L. Lihat gambar ini.

Tabel NAT di IPTables Linux
Chain-chain dalam iptables mempunyai istilah rule, artinya tindakan atau aturan yang diberikan pada sebuah chain pada tabel tertentu. Disini kita memakai NAT, NAT mempunyai PREROUTING, INPUT, OUTPUT, dan POSTROUTING dan kita bisa menambahkan sebuah rule ( aturan ) ke sebuah chain dengan opsi -I, dan memberi aksi dengan opsi -j ( atau --jump ). Jump ini memberikan aksi yang akan kita gunakan seperti contohnya ACCEPT ( menerima paket ), DROP ( menjatuhkan paket ), REJECT ( menjatuhkan paket ), SNAT ( Source NAT ), DNAT ( Destination NAT ), MASQUERADE ( menyamar ).

Destination NAT ( DNAT )
Aksi DNAT pada opsi -j dapat mengubah alamat tujuan dari sebuah sumber menjadi alamat tujuan yang lain. Semisal sebuah PC ingin menghubungkan ke alamat 1.2.3.4 melewati sebuah gateway NAT, maka dengan DNAT, alamat tujuan itu dapat diubah ke alamat yang lain, misalnya 1.1.1.1.
Opsi -j DNAT hanya berlaku pada tabel NAT Chain OUTPUT dan POSTROUTING. Opsi -j DNAT mempuyai opsi tambahan --to-destination.

        iptables -t nat -I [PREROUTING|OUTPUT] [-s [ip]|-d [ip]|-s [ip] -d [ip]] -j DNAT [--to-destination [ipaddr[-ipaddr]:[port[-port]]]]

Source NAT ( SNAT )
Aksi SNAT pada iptables berfungsi untuk mengubah informasi IP dari koneksi. Contohnya semisal mesin Linux 192.168.1.1 membuat koneksi ke PC 192.168.1.2, ketika SNAT ini dipakai di chain POSTROUTING, maka mesin Linux tersebut dapat merubah alamat IPnya sendiri ke IP yang lain. Sehingga bila dibaca di PC 192.168.1.2 itu, koneksi yang datang bukanlah dari alamat 192.168.1.1, melainkan IP yang lain.

        iptables -t nat -I [PREROUTING|POSTROUTING] [-s [ip]|-d [ip]|-s [ip] -d [ip]] -j SNAT --to-source [ip]

Sistem Linux Sebagai Gateway
NAT pada OS Linux dapat difungsikan sebagai Gateway dapat diaktifkan dengan mengubah opsi /proc/sys/net/ipv4/ip_forward ke 1 dan pada iptables menggunakan chain POSTROUTING pada tabel NAT dengan aksi MASQUERADE. MASQUERADE ini mirip dengan SNAT, namun SNAT hanya dapat mengubah menjadi satu sumber IP saja. Sedangkan MASQUERADE dapat menyesuaikan IPnya secara dinamis.

        echo "1" > /proc/sys/net/ipv4/ip_forward

Perintah ini memfungsikan IP Forwarding pada mesin Linux sebagai penerusan paket yang datang ke mesin lokal ke mesin yang lain.

        iptables -t nat -I POSTROUTING -j MASQUERADE

Penambahan rule ini berfungsi agar koneksi yang masuk ke mesin untuk diteruskan ke lalulintas jaringan di luar mesin Linux, contohnya seperti Internet.

Summary
    • NAT pada OS Linux berfungsi sebagai pengubah alamat dan sekaligus firewall jaringan, yaitu sebuah 'tembok api' yang mengatur lalulintas jaringan yang masuk/keluar kedalam sebuah mesin.
    • Pada beberapa Distro Linux , NAT diatur menggunakan IPTables.
    • NAT mempunyai chain PREROUTING, POSTROUTING, INPUT dan OUTPUT yang mengatur lalulintas, translasi alamat dan tindakannya.

      Komentar

      Postingan populer dari blog ini

      Jurang Pengembangan Software di Dunia Open-Source

           E ra D i srupsi      2 025 ini adalah tahun terpesat dimana dunia A rtificial I ntelligence berkembang pesat, dimana pengerjaan kode sudah terlampaui oleh sistem kecerdasan buatan ini, semua aspek komprehensif didalam dunia programming seperti syntax itu sudah terkuasai oleh data, sehingga memungkinkan penggunanya untuk cukup memerintahkan penulisan kode yang begitu sederhana. Namun, di lain waktu, cara orang untuk mempelajari bahasa pemrograman pun akan terlihat lebih sederhana karena bantuan alat kecerdasan buatan, AI .

      SSH : Reverse Tunneling

      SSH Reverse Tunneling ini satu cara buat kita yang mau jadikan komputer Linux kita supaya bisa diakses lewat jaringan internet bantuan Alamat IP Public. Reverse SSH Tunneling ini sama dengan SSH Tunneling biasa. Cuma bedanya kalau Reverse SSH Tunneling ini titik aksesnya ada di server SSH itu sendiri supaya host/server tujuan itu bisa diakses di jaringan internet lewat port yang terbuka di server SSH. Reverse SSH Gratis Serveo.net Serveo ini adalah salah satu penyedia Layanan Reverse SSH yang semua orang dapat memakainya secara gratis. Layanan ini dapat kita pakai dengan perintah ssh di OS Linux dengan opsi -R .        ssh -R [Remote Port]:[Destination Address]:[Destination Port] serveo.net -p 22 Disini kita dapat menentukan Remote Port, Destination Address beserta Destination Portnya. Untuk itu, Remote Port adalah nomor port yang akan menjadi titik akses dari server. Destination Address adalah alamat tujuan ketika kita terhubung ke server SSH dengan...