Category Archives: Information Technology

macOS Big Sur

My 2012 MacBook Air has hit the end of line for OS updates. It was left out of MacOS Big Sur compatibility. Over 7 years and still (quite) strong. The only issue is the cute 4GB RAM.

Macs compatible with macOS Big Sur:

  • 2015 and later MacBook
  • 2013 and later MacBook Air
  • Late 2013 and later MacBook Pro
  • 2014 and later iMac
  • 2017 and later iMac Pro
  • 2014 and later Mac mini
  • 2013 and later Mac Pro

Eh, on a side note, I’ve just upgraded my phone to iPhone 11, coming from iPhone 7 it’s a big upgrade (I’ve been using Nokia 7.1 for about 4 months along the way though). Couldn’t be happier with its performance, camera, and battery life!

Install NGINX Proxy Manager (NPM)

NGINX Proxy Manager

NGINX Proxy Manager (NPM) ini adalah salah satu reverse proxy dari beberapa reverse proxy lainnya yang lebih terkenal di internet seperti traefik, haproxy, dan lain-lain. Tapi menurut saya NPM ini adalah yang paling mudah dideploy. Tampilannya sederhana dan menarik, dengan fitur-fitur yang straight to the point dan tidak membingungkan.

Beberapa fitur yang paling sering dipakai antara lain:

  1. Proxy Host
    Proxy Host ini akan menjadi entry point setiap web service yang akan diforward. Di sini kita bisa menambahkan SSL secara otomatis untuk semua domain web service menggunakan Letsencrypt, dan mengaktifkan NGINX caching.
  2. Redirection Host
    Redirection Host akan melakukan redirect seluruh request yang datang untuk suatu domain, dan melakukan forward ke domain yang lainnya. Fitur ini berguna misal kita punya domain lama yang masih ada indexnya di Google, dan kita ingin agar seluruh pengunjung yang menuju domain lama tersebut ke domain yang baru.
  3. Stream
    Salah satu fitur yang relatif baru dari NGINX. Stream akan melakukan forward secara langsung untuk protokol TCP atau UDP ke komputer yang lain. Kalau misal kita punya server dengan DDOS protected IP, akan sangat berguna sekali. Misal untuk melindungi game servers, atau FTP dan SSH server.

NPM berbasiskan Docker container. Jadi, bagi orang yang sangat awam dengan Docker seperti saya, catatan yang dibuat ini akan membantu saya dan (semoga) juga orang lain untuk memulai dan mengingatnya.

Tutorial ini menggunakan distribusi Linux Ubuntu 18.04. Tapi karena Docker-based, jadi seharusnya bisa menggunakan Distro linux apa saja.

Prerequisite yang harus diinstall adalah Docker dan Docker-Compose. Cara menginstall Docker ada di sini, sedangkan cara menginstall Docker-Compose ada di sini.

Setelah semua diinstall lalu update dan bersihkan distro dengan cara ini (asumsi semua command dilakukan dengan user root):

apt update
apt upgrade
reboot
apt autoremove

Sekarang saatnya kita menginstall NPM.

mkdir npm
cd npm

Buat dua file konfigurasi, yaitu config.json dan docker-compose.yml

touch config.json
touch docker-compose.yml

Jadi, isi dalam folder npm akan ada dua file ini:

[email protected]:~/npm# ls -lh
total 16K
-rw-r--r-- 1 root root 2.3K Jun 1 22:52 config.json
-rw-r--r-- 1 root root 637 Jun 2 16:03 docker-compose.yml

Edit kedua file itu dengan vim atau nano atau terserah, untuk config.json isinya seperti ini:

{
"database": {
"engine": "mysql",
"host": "db",
"name": "npm",
"user": "npm",
"password": "npm",
"port": 3306
}
}

sedangkan docker-compose.yml isinya seperti ini:

version: "3"
services:
   app:
      image: jc21/nginx-proxy-manager:latest
      restart: always
      ports:
         - 80:80
         - 81:81
         - 443:443
      volumes:
         - ./config.json:/app/config/production.json
         - ./data:/data
         - ./letsencrypt:/etc/letsencrypt
      depends_on:
         - db
      environment:
      # if you want pretty colors in your docker logs:
      - FORCE_COLOR=1
db:
   image: mariadb:latest
   restart: always
   environment:
      MYSQL_ROOT_PASSWORD: "npm"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "npm"
      MYSQL_PASSWORD: "npm"
   volumes:
      - ./data/mysql:/var/lib/mysql

Masih di dalam folder npm, ketikkan perintah ini untuk mendownload dan membuat containernya:

docker-compose up -d

Setelah satu atau dua menit, kita akan punya fully working NGINX manager. Bisa diakses di alamat http://ala.mat.ip.address:81 atau http://hostname:81.

Login dengan username [email protected] dan password changeme

Developers site – https://github.com/jc21/nginx-proxy-manager – all credit goes to him.

Install wireguard-go pada OpenVZ

Wireguard sudah terbukti jauh lebih cepat dan ringan dibandingkan solusi VPN lain seperti OpenVPN, IPSEC, dll. Untuk menginstall Wireguard server diperlukan virtualisasi sejenis KVM karena harus menggunakan/menginstall kernel module tertentu.

Ternyata untuk server OpenVZ yang ngga bisa menginstall kernel module, bisa menggunakan Wireguard-Go. Disclaimernya sih Wireguard-Go ini speed nya lebih rendah dibanding Wireguard, dan berdasarkan hasil percobaan salah satu user reddit, speednya ngga bisa lebih dari 90Mbps. ( ( ( 90 Mbps! ) ) ) Emang seberapa kencang sih koneksi internet di rumah atau HP kamu? 😀

Secara garis besar untuk menginstall Wireguard-Go di OpenVZ adalah seperti ini:

Continue reading

Incoming search terms:

  • instal wireguard di openvz

Setting Pi-Hole sebagai recursive DNS server

Pi-Hole

Sebagai pengguna internet aktif, saya selalu menggunakan VPN baik itu di HP, PC, koneksi selular, maupun WiFi (rumah dan kantor). Selain untuk peace of mind karena koneksi saya kontrol sendiri, VPN tersebut juga dikombinasikan dengan Pi-Hole DNS server untuk menghilangkan iklan jadi bisa browsing dengan nyaman dan ringan.

Cara menginstall Pi-Hole DNS server gampang banget, bisa dilihat langsung di websitenya. VPN menggunakan Wireguard atau OpenVPN, dengan tutorial di sini dan sini.

Nah ada kalanya karena alasan privasi, saya mau fully anonymous ketika berselancar, dengan cara tidak menggunakan public DNS resolver seperti Google, Cloudflare, dan OpenDNS. Client akan langsung mengirimkan query ke DNS root servers melalui recursive DNS server. Istilah kerennya sih, mencegah DNS leaking. Cuma ada satu kekurangannya, yaitu untuk domain yang baru pertama kali di-resolve, mungkin akan sedikit lebih lambat beberapa milliseconds karena path yang dituju lebih panjang.

Continue reading

Install OpenVPN Multi Port

OpenVPN adalah salah satu aplikasi Virtual Private Network (VPN) open source yang menggunakan protokol khusus, dan mudah untuk dikonfigurasi atau kustomisasi. Ngga seperti protokol VPN lain seperti L2TP/IPSEC, PPTP, dll yang konfigurasinya cukup rigid, dengan OpenVPN kita bisa bebas mengatur protokol TCP/UDP, port, termasuk jenis enkripsi yang digunakan.

Saya pribadi menggunakan OpenVPN hanya untuk keperluan bypass restriksi oleh ISP, routing/bandwidth internasional yang lebih baik, serta untuk menghapus iklan karena VPN tersebut saya kombinasikan dengan Pi-Hole DNS server (artikel menginstall Pi-Hole DNS server mungkin akan saya tulis terpisah). Oleh karena itu, enkripsi/cipher dan kompresi yang secara default aktif di OpenVPN akan saya disable. Gunanya supaya ngga ada overhead/CPU usage yang tinggi.

Tutorial kali ini dilakukan pada Linux Ubuntu 18.04 menggunakan script yang sudah dibuat oleh Nyr, dengan sedikit modifikasi sesuai kebutuhan:

  • UDP pada port 8888
  • TCP pada port 9999
  • Cipher disabled
  • Compression disabled
  • DNS menggunakan Cloudflare 1.1.1.1

Cekidot ghaes..

Continue reading