Pertemuan 8 - Membangun Router Linux dengan Menggunakan nftables di Debian 12

Daftar Isi

 

Pertemuan 8 - Membangun Router Linux dengan Menggunakan nftables di Debian 12

A. Pendahuluan

Pada materi kali ini, kita akan membangun sebuah router gateway sederhana menggunakan sistem operasi Debian 12 dan fitur firewall modern bernama nftables. Router gateway yang akan dibuat nantinya berfungsi sebagai penghubung antara jaringan lokal dengan internet, sekaligus menjadi jalur komunikasi antarjaringan yang berbeda subnet.

Secara umum, tahapan yang akan dilakukan pada praktikum ini dimulai dari memastikan VM ROUTER sudah terhubung ke internet, mengaktifkan fitur IP Forwarding, membuat rule filtering menggunakan nftables, melakukan konfigurasi NAT dan masquerade, hingga menyimpan konfigurasi agar tetap aktif meskipun sistem direstart. Seluruh tahapan akan dilakukan secara bertahap agar lebih mudah dipahami, terutama bagi pengguna yang masih belajar dasar-dasar administrasi jaringan Linux.

Dalam praktik jaringan komputer, router gateway memiliki peran yang sangat penting. Perangkat ini bertugas meneruskan paket data dari satu jaringan ke jaringan lainnya. Pada topologi yang digunakan di panduan ini, VM ROUTER akan menjadi gerbang utama keluar masuknya paket data dari jaringan lokal menuju internet maupun sebaliknya. Selain itu, router juga akan menghubungkan dua jaringan lokal berbeda subnet agar dapat saling berkomunikasi.

Untuk mengatur lalu lintas jaringan tersebut, Debian 12 menggunakan nftables sebagai pengganti iptables. nftables merupakan framework firewall modern pada Linux yang digunakan untuk melakukan filtering paket, NAT, forwarding, hingga pengaturan keamanan jaringan lainnya. Dibandingkan iptables, nftables memiliki struktur konfigurasi yang lebih sederhana, performa lebih baik, dan lebih mudah dikelola karena seluruh rule dapat dipusatkan dalam satu framework yang lebih konsisten.

Alasan lain mengapa Debian 12 menggunakan nftables adalah karena iptables sudah dianggap sebagai teknologi lama. Meskipun masih dapat digunakan melalui mode kompatibilitas tertentu, Debian 12 secara default lebih mengutamakan nftables sebagai backend utama firewall Linux modern. Oleh karena itu, pada panduan ini seluruh konfigurasi jaringan akan menggunakan nftables agar sesuai dengan standar sistem Linux saat ini.

Setelah seluruh tahapan pada praktikum ini selesai dilakukan, maka VM SERVER dan VM CLIENT nantinya akan dapat terkoneksi ke internet serta dapat saling terhubung antarjaringan. Pengujian koneksi tersebut akan dibuktikan menggunakan perintah ping. Selain itu, VM ROUTER yang digunakan juga akan berfungsi sebagai gateway utama yang menangani lalu lintas paket data dari jaringan lokal menuju internet maupun antarjaringan lokal yang berbeda network.

Sebagai catatan tambahan, pada tahapan ini penulis mengasumsikan bahwa VM ROUTER sudah menjalankan layanan DHCP SERVER yang dilengkapi dengan IP Reservation. Konfigurasi tersebut telah dibahas sebelumnya pada materi “Pertemuan 7 - Konfigurasi IP Reservation pada DHCP Server Debian 12”. Namun apabila anda tidak menggunakan layanan DHCP SERVER, maka pastikan setiap komputer pada topologi, yaitu VM SERVER dan VM CLIENT, sudah dikonfigurasi menggunakan IP Address statis sesuai rancangan jaringan yang anda miliki.

B. Disclaimer

Materi dalam panduan praktikum ini disusun dengan memperhatikan ketentuan-ketentuan sebagai berikut:

Tujuan Pembelajaran

Seluruh konten dalam materi ini ditujukan eksklusif untuk kepentingan edukasi dan peningkatan kompetensi akademis. Penerapan konfigurasi di lingkungan produksi (live environment) mungkin memerlukan penyesuaian spesifik, seperti optimalisasi keamanan (security hardening), serta konfigurasi tambahan yang disesuaikan dengan kondisi infrastruktur riil di lapangan.

Validasi Metode

Seluruh tahapan konfigurasi yang dijelaskan dalam panduan ini telah melalui proses pengujian oleh penulis dengan menggunakan lingkungan simulasi/virtualisasi. Meskipun demikian, perbedaan versi perangkat lunak atau spesifikasi perangkat keras dapat menyebabkan variasi hasil.

