Friday, December 26, 2025

Installasi zerotier di Container Mikrotik

Mikrotik telah menyediakan paket untuk Zerotier, namun hanya tersedia pada arsitektur ARM dan ARM64. Untuk mengatasi permasalahan tersebut, zerotier dapat diinstallasi melalui mikrotik container. Permasalahannya mikrotik container hanya tersedia pada arsitektur ARM, ARM64 dan x86. 

Penulis menggunakan mikrotik x86 untuk melakukan Installasi zerotier melalui container yang ada di mikrotik. Mikrotik container hanya tersedia mulai ROS 7, bila ROS anda masih dibawah ROS 7 wajib melakukan upgrade.


Langkah yang perlu dilakukan sbb:

Pastikan package container telah terinstall di mikrotik. Bila belum terinstall, silahkan didownload di websites mikrotik.com/download dan sesuaikan dengan versi ROS yang terinstall.




Pastikan mode container telah aktip, bila belum segera diaktipkan dengan perintah dibawah, selanjutnya restart mikrotik.


/system/device-mode/update container=yes 





tambahkan virtual ethernet dengan ip address yang diinginkan, misalnya 172.17.0.2 sedangkan untuk gataways kita gunakan 172.17.0.1 yang akan dikonfigurasikan di bridge.



/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1


Tambahkan Bridge dan IP address untuk bridge. Bedagan IP address bridge dengan ip address untuk virtual ethernet.


/interface/bridge/add name=containers
/ip/address/add address=172.17.0.1/24 interface=containers


Tambahkan virtual ethernet ke dalam bridge yang telah dibuat.


/interface/bridge/port add bridge=containers interface=veth1


Tambahkan NAT untuk outgoing container.

/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24


Sampai disini konfigurasi untuk container sudah selesai. Selanjutnya container yang akan kita tambahkan perlu dikonfigurasikan melalui menu container

Pada contoh kali ini, saya akan menambahkan installasi zerotier dari hub.docker.com. Yang perlu disiapkan disini untuk mendukung container zerotier adalah net, cap-add,TZ dan device, maka perlu ditambahkan pada environment. Untuk mengaktipkan timezone, diperlukan penambahan modul tzdata.

Selanjutnya tambahkan environment melalui terminal mikrotik atau langsung pada container.

/container/envs/add key=net name=zerotier value=host
/container/envs/add key=cap-add name=zerotier value=NET_ADMIN,SYS_ADMIN,SYS_TIME
/container/envs/add key=TZ name=zerotier value="Asia/Makassar" /container/envs/add key=device name=zerotier value=/dev/net/tun

hasilnya sebagai berikut:





Selanjutnya tambahkan sumber images dari container, misalnya diambail dari dokcer.com dengan alamat https://registry-1.docker.io



/container/config/set registry-url=https://registry-1.docker.io 


Terdapat banyak container zerotier di hub.docker.com, namun yang akan kita gunakan adalah https://hub.docker.com/r/gists/zerotier

dari hasil percobaan, hanya container ini yang berhasil terhubung ke zerotier.com dan konfigurasinya lebih nyaman, tidak terhubung dimungkinkan karena versi ROS yang ada bugs dan tidak dapat terhubung ke zerotier.



/container/add remote-image=gists/zerotier:latest interface=veth1 envlist=zerotier

atau melalui winbox seperti gambar berikut :



Tunggu beberapa menit sampai zerotier di download dan di extract dalam container, sampai tanda E hilang dan berganti menjadi S.

Selanjutnya aktipkan zerotier dengan menekan tombol start.




Sampai disini, installasi zerotier telah selesai dengan status zerotier aktip (tanda huruf R). Selanjutnya kita perlu menghubungkan zerotier di mikrotik ke server zerotier.com. Pastikan di zerotier.com sudah membuat account dan mengaktipkan network di zerotier.com

Lihat terlebih dahulu, zerotier ada di nomor berapa dengan perintah dibawah


/container/print


Misalnya zerotier ada di urutan ke 0, makan kita akan masuk ke container zerotier dengan perintah dibawah



/container/shell 0



Tambahkan modul tzdata di container dengan command berikut:



apk add tzdata


melalui container mikrotik, kita berikan perintah dibawah ini untuk mendaftarkan zerotier di mikrotik ke zerotier.com, ganti network-id-zerotier dengan kode yang didapatkan dari zerotier.



zerotier-cli join <network-id-zerotier>


setelah menjalankan perintah diatas, selanjutnya masuk kembali ke websites zerotier.com dan berikan authorize ke host yang baru tergabung ke jaringan anda di zerotier.

Sampai disini, container zerotier mikrotik telah aktip dan dapat di ping dari komputer yang telah terhubung ke zerotier.

Gambar dibawah merupakan hasil ping ke container zerotier di mikrotik dari komputer yang telah terhbung ke mikrotik.




Selanjutnya buatkan sebuah file dengan nama /entrypoint.sh di root directory, sesuaikan dengan ip address dan konfigurasi zerotier yang anda miliki. pastikan iptables sudah terinstall di container anda.




#!/bin/sh
set -e

echo "Setting up iptables rules..."

# Forwarding rule
iptables -A FORWARD -j ACCEPT

# DNAT rule
iptables -t nat -A PREROUTING -d 10.10.11.200/32 -j DNAT --to-destination 172.18.0.1

# MASQUERADE rules
iptables -t nat -A POSTROUTING -o veth1-zerotier -j MASQUERADE
iptables -t nat -A POSTROUTING -o ztpxxxxxx -j MASQUERADE

echo "iptables rules applied successfully."

# Execute the container's main command (CMD)
exec "$@"


Selanjutnya buka container zerotier, cari bagian entrypoint dan tambahkan file /entrypoint.sh





Bila tidak ada masalah, seharusnya mikrotik anda sudah bisa dibuka dari internet melalui zerotier.


tambahan :

Mikrotik RouterOS 7.23 mulai melakukan tambahan untuk health status, kita dapat menambahkan command untuk melakukan pengecekan healthtly pada zerotier dengan menambahkan kode di tab healthcheck pada kolom Healthcheck Cmd 



ping -c 1 10.10.11.200 || exit 1









Sunday, December 14, 2025

Menjadwalkan Backup Mikrotik dengan schedule

Script dibawah silahkan copy paste di Mikrotik system schedulu dan sesuaikan dengan jadwal yang akan dieksekusi, misalnya tiap 1 bulan akan melakukan backup system.



:log info "STARTING BACKUP";

#ambil nama mikrotik, tanggal dan tahun

:local identity [/system identity get name];
:local date [/system clock get date];
:local time [/system clock get time];

#ambil data tanggal bulan tahun

:local year [:pick $date 7 11];
:local month [:pick $date 0 3];
:local day [:pick $date 4 6];


#ganti nama bulan menjadi angka

:local monthNum [:tonum ([:find "janfebmaraprmayjunjulaugsepoctnovdec" $month]/3)]

:if ($monthNum < 10) do={ :set monthNum "0$monthNum" }


#gabungkan tahun bulan dan tanggal 

:local mydatetime ($year .  $monthNum .$day)


#gabungkan tanggal dan jam

:local timestamp ($mydatetime . "-" . [:pick $time 0 2] . [:pick $time 3 5] . [:pick $time 6 8]);

:local filename ($identity . "-" . $timestamp);

#lakukan proses backup normal dan plain text

/system backup save name=$filename;

/export file=$filename;


#tampilkan di logs

:log info "BACKUP FINISHED: $filename";

 








catatan :

script diatas berjalan pada ROS 6, sedangkan di ROS 7 perlu sedikit modifikasi pada pick date dengan output yang dihasilkan date dengan format yyyy-mm-dd. 




Friday, December 05, 2025

Installasi Sistem Operasi Armbian di STB HG680P

