29 poin oleh GN⁺ 22 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • Ringkasan langkah demi langkah untuk membangun router penuh dengan memanfaatkan komputer biasa atau mini PC
  • Menyusun jaringan kabel dan nirkabel di lingkungan Debian atau Alpine Linux hanya dengan paket minimum seperti hostapd, dnsmasq, dan bridge-utils
  • Selama ada 2 antarmuka Ethernet, perangkat apa pun seperti desktop, laptop, atau SBC dapat diubah menjadi router
  • Mewujudkan fungsi setara router komersial melalui konfigurasi firewall (nftables), layanan DHCP/DNS, dan IP forwarding
  • Dapat membangun infrastruktur jaringan yang stabil dan fleksibel hanya dengan perangkat keras bekas dan open source

Cara Mengubah Perangkat Apa Pun Menjadi Router

  • Setelah larangan impor router konsumen oleh pemerintah AS, artikel ini memperkenalkan cara merakit router sendiri dengan memanfaatkan perangkat keras yang sudah ada
  • Berdasarkan pengalaman menjalankan router secara stabil selama bertahun-tahun menggunakan mini PC berbasis Linux, artikel ini merangkum komponen yang dibutuhkan dan prosedur konfigurasinya langkah demi langkah
  • Pada dasarnya router memiliki struktur yang sama dengan komputer biasa, sehingga bisa dibuat dari desktop, laptop, SBC, dan berbagai perangkat lain
  • Disusun di lingkungan Debian atau Alpine Linux dengan paket minimum seperti hostapd, dnsmasq, bridge-utils
  • Tujuannya bukan respons kebijakan, melainkan mendaur ulang perangkat keras yang ada dan meningkatkan pemahaman tentang jaringan

Pemilihan perangkat keras

  • Mini PC dengan pendinginan pasif ideal, tetapi perangkat apa pun bisa dipakai selama memiliki 2 antarmuka Ethernet
    • Bisa ditambah dengan dongle USB-Ethernet; reliabilitasnya sedikit lebih rendah, tetapi tetap cukup berfungsi
  • Sebagai contoh, perangkat dengan Celeron 3205U dual-core (1.5GHz) mampu menangani 820~850Mbps kabel dan sekitar 300Mbps nirkabel
  • Di masa lalu, sistem juga pernah dirakit dari komponen bekas seperti ThinkPad T60, ExpressCard-PCIe bridge, Cisco 2960 switch, dan D-Link router (khusus AP)
    • Tampilannya memang seadanya, tetapi berfungsi sebagai router penuh

Konfigurasi jaringan

  • Susunan antarmuka
    • eth0: WAN
    • eth1: LAN (kabel)
    • wlan0: LAN (nirkabel)
  • LAN kabel dan nirkabel digabung dalam bridge agar bekerja sebagai jaringan yang sama
  • Jika butuh port LAN tambahan, cukup tambahkan dongle USB-Ethernet lalu hubungkan ke bridge
  • Sistem operasi yang digunakan adalah Debian Linux, dengan komponen penting berikut
    • hostapd: membuat jaringan Wi-Fi
    • dnsmasq: layanan DNS dan DHCP
    • bridge-utils: bridging port

Instalasi dan pengaturan awal

  • Pengaturan BIOS/UEFI
    • Nonaktifkan PXE network boot
    • Nonaktifkan manajemen daya USB/PCI
    • Aktifkan opsi “auto boot setelah listrik AC pulih”
    • Gunakan HDMI dummy dongle untuk mengatasi masalah boot saat tidak ada layar terhubung
  • Beberapa perangkat keras memerlukan aktivasi repositori non-free-firmware
  • Instal firmware sesuai chipset nirkabel
    • Intel: firmware-iwlwifi
    • Realtek: firmware-ath9k-htc
    • Atheros lama: firmware-atheros

Instal paket penting

  • Instal utilitas utama dengan perintah berikut
    sudo apt install bridge-utils hostapd dnsmasq
    
  • Total paket sistem sekitar 250 paket

Mengunci nama antarmuka jaringan

  • Linux modern menggunakan nama seperti enp0s31f6, tetapi bisa dipatok ke format ethX tradisional
  • Buat file /etc/systemd/network/10-persistent-ethX.link
    [Match]
    MACAddress=AA:BB:CC:DD:00:11
    [Link]
    Name=ethX
    

Membuat jaringan nirkabel

  • Atur dongle USB Wi-Fi sebagai access point (AP)
  • Contoh /etc/hostapd/hostapd.conf
    interface=wlan0
    bridge=br0
    hw_mode=g
    channel=11
    ssid=My Cool and Creative Wi-Fi Name
    wpa_passphrase=mysecurepassword
    
  • Aktifkan layanan hostapd
    sudo systemctl unmask hostapd
    sudo systemctl enable --now hostapd
    

Konfigurasi antarmuka

  • Susun /etc/network/interfaces
    allow-hotplug eth0
    allow-hotplug eth1
    auto wlan0
    auto br0
    iface eth0 inet dhcp
    iface br0 inet static
    bridge_ports eth1 wlan0
    address 192.168.1.1/24
    
  • Setelah reboot, periksa status bridge dengan perintah brctl show br0

Mengaktifkan IP forwarding

  • Tambahkan ke file /etc/sysctl.d/10-forward.conf
    net.ipv4.ip_forward=1
    
  • Terapkan
    sudo systemctl restart systemd-sysctl.service
    

Konfigurasi firewall dan NAT

  • Pengaturan berbasis nftables (/etc/nftables.conf)
    • Memblokir trafik dari luar
    • Mengizinkan DNS, DHCP, dan SSH internal
    • Menjalankan NAT
  • Aktifkan layanan
    sudo systemctl enable nftables.service
    

Konfigurasi DHCP dan DNS

  • Menggunakan dnsmasq (/etc/dnsmasq.conf)
    interface=br0
    dhcp-range=192.168.1.50,192.168.1.250,255.255.255.0,6h
    dhcp-option=option:router,192.168.1.1
    dhcp-option=option:dns-server,192.168.1.1
    cache-size=10000
    
  • Aktifkan layanan
    sudo systemctl enable dnsmasq
    

Pengelolaan port serial

  • Jika perangkat memiliki port konsol serial, pengelolaan bisa dilakukan tanpa monitor
  • Ubah /etc/default/grub
    GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8'
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    
  • Jalankan systemctl enable [email protected] lalu sudo update-grub

Verifikasi operasi

  • Setelah reboot, cek status firewall dengan sudo nft list ruleset
  • Verifikasi konfigurasi dengan sudo nft -c -f /etc/nftables.conf
  • Aturan dapat dimuat ulang tanpa downtime dengan sudo systemctl reload nftables.service
  • Periksa log DHCP
    sudo less /var/lib/misc/dnsmasq.leases
    sudo journalctl -eu dnsmasq.service
    

Fitur tambahan

  • Dapat diperluas dengan pencatatan log dan analisis trafik, pemisahan VLAN, dukungan IPv6, VPN tunneling, dan routing dinamis (BGP, IGP)
  • Bisa juga menambahkan monitoring berbasis Prometheus, DMZ port forwarding, serta fitur deteksi dan pemblokiran intrusi
  • Namun, sebaiknya hindari memasang terlalu banyak software pada router itu sendiri; lebih baik pisahkan trafik dengan DMZ atau VLAN

Kesimpulan

  • Router lengkap dapat dibangun hanya dengan software gratis dan perangkat keras bekas
  • Pada akhirnya, router hanyalah komputer biasa, dan siapa pun bisa membuatnya sendiri
  • Anda dapat membangun infrastruktur jaringan yang stabil dan fleksibel dengan memanfaatkan perangkat yang tidak lagi terpakai