Keamanan Data

Penulis tidak bertanggung jawab atas kehilangan data, kerusakan sistem, atau celah keamanan yang muncul akibat kelalaian dalam mengimplementasikan instruksi dalam panduan ini. Pengguna disarankan untuk selalu melakukan pencadangan (backup) data sebelum melakukan perubahan konfigurasi.

Pembaruan Perangkat Lunak

Mengingat dinamika perkembangan teknologi informasi, beberapa perintah atau repositori pada sistem operasi yang digunakan pada praktikum ini, mungkin mengalami perubahan atau status deprecated di masa mendatang. Pengguna diharapkan bersikap proaktif dalam merujuk pada dokumentasi resmi terbaru.

Penyalahgunaan Materi

Segala bentuk penyalahgunaan teknik yang dijelaskan dalam panduan ini untuk tindakan yang melanggar hukum atau etika siber adalah tanggung jawab penuh masing-masing individu.

C. Persyaratan

Sebelum memasuki tahapan inti praktikum, pengguna wajib memastikan bahwa seluruh kriteria prasyarat telah terpenuhi. Hal ini bertujuan untuk menjamin kelancaran alur kerja dan menghindari kendala teknis yang dapat menghambat proses konfigurasi yang akan dijelaskan pada materi ini.

Sistem Operasi Debian 12 (Bookworm)

Pastikan komputer atau perangkat yang digunakan sudah terpasang sistem operasi Debian 12 dan dapat berjalan dengan baik. Sistem harus dalam kondisi normal, tidak mengalami error pada layanan dasar. 

Hak Akses Administratif (Root/Sudo)

Anda wajib memiliki informasi kredensial atau kata sandi untuk user root. Mengubah file konfigurasi sistem, dan atau melakukan instalasi paket adalah tugas administratif yang memerlukan hak akses tertinggi. Jika Anda menggunakan user biasa, pastikan user tersebut sudah masuk ke dalam grup sudoers agar dapat menjalankan perintah administratif dengan tambahan instruksi “sudo”.

Pemahaman Dasar Perintah Linux (CLI)

Mengingat praktikum ini sepenuhnya dilakukan melalui terminal atau antarmuka baris perintah (Command Line Interface), pemahaman dasar mengenai navigasi Linux akan sangat membantu. Setidaknya, Anda sudah familiar dengan cara membuka terminal, mengetikkan perintah secara presisi, serta memahami struktur direktori dasar di Linux agar tidak terjadi kesalahan saat menentukan jalur (path) file konfigurasi.

Teks Editor Dasar

Dalam panduan ini, kita akan menggunakan teks editor Nano karena sifatnya yang ramah bagi pengguna baru. Pastikan Anda sudah mengetahui cara dasar mengoperasikannya, seperti cara menyimpan perubahan (Ctrl+O) dan cara keluar dari editor (Ctrl+X). Jika semua persyaratan di atas telah siap, Anda bisa segera memulai proses konfigurasi dengan penuh percaya diri.

D. Alat dan Bahan

Untuk menunjang keberhasilan pelaksanaan praktikum kali ini, diperlukan kesiapan sarana dan prasarana yang memadai. Bagian ini merinci spesifikasi perangkat keras serta kebutuhan perangkat lunak yang harus dipenuhi agar konfigurasi layanan server dapat berjalan secara optimal dan sesuai dengan standar operasional.

No. Alat dan Bahan Jumlah Spesifikasi
1. PC Host 1 Unit
  • Prosesor minimal Intel Core i3 atau AMD Ryzen 3.
  • RAM 4GB atau lebih besar.
  • Penyimpanan minimal 50GB atau lebih besar.
  • Memiliki satu buah network card atau wireless card yang aktif.
  • Menggunakan sistem operasi Windows, macOS, Linux, dan Solaris.
2. VM Client 1 Unit
  • Minimal menggunakan 1 buah prosesor.
  • Minimal menggunakan RAM 1GB (1024MB).
  • Menggunakan arsitektur 64-bit.
  • Menggunakan sistem operasi Debian 12 (XFCE).
3. VM Router Gateway 1 Unit
  • Minimal menggunakan 1 buah prosesor
  • Minimal Menggunakan RAM 512MB
  • Menggunakan sistem operasi Debian 12 (CLI)
4. VM Server 1 Unit
  • Minimal menggunakan 1 buah prosesor
  • Minimal Menggunakan RAM 512MB
  • Menggunakan sistem operasi Debian 12 (CLI)
5. Koneksi Internet 1 Buah
  • Minimal memiliki kecepatan download 10Mbps.
  • Minimal memiliki kecepatan upload 1Mbps.
  • Dapat menggunakan media kabel atau nirkabel.
6. Aplikasi Virtualisasi 1 Buah
  • Menggunakan aplikasi Oracle VM VirtualBox
  • Minimal menggunakan versi 7.2.0.

Penulis tidak menyertakan alat dan bahan pendukung didalam tabel, seperti kabel UTP, Konektor, Tang Crimping, dan LAN tester yang harus pengguna persiapkan, dengan alasan tidak terlalu teknis. Silahkan persiapkan secara mandiri sesuai dengan kebutuhan di lapangan.

E. Topologi Praktikum

Topologi berikut menggambarkan rancangan skema jaringan yang akan diimplementasikan selama praktikum berlangsung. Diagram ini berfungsi sebagai acuan visual bagi pengguna dalam memahami alur konektivitas serta hubungan antar-antarmuka (interface) pada Debian 12, baik dalam lingkungan virtual maupun fisik.

Topologi Praktikum

No. ID Device Alamat
1. Modem 192.168.3.1/24
2. PC Host 192.168.3.10/24
3. Router Gateway
  • 10.0.2.15/24
  • 192.168.30.1/24
  • 192.168.40.1/24
4. VM SERVER 192.168.30.200/24
5. VM CLIENT 192.168.40.200/24

Mode NAT (Network Address Translation) adalah pilihan termudah untuk menghubungkan Virtual Machine (VM) ke internet. Pada mode ini, sistem operasi Guest akan menerima pengaturan jaringan seperti alamat IP, netmask, gateway, dan DNS Server secara otomatis melalui layanan DHCP Server internal. Secara standar, VM akan mendapatkan alamat IP 10.0.2.15/24. Keunggulan utamanya adalah kepraktisan, selama komputer Host memiliki akses internet, maka OS Guest akan otomatis ikut terhubung tanpa perlu konfigurasi manual tambahan.

F. Langkah Praktikum

Tahapan 1 - Menjalankan Virtual Mesin

Langkah pertama yang perlu dilakukan adalah menjalankan aplikasi Oracle VM VirtualBox pada komputer host yang anda gunakan untuk praktikum. Setelah aplikasi dijalankan, tunggu hingga jendela Oracle VM VirtualBox Manager berhasil ditampilkan.

Pada materi kali ini, seluruh komponen jaringan pada topologi nantinya akan digunakan, mulai dari VM ROUTER, VM SERVER, hingga VM CLIENT. Akan tetapi, untuk menghemat penggunaan resource komputer host, penulis menyarankan agar VM SERVER dan VM CLIENT tidak langsung dijalankan sejak awal. Kedua virtual machine tersebut cukup dijalankan ketika sudah memasuki tahap pengujian koneksi jaringan.

Tahapan 2 - Masuk ke Dalam User Root

Dalam sistem operasi Linux, perubahan konfigurasi sistem memerlukan hak akses administratif tertinggi. Jika Anda mengaktifkan akun root saat instalasi, Anda harus berpindah dari user biasa ke user root agar bisa menjalankan perintah konfigurasi. Namun, bagi Anda yang tidak mengaktifkan user root, Anda dapat melewati langkah perpindahan ini dan cukup menambahkan perintah sudo di depan setiap instruksi administratif yang dijalankan.

Untuk beralih ke user root, ketikkan perintah berikut:

su - root

Tekan Enter, lalu sistem akan meminta kata sandi root. Perlu diingat bahwa saat Anda mengetikkan kata sandi, karakter tidak akan muncul di layar (fitur keamanan Linux). Pastikan setiap karakter diketik dengan benar, lalu tekan Enter. Jika berhasil, indikator prompt shell Anda akan berubah dari simbol dolar ($) menjadi tanda pagar (#), menandakan Anda telah memiliki akses penuh sebagai administrator.

Tahapan 3 - Memastikan VM ROUTER Sudah Bisa Internet

Sebelum melangkah lebih jauh ke konfigurasi perutean, kita harus memastikan terlebih dahulu bahwa VM ROUTER sendiri telah mendapatkan akses internet dari komputer host (di mana komputer host berperan sebagai penyedia internet atau modem). Tahapan ini seharusnya tidak menemui kendala jika Anda mengikuti rangkaian konfigurasi adaptors sebelumnya. Secara bawaan, Network Adapter 1 pada VM ROUTER yang menggunakan nama interface enp0s3 diatur dalam mode NAT. Mode ini membuat VirtualBox secara otomatis meminjamkan konfigurasi IP Address beserta DNS agar mesin virtual langsung terhubung ke internet selama komputer asli Anda memiliki koneksi internet.

Untuk menguji keandalan koneksi internet pada VM ROUTER, kita akan memanfaatkan perintah pengujian koneksi bernama ping. Silakan ketikkan perintah di bawah ini untuk menguji respons dari server global milik Google:

Input:

ping google.com

Output: 

64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=1 ttl=255 time=29.1 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=2 ttl=255 time=29.6 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=3 ttl=255 time=29.3 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=4 ttl=255 time=29.0 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=5 ttl=255 time=29.3 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=6 ttl=255 time=29.6 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=7 ttl=255 time=29.2 ms
64 bytes from any-in-2678.1e100.net (216.239.38.120): icmp_seq=8 ttl=255 time=29.6 ms
^C
--- forcesafesearch.google.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7030ms
rtt min/avg/max/mdev = 29.048/29.324/29.619/0.215 ms

Jika layar terminal Anda menampilkan baris informasi balasan berupa waktu respons (time) secara terus-menerus dari server Google, hal tersebut menandakan bahwa VM ROUTER Anda telah berhasil terhubung ke jaringan internet luar dengan sempurna. Anda dapat menghentikan proses ping tersebut dengan menekan kombinasi tombol Ctrl + C.

Tahapan 4 - Mengaktifkan IP FORWARDING

IP Forwarding merupakan fitur pada sistem operasi Linux yang memungkinkan sebuah perangkat meneruskan paket data dari satu jaringan ke jaringan lainnya. Tanpa fitur ini, VM ROUTER hanya akan dapat menerima paket untuk dirinya sendiri, tetapi tidak mampu meneruskan paket antarinterface jaringan.

Agar lebih mudah dipahami, bayangkan sebuah router seperti petugas pengatur lalu lintas di persimpangan jalan. Jika petugas tersebut tidak diizinkan mengarahkan kendaraan ke jalur lain, maka seluruh kendaraan hanya akan berhenti di satu titik tanpa bisa melanjutkan perjalanan. Hal yang sama juga terjadi pada jaringan komputer ketika IP Forwarding tidak diaktifkan.

Pada Linux, IP Forwarding dapat diaktifkan secara sementara maupun permanen. Konfigurasi sementara akan hilang ketika sistem direstart, sedangkan konfigurasi permanen akan tetap tersimpan meskipun komputer dimatikan atau direboot. Pada panduan ini, penulis menggunakan metode permanen agar konfigurasi tidak perlu dibuat ulang.

Untuk mengaktifkan IP Forwarding secara permanen, buka file sysctl.conf menggunakan teks editor nano.

Input:

nano /etc/sysctl.conf

Tekan tombol Enter untuk membuka file tersebut. Setelah Anda berada di dalam dokumen teks sysctl.conf, gulir halaman ke bawah menggunakan tombol arah panah pada papan tik dan carilah sebuah baris aturan bertuliskan #net.ipv4.ip_forward=1. Secara bawaan, baris tersebut memiliki tanda pagar (#) di depannya yang berarti aturan tersebut berstatus sebagai komentar atau nonaktif. Tugas Anda adalah menghapus tanda pagar (#) tersebut sehingga barisnya berubah murni menjadi net.ipv4.ip_forward=1.

Masuk kedalam file sysctl.conf

Tampilan File sysctl sebelum dikonfigurasi

Tampilan File sysctl sebelum dikonfigurasi

Tampilan File sysctl setelah dikonfigurasi

Tampilan File sysctl setelah dikonfigurasi

Setelah tanda pagar dihapus, simpan perubahan file tersebut dengan menekan tombol Ctrl + O, tekan Enter untuk konfirmasi nama file, lalu keluar dari editor nano dengan menekan Ctrl + X.

Langkah berikutnya adalah menerapkan perubahan tersebut ke dalam sistem tanpa perlu melakukan restart. Silakan jalankan perintah di bawah ini:

Input:

sysctl -p

Output:

net.ipv4.ip_forward = 1

Tekan Enter untuk mengeksekusi perintah. Jika konfigurasi penyuntingan Anda sudah benar, terminal akan langsung menampilkan baris konfirmasi bertuliskan net.ipv4.ip_forward = 1 sebagai tanda bahwa fitur penerusan paket telah aktif di kernel Linux.

Tahapan 5 - Membuat Tabel Filter Menggunakan nftables

Pada arsitektur nftables, struktur utama pembentuk aturan keamanan dimulai dari sebuah wadah besar bernama Tabel. Tabel berfungsi sebagai wadah penampung kelompok aturan berdasarkan tujuan penggunaannya. Langkah awal yang perlu kita lakukan adalah membuat sebuah tabel khusus untuk menyaring paket data (tabel filter). Jalankan perintah berikut di terminal Anda:

Input:

nft add table inet filter

Perintah di atas berfungsi untuk membuat sebuah tabel baru bernama filter. Penggunaan parameter kata kunci inet di sini sangat menguntungkan, karena tipe keluarga (family) ini memungkinkan tabel tersebut untuk menangani paket data berbasis IPv4 sekaligus IPv6 secara bersamaan dalam satu pengelolaan.

Tahapan 6 - Membuat Chain Input

Setelah berhasil membuat wadah berupa tabel, komponen berikutnya yang wajib kita buat di dalam tabel tersebut adalah Chain (rantai aturan). Rantai aturan pertama yang akan kita buat adalah Chain Input. Rantai ini secara khusus bertugas untuk memeriksa, memproses, atau menyaring setiap paket data yang datang dari luar dengan tujuan akhir langsung ke arah mesin VM ROUTER itu sendiri.

Untuk membuat Chain Input dengan kebijakan dasar, silakan ketik perintah berikut:

Input:

nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'

Perintah di atas memiliki beberapa bagian penting. type filter menunjukkan bahwa chain digunakan untuk filtering paket. hook input berarti chain akan memproses paket yang masuk menuju router. priority 0 menentukan prioritas proses rule, sedangkan policy accept berarti secara default seluruh paket diizinkan apabila tidak ada rule lain yang memblokirnya.

Tahapan 7 - Membuat Chain Output

Rantai kedua yang perlu kita persiapkan adalah Chain Output. Berkebalikan dengan rantai input, rantai output ini memiliki spesialisasi tugas untuk memproses dan mengatur lalu lintas paket data yang murni dihasilkan atau diproduksi dari dalam mesin VM ROUTER itu sendiri untuk dikirimkan ke luar menuju jaringan lain. Contohnya ketika router melakukan ping, update paket, atau mengakses internet.

Ketikkan perintah berikut untuk membuat rantai output pada terminal Anda:

Input:

nft add chain inet filter output '{ type filter hook output priority 0; policy accept; }'

Melalui perintah ini, kita memasukkan rantai baru bernama output ke dalam tabel filter. Aturan ini menggunakan fungsi penyaringan yang dikaitkan pada jalur keluar (hook output) dengan prioritas utama. Kebijakan dasar yang diterapkan adalah policy accept, yang berarti sistem mempercayai dan mengizinkan seluruh paket data yang keluar dari VM ROUTER untuk  melaju bebas menuju tujuannya.

Tahapan 8 - Membuat Chain Forward

Rantai ketiga yang memegang peranan paling krusial dalam fungsi perutean ini adalah Chain Forward. Rantai forward ini bertugas untuk mengontrol dan memeriksa paket data yang hanya sekadar lewat atau melintasi mesin VM ROUTER. Paket data jenis ini merupakan paket yang dikirimkan oleh komputer lokal (seperti VM SERVER atau VM CLIENT) dengan tujuan akhir komputer lain di internet atau sub-jaringan yang berbeda.

Untuk membuat rantai penerusan ini, jalankan perintah di bawah ini:

Input:

nft add chain inet filter forward '{ type filter hook forward priority 0; policy drop; }'

Perintah tersebut membuat aturan rantai bernama forward di dalam tabel filter. Perhatikan bahwa pada bagian akhir perintah, kita menggunakan kebijakan dasar berupa policy drop. Penggunaan opsi drop (tolak/buang) merupakan standar keamanan terbaik dalam dunia jaringan (Default Drop Policy). Artinya, sebagai langkah awal pengamanan, router akan memblokir total seluruh lalu lintas data yang mencoba melintasi router. Dengan kebijakan ini, jaringan lokal kita akan aman karena tidak ada paket data ilegal yang bisa lewat sampai kita membuatkan aturan izin khusus secara eksplisit pada tahapan berikutnya.

Tahapan 9 - Mengizinkan VM SERVER dan Client ke INTERNET

Karena kita telah mengunci jalur perutean menggunakan kebijakan policy drop pada langkah sebelumnya, maka tugas kita sekarang adalah membuka pintu izin khusus agar akses internet dapat mengalir ke VM SERVER dan VM CLIENT. Pembukaan akses ini didasarkan pada nama kartu jaringan (interface) yang mengarah ke masing-masing area.

Untuk memberikan izin akses internet kepada mesin VM SERVER, ketikkan perintah berikut:

Input:

nft add rule inet filter forward iifname "enp0s8" oifname "enp0s3" accept

Perintah ini berarti kita menambahkan aturan pengizinan baru ke dalam rantai forward. Parameter iifname "enp0s8" menunjukkan kartu jaringan masuk (incoming interface) tempat VM SERVER terhubung, sedangkan oifname "enp0s3" menandakan kartu jaringan keluar (outgoing interface) yang terhubung ke internet. Dengan opsi accept, semua paket dari server menuju internet diizinkan lewat.

Selanjutnya, untuk memberikan hak akses internet yang sama kepada mesin VM CLIENT, jalankan perintah berikut:

Input:

nft add rule inet filter forward iifname "enp0s9" oifname "enp0s3" accept

Cara kerja perintah ini serupa dengan sebelumnya, di mana kita membuka jalur perutean bagi paket data yang datang dari kartu jaringan enp0s9 (jalur milik area VM CLIENT) agar dapat diteruskan keluar menuju kartu jaringan enp0s3 yang mengarah ke internet.

Tahapan 10 - Mengizinkan Paket Balasan

Ketika VM SERVER atau VM CLIENT mengirim permintaan ke internet, server tujuan tentu akan mengirimkan paket balasan kembali ke jaringan lokal. Jika paket balasan tersebut tidak diizinkan, maka komunikasi akan gagal meskipun koneksi keluar sudah diperbolehkan.

Untuk mengizinkan paket balasan, jalankan perintah berikut.

Input:

nft add rule inet filter forward ct state established,related accept

Perintah di atas memanfaatkan fitur canggih connection tracking (ct state). Melalui instruksi ini, VM ROUTER akan memeriksa status setiap paket data yang datang dari internet. Jika paket data tersebut dikenali sebagai bagian dari koneksi yang sebelumnya sudah berhasil dibangun oleh komputer lokal (established) atau memiliki hubungan keterkaitan data (related), maka router akan otomatis mengizinkan paket balasan tersebut lewat kembali ke jaringan dalam. Jika Anda melewatkan konfigurasi ini, komunikasi internet akan putus total karena permintaan data bisa keluar tetapi jawabannya tidak pernah bisa masuk.

Tahapan 11 - Mengizinkan Komunikasi Antar-Network

Sesuai dengan target rancangan yang telah kita tetapkan di awal, kita ingin agar setiap segmen jaringan lokal yang berbeda subnet dapat saling berkomunikasi secara langsung. Dalam hal ini, kita ingin membuat VM SERVER dan VM CLIENT dapat saling bertukar data secara internal tanpa hambatan blokir.

Agar mesin VM SERVER dapat mengirim data ke VM CLIENT, silakan eksekusi perintah berikut:

Input:

nft add rule inet filter forward iifname "enp0s8" oifname "enp0s9" accept

Perintah di atas memberikan instruksi kepada router untuk meloloskan setiap paket data yang masuk dari kartu jaringan enp0s8 (sisi server) apabila paket tersebut ingin menuju keluar melalui kartu jaringan enp0s9 (sisi client).

Sebaliknya, agar mesin VM CLIENT juga dapat mengirim data balik ke VM SERVER, kita harus membuatkan aturan arah sebaliknya dengan perintah berikut:

Input:

nft add rule inet filter forward iifname "enp0s9" oifname "enp0s8" accept

Aturan ini melengkapi jalur komunikasi dua arah, di mana paket data yang datang dari kartu jaringan enp0s9 (sisi client) diizinkan melintas menuju kartu jaringan enp0s8 (sisi server) dengan aman.

Tahapan 12 - Membuat Tabel NAT

Meskipun jalur izin lalu lintas data di rantai forward sudah terbuka, komputer lokal masih belum bisa terhubung ke internet karena mereka menggunakan IP Address privat (lokal). Jaringan internet global tidak akan pernah mengenali dan tidak bisa mengirimkan data ke alamat IP privat. Oleh karena itu, kita membutuhkan fitur NAT (Network Address Translation) untuk mengubah IP privat tersebut menjadi IP publik milik router saat paket keluar ke internet.

Langkah pertama untuk mengaktifkan fitur ini adalah dengan membuat sebuah wadah tabel khusus NAT melalui perintah berikut:

Input:

nft add table ip nat

Perintah ini akan melahirkan sebuah tabel baru yang kita beri nama nat. Berbeda dengan tabel filter sebelumnya, di sini kita menggunakan keluarga protokol ip saja, karena proses translasi alamat ini berfokus pada manipulasi paket data berbasis IPv4.

Tahapan 13 - Membuat Chain POSTROUTING di Tabel NAT

Di dalam tabel NAT yang baru saja kita bangun, kita memerlukan sebuah rantai aturan khusus untuk menangani paket data sebelum meninggalkan router. Rantai tersebut dinamakan Chain POSTROUTING. Rantai ini bertugas memanipulasi atau mengubah informasi alamat asal paket data tepat setelah sistem selesai menentukan jalur perutean (routing decision).

Silakan ketik perintah di bawah ini untuk membuat rantai tersebut:

Input:

nft add rule ip nat postrouting oifname "enp0s3" masquerade

Pada perintah tersebut, type nat menunjukkan bahwa chain digunakan untuk proses NAT, sedangkan hook postrouting berarti rule akan dijalankan setelah proses routing selesai dilakukan. Kita memberikan nilai priority 100 untuk memastikan proses translasi alamat ini dilakukan di akhir proses setelah penyaringan filter selesai dikerjakan.

Tahapan 14 - Mengaktifkan Masquerade

Setelah wadah rantai pasca-perutean tersedia, langkah inti dari teknik NAT ini adalah mengaktifkan fitur bernama Masquerade. Fitur masquerade berfungsi seperti sebuah topeng penyamaran. Ketika komputer lokal mengirimkan paket ke internet, router akan menyembunyikan alamat IP asli komputer lokal tersebut dan mengubahnya dengan alamat IP publik resmi milik router yang tertanam pada kartu jaringan internet (enp0s3).

Untuk mengaktifkan fitur penyamaran alamat ini, jalankan perintah berikut:

Input:

nft add chain ip nat postrouting '{ type nat hook postrouting priority 100; }'

Baris perintah di atas berfungsi menambahkan aturan ke dalam rantai postrouting. Aturan ini menegaskan bahwa untuk setiap paket data jenis apa pun yang bersiap keluar meninggalkan router melalui kartu jaringan internet oifname "enp0s3", maka identitas IP Address asalnya wajib disamarkan (masquerade) menggunakan alamat IP milik router.

Tahapan 15 - Menyimpan Konfigurasi

Penting untuk diketahui bahwa seluruh rangkaian perintah panjang yang telah Anda ketikkan dari Tahapan 5 hingga Tahapan 14 di atas baru tersimpan di dalam memori jangka pendek (RAM) VM ROUTER. Kondisi ini sangat rentan, karena apabila mesin virtual mengalami mati mendadak atau di-restart, seluruh aturan nftables yang telah susah payah kita buat akan hilang tak berbekas.

Agar aturan tersebut tersimpan secara permanen di dalam sistem Debian 12, kita harus mengekspor aturan aktif tersebut ke dalam file konfigurasi utama nftables menggunakan perintah berikut:

Input:

nft list ruleset > /etc/nftables.conf

Perintah di atas akan mengambil seluruh daftar aturan yang sedang berjalan saat ini, lalu menuliskan dan menyimpannya ke dalam file sistem /etc/nftables.conf. Apabila Anda ingin memeriksa isi file atau sekadar memastikan aturan telah tertulis dengan benar, Anda dapat melihat rangkuman aturan aktif tersebut dengan menjalankan perintah:

Input:

nft list ruleset

Output:

table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy drop;
                iifname "enp0s8" oifname "enp0s3" accept
                iifname "enp0s9" oifname "enp0s3" accept
                ct state established,related accept
                iifname "enp0s8" oifname "enp0s9" accept
                iifname "enp0s9" oifname "enp0s8" accept
        }
}
table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                oifname "enp0s3" masquerade
        }
}

Tahapan 16 - Mengaktifkan nftables

Secara bawaan pada beberapa instalasi bersih Debian 12, layanan otomatis dari paket nftables terkadang berada dalam kondisi tidak aktif (disabled). Agar sistem bersedia menjalankan aturan yang ada di dalam file /etc/nftables.conf setiap kali komputer dinyalakan, kita wajib mendaftarkan dan menghidupkan layanannya di dalam sistem manajemen layanan (systemd).

Jalankan rangkaian perintah berikut secara berurutan:

Input:

systemctl enable nftables

systemctl start nftables

Perintah enable bertugas mengunci layanan agar otomatis aktif saat proses booting, sementara perintah start berfungsi langsung menyalakan mesin nftables saat ini juga. Jika Anda ingin memastikan kembali bahwa seluruh aturan baru telah dimuat ulang dengan sempurna tanpa ada kesalahan baris kode, Anda dapat melakukan penyegaran layanan dengan perintah:

Input:

systemctl restart nftables

G. Hasil praktikum

Setelah seluruh konfigurasi pada mesin VM ROUTER selesai dikerjakan tanpa ada kesalahan, sekarang saatnya kita melakukan pengujian menyeluruh. Silakan kembali ke jendela Oracle VM VirtualBox Manager Anda, kemudian jalankan mesin VM SERVER dan VM CLIENT yang sebelumnya sengaja kita biarkan mati. Setelah kedua sistem operasi virtual tersebut aktif dan Anda telah masuk ke desktop atau terminal masing-masing, lakukan pengujian konektivitas menggunakan perintah ping dengan rincian langkah berikut:

Pengujian dari Sisi VM SERVER

Buka terminal pada mesin VM SERVER, kemudian lakukan pengujian tiga arah berikut:

  • Uji Koneksi ke Router: Ketikkan perintah ping 192.168.30.1. Jika muncul pesan balasan (reply), artinya jalur kabel virtual dari VM SERVER menuju pintu gerbang VM ROUTER telah terhubung lancar.
  • Uji Koneksi ke Internet: Ketikkan perintah ping google.com. Jika Anda mendapatkan balasan data, artinya fitur NAT Masquerade dan IP Forwarding pada router telah berhasil menyamarkan dan mengantarkan paket data Anda ke internet luar.
  • Uji Koneksi ke Subnet Lain (VM CLIENT): Ketikkan perintah ping 192.168.40.200. Jika koneksi berhasil mendapat balasan, hal ini membuktikan bahwa aturan lintas jaringan pada Rantai Forward di Tahapan 11 telah berfungsi dengan sempurna.

Pengujian dari Sisi VM CLIENT

Buka terminal pada mesin VM CLIENT, kemudian lakukan pengujian sebaliknya untuk memastikan kestabilan koneksi:

  • Uji Koneksi ke Router: Ketikkan perintah ping 192.168.40.1. Munculnya pesan balasan menandakan VM CLIENT tidak mengalami kendala komunikasi dengan gateway-nya.
  • Uji Koneksi ke Internet: Ketikkan perintah ping google.com. Balasan sukses dari internet membuktikan bahwa penyamaran paket lewat kartu jaringan enp0s3 milik router juga berlaku sukses untuk area client.
  • Uji Koneksi ke Subnet Lain (VM SERVER): Ketikkan perintah ping 192.168.30.200. Respons balasan yang diterima memvalidasi bahwa hubungan komunikasi dua arah antar-jaringan lokal yang berbeda segmen telah berjalan sukses dan aman sepenuhnya.

H. Kesimpulan

Berdasarkan seluruh rangkaian prosedur praktikum yang telah kita lalui, dapat disimpulkan bahwa membangun sebuah Linux Router di Debian 12 menggunakan nftables dapat berjalan dengan sukses melalui pemahaman langkah yang sistematis. Aktivasi fitur IP Forwarding menjadi fondasi utama yang berhasil mengubah mesin Debian biasa menjadi perangkat perute data yang dinamis. Melalui subsistem nftables yang modern, kita tidak hanya berhasil mengamankan lalu lintas data menggunakan tabel filter dan kebijakan default drop pada rantai forward, tetapi juga sukses mengimplementasikan Network Address Translation (NAT) dengan teknik masquerade. Hasil akhirnya, keterbatasan IP privat pada segmen jaringan yang berbeda (VM SERVER dan VM CLIENT) dapat teratasi secara sempurna, sehingga keduanya kini bisa berselancar ke internet sekaligus saling berkomunikasi lintas subnet secara aman, responsif, dan lancar.

Keberhasilan praktikum ini sekaligus membuktikan bahwa penguasaan arsitektur jaringan berbasis open source sangatlah aplikatif dan penting, terutama bagi siswa SMK Jurusan Teknik Komputer dan Jaringan (TKJ) maupun pengguna umum yang sedang mendalami administrasi sistem. Pemahaman yang kuat mengenai logika penerusan paket data, translasi alamat, serta efisiensi sintaks pada nftables akan menjadi bekal fondasi yang sangat berharga sebelum melangkah ke tingkat yang lebih kompleks di dunia industri.

Posting Komentar