USB Ethernet Adapter Tidak Terdeteksi Di Raspberry Pi OS

Pada suatu hari, saya menggunakan sebuah papan Raspberry Pi untuk dijadikan sebagai perangkat jaringan seperti router, IDS, firewall, VPN gateway dan sebagainya. Seperti perangkat jaringan lain pada umumnya, saya membutuhkan dua port RJ45 yang berbeda: satu untuk masukan yang dihubungkan ke switch dan satu lagi untuk keluaran yang dihubungkan ke Internet. Karena Raspberry Pi hanya memiliki sebuah port RJ45, saya terpaksa menggunakan USB Ethernet Adapter untuk menambahkan sebuah port RJ45 baru lewat USB 3. Semua berjalan sesuai dengan harapan dan lancar hingga suatu hari perangkat Raspberry Pi tersebut restart akibat pemadaman listrik. Sejak itu, perangkat USB Ethernet Adapter tersebut tiba-tiba tidak terdeteksi lagi. Bila saya memasang ulang perangkat ke port USB yang berbeda, perangkat akan kembali terdeteksi. Namun saya tidak bisa selalu melakukan ini setiap kali restart karena saya tidak selalu berada di lokasi fisik yang sama.

Kategori: OS Tags: RaspberryPi

Apa Itu Protokol Traversal Using Relays around NAT (TURN)?

Traversal Using Relays around NAT (TURN) adalah sebuah protokol relay yang memungkinkan client berkomunikasi dengan peer yang tidak memiliki IP publik secara langsung (misalnya berada dibalik NAT). Protokol ini didefinisikan di RFC 8656. Komponen TURN terdiri atas TURN client dan TURN server. Komunikasi antara TURN client dengan peer selalu melalui TURN server yang berperan sebagai perantara. Oleh sebab itu, TURN server dan peer harus bisa saling berkomunikasi yang biasanya dilakukan dengan meletakkan TURN server pada jaringan publik.

Kategori: Network Tags: Protocol Go

Memakai Long-Term Credential Di STUN

RFC 5389 mendefinisikan dua metode authentication untuk STUN: short-term credential dan long-term credential. Metode short-term credential dipakai pada protokol seperti ICE sementara long-term credential merupakan persyaratan untuk protokol TURN. Pada tulisan kali ini, saya akan mencoba menggunakan long-term credential di STUN.

Kategori: Network Tags: Protocol Go

Apa Itu Protokol Session Traversal Utilities for NAT (STUN)?

Salah satu istilah yang sering saya jumpai saat membuat kode program yang berhubungan dengan WebRTC adalah STUN. Session Traversal Utilities for NAT (STUN) adalah protokol yang didefinisikan di RFC 5389. STUN membantu mempermudah komunikasi dengan perangkat yang berada dibalik NAT yang tidak dapat dihubungi secara langsung dari IP publik. Komponen STUN disebut sebagai STUN Agent yang terdiri atas STUN Client dan STUN Server.

Kategori: Network Tags: Protocol Go JavaScript

Melakukan Binding Port Yang Sama Di Go Dengan SO_REUSEPORT

Sebuah socket di sistem operasi berbasis UNIX adalah kombinasi dari alamat IP sumber, port sumber, alamat IP tujuan dan port tujuan. Pada umumnya, bila sebuah program ingin membuat socket baru, kombinasi dari ke-empat elemen tersebut harus unik. Untuk membuktikannya, saya akan membuat sebuah program yang melakukan binding di port 12345/UDP dan pada saat yang bersamaan, juga mengirim pesan dari port 12345/UDP ke alamat multicast 239.255.255.259 di port 3702/UDP. Contoh kode program Go-nya terlihat seperti berikut ini:

Kategori: Network Tags: Go

Memakai IP Geolocation Di Suricata dan Kibana Tanpa Koneksi Internet

Pada suatu hari, saya melakukan instalasi Suricata dan Kibana di sebuah perangkat rumah untuk menjadikannya sebagai monitor jaringan. Perangkat rumah ini hanya memiliki sebuah kartu jaringan yang terhubung ke SPAN port (mirror) tanpa kemampuan melakukan koneksi Internet keluar. Walaupun demikian, instalasi Suricata, Elasticsearch, Kibana, dan Filebeat berhasil dilakukan dengan lancar. Dashboard Kibana yang berisi daftar events dan alerts Suricata pun bekerja dengan baik. Hanya saja beberapa visualiasi seperti Top Source Countries dan Top Destination Countries selalu memiliki nilai yang kosong. Begitu juga dengan versi peta-nya, tidak ada data yang ditampilkan. Apa yang harus saya lakukan agar visualisasi IP geolocation tersebut dapat bekerja dengan baik?

Kategori: Network Tags: Suricata ElasticStack

Memakai Capture Filter di Suricata

Bagaimana caranya mengabaikan beberapa alamat IP supaya tidak diproses oleh Suricata? Salah satu solusinya adalah dengan melakukan perubahan pada rule sehingga alert yang dihasilkan tidak menyertakan segala sesuatu yang berhubungan dengan alamat IP tersebut. Kelemahan metode ini adalah Suricata tetap perlu mem-proses packet dari IP bersangkutan. Yang terkena dampak perubahannya hanya pada output saja dimana alert yang telah diproses, jika ada, akan diabaikan. Dengan demikian, metode ini tidaklah optimal dari sisi kinerja.

Kategori: Network Tags: Suricata

Meningkatkan Keamanan Aplikasi Yang Menggunakan Firebase Authentication

Pada suatu hari, saya diminta untuk membuat sebuah halaman login. Persyaratannya cukup sederhana: pengguna harus bisa memasukkan email dan password, bila benar, pengguna akan diarahkan ke halaman utama. Saya pun segera menulis kode program yang memanfaatkan Firebase Authentication. Dengan Firebase Authentication, bahkan pemula sekalipun bisa dengan mudah membuat halaman login tanpa perlu mengkhawatirkan implementasi OAuth2, JWKS, database dan sejenisnya secara detail. Namun, setelah halaman tersebut selesai dan bekerja sebagaimana seharusnya, karena masih ada sisa waktu, saya mulai berpikir: apakah ada hal lain yang bisa saya lakukan untuk meningkatkan keamanan di halaman login tersebut? Pada tulisan ini, saya akan mengumpulkan hasil pencarian saya yang berisi semua hal-hal tambahan yang bisa dilakukan untuk meningkatkan keamanan aplikasi yang menggunakan Firebase Authentication. Semua informasi ini juga bisa dijumpai di dokumentasi Firebase Authentication.