Tampilkan postingan dengan label Linux. Tampilkan semua postingan
Tampilkan postingan dengan label Linux. Tampilkan semua postingan

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi data HTTP selama proses transmisi dengan menggunakan sertifikat dan/atau key SSL. Karena tidak sembarang sertifikat yang dapat dikenali oleh browser, maka umumnya kita harus membeli sertifikat tersebut ke penyedia sertifikat SSL dan biasanya masa berlaku SSL tersebut adalah 1 tahun.

Alternatif versi gratisnya adalah dengan menggunakan Let's Encrypt  (artikel ini jauh dari pembahasan SSL dan Let's Encrypt). Sayang sekali Let's Encrypt hanya memberikan durasi waktu kurang lebih 3 bulan dalam satu periode permintaan sertifikat. Masalah ini yang menjadi latar belakang bagaimana kita bisa mengetahui tanggal kadaluarsa domain dan memberikan semacam alert pada hari yang telah ditentukan sebelum jatuh tempo.

Perbedaan :- dan := pada Bash Scripting

Sebagaimana yang kita tahu bahwa Bash merupakan jembatan dimana kita bisa memberikan perintah terhadap sistem operasi. Jika kita seorang Sysadmin, NOC atau seorang DevOps maka wajar saja jika orang bertanya, "tau Bash ngga?" dan pasti dijawab, "udah makanan sehari-hari". Bash ini cukup membantu jika kita sedang berurusan dengan otomatisasi pada sistem operasi, atau instruksi sistematis.

Seiring waktu Bash sudah menjadi lebih dari console command, bahkan sudah menjadi scripting language. Beberapa aspek yang dapat dilihat Bash sebagai scripting language adalah memiliki variabel, struktur kontrol dan percabangan. 

Saat melakukan deklarasi atau inisialisasi variabel adakalanya kita membutuhkan default value. Default value ini sering digunakan saat user tidak menginputkan nilai atau nilai tersebut memang harus ada sebelumnya walaupun sifanya inputan (mandatori). Anda dapat menggunakan notasi :- (titik dua, minus) atau := (titik dua, sama dengan). Lantas apa perbedaannya?

Menjalankan Perintah Bahasa Pemrograman Lain Pada Bash




Saat kita sedang membangun sebuah runner/script menggunakan bahasa Bash, ada kalanya kita membutuhkan sebuah fitur yang hanya ada pada bahasa pemrograman lain. Misalkan saja saya ingin terhubung ke OpenVPN management console dan mengeksekusi perintah status di satu waktu. Sejauh yang dapat saya pahami, hal tersebut dapat dicapai menggunakan bahasa pemrograman Python.

MikroTik Dynamic Queue pada User FreeRADIUS | Atur Bandwidth Secara Otomatis



 Di artikel sebelumnya, telah dijelaskan mengenai atribut MikroTik-Group (FreeRADIUS Group ft RouterOS HotSpot User Profile) yang dapat digunakan oleh FreeRADIUS untuk menyesuaikan user profile yang ada pada MikroTik. User profile pada fitur hotspot juga memiliki parameter rate limit yang berguna untuk membuat dynamic queue.

Pi-Hole - The real power of ads-block