Armbian merupakan sistem operasi berbasis Linux yang merupakan turunan dari Debian atau Ubuntu. HG680P merupakan STB untuk menjalankan siaran IPTV Online. 



STB HG680P merupakan perangkat yang sangat ringan dengan penggunaan listrik yang ramah sebesar 12Volt, banyak beredar dipasaran karena sudah tidak digunakan oleh pelanggan dari provider internet seperti indihome.  Installasi di STB680H sangat mudah bila dibandingkan dengan perangkat STB lainnya seperti STB B860H yang sangat ribet perlu interaksi dengan IC yang ada didalam PCB saat proses installasi.
Installasi Armbian di STB bekas ini tentunya memiliki tujuan diantaranya mengganti Sistem Operasi bawaah dari ISP yang hanya bisa dipakai oleh ISP bersangkutan untuk menampilkan siaran TV, youtube dan tidak dapat digunakan untuk ISP lainnya, selain itu dapat digunakan untuk keperluan konfigurasi server yang sangat berguna seperti server proxy, router, NAS, dan lainnya.


Installasi yang dilakukan kali ini untuk keperluan membangun Server ringan dari STB bekas ini dengan tujuan membuat server DNS, Server proxy serta keperluan lainnya. 


Bahan yang diperlukan sebagai berikut :

1. STB HG680P
2. MMC minimal 8Gb
3. Card Reader
4. software Balena Etcher untuk write image Armbian
5. Komputer/Laptop
6. kabel HDMI to HDMI
7. TV yang support HDMI
8. dan Sistem Operasi Armbian


Silahkan Sistem Operasi Armbian di download di alamat dibawah, pilih kode armlogic-s905x jenis server karena tujuannya untuk membuat server, bukan untuk menampilkan siaran TV.



Setelah Armbian didownload, aktipkan Balena Etcher dan lakukan flashing di MMC yang sudah disediakan, sampai menampilkan flash complete seperti gambar dibawah.




Hidukkan TV dan masukan kabel HDMI ke STB. Masukan Memory MMC yang sudah sukses di flash tadi ke STB HG680P, pastikan MMC sudah terkunci. Selanjutnya hidupkan STB dengan menekan tombol ON.
Apabila tidak ada masalah dengan MMC dan STB, maka akan secara otomatis di TV menampilkan urutan pembacaan sistem Operasi Armbian.

Masukan password root baru, bila diminta oleh sistem dan tekan Ctrl + C bila ada permintaan penambahan user baru. Bila password sudah sukses, akan menampilkan shell/prompt dari linux

langkah selanjutnya ketikan perintah di shell armbian dan tunggu sampai proses selesai.

armbian-install

Terakhir berikan perintah :

poweroff

Selanjutnya, matikan STB dan cabut MMC, dan nyalakan kembali STB. Apabila tidak ada masalah, secara otomatis STB sudah memiliki sistem Operasi Armbian.

Installasinya simple dan mudah.










Thursday, December 04, 2025

Blokir iklan/ads youtube melalui firewall mikrotik

Iklan sangat mengganggu ketika kita membuka youtube. Iklan dengan hitungan detik mampu membuat kita menunggu sampai video yang akan kita putar selesai menampilkan iklan.

Gambar dibawah menampilkan link iklan youtbe yang terdeteksi di aplikasi pi-hole. Beberapa cara sudah dilakukan seperti memblokir melalui aplikasi pi-hole di Linux, hasilnya youtube tidak bisa dibuka saat pertamakali loading. 



 

 

Beberapa link iklan youtube akan kita blokir melalui layer7 dengan regex seperti dibawah dengan cara masuk ke menu IP - Firewall -  Layer 7 Protocol atau masukan command berikut di terminal mikrotik :


/ip firewall address-list

add address=192.168.2.0/24 list=LOKAL

add address=10.10.10.0/24 list=LOKAL

add address=10.10.20.0/24 list=LOKAL

add address=10.10.21.0/24 list=LOKAL

add address=192.168.18.0/24 list=LOKAL

add address=192.168.19.0/24 list=LOKAL


/ip firewall layer7-protocol

add name=YoutubeAds regexp="^.+r[0-9]+\\.[a-z0-9-]+\\.googlevideo+\\.com.*\$"

add name=YoutubeAds2 regexp="^.+r+[a-z0-9-]+\\.googlevideo+\\.com.*\$"

add name=YoutubeAds3 regexp="^.+r+[a-z0-9-]+\\.gvt1+\\.com.*\$"


/ip firewall mangle

add action=mark-connection chain=forward comment="Blocking Youtubeads" \   

dst-address-list=!LOKAL layer7-protocol=YoutubeAds2 new-connection-mark=\   

YoutubeAds-Connection passthrough=yes src-address-list=LOKAL

add action=mark-connection chain=forward dst-address-list=!LOKAL \   

layer7-protocol=YoutubeAds new-connection-mark=YoutubeAds-Connection \

passthrough=yes src-address-list=LOKAL

add action=mark-connection chain=forward dst-address-list=!LOKAL \

layer7-protocol=YoutubeAds3 new-connection-mark=YoutubeAds-Connection \

passthrough=yes src-address-list=LOKAL


/ip firewall filter
add action=reject chain=forward comment=YoutubeAds connection-mark=\
YoutubeAds-Connection protocol=tcp reject-with=icmp-network-unreachable




Hasilnya seperti gambar dibawah :






Catatan :

Konfigurasi firewall diatas mampu mendeteksi alamat iklan youtubes, namun  masih tampil terutama saat membuka video youtube pertamakali. Sampai saat ini belum ada yang bisa memblokir melalui pi-hole ataupun firewall. Satu-satunya cara dengan menambahkan adblock di browser komputer mampu memblokir iklan youtube, namun untuk aplikasi youtube di android belum ada aplikasi yang mampu memblokir.







Monday, December 01, 2025

Script backup otomatis mikrotik ke cloud

Mikrotik akan melakukan backup setiap sebulan sekali ke cloud mikrotik, silahkan copy paste script berikut di terminal mikrotik, hasilnya bisa dilihat di System - Schedule.


 

/system scheduler

add interval=30d name=cloud-backup on-event="/system backup cloud remove-file number=0\r\n:delay10\r\n/system backup cloud upload-file action=create-and-upload password=password" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/01/2022 start-time=03:00:00


Hapus atau disable untuk user Hotspot yang telah expired menggunakan schedule

 User mikrotik yang telah melewati masa aktip akan terus menerus bisa login, cara mengatasinya tambahkan script berikut di profile hotspot.


1. Masuk ke hotspot, cari tab "user profile", pilih profile yang akan dikonfigurasikan

2. Setelah profile aktip, cari tab script dan tambahkan script berikut :


:local pengguna $user;

:local date [/system clock get date];

:local time [/system clock get time];

:log warning "$pengguna telah login pada jam $time";


{


#tambahkan comment tanggal login pertama kali

 :if ( [ /ip hotspot user get $pengguna comment ] = "" ) do={

  [ /ip hotspot user set $pengguna comment=$date ]

 }


#tambahkan di schedule sesuai masa aktip

#hapus di schedule bila masa aktip selesai


 :if ([/system scheduler find name=$pengguna]="") do={

 /system scheduler add name=$pengguna interval=30d on-event="/ip hotspot user disable [find name=$pengguna]\r\n/ip hotspot active remove [find name=$pengguna]\r\n/ip hotspot user set comment=\"\" [find name=$pengguna]\r\n/system scheduler remove [find name=$pengguna]"


 }

}






 Catatan :

Ganti interval=30d sesuai keperluan anda, misalnya 1d untuk 1 hari


Cara upload dengan git tanpa menyertakan folder tertentu

  Untuk mengupload kode menggunakan Git tanpa menyertakan folder tertentu, Anda perlu menggunakan file khusus bernama .gitignore . File ini...