1 komentar

 
GN⁺ 22 hari lalu
Komentar Hacker News
  • Artikel yang bagus. Saya ingin memperkenalkan skrip create_ap yang sudah lama saya rawat
    Bisa dilihat di repositori GitHub.
    Ini adalah skrip shell yang bisa mengubah komputer Linux apa pun menjadi router WiFi hanya dengan satu baris perintah.
    Pada dasarnya ini mengatur kartu WiFi ke mode AP, lalu mengonfigurasi WPA2/3, pemfilteran MAC, hingga server DHCP/DNS secara otomatis.
    Hampir tidak ada dependensi, dan juga tidak memerlukan NetworkManager.
    Saya juga pernah memakainya sebagai gateway internet rumah dengan mini PC Atom lama, dan sering menggunakannya saat membuat jaringan uji untuk reverse engineering perangkat IoT
    Contoh terkait bisa dilihat di artikel ini

    • Saya penasaran apakah ada rekomendasi chipset WiFi dengan performa yang bagus dalam mode AP
  • Banyak komentar yang bilang “pakai saja X”, tapi inti artikel ini adalah menunjukkan konfigurasi minimum untuk routing dan kesederhanaannya
    Jika Anda pernah memakai NAT di Docker atau VM, berarti Anda sebenarnya sudah melakukan hal yang sama.
    Fitur hotspot WiFi di Android pada akhirnya juga memanfaatkan fungsi kernel Linux yang sama.
    Bahkan pesan ini pun kemungkinan sedang dikirim melalui beberapa router perangkat lunak

    • Saya juga merasa lebih menarik untuk membuatnya sendiri dari nol. Dengan begitu kita bisa menilai apakah ingin mengimplementasikannya sendiri, atau memakai solusi yang sudah ada
      Menurut saya pendekatan seperti ini adalah prinsip desain perangkat lunak yang baik
    • Sebenarnya komputer apa pun, kalau mau, bisa dijadikan router
      Internet Connection Sharing di Windows pada dasarnya hanyalah kotak centang untuk mengaktifkan NAT
      Menggabungkan firewall, switch, file server, dan sebagainya ke dalam satu perangkat lalu menyebutnya “router” sepertinya yang membuat orang bingung
  • Artikel ini mengingatkan saya pada masa lalu. Tujuan pertama saya memakai Linux adalah membuat router dari komputer bekas
    Saya memasang dua NIC ISA 3Com ke Pentium 100MHz, lalu mengaturnya mengikuti HOWTO IP-Masquerading.
    Setelah itu saya mengembangkannya berdasarkan buku Linux Firewalls karya Robert Ziegler, lalu menambahkan filter spam dan cache Squid, sehingga perangkat keras yang tadinya akan dibuang jadi cukup berguna

    • Saya juga menempuh jalur yang mirip. Saya pernah berbagi koneksi ISDN di kantor surat kabar lewat satu komputer, dan dari situlah berlanjut ke pembangunan situs web
      Setelah 27 tahun pun, saya masih tetap dipanggil oleh orang-orang yang bertanya soal “cara menyelesaikan sesuatu dengan murah pakai Linux, karet gelang, dan klip kertas
    • Dulu saya pernah membuat koneksi WiFi sementara sebagai bridge OpenBSD saat DSL di rumah orang tua saya putus, memakai Pentium MMX 200MHz. Ternyata cukup cepat juga
    • Kalau punya switch yang mendukung VLAN, routing bahkan bisa dilakukan dengan satu NIC saja
    • Dalam kasus saya justru sebaliknya, awalnya saya belajar Linux dengan mem-flash firmware router memakai OpenWRT
    • Sekarang bukunya sudah berumur 25 tahun, jadi terlalu usang. Seseorang perlu menulis buku baru tentang router Linux
      Referensi: Linux Routers - A Primer for Network Administrators
  • Saya sudah lama memakai OPNsense/pfSense dan sangat merekomendasikannya
    Fitur seperti pembaruan otomatis, cadangan, tunnel WireGuard, dan pemfilteran paket berbasis Suricata sangat bagus
    Saat mengelola jaringan di akhir pekan, enak bisa mengatur lewat web UI alih-alih terminal
    Situs resmi

    • Setuju, tapi GUI sering kali tidak cocok dengan konsep Linux. Saya pernah memakai router Barracuda dan akhirnya menyelesaikan masalah dengan memasukkan perintah langsung lewat SSH
      pfSense, OpenWRT, Barracuda, Verizon OEM, dan lainnya punya fungsi yang sama, tapi cara penyajiannya berbeda-beda
    • Saya sekarang tidak ingin lagi mengelola jaringan di akhir pekan. Akan bagus kalau ada distro router bergaya appliance yang benar-benar utuh seperti TrueNAS
    • Alasan saya meninggalkan OPNsense adalah karena ia membatasi konfigurasi yang ingin saya lakukan.
      Saya tidak suka produk dengan sikap “perangkat lebih tahu daripada saya”. Kurangnya fleksibilitas menjadi faktor penentu
    • Belajar dengan Linux itu bagus, tapi router adalah hal yang merepotkan kalau sampai salah
      Saya pernah melakukan routing sampai 300Mb/s dengan mini PC Atom, tapi saat beralih ke internet gigabit saya pindah ke OPNsense berbasis VM
      Menyalurkan port satu per satu ke VM lewat kartu Intel 4-port itu cukup menyenangkan
  • Saya memakai perangkat router N100 + 10Gbit, tapi rasanya latensi-nya lebih tinggi dibanding router hardware khusus
    Chipset khusus memproses paket tanpa campur tangan CPU, jadi jauh lebih efisien.
    Saya penasaran apakah ada yang benar-benar pernah mengukur perbedaan seperti ini. Kebanyakan orang hanya melakukan uji bandwidth

    • Betul, Linux bridge tidak mungkin secepat ASIC switch khusus
      OpenWRT memang mendukung sebagian API switch hardware, tapi dalam bentuk kartu PCIe hampir tidak ada
      CCR2004-1G-2XS-PCIe dari Mikrotik adalah contoh yang menarik.
      Ini pada dasarnya menghubungkan papan router penuh yang menjalankan RouterOS lewat PCIe.
      Kalau Anda bisa memanfaatkan port 25Gbps, itu mungkin layak, tapi kalau tidak, bedanya tidak terlalu jauh dari RB5009
  • Jika punya switch terkelola, router bahkan bisa dibangun dengan satu NIC saja
    Atur sebagai port trunk 802.1q, maka switch bisa dipakai sebagai pemanjang antarmuka
    Rumah saya memakai konfigurasi “router-on-a-stick” seperti ini.
    Kombinasi switch PoE dan Aruba IAP bekas bisa menghasilkan WiFi dengan kualitas jauh lebih baik daripada perangkat konsumen
    Dulu saya memakai Thinkpad sebagai router, tapi sekarang sudah diganti ke Dell Optiplex dan dipakai sebagai router homelab yang sekaligus menjalankan VM
    Alpine Linux sangat bagus untuk penggunaan seperti ini

    • Saya penasaran sejauh mana performa latensi mesh WiFi bisa ditingkatkan. Dibanding router konsumen, kira-kira bedanya sebesar apa?
    • AP dari ISP saya juga mendukung WiFi gigabit. Hanya saja ia memaksa pengaturan DNS untuk tujuan pemantauan, jadi saya ingin menggantinya
      Sayangnya, untuk membeli AP dengan performa setara perlu sekitar 180 dolar
  • Saya penasaran dengan alasan kebijakan di balik pelarangan impor router
    Sebagian besar lalu lintas sudah dienkripsi dengan TLS, jadi saya bertanya-tanya kenapa itu masih dianggap berbahaya
    Apakah alasannya seperti botnet, DDoS, kata sandi bawaan yang lemah, atau penyusupan ke jaringan internal?

    • Di industri keamanan, ini disebut APT (Advanced Persistent Threat).
      Kasus seperti Volt Typhoon dan Flax Typhoon masih tetap aktif.
      Melarang perangkat asing tidak akan menyelesaikan semuanya, tapi karena keamanan adalah proses, bukan produk, mengendalikan rantai pasok tetap perlu
    • Semua alasan yang Anda sebut benar. Selain itu, ada juga risiko besar berupa “kemampuan mematikan perangkat dari jarak jauh
      Dulu saya pernah menangani Bot Mitigation di Amazon dan melihat lalu lintas yang berasal dari perangkat konsumen di seluruh dunia.
      Bahkan dengan kurang dari setengah perangkat aktif saja, lalu lintas yang muncul sudah berada di tingkat yang tidak bisa dibendung
    • Sebenarnya, kalau FCC benar-benar peduli keamanan, mereka akan menerapkan kewajiban kata sandi unik atau tanggung jawab bagi produsen yang tidak menyediakan patch.
      Baik Huawei maupun Netgear, sumber DDoS-nya tetap sama
    • Alasannya ada banyak
      Akses ke metadata DNS/lalu lintas, serangan ke jaringan internal, DDoS, pemutusan internet, dan sebagainya
      Pada akhirnya ini bisa disalahgunakan sebagai alat pengawasan dan kontrol
    • Secara teknis benar. Walaupun terenkripsi dengan TLS, metadata saja sudah cukup untuk melakukan pengawasan.
      Kemungkinan perangkat asing memiliki backdoor adalah asumsi yang realistis
  • Nasihat “pakai saja OPNsense” itu bagus untuk lingkungan operasional, tapi sangat buruk untuk belajar
    Nilai artikel ini justru pada kemampuannya menunjukkan betapa sederhananya prinsip routing bekerja

    • Perangkat kelas SOHO sebenarnya tidak melakukan routing dalam arti yang sesungguhnya
  • Ada hal yang tidak disebut di artikel, yaitu saat dipakai sebagai router, di /etc/sysctl.d/10_router.conf

    net.ipv4.ip_early_demux = 0  
    net.ipv4.tcp_early_demux = 0  
    net.ipv4.udp_early_demux = 0
    

    konfigurasi seperti itu bisa membantu mengurangi overhead.
    Ini efektif untuk tuning agar mengurangi latensi dan jitter untuk VoIP atau game.
    Saya juga mengatur gro_flush_timeout, sch_cake, napi_defer_hard_irqs, dan lainnya.
    Tujuannya agar keluarga bisa merasakan pengalaman gaming yang lebih baik

    • Saya juga menonaktifkan early_demux, tapi belum pernah benar-benar menguji perbedaannya.
      Dalam kasus saya, fq_codel saja sudah cukup stabil di lingkungan 10Gbps
  • Saya justru lebih penasaran soal penggantian modem optik
    Perangkat dari AT&T yang saya terima sering melambat dan keamanannya juga meragukan.
    Saya penasaran apakah ada panduan tentang cara menggantinya sendiri dengan modem optik langsung