(sumber: https://pi-hole.net)

1. Iklan.. should I?

Siapa yang tidak tergiur dengan iklan (ads) ? Bagaimana tidak tergiur jika anda berhasil membuat web dengan ranking cukup tinggi dengan keyword populer. Memang mungkin membutuhkan perjuangan lumayan besar di awal. Namun, jika sudah berhasil ads bisa menjadi pasive income untuk anda.

Jika anda berada di posisi itu memang enak. Namun pernahkah anda berada di posisi penikmat konten? Penikmat konten anda akan sangat menghargai jerih payah anda dengan membiarkan ads tampil sebagai bentuk terima kasih. Namun beberapa pengunjung (visitor) juga kesal dan bisa jadi enggan mengunjungi web anda jika ads yang anda pasang sangat banyak dan menggangu (terutama yang menggunakan pop-up).

Login SSH tanpa Password | SSH Key Pair Authentication



Jika anda seorang sysadmin, pasti nggak asing dengan SSH. Ya, SSH adalah sebuah remote shell yang mempunyai jalur koneksi aman. Sebagaimana pada umumnya, setiap akses shell pastilah memerlukan kredensial (e.g username & password ) agar kontrol terhadap mesin bisa aman.

Live Streaming ke Banyak Media Sosial



Beberapa dekade terakhir, banyak sekali para gamer yang "nyambi" cari uang dengan melakukan live stream di media sosial terutama Facebook.

Sebenarnya saya juga mulai kesel karena para fans live streamer sering membagikan live streaming-nya ke grup Facebook. Sehingga grup Facebook yang awalnya diperuntukkan sebagai media diskusi malah jadi ajang pencarian views. Spam dan annoying banget.

SSH Port Forwarding | Fitur Joss yang Mungkin Belum Anda Ketahui



Beberapa praktisi IT biasanya membutuhkan IP publik agar perangkatnya dapat diakses dari jarak jauh (remote acccess). Banyak sekali kasus perangkat remote tersebut terhubung dengan internet yang memiliki IP private (dibelakang NAT) atau IP dinamis. (Berkaitan dengan NAT, IP private dan dinamis, silahkan telusuri lebih lanjut di Wikipedia)

Remote Desktop Protocol (RDP) pada Linux OpenVZ



Dulu sekitar tahun 2013 saya sempat menjadi fansub (orang yang ngasih subtitle) anime Detective Conan. Dan bagian paling susah itu adalah men-download film aslinya, kemudian mengupload-nya lagi. Kenapa jadi bagian paling susah? Karena jaman dulu masih mikir untuk beli paket data buat download dan upload. Kadang yang di-upload juga bukan cuman satu file, melainkan 4. Karena satu episode bisa dijadiin 4 resolusi yaitu 360p, 480p, 720p dan 1080p. Belum lagi kecepatan internetnya yang empot-empotan.

Watch | Monitoring Output Secara Dinamis



Pada dasarnya kebanyakan dari aplikasi Linux yang berbasis command line (terminal) akan menghasilkan output pada saat itu juga. Sehingga apabila terjadi pergantian kondisi, maka anda harus memberikan perintah itu lagi untuk mengetahui hasil perubahannya. Misalkan: Anda menjalankan perintah ls -l pada folder A. Di dalamnya terdapat 3 file yaitu x,y,z. Kemudian, anda mengmbuat folder baru yaitu s,t,u. Untuk mengetahui perubahan yang terjadi, anda harus menjalankan perintah ls -l. Ini adalah contoh yang sederhana, karena memang biasanya dalam sekali waktu orang jarang sekali membuat banyak folder baru kemudian memeriksanya. Bagaimana jika kita ingin memantau sesuatu yang berkaitan dengan counter yang update secara real-time? IPtables misalkan?

Knock.. Knock | Who's there? - Linux Squence Port Knocking



Beberapa waktu yang lalu karena sebuah keisengan, saya mendapatkan kunjungan tak diharapkan. Keisengan yang saya lakukan adalah membuat user pada Linux yaitu test dengan password test. Saya tidak habis pikir jika server seharga Chiki-Chiki yang nggak ada apa-apanya ini bakalan kena brute force. Itu pikiran awal saya. Tapi setelah saya lihat, resource server milik saya hampir habis terutama pada CPU-nya. Setelah menjalankan perintah htop barulah kelihatan. Ternyata user test tadi sedang menjalankan script yang diduga sebagai script mining. Karena yang menjalankan script tersebut adalah user test, besar kemungkinan pelaku mendapatkan username dan password menggunakan metode acak (brute force).

FreeRADIUS dan Attributes



Pada dasarnya, parameter yang dibutuhkan saat autentikasi pada RADIUS hanyalah username dan password. Saat melakukan verifikasi terhadap suatu layanan melalui RADIUS, dua parameter tersebut akan dikirimkan ke RADIUS server dari NAS. Apabila kedua kombinasi tersebut cocok, maka RADIUS server akan mengirimkan respon bahwasanya user berhasil diautentikasi.

Instalasi FreeRADIUS ft. daloRADIUS | [UPDATE - Study case pada Debian Buster]

NOTE:
Artikel ini telah mengalami perubahan. Sebelumnya, versi sistem operasi yang saya gunakan adalah Debian Wheezy. Dengan menggunakan Debian Buster beberapa versi package juga ikut berubah. Update package akan saya beri warna font merah



Remote Authentication Dial-In User Service atau sering disebut dengan RADIUS adalah sebuah protokol jaringan yang melayani administrasi pengguna dalam penggunaan jaringan secara terpusat. Aspek pelayanan yang diberikan meliputi Authetication, Authorization dan Accounting yang kemudian disingkat AAA atau triple A. RADIUS akan sangat dibutuhkan oleh provider skala besar, misalkan Internet Service Provider (ISP). Untuk platform MikroTik, RADIUS sering dikenal dengan userman (user manager) karena tugasnya memang manajemen pengguna.

Instalasi Apache dari Source (Debian Version)

Apache merupakan sebuah webserver yang banyak sekali digunakan. Kurang lebih 65% web server yang berjalan di seluruh dunia menggunakan Apache. Hal yang membuatnya menduduki peringkat teratas penggunaan adalah dia (Apache) memiliki sejarah yang panjang karena memang sudah dikembangkan sejak tahun 1995. Pesaingnya saat ini adalah Nginx (red: engine X) yang memiliki market share sebesar 20%.

Pemasangan aplikasi Apache webserver dapat menggunakan binary package melalui package manager atau compile secara manual. Compile secara manual memang dikenal lebih rumit dari pada melalui package manager. Namun ada beberapa keuntungan ketika sebuah aplikasi dipasang dan di-compile secara manual, diantaranya:

  1. Aplikasi yang dipasang adalah aplikasi dengan versi terbaru. Berbeda dengan aplikasi berbasis package yang akan membutuhkan sedikit banyak waktu untuk perilisan update.
  2. Dapat memilih fitur-fitur yang akan diterapkan pada aplikasi tersebut

Dengan kata lain, apabila Apache webserver ingin dalam kondisi paling update, maka harus dilakukan pemasangan dengan compile secara manual. Berikut adalah langkah-langkah compile Apache webserver secara manual:
  1. Sofware Requirement
    - Apache via Github atau Official
    - APR (Apache Portable Runtime)
    - APR-Utils
    - PCRE (Perl Compatible Regular Expressions) - site 1 | site 2
  2. Ekstrak APR
    Buat sebuah direktori (misalkan /tmp/apache2) dan pindahkan file yang telah di download ke dalamnya. Kemudian ekstrak file utama Apache pada /tmp/apache2. Untuk file APR, ekstrak ke dalam direktori /tmp/apache2/apr dan APR-Utils ke dalam direktori /tmp/apache2/apr-util. 
  3. Ekstrak PCRE
    Buat sebuah direktori (misalkan /tmp/PCRE) dan pindahkan file PCRE ke dalamnya. PCRE merupakan depedensi dari Apache, maka PCRE harus di-compile terlebih dahulu. Masuk ke direktori /tmp/PCRE kemudian berikan perintah berikut:
    ./configure --prefix=/usr/local/pcre
    make j -5
    make j -5 test
    make j -5 install
  4. Let's COMPILE!!!
    Masuk ke direktori Apache yang ada di dalam /tmp/apache2. Berikan perintah berikut:
    ./configure --with-included-apr --with-pcre=/usr/local/pcre --enable-layout=Debian --with-mpm=prefork --prefix=/usr/local/apache2 --with-program-name=apache2 --enable-so --enable-mods-shared=all

Artikel ini masih dalam penulisan lebih lanjut. Dari pada tidak dirilis, mungkin lebih baik jika dirilis sambil dikembangkan lebih lanjut.









Konfigurasi OpenVPN pada Debian Jessie (Part II)


Artikel ini merupakan lanjutan dari posting sebelumnya. Posting tersebut wajib dilihat, karena konfigurasi berikut ini bergantung pada pembuatan file kriptografi di artikel tersebut. Silahkan melihatnya terlebih dahulu pada LINK INI

Konfigurasi OpenVPN pada Debian Jessie (Part I)



Virtual Private Network (VPN) merupakan jenis jaringan virtual dimana penguna dapat menggunakan fasilitas antar jaringan publik seolah-olah pengguna berada di jaringan lokal tersebut.

Misalkan, saya mempunyai 2 kantor yang berbeda lokasi. Masing-masing kantor mempunyai koneksi internet. Karakteristik yang sangat umum sekali pada tipe jaringan saat ini adalah, setiap komputer lokal yang terhubung ke internet akan melewati firewall untuk dilakukan masquerading. Sehingga, akses langsung dari jaringan publik ke komputer tersebut tidak diperbolehkan. Selain itu, IP public yang ditawarkan oleh Internet Service Provider (ISP) biasanya berupa IP dinamis.

From Mini Router to Mini Server



Sekitar 2 tahun yang lalu saya menemukan sesuatu yang menarik hati saya. Sedikit unik, karena mungkin di area kampus saya jarang atau mungkin tidak ada yang pernah ngomongin soal itu. Ya, hal unik itulah yang kemudian saya tekuni hingga setahun lebih. Hal unik itu bernama OpenWRT

Deteksi Netcut (Atau ARP Poisoning) Menggunakan Wireshark Pada Kali Linux



Beberapa minggu ini, saya merasa terganggu sekali dengan adanya gejala pada jaringan saya di kos. Kalo ngomongin hipotesa sih punya, tapi karena saya dituntut untuk tidak su'udzon akhirnya saya tetep positif dan memikirkan segala kemungkinan (walaupun sebenernya, "su'udzon" saya tidak saya hilangkan). Beberapa hari setelah tetap berpikir positif, akhirnya saya ngalah dan menyerahkan segalanya pada naluri saya, yang pada saat itu lebih milih "su'udzon" - Ampunilah hambamu Tuhan.... :'( .

Memperbaiki Gagal Login Kali Linux Sana

Sana... Nggak bisa langsung pakek

Beberapa hari yang lalu, saya telah mengulas sedikit tentang Kali Linux Sana. Sana merupakan codename dari versi terbaru dari Kali Linux. Setelah melakukan upgrade kita harus melakukan beberapa adaptasi dengan user interface nya. Selain itu, kita akan dihadapkan dengan sedikit masalah, salah satunya yaitu tidak bisa login menggunakan GDM.

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi ...