22 Jun 2017

Akhirnya, itu di sini. Debian 9. Stretch. Apa yang saya rasakan ketika versi ini dirilis untuk publik? Sebagai pengguna rata-rata, artinya, menggunakan sistem operasi untuk kegiatan sehari-hari yang sifatnya administratif, rasanya sama sama ketika saya mencoba menggunakan distribusi lain, seperti versi sebelumnya, Debian 8 Jessie atau OpenSUSE atau Ubuntu dan atau atau lainnya. Bisa jadi berbeda, bagi pengguna GnU/Linux dengan pemahaman lebih baik, misal bagi Administrator Sistem, bagi para pengembang perangkat lunak, bahkan bagi para pengembang sistem operasi.

Tapi bukan itu yang mau saya bahas pada tulisan kali ini. Tepatnya, lebih kepada kelakuan yang berbeda dari versi sebelumnya. Saya belum sempat menelusuri, apakah kelakuan ini sudah masuk ke dalam daftar kutu atau sebetulnya bahkan bukan kutu sama sekali.

Perlengkapan pada mesin yang saya gunakan adalah:

  1. Citra live Debian 9 Stretch yang saya unduh dari sini, https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/
  2. Perangkat lunak VirtualBox versi 5.1.22
  3. Ubuntu Mate 16.04 sebagai OS host
Proses pemasangan berjalan dengan lancar. Setiap proses dilalui dengan baik termasuk proses ketika pemasang menanyakan password untuk akun root. Sebagai informasi, Debian termasuk salah satu distribusi yang menggunakan dua akun ketika proses pemasangan. Akun root sebagai administrator atau pengguna super, kedua adalah akun biasa yang kita pilih nama akunnya sesuai dengan kesukaan masing-masing. Kembali ke penanyaan password untuk akun root, tidak ada pesan galat apapun ketika proses ini selesai.

Dengan asumsi bahwa tidak adanya pesan galat selama proses pemasangan artinya pemasangan berjalan dengan lancar, maka pertama kali yang saya coba adalah akses akun pada terminal. Untuk memanggil akun root, saya biasa menggunakan perintah "su." Di sinilah pesan galat pertama kali keluar. Authentication failure. Saya merasa sudah memasukkan kata kunci yang benar. Setelah dicoba beberapa kali, tetap saja muncul pesan galat yang sama.

Bagaimana dengan perintah "sudo -s."? Perintah ini biasanya saya gunakan untuk memanggil akun biasa dengan fungsi administrasi. Muncul pesan galat yang berbeda. Alasannya, karena akun yang kita panggil, belom masuk ke dalam daftar sudoers. Tapi ini beda, saya akan ceritakan pada tulisan yang berbeda.

Kembali ke pesan galat Authentication failure, saya bahkan mencoba memasang ulang Debian 9 dan mencatat password akun root yang saya buat. Hasilnya? Tetap muncul pesan galat yang sama. Lantas, bagaimana bisa mengeksekusi perintah-perintah yang memerlukan akses administratif, sementara masuk ke dalam akun dengan akses administratif pun tidak bisa.

Akhirnya, coba cari jawaban via Google. Cukup lama, sampai akhirnya mendapatkan titik terang lewat tulisan pada blog ini, http://debian-bits-and-snips.blogspot.co.id/2011/07/root-password-recovery.html. Tautan tersebut dimuat pada salah satu forum diskusi daring. Saya lupa untuk menyimpan tautan forum diskusinya. Pada tautan tersebut, disebutkan bahwa dimungkinkan untuk merubah password akun root. Caranya?

Caranya begini. Nyalakan terlebih dahulu mesin yang telah terpasang Debian 9 atau mula-ulang sistem operasinya sampai muncul tampilan grub seperti gambar di bawah:



Seperti yang terlihat pada gambar, pilih pada menu yang ter-highlight, yang selanjutnya akan membawa kita pada menu berikutnya, seperti gambar di bawah:


Kemudian pilih menu yang ter-highlight, seperti yang dicontohkan oleh gambar dan diikuti dengan menekan tombol "e" pada papan kunci untuk mulai menyunting perintah sebelum boot ke dalam sistem operasi.

Setelah menekan tombol "e" maka akan muncul tampilan perintah seperti gambar di bawah:


Arahkan kursor pada baris yang dimulai dengan kata "linux" lalu tekan tombol "end" pada papan kunci untuk pergi ke akhir baris. Lantas pada akhir baris tambahkan satu spasi, lalu masukkan perintah "init=/bin/bash rw." Setelah memasukkan perintah tersebut, tekan kombinasi kunci ctrl+x atau F10 untuk boot ke dalam sistem. Berdasarkan tulisan di blog ini [1], baris perintah tadi akan membawa kita ke dalam lingkungan /bin/bash, alih-alih ke dalam lingkungan init yang biasa, seperti pada gambar di bawah:


Setelah masuk, seperti pada gambar di atas, masukkan perintah "passwd." Lalu kita diminta untuk memasukkan password yang baru. Segera masukkan password yang baru, setelah itu boot ulang sistem operasi dengan memasukkan perintah "reboot." Kalau melihat gambar di atas, perintah "reboot" sepertinya malah mengeluarkan pesan galat. Tambahkan opsi "-f" setelah perintah awal, maka dijamin, sistem akan memula-ulang, automagically.

Setelah memula-ulang dan masuk ke dalam sistem operasi, akhirnya, ketika saya memanggil perintah "su" dan memasukkan password yang baru tadi, hasilnya memuaskan. Akun root berhasil diambil alih ;).

Selamat menikmati.


Bahan bacaan:

  1. http://debian-bits-and-snips.blogspot.co.id/2011/07/root-password-recovery.html
Sumber gambar:
on 22 Jun 2017 04:26 PM

Plessis mengumumkan bahwa dia sudah tidak mau lagi mengelola pemaketan PHP terbaru di Dotdeb. Dia kemudian menyarankan untuk menggunakan repositori dari Sury, seorang pengelola resmi pemaketan PHP dari Debian.

Karena Sury menggunakan HTTPS, jangan lupa pasang dulu transportasi HTTPS untuk APT:

sudo apt install apt-transport-https

Cara menambahkan:

wget -O- https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ jessie main" | sudo tee -a /etc/apt/sources.list.d/php-sury.list
sudo apt update

Selesai. Secara baku, paket PHP yang dipilih adalah 7.1. Namun, Sury menyediakan juga untuk paket PHP 7.0.

on 22 Jun 2017 12:13 AM

20 Jun 2017

postgresql

In MySQL, these are the chants:

sudo mysql --defaults-file=/etc/mysql/debian.cnf
create database mydb;
grant all privileges on mydb.* to myuser identified by 'p@s$W0rd';

On PostgreSQL, the chants are:

sudo -u postgres createuser -DAP myuser
sudo -u postgres createdb -O myuser mydb

Very simple actually and Debian by default listen at localhost. Users can connect to its database via port 5432.

Of course, these chants are useful for developing apps. In Production, you should supply a user that can only Read/Write/Update a database. In fact, several frameworks like Laravel could setup another user just to Read the database.

on 20 Jun 2017 11:44 PM

18 Jun 2017

Sejak teknologi A2DP muncul saya belum begitu tertarik untuk mencobanya. Baru kemarin-kemarin saja mulai tertarik untuk mencoba. Hasil dari mencoba menggunakan bluetooth speaker besutan Mifa jadi pengen mencoba merk lain dan yang relatif lebih kecil. Belilah... Xiaomi Bluetooth Speaker Portable yang bentuknya agak imut.

Awalnya memang digunakan di ponsel. Tapi iseng-iseng mencoba dikoneksikan dengan MacbookPro8,1 yang terinstall LinuxMint. Teman-teman menyebut Macbook yang saya gunakan adalah Macbook Bajakakan. Berikut langkah-langkah mengkoneksikan dengan Xiaomi Bluetooth Speaker Portable:
1. Klik pada bagian kanan bawah dengan logo Bluetooth kemudian muncul menu seperti gambar di bawah ini.


2. Pilih Bluetooth Settings maka akan muncul gambar dibawah ini.

3. Klik tanda plus (+) sambil mencari bluetooth sekitar menyala, pilih MI Portable Bluetooth Speaker, klik Continue .

4. Klik Quit, artinya komputer dan Xioami Bluetooth Speaker Portable sudah terkoneksi.

5. Setting Xiaomi Bluetooth Speaker Portable pada bagian Sound Settings.

6. Pilih Headset seperti pada gambar di bawah ini.

7. Anda juga dapat melakukan pengujian suara untuk memastikan suara dari komputer keluar di Xiaomi Bluetooth Speaker menggunakan Test Sound.

8. Setelah suara terdengar saatnya Anda menikmati hiburan favorit.




on 18 Jun 2017 09:34 AM

08 Jun 2017

Saya lupa untuk memasang contoh kalau sudah benar di artikel sebelum ini. Ya, sudah, kalau begitu kita coba saja Laravel dengan SQLite3 sebagai basisdatanya.

Buat Situs Baru

Jalankan perintah berikut:

laravel new situs-sqlite && cd situs-sqlite

Tergantung kecepatan koneksi Anda, Anda bisa mandi dulu. Sudah mandi, ‘kan?

Modifikasi Konfigurasi untuk SQLite3

Ubah berkas .env membuat semua variabel dengan awalan DB_ dan tambahkan variabel untuk SQLite.

sed -i "/DB/d"  .env
echo "DB_CONNECTION=sqlite" >> .env
echo "DB_DATABASE='storage/testdb.sqlite'" >> .env

Buat sebuah basis data baru.

touch storage/testdb.sqlite

Jalankan migrasi.

php artisan migrate

Jalankan peladen Laravel. Untuk kesenangan semata, saya menjalankan pada port yang berbeda.

php artisan serve --host 10.0.2.15 --port 8001

Ya, IP yang aneh itu adalah IP lokal VirtualBox. Saya menggunakan itu agar port-nya dapat diteruskan ke inang. Sehingga, saya bisa mengakses dari peramban saya sendiri.

Kalau benar tampilannya akan seperti berikut:

Laravel first-app.

on 08 Jun 2017 09:22 PM

Laravel bisa dengan PHP 5.6, tetapi lebih baik gunakan versi 7 saja. Versi 7 ada di DotDeb.

Persiapan

Pemasangan repo DotDeb dengan membuat /etc/apt/sources.list.d/dotdeb.list

echo "deb http://packages.dotdeb.org jessie all" | sudo tee -a /etc/apt/sources.list.d/dotdeb.list
echo "deb-src http://packages.dotdeb.org jessie all" | sudo tee -a /etc/apt/sources.list.d/dotdeb.list

Daftarkan kunci  repositori DotDeb dan kemudian perbaharui daftar paket.

wget -O- https://www.dotdeb.org/dotdeb.gpg  | sudo apt-key add
sudo apt update

Pasang Perkakas

Pasang hal-hal remeh.

sudo apt install unzip git

Pasang PHP7.

sudo apt install php-cli php-pgsql php-mysql php-sqlite3 php-mbstring php-xml php-zip

Pasang Composer.

sudo wget https://getcomposer.org/download/1.4.2/composer.phar -O /usr/local/bin/composer && sudo chmod +x /usr/local/bin/composer

Tambahkan PATH untuk Composer.

echo "PATH=\$PATH\:\$HOME/.composer/vendor/bin"  >> ~/.bashrc

Tak perlu keluar:

source ~/.bashrc

Pasang Laravel.

composer global require "laravel/installer"

Selesai.

on 08 Jun 2017 08:30 PM

Debian Jessie memiliki Go versi lawas di repositorinya. Hal ini membuat beberapa aplikasi Go seperti Hydra SSO tidak bisa berjalan. Untuk itu, harus dipasang Go versi manual.

Pertama-tama, pergi ke laman unduh di situs resmi Go. Saat penulisan versi Go yang terbaru adalah 1.8.3. Lalu, salin tautan unduhan untuk dipakai.

Unduh dan taruh Go ke direktori tertentu. Kalau saya, lebih suka di /opt

wget -O- https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz | sudo tar xvfz - -C /opt

Go memerlukan direktori Go untuk pengguna dan direktori Go sendiri untuk bisa dieksekusi. Maka, buatlah berkas /etc/profiles.d/golang.sh yang berisi:

export GOROOT=/opt/go
export GOPATH=$HOME/.go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Selesai.

Oh, iya, supaya tidak usah keluar, langsung saja eksekusi:

source /etc/profile.d/golang.sh

 

on 08 Jun 2017 07:11 PM

29 May 2017

Etcher by resin.io

Arif Syamsudin

Secara tidak sengaja, saya menemukan aplikasi ini ketika mencari-cari alternatif pembakar berkas image di luar kebiasaan yang saya gunakan. Untuk membakar berkas image sistem operasi (ke dalam flash drive) biasanya saya menggunakan perintah dd atau Unetbootin.


Secara prinsip, ya cara kerjanya sama dengan...Unetbootin atau mungkin pembakar berkas image yang lain, yang Anda kenal. Silahkan dicoba loh. Nah, cara memasangnya, bisa langsung unduh aplikasinya di https://etcher.io. Di laman tersebut, Anda bisa menyesuaikan pemasang aplikasinya dengan sistem operasi yang Anda gunakan.

Apabila Anda pengguna sistem operasi GnU/Linux Debian dan atau turunannya seperti Ubuntu, Anda dapat menambahkan repositori Etcher. Untuk menambahkan repositori Etcher:

a. Tambahkan daftar repositori ke dalam berkas /etc/apt/sources.list.d/etcher.list
deb https://dl.bintray.com/resin-io/debian stable etcher
b. Ambil kunci GPG untuk repositori tersebut
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 379CE192D401AB61
c. Perbarui daftar repositori pada mesin kita dan pasang Etcher
sudo apt update
sudo apt install etcher-electron
Bam! There you have it, Etcher! Selamat menikmati.

Bacaan lebih lanjut:

  1. https://etcher.io/
  2. https://github.com/resin-io/etcher#debian-and-ubuntu-based-package-repository-gnulinux-x86x64  

 

on 29 May 2017 11:00 PM

29 Apr 2017

Idenya adalah, bagaimana XAMPP bisa langsung mulai, tanpa harus dimulai secara manual, via terminal. Dengan CentOS 7, cara yang dilakukan adalah:

  1. Pastikan XAMPP-nya sudah terpasang. Atuh kalo belom dipasang, gimana kita ngonfignya;
  2. Setelah dipastikan XAMPP terpasang, silahkan buka terminal untuk langkah selanjutnya;
  3. Sunting berkas rc.local yang ada di dalam direktori /etc. Gunakan aplikasi penyunting paforit Anda. Apakah itu vi, nano, gedit, dslb.;
  4. Pada bagian akhir berkas, masukkan: /opt/lamp/lampp start
  5. Sebelum menyimpan hasil suntingan, perhatikan kalimat ini di dalam berkas rc.local, "please note that you must run chmod +x /etc/rc.d/rc.local to ensure that this script will be executed during boot";
  6. Iya, jadikan perhatian. Karena langkah berikutnya, simpan berkas rc.local yang sudah disunting tadi;
  7. Masuk ke dalam direktori /etc/rc.d, lalu ubah hak akses berkas rc.local. Masih ingat sama yang harus diperhatikan tadi, di nomor 5? Iya, itu maksudnya dari yang harus diperhatikan;
  8. Setelah mengubah hak akses, untuk mencobanya, silahkan mula-ulang sistem operasi Anda;
  9. Masuk ke dalam sistem operasi Anda, buka terminal, dan masukkan perintah ini untuk memeriksa apakah XAMPP sudah berjalan seperti yang Anda inginkan: /opt/lampp/lampp status;
  10. Seperti gambar di bawah, artinya XAMPP sudah berjalan secara otomatis, seperti yang diinginkan.

Oke, semoga bermanfaat ;).
on 29 Apr 2017 04:32 PM
Jadi, ceritanya lagi dan masih bermain-main dengan distro-distro. permainan kali ini dengan CentOS 7. Dipasang pada VirtualBox. Ketika proses pemasangan sudah berjalan dengan baik, dilanjutkan dengan mencoba memasang VirtualBox Guest Additions.

Pemasangan dan dilakukan, namun menemukan kendala dan ketika melihat pesan galat yang diterbitkan, ternyata katanya harus pasang gcc, bla bla bla.

Cari-cari solusinya via google, ketemu ini, https://www.if-not-true-then-false.com/2010/install-virtualbox-guest-additions-on-fedora-centos-red-hat-rhel/. Solusinya manjur dan cespleng ;).

Demikian. Semoga bisa membantu bagi yang membutuhkan.
on 29 Apr 2017 10:38 AM

16 Apr 2017

OK, langsung saja download flag.zip yang di berikan seperti diatas.
Sebelumnya, mari kita cek dahulu flagnya.
$ file flag.png 
flag.png: PNG image data, 960 x 5, 8-bit/color RGBA, non-interlaced

Bisa kita cek lebih dalam lagi file nya dengan binwalk.
$ binwalk flag.png 

DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PNG image, 960 x 5, 8-bit/color RGBA, non-interlaced
253 0xFD Zlib compressed data, default compression
330 0x14A PNG image, 960 x 5, 8-bit/color RGBA, non-interlaced
392 0x188 Zlib compressed data, default compression
469 0x1D5 PNG image, 960 x 5, 8-bit/color RGBA, non-interlaced
---snip---
7514 0x1D5A Zlib compressed data, default compression
8404 0x20D4 PNG image, 960 x 5, 8-bit/color RGBA, non-interlaced
8466 0x2112 Zlib compressed data, default compression
9249 0x2421 PNG image, 960 x 5, 8-bit/color RGBA, non-interlaced
9311 0x245F Zlib compressed data, default compression

Setelah itu estrak file gambarnya menggunakan foremost.
$ foremost -v flag.png 
Foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File

Foremost started at Fri Apr 14 00:57:40 2017
Invocation: foremost -v flag.png
Output directory: /home/darm/CTF/FITHACK/forensic/aw/output
Configuration file: /etc/foremost.conf
Processing: flag.png
|------------------------------------------------------------------
File: flag.png
Start: Fri Apr 14 00:57:40 2017
Length: 82 KB (84177 bytes)

Num Name (bs=512) Size File Offset Comment

0: 00000000.png 330 B 0 (960 x 5)
1: 00000000_1.png 139 B 330 (960 x 5)
2: 00000000_2.png 139 B 469 (960 x 5)
3: 00000001.png 139 B 608 (960 x 5)
4: 00000001_1.png 139 B 747 (960 x 5)
5: 00000001_2.png 139 B 886 (960 x 5)
6: 00000002.png 139 B 1025 (960 x 5)
7: 00000002_1.png 139 B 1164 (960 x 5)
8: 00000002_2.png 139 B 1303 (960 x 5)
9: 00000002_3.png 139 B 1442 (960 x 5)
10: 00000003.png 254 B 1581 (960 x 5)
11: 00000003_1.png 357 B 1835 (960 x 5)
12: 00000004.png 516 B 2192 (960 x 5)
13: 00000005.png 603 B 2708 (960 x 5)
14: 00000006.png 657 B 3311 (960 x 5)
15: 00000007.png 764 B 3968 (960 x 5)
16: 00000009.png 932 B 4732 (960 x 5)
17: 00000011.png 895 B 5664 (960 x 5)
18: 00000012.png 893 B 6559 (960 x 5)
19: 00000014.png 952 B 7452 (960 x 5)
20: 00000016.png 845 B 8404 (960 x 5)
21: 00000018.png 1 KB 9249 (960 x 5)
22: 00000020.png 901 B 10328 (960 x 5)
23: 00000021.png 936 B 11229 (960 x 5)
24: 00000023.png 946 B 12165 (960 x 5)
25: 00000025.png 1 KB 13111 (960 x 5)
26: 00000027.png 795 B 14142 (960 x 5)
27: 00000029.png 927 B 14937 (960 x 5)
28: 00000030.png 976 B 15864 (960 x 5)
29: 00000032.png 726 B 16840 (960 x 5)
30: 00000034.png 895 B 17566 (960 x 5)
31: 00000036.png 983 B 18461 (960 x 5)
32: 00000037.png 1 KB 19444 (960 x 5)
33: 00000039.png 1019 B 20473 (960 x 5)
34: 00000041.png 1 KB 21492 (960 x 5)
35: 00000044.png 1 KB 22760 (960 x 5)
36: 00000047.png 975 B 24130 (960 x 5)
37: 00000049.png 1 KB 25105 (960 x 5)
38: 00000051.png 1 KB 26239 (960 x 5)
39: 00000053.png 954 B 27272 (960 x 5)
40: 00000055.png 1 KB 28226 (960 x 5)
41: 00000057.png 1 KB 29528 (960 x 5)
42: 00000060.png 1 KB 30765 (960 x 5)
43: 00000062.png 1 KB 32207 (960 x 5)
44: 00000065.png 1 KB 33520 (960 x 5)
45: 00000068.png 1 KB 34835 (960 x 5)
46: 00000070.png 1024 B 36058 (960 x 5)
47: 00000072.png 850 B 37082 (960 x 5)
48: 00000074.png 1 KB 37932 (960 x 5)
49: 00000076.png 844 B 39000 (960 x 5)
50: 00000077.png 1 KB 39844 (960 x 5)
51: 00000079.png 1 KB 40899 (960 x 5)
52: 00000081.png 965 B 41927 (960 x 5)
53: 00000083.png 901 B 42892 (960 x 5)
54: 00000085.png 879 B 43793 (960 x 5)
55: 00000087.png 1 KB 44672 (960 x 5)
56: 00000089.png 862 B 45871 (960 x 5)
57: 00000091.png 944 B 46733 (960 x 5)
58: 00000093.png 1 KB 47677 (960 x 5)
59: 00000095.png 1 KB 48788 (960 x 5)
60: 00000097.png 1 KB 50164 (960 x 5)
61: 00000100.png 1 KB 51236 (960 x 5)
62: 00000102.png 1 KB 52302 (960 x 5)
63: 00000104.png 1 KB 53454 (960 x 5)
64: 00000106.png 1 KB 54677 (960 x 5)
65: 00000109.png 1 KB 55882 (960 x 5)
66: 00000111.png 1 KB 57143 (960 x 5)
67: 00000113.png 1 KB 58175 (960 x 5)
68: 00000115.png 1 KB 59223 (960 x 5)
69: 00000117.png 997 B 60313 (960 x 5)
70: 00000119.png 931 B 61310 (960 x 5)
71: 00000121.png 882 B 62241 (960 x 5)
72: 00000123.png 939 B 63123 (960 x 5)
73: 00000125.png 858 B 64062 (960 x 5)
74: 00000126.png 854 B 64920 (960 x 5)
75: 00000128.png 943 B 65774 (960 x 5)
76: 00000130.png 885 B 66717 (960 x 5)
77: 00000132.png 881 B 67602 (960 x 5)
78: 00000133.png 996 B 68483 (960 x 5)
79: 00000135.png 1 KB 69479 (960 x 5)
80: 00000137.png 1 KB 70558 (960 x 5)
81: 00000139.png 1 KB 71664 (960 x 5)
82: 00000142.png 1 KB 72726 (960 x 5)
83: 00000144.png 863 B 73797 (960 x 5)
84: 00000145.png 976 B 74660 (960 x 5)
85: 00000147.png 790 B 75636 (960 x 5)
86: 00000149.png 713 B 76426 (960 x 5)
87: 00000150.png 689 B 77139 (960 x 5)
88: 00000152.png 732 B 77828 (960 x 5)
89: 00000153.png 566 B 78560 (960 x 5)
90: 00000154.png 554 B 79126 (960 x 5)
91: 00000155.png 472 B 79680 (960 x 5)
92: 00000156.png 402 B 80152 (960 x 5)
93: 00000157.png 307 B 80554 (960 x 5)
94: 00000157_1.png 357 B 80861 (960 x 5)
95: 00000158.png 435 B 81218 (960 x 5)
96: 00000159.png 403 B 81653 (960 x 5)
97: 00000160.png 432 B 82056 (960 x 5)
98: 00000161.png 290 B 82488 (960 x 5)
99: 00000161_1.png 287 B 82778 (960 x 5)
100: 00000162.png 139 B 83065 (960 x 5)
101: 00000162_1.png 139 B 83204 (960 x 5)
102: 00000162_2.png 139 B 83343 (960 x 5)
103: 00000163.png 139 B 83482 (960 x 5)
104: 00000163_1.png 139 B 83621 (960 x 5)
105: 00000163_2.png 139 B 83760 (960 x 5)
106: 00000163_3.png 139 B 83899 (960 x 5)
107: 00000164.png 139 B 84038 (960 x 5)
*|
Finish: Fri Apr 14 00:57:40 2017

108 FILES EXTRACTED

png:= 108
------------------------------------------------------------------

Foremost finished at Fri Apr 14 00:57:40 2017

Euw, ternyata banyak juga, ada 108 files yang berhasil di ekstrak.
$ cd output/
$ ls
audit.txt png
$ cd png/
$ l
00000000_1.png 00000002.png 00000012.png 00000029.png 00000047.png 00000068.png 00000085.png 00000104.png 00000123.png 00000139.png 00000154.png 00000161.png
00000000_2.png 00000003_1.png 00000014.png 00000030.png 00000049.png 00000070.png 00000087.png 00000106.png 00000125.png 00000142.png 00000155.png 00000162_1.png
00000000.png 00000003.png 00000016.png 00000032.png 00000051.png 00000072.png 00000089.png 00000109.png 00000126.png 00000144.png 00000156.png 00000162_2.png
00000001_1.png 00000004.png 00000018.png 00000034.png 00000053.png 00000074.png 00000091.png 00000111.png 00000128.png 00000145.png 00000157_1.png 00000162.png
00000001_2.png 00000005.png 00000020.png 00000036.png 00000055.png 00000076.png 00000093.png 00000113.png 00000130.png 00000147.png 00000157.png 00000163_1.png
00000001.png 00000006.png 00000021.png 00000037.png 00000057.png 00000077.png 00000095.png 00000115.png 00000132.png 00000149.png 00000158.png 00000163_2.png
00000002_1.png 00000007.png 00000023.png 00000039.png 00000060.png 00000079.png 00000097.png 00000117.png 00000133.png 00000150.png 00000159.png 00000163_3.png
00000002_2.png 00000009.png 00000025.png 00000041.png 00000062.png 00000081.png 00000100.png 00000119.png 00000135.png 00000152.png 00000160.png 00000163.png
00000002_3.png 00000011.png 00000027.png 00000044.png 00000065.png 00000083.png 00000102.png 00000121.png 00000137.png 00000153.png 00000161_1.png 00000164.png

Setelah melihat gambar hasil dari ekstrakan diatas, kalau dilihat satu persatu isi gambar adalah potongan-potongan gambar yang tidak lain adalah Flag yang kita cari-cari. Terus gimana gabunginnya? Caranya cukup mudah, kita bisa menggunakan tool dari ImageMagick yaitu convert.
$ convert -append *.png out.png

Flag: FIT{6xgwxloxq79ew}
on 16 Apr 2017 07:07 PM
Soal yang diberikan yaitu Trivia, and here you go.

Trivia1 [10]

A bug found in bash causes arbitrary code to be executed remotely
Flag format: FIT{[Capital letters and no spaces]}

Flag: FIT{SHELLSHOCK}


Trivia2 [10]

A dog breed that exists in version 3.0 of SSL.
Flag format: FIT{[Capital letters and no spaces]}

Flag: FIT{POODLE}


Trivia3 [10]

VyOS 1.0.0 - 1.0.5
Flag format: FIT{[Capital letters and no spaces]}

Flag: FIT{HYDROGEN}


Trivia5 [10]

Nickname of SHA-1 collision attack done by Google and CWI.
Flag format: FIT{[Capital letters and no spaces]}

Flag: FIT{SHATTERED}
on 16 Apr 2017 05:56 PM

Seperti yang terlihat pada challenge diatas, langsung saja kita akses pada link url https://look.problem.ctf.nw.fit.ac.jp, dan ternyata tidak ada apa-apa disana. Sesuai dari Hint yang diberikan "Look quickly", saya langsung cek response headers dari website tersebut.


Did you see the flag?
Yes, flag langsung muncul pada response headers yang terletak di set-cookie, tapi disitu terlihat ada URL encoding pada flag, dan gampang saja kita bisa melakukan decode flag melalui situs penyedia layanan URL decode seperti dibawah ini.

Flag: FIT{17_i5_n07_4_c00ki3_t0_3a7}
on 16 Apr 2017 05:50 PM

09 Apr 2017

Secara resmi ponsel yang dapat dipasang Kali NetHunter dapat dilihat pada pranala https://github.com/offensive-security/kali-nethunter/wiki#10-supported-devices-and-roms. Sampai tulisan ini dibuat Xioami Mi4 belum tercatat sebagai ponsel yang dapat dipasang Kali NetHunter. Namun pada pranala https://github.com/offensive-security/nethunter-devices/tree/master/marshmallow ada mesin cancro yang digunakan Xiaomi Mi4 dan Mi3. Kebetulan sampai saat ini Mi4 menggunakan MIUI 8.2.x yang berbasis Android M.

+fazlur rahman sudah memulai terlebih dahulu melakukan pemasangan di perangkat Xiaomi. Cara saya agak sedikit berbeda yang dilakukan oleh +fazlur rahman dan semua saya lakukan menggunakan LinuxMint. Saya memulai dari direktori Download:
1.   Ponsel sudah dalam kondisi rooted
2.   Hak akses pengembangan disesuaikan
3.   Untuk jaga-jaga, sudo python -m pip install pyopenssl pyasn1 ndg-httpsclient
4.   git clone https://github.com/offensive-security/kali-nethunter.git
5.   cd kali-nethunter/update/data/app/
6.   adb install Term-nh.apk
7.   adb install nethunter.apk
8.   cd ~/Download
9.   Unduh, wget -c https://images.offensive-security.com/https://images.offensive-security.com/kalifs-armhf-full.tar.xz
11. Pastikan hak akses pada MIUI sudah diperkenankan semuanya
12. mv kalifs-armhf-full.tar.xz kalifs-full.tar.xz
13. adb push kalifs-full.tar.xz /sdcard/
14. Jalankan aplikasi NetHunter pada ponsel
15. Ikuti petunjuk pada pilihan Kali Chroot Manager

Pada prinsipnya Kali NetHunter bisa berfungsi di Xiaomi dengan MIUI-nya namun saya belum bisa memanfaatkan maksimal karena terkendala cukup banyak seperti kapasitas internal memory dan terbentur dengan sistem keamanan MIUI yang menurut saya cukup ketat. Suatu saat kalau memang benar-benar longgar dan memiliki perangkat yang sesuai rekomendasi saya akan ngulik lagi.





on 09 Apr 2017 11:38 PM

29 Mar 2017

Setelah memasang ulang sisop pada laptop yang saya gunakan, waktunya oprak oprek lagi.

Ceritanya mau masang alat konversi data hasil olahannya Ido Alit yang bisa dilihat di sini:

https://github.com/idoalit/converter

Alat pengkonversi ini menggunakan alat yang dibuat oleh Hendro Wicaksono yaitu, Persneling:

https://github.com/hendrowicaksono/persneling

Nah, paket aplikasi yang diperlukan untuk menjalan aplikasi konversi di atas adalah composer. Karena komponen yang harus dijalankan pertama kali setelah klon data adalah:

$ composer install

Pada sisop yang saya gunakan, ternyata ada masalah yang terjadi yaitu:

"...the requested PHP extension dom is missing from your system."

Lengkapnya begini:

buitenzorg812@theminion:/var/www/html/converter$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/phpunit 4.8.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.6 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.5 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.35 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.34 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.33 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.32 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.31 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.30 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.29 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.28 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.27 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.26 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.25 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.24 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.23 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.22 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.21 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.20 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.19 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.18 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.17 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.16 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.15 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.14 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.12 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.11 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.10 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 4.8.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - Installation request for phpunit/phpunit 4.8.* -> satisfiable by phpunit/phpunit[4.8.0, 4.8.1, 4.8.10, 4.8.11, 4.8.12, 4.8.13, 4.8.14, 4.8.15, 4.8.16, 4.8.17, 4.8.18, 4.8.19, 4.8.2, 4.8.20, 4.8.21, 4.8.22, 4.8.23, 4.8.24, 4.8.25, 4.8.26, 4.8.27, 4.8.28, 4.8.29, 4.8.3, 4.8.30, 4.8.31, 4.8.32, 4.8.33, 4.8.34, 4.8.35, 4.8.4, 4.8.5, 4.8.6, 4.8.7, 4.8.8, 4.8.9].

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/5.6/cli/php.ini
    - /etc/php/5.6/cli/conf.d/10-mysqlnd.ini
    - /etc/php/5.6/cli/conf.d/10-opcache.ini
    - /etc/php/5.6/cli/conf.d/10-pdo.ini
    - /etc/php/5.6/cli/conf.d/20-calendar.ini
    - /etc/php/5.6/cli/conf.d/20-ctype.ini
    - /etc/php/5.6/cli/conf.d/20-exif.ini
    - /etc/php/5.6/cli/conf.d/20-fileinfo.ini
    - /etc/php/5.6/cli/conf.d/20-ftp.ini
    - /etc/php/5.6/cli/conf.d/20-gd.ini
    - /etc/php/5.6/cli/conf.d/20-gettext.ini
    - /etc/php/5.6/cli/conf.d/20-iconv.ini
    - /etc/php/5.6/cli/conf.d/20-json.ini
    - /etc/php/5.6/cli/conf.d/20-mbstring.ini
    - /etc/php/5.6/cli/conf.d/20-mysql.ini
    - /etc/php/5.6/cli/conf.d/20-mysqli.ini
    - /etc/php/5.6/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/5.6/cli/conf.d/20-phar.ini
    - /etc/php/5.6/cli/conf.d/20-posix.ini
    - /etc/php/5.6/cli/conf.d/20-readline.ini
    - /etc/php/5.6/cli/conf.d/20-shmop.ini
    - /etc/php/5.6/cli/conf.d/20-sockets.ini
    - /etc/php/5.6/cli/conf.d/20-sysvmsg.ini
    - /etc/php/5.6/cli/conf.d/20-sysvsem.ini
    - /etc/php/5.6/cli/conf.d/20-sysvshm.ini
    - /etc/php/5.6/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Panjang khan? Iya. Lantas solusinya adalah, dengan memasang paket ini:

  • php5.6-xml; atau
  • php7.0-xml
Silahkan disesuaikan dengan versi php yang digunakan. Karena saya menggunakan PHP 5.6, maka saya memasang yang versi php5.6.

Udah, gitu ajah ;).



on 29 Mar 2017 12:33 PM

12 Feb 2017

Menarik untuk disimak… Meme #1: We have shared software since we have written software. Meme #2: Writing good software is hard work. Meme #3: There is no scale without discipline. Meme #4: Software is inherently dynamic. Meme #5: You always get more than you give. Meme #6: Freeloaders are essential to success. Meme #7: Don’t […]
on 12 Feb 2017 01:01 PM

04 Feb 2017

Mohon maaf jika tulisan dan judul tidak nyambung saya hanya teringat gaya menulis jaman masih SMP. Belajar menulis hasil praktikum di Lab. IPA menurut saya masih bermanfaat sampai saat ini. Hal ini didasari pemilihan Instant Messenger yang cocok untuk sebuah "forum diskusi singkat". Untuk forum diskusi saya lebih menyukai milis atau web forum. Selain itu juga ada pemberitaan yang diduga ada rekayasa dalam sebuah percakapan Instant Messenger. 

A. Alat dan Bahan
Dalam ngoprek kali ini alat dan bahan yang saya perlukan sebenarnya standar dan mudah didapat (apalagi kalau menggunakan Linux). Ada pun alat dan bahan yang saya gunakan sebagai berikut:
  1. Ponsel dengan sistem operasi Android yang telah ter-root.
  2. Kabel data (sebaiknya yang original)
  3. Komputer bersistem operasi Linux
  4. ADB yang terpasang di komputer
  5. Aplikasi Sqliteman yang terpasang di komputer

B. Tujuan
Instant Messenger saat ini banyak sekali tersedia di Playstore. Bisa dikatakan terkadang bingung memilihnya. Namun yang saat ini cukup populer di Indonesia menurut JakPat yang saya kutip dari DailySocial diantaranya Blackberry Messenger, Whatsapp, Line, FB Messenger dan Telegram. Dalam ngoprek  saya tidak menggunakan tidak menggunakan Line. Intinya saya hanya ingin "melihat" pesan yang tertinggal didalam ponsel sesuai kaidah analisis forensik.

C. Langkah Kerja
Dalam tulisan ini saya tidak menjelaskan secara detil tentang mendapatkan barang bukti digital dari  Blackberry Messenger, Telegram, FB Messenger, dan Whatsapp maupun barang bukti elektronik berupa ponsel. Asumsinya bahwa proses pengambilan barang bukti digital sudah memenuhi kaidah akuisisi barang bukti digital secara logikal.
1. Pastikan ponsel dalam kondisi ter-root.
2. Pastikan ponsel dalam mode developer.
3. Pastikan USB debugging telah aktif.
4. Saya tancapkan kabel data antara ponsel dan komputer ber-Linux kondisinya aman tidak perlu install driver ponsel.
5. Jalankan perintah adb shell.
6. Masuk ke mode administrator ketik su.
7. Membuat direktori dengan perintah, mkdir /sdcarcd/forensik-201702
8. Menyalin barang bukti digital ke direktori /sdcard/forensik-201702

D.  Analisis Barang Bukti Digital
Dengan kondisi ponsel yang ter-root memudahkan dalam mendapatkan barang bukti digital. Semua barang bukti digital disalin ke direktori /sdcard/dorensik-201702. Selanjut barang bukti digital satu per satu disalin ke komputer untuk analisis menggunakan perintah adb pull /sdcard/forensik-201702/nama.db ~/forensik/2017/02/ . Ingat harus satu per satu tidak bisa menyalin secara semua dengan tanda * . Analisis lebih lanjut silakan bisa dipelajari, berikut hanya tangkapan layar dari masing-masing barang bukti digital.
1. Blackberry Messenger
Barang Bukti Digital: master.enc
2. Telegram
Barang Bukti Digital: cache4.db


Memiliki 39 Tabel
3. Whatsapp
Barang Bukti Digital: msgstore.db

Memiliki 18 Tabel
4. FB Messenger
Barang Bukti Digital: threads_db2

Memiliki 15 Tabel
E. Kesimpulan
Ada 2 Instant Messenger yang tidak bisa saya baca isi pesannya yaitu Blackberry Messenger dan Telegram. Whatsapp dan FB Messenger tidak ada enkripsi apapun sehingga sangat mudah dibaca. Sebelum 1 November 2014 Blackbeery Messenger masih bisa dibaca menggunakan BBMPork. Serupa seperti Whatsapp versi terbaru yang tidak terenkripsi. Tidak seperti jaman dulu, Whatsapp relatif sulit dibaca walaupun ada aplikasi tambahan yang dapat membongkarnya seperti Wforensic dan Whatsapp Xtract. Sekedar bonus jika Whatsapp boros media penyimpanan. Whatsapp di ponsel saya hampir "memakan" 1 GB dapat dilihat di gambar berikut.


Harapannya adanya analisis ini Anda bisa bijak memilih dan menggunakan Instant Mesenger. Insya Allah dalam waktu dekat hasil analisis ini akan saya presentasi di Padepokan ASA, waktu dan tempat mohon bisa memantau blog ini.

on 04 Feb 2017 08:00 AM

03 Feb 2017

Ini perbaikan dari tulisan sebelumnya. Masih sama dengan kata kunci terdahulu yaitu Recover MySQL Root Password, Reset MySQL Root Password, Reset Forgotten MySQL Root Password, dan lain-lain. Berikut langkah-langkah mengubah password Mysql yang lupa di Ubuntu 16.04:
1. sudo /etc/init.d/mysql stop
2. sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld ; sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &. Jika sudah muncul tulisan seperti dibawah ini berarti "angin segar".
2017-02-03T07:47:01.759823Z mysqld_safe Logging to syslog.
2017-02-03T07:47:01.763524Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-03T07:47:01.767094Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-03T07:47:01.789149Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

3. Login mysql dengan perintah, mysql -uroot -p dan tekan enter untuk memasukan password-nya.
4. Saat pada konsol mysql jalankan perintah
USE mysql;
FLUSH PRIVILEGES;
SET PASSWORD FOR root@'localhost' = PASSWORD('password_baru_anda');
FLUSH PRIVILEGES;
\q
5. Hentikan proses mysql dengan perintah, ps ax| grep mysql | awk '{print $1}' | xargs kill -9
6. Jalankan mysql dengan perintah, /etc/init.d/mysql start

 Silakan dicoba ulang menggunakan password baru anda.
on 03 Feb 2017 08:09 AM

01 Feb 2017

Sekedar refreshing mainan Wireshark, saat menyimpan hasil "capture" muncul pesan The capture file appears to be damaged or corrupt. Dibuka ulang pesan tersebut masih muncul. Solusinya supaya tidak muncul pesan tersebut maka install pcapfix. Dari Linux Mint cukup unduh dan install menggunakan perintah sudo apt-get install pcapfix.

Menggunakan pcapfix tidaklah sulit cukup mengetikan pcapfix -n namafile.pcapng



on 01 Feb 2017 03:22 AM

19 Jan 2017

HJKL

Fajran Iman Rusadi

As a vim user, I know since a long time ago that it has another key combination to do movement, in addition to the obvious arrow keys: HJKL. They are used as left, down, up, and right keys. They supposed to be convenient to use due to their location at the home row of the keyboard. The place where the hands naturally lay on.

I had been trying to use them but never feel quite comfortable using it. Maybe it's just me who don't "get" it right yet. But this changed since a couple of weeks ago when I decided to change my strategy a little bit.

on 19 Jan 2017 09:36 AM

08 Dec 2016

Some days ago, I wanted to program an ESP8266 module but somehow it sort-of always failed. Small program worked, but soon I added more into it, it started to fail. The upload process will get stuck and sometimes it eventually finished. But still, I could not get the program to run. If I checked through the serial console, I got the following message, or something similar.

ets Jan 8 2013,rst cause:4, boot mode:(3,7)

I also tried to do the connection more properly, by adding pull-up/down resistors and capacitor, but it did not help. Googling did not give the help that I needed until I someone mentioned to check the serial adapter. Could that be the problem?

on 08 Dec 2016 10:20 AM

07 Dec 2016

Beberapa waktu yang lalu saya butuh memprogram modul ESP8266 namun entah mengapa selalu gagal. Setelah coba macem2, sepertinya USB-to-Serial adapter yang saya gunakan itu bermasalah. Saya sudah pesan adapter baru namun butuh waktu lama untuk sampai; dan saya gak sabaran xD Untungnya saya menemukan artikel berisi petunjuk menggunakan Arduino Uno atau Nano untuk memprogram modul ESP8266 dan kebetulan saya punya Arduino Uno dan Nano yang bisa dipakai. Inilah cara yang saya pakai.

Perhatian! Panduan berikut ini BUKAN berisi panduan menggunakan ESP8266 dari Arduino, melainkan panduan untuk memprogram.

Arduino Uno dan Nano itu memiliki USB port yang bisa dipakai untuk memprogram dan keduanya memiliki jalur serial TX dan RX. Ternyata andai Arduino dibuat dalam mode Reset dengan cara menghubungkan RESET ke GND, maka si Arduino akan bertingkah sebagai USB-to-Serial adapter!

Sebelum lanjut, menurut yang saya baca, port Arduino itu bekerja dengan 5V sedangkan ESP8266 itu bekerja dengan 3.3V dan tidak memiliki toleransi sampai 5V. Sehingga sinyal dari Arduino yang dikirim ke ESP8266 berpotensi untuk merusak modul ESP8266 tersebut. Kebetulan saya lupa menyadari hal ini namun untungnya modul ESP8266 saya masih bisa berfungsi dengan baik. Supaya aman kita perlu mengubah sinyal 5V dari Arduino menjadi 3.3V sehingga aman dikonsumsi oleh ESP8266. Salah satu caranya adalah dengan membuat voltage divider.

Voltage Divider

Dengan memakai kombinasi R1 = 1KΩ dan R2 = 2KΩ, kita bisa mendapatkan sinyal 3.3V yang berasal dari 5V.

Hal lain yang perlu diperhatikan adalah bagimana memberi pasokan listrik ke modul ESP8266. Menurut sebuah dokumen, ESP8266 dapat memakai arus listrik sampai 215mA sedangkan Arduino hanya dapat memasok sampai 200mA. Walau besar kemungkinan ESP8266 tidak akan memakai arus sebesar itu ketika diprogram, akan lebih baik jika kita menggunakan sumber listrik yang lain. Menurut eksperimen saya, bread board power supply biasa sudah cukup untuk memenuhi kebutuhan pasokan listrik untuk ESP8266.

Mari lanjut dengan menghubungkan Arduino dengan ESP8266. Buat hubungan sebagai berikut.

  • Arduino TX ke ESP8266 TX
  • Arduino RX ke voltage divider input
  • Voltage divider output ke ESP8266 RX
  • Arduino RESET ke GND
  • Hubungkan semua GND
    • Arduino GND
    • ESP8266 GND
    • Voltage divider GND
    • Breadboard power supply GND
  • Breadboard power supply 3.3V ke ESP8266 VCC
  • ESP8266 CH_PD ke 3.3V via resistor 10KΩ
  • Untuk mengaktifkan mode pemrograman, hubungkan ESP8266 GPIO0 ke GND via resistor 10KΩ

Kalau digambarkan, kira2 akan terbentuk hubungan seperti berikut.

Koneksi ESP8266 dengan Arduino

Setelah semua siap, sambungkan Arduino via USB dan nyalakan breadboard power supply dan modul ESP8266 sudah bisa diprogram. Jika menggunakan Arduino IDE, cukup pilih board ESP8266 dan port USB yg dipakai.

Berdasar pengalaman saya, walau konfigurasi di atas ini sudah bisa berfungsi, kadang2 saya masih menemui kegagalan ketika proses pemrograman berlangsung. Saya belum tahu apa sebabnya namun biasanya setelah saya matikan dan nyalakan lagi si breadboard power supply, proses pemrograman berikutnya bisa berjalan lancar.

Have you tried turning it off and on again?

Selamat mencoba!

on 07 Dec 2016 08:39 AM

Hello world!

Fajran Iman Rusadi

Hi, hello there!
on 07 Dec 2016 08:09 AM

23 Nov 2016

The other day, I had problem accessing an HTTPS site from a Python script. Since I had no time to spend figuring out why (it was for a personal project anyway), I decided to make a reverse proxy using Apache. However, unlike the commonly setup reverse proxy, this one is to make an HTTPS site available as HTTP site.

This is what I needed to put in my Apache config.

<VirtualHost 127.0.0.1:12345>
    ...
    SSLProxyEngine On
    ProxyPass / https://that.secure.site/
    ProxyPassReverse / https://that.secure.site/
    ....
</VirtualHost>

I also had to enable mod_proxy and mod_ssl which can be done easily (on Debian based system) by running the following command

# a2enmod proxy ssl

Then reload or restart Apache

# service apache2 reload

The most important bit in the config above is SSLProxyEngine On. Without this the proxy would not work!

on 23 Nov 2016 09:50 AM

07 Nov 2016

Lastweek when spinning up an AWS Instance, I was greeted with an Official Ubuntu 16.04 image.. naturally I would use this image for the new service we were planning..

As all new services we deploy, we run them on Docker. One practice we do in our AWS Docker setup is to store all images in EBS as /mnt/docker.. I’m not going into details of the advantage of this setup.. but usually it is simply modifying the /etc/defaults/docker file setting DOCKER_OPTS=”-g /mnt/docker” ..

Unfortunately Docker installation did not obey this setting

$ docker info | grep "Root dir"
Root Dir: /var/lib/docker/aufs
Docker Root Dir: /var/lib/docker

even though I have correctly updated /etc/default/docker

$ cat /etc/default/docker | grep DOCKER_OPTS
# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
DOCKER_OPTS="-g /mnt/docker"

For that I modified the docker.service file

$ sudo vim /lib/systemd/system/docker.service

adding the following

EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd://

reloaded systemctl and restarted docker service

$ sudo systemctl daemon-reload
$ sudo service docker restart

and now Docker installation of Ubuntu 16.04 is storing images in /mnt/docker

$ docker info | grep "Root Dir"
Root Dir: /mnt/docker/aufs
Docker Root Dir: /mnt/docker

on 07 Nov 2016 05:31 AM

27 Oct 2016



To upgrade from Ubuntu 14.10 server to Ubuntu 15.04 server, do the following steps.
Install the update-manager-core package if it is not already installed:
sudo apt-get install update-manager-core
Edit the file /etc/update-manager/release-upgrades,
sudo nano /etc/update-manager/release-upgrades
and set Prompt=normal or Prompt=lts as shown below.
# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the release that immediately succeeds the currently-running
#           release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that this option should not be
#           used if the currently-running release is not itself an LTS
#           release, since in that case the upgrader won't be able to
#           determine if a newer release is available.
Prompt=normal

Normal – Check to see if a new release is available. If more than one new release is found, the release upgrader will attempt to upgrade to the release that immediately succeeds the currently-running release.
LTS – Check to see if a new LTS release is available. The upgrader will attempt to upgrade to the first LTS release available after the currently-running one. Note that this option should not be used if the currently-running release is not itself an LTS release, since in that case the upgrader won’t be able to determine if a newer release is available.
As you may know, Ubuntu 15.04 is not a LTS version. So, I entered normal.
Now, it is time to upgrade your server system to latest version using the following command:
sudo do-release-upgrade -d

Follow the on-screen instructions. Reboot the server. 
on 27 Oct 2016 06:01 AM

20 Oct 2016

Sebagai salah satu seller di forum terbesar Indonesia, Kaskus mungkin anda pernah menggunakan fasilitas rekening bersamanya yang diberi nama Brankas.
on 20 Oct 2016 04:41 AM

03 Oct 2016

on the boot, after installing broadcom wireless driver in linux Mint CInnamon Sarah we are stuck on boot. So bugs its on kernel, you just run your live usb or cd again. Change hostname to your hostname on local drive, open your terminal chroot to your local drive

hostname awangga
lsblk
mount /dev/sda2 /mnt
chroot /mnt

and run command :

sudo systemctl mask systemd-backlight@leds\:dell\:\:kbd_backlight.service


on 03 Oct 2016 11:45 PM

28 Sep 2016

Setiap kali Anda menggunakan perintah sudo pada Ubuntu, terminal akan secara default meminta Anda untuk memasukkan password root anda. Hal
on 28 Sep 2016 05:33 AM

01 Sep 2016

Instalasi ZFS di openSUSE Leap 42.1 Selamat!
on 01 Sep 2016 04:42 AM

29 Aug 2016

Hari ini nemuin salah satu vm guest yang menggunakan os solaris 10 di vmware mengalami “intermittent” koneksinya, hal ini menyebabkan user yang akses mengalami akses yang sangat lambat dan putus-putus. Setelah dicermati, ternyata vm guest ini masih menggunakan tipe ethernet “e1000” pada settingannya. Solusinya adalah dengan mengganti tipe ethernet ini menggunakan “vmxnet3”. Cara menggantinya adalah: […]
on 29 Aug 2016 11:57 AM

18 Aug 2016

Bagaimana cara menginstall docker swarm?

Docker swarm default sudah dimasukkan kedalam versi 1.12, kebar baiknya adalah untuk konfigurasinya sangat mudah. Anda tidak perlu bersusah payah melakukan konfigurasi seperti di versi sebelum versi 1.12.

Kali ini saya akan mendemontrasikan betapa mudahnya melakukan setup docker swarm di versi 1.12, pada saat menulis ini saya menggunakan Ubuntu Xenial (16.04 LTS) dan menggunakan repository dari docker. dalam lab ini saya menggunakan lima server dengan dua sebagai manager dan tiga sebagai worker. Dalam penamaan node, sayamenggunakan nama manager-X dan worker-Y untuk menunjukkan fungsi dari node itu sendiri.

Untuk pengaturan IP, pada manager akan dibari IP 192.168.0.11 sampai dengan 192.168.0.99, dan worker akan mempunyai ip mulai dari 192.168.0.101 sampai dengan 192.168.0.254.

Sebelum melakukan konfigurasi docker swarm, silakan install docker dulu pada tulisan saya sebelumnya

Memastikan versi docker

Silakan pastikan bahwa docker anda mempunyai versi 1.12 atau lebih tinggi.

$ docker version
Docker version 1.12.1, build 23cf638

Dari hasil diatas menunjukkan bahwa docker saya adalah versi 1.12.1 sehingga pemasangan akan mudah.

atau jika anda belum memasang docker baik itu di manager maupun di worker, anda dapat menggunakan docker-machine untuk melakukan pemasangan docker-engine. Sebelumnya pastikan bahwa anda dapat login dengan seh key sehingga anda dapat melakukan login dengan passwordless

Untuk melakukan setup sshkey silakan ketik:

$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa.
Your public key has been saved in /home/ubuntu/.ssh/id_ecdsa.pub.
The key fingerprint is:
20:96:c8:f6:5a:5c:cc:cd:8c:33:45:97:de:a3:55:61 ubuntu@localhost
The key's randomart image is:
+--[ECDSA  256]---+
|       .o ..  E. |
| . . + * ..  ..  |
|  + + O +. . .   |
| . + o +  . +    |
|    +   S  o .   |
|   o      .      |
|  .              |
|                 |
|                 |
+-----------------+

Selanjutnya silakan copy ssh key ke mesin manager dan worker dengan perintah berikut:

$ ssh-key-id 192.168.0.11

Anda akan dimintai password untuk login. silakan masukkan password dari user anda

Selanjutnya adalah melakukan pemasangan dengan docker-machine:

$ docker-machine create --driver generic --generic-ip-address=$IP-ADDPRESS \
 --generic-ssh-key ~/.ssh/$KEY --generic-ssh-user $USER manager-1

Contoh bila ingin menginstall manager-1 dengan user ubuntu dan ssh ecdsa contohnya adalah sebagai berikut:

$ docker-machine create --driver generic --generic-ip-address=192.168.0.11 \
 --generic-ssh-key ~/.ssh/id_ecdsa --generic-ssh-user ubuntu manager-1

Silakan ulangi pada manager-2 dan worker1 sampai worker-3, kemudian verifikasi dengan perintah berikut:

$ docker-machine ls
NAME		ACTIVE	DRIVER    	STATE     URL						SWARM	DOCKER    ERRORS
worker-1	-		generic		Running   tcp://192.168.0.101:2376			v1.12.1   
worker-2	-		generic		Running   tcp://192.168.0.102:2376			v1.12.1   
worker-3	-		generic		Running   tcp://192.168.0.103:2376			v1.12.1   
manager-2	-		generic		Running   tcp://192.168.0.12:2376			v1.12.1   
manager-1   *		generic		Running   tcp://192.168.0.11:2376			v1.12.1   

Memulai setup docker swarm

Untuk memulainya, silakan login di node yang bertugas sebiagai manager, dan ketikkan perintah dibawah ini:

$ docker swarm init --advertise-addr 192.168.0.11

Hasilnya:

Swarm initialized: current node (erk63hyz95hy7s1giwd0mjjmp) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-d9a8l921hjyql4mub3oh1117g \
    192.168.0.11:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

hanya itu? ya hanya itu, perintah diatas untuk membuat inisial dari docker swarm di manager.

Verifikasi dengan perintah docker info

$ docker info
Containers: 73
 Running: 0
 Paused: 0
 Stopped: 73
Images: 103
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 592
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge overlay host
Swarm: active
 NodeID: erk63hyz95hy7s1giwd0mjjmp
 Is Manager: true
 ClusterID: 30ty62s2py73okcei9kmr95o5
 Managers: 1
 Nodes: 1

$ docker node ls
ID                           HOSTNAME            STATUS  AVAILABILITY  MANAGER STATUS
erk63hyz95hy7s1giwd0mjjmp *  manager-1			 Ready   Active        Leader

terlihat bahwa docker swarm sudah aktif meskipun hanya satu node yang aktif

Konfigurasi client

Silakan login ke manager-1 untuk mendapatkan toket manager:

$ docker swarm join-token manager
To add a manager to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-0ou18lotoo36mjq0e4s0apuo5 \
    192.168.0.11:2377

Silakan login ke manager-2 dan ketikkan perintah diatas:

$ docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-0ou18lotoo36mjq0e4s0apuo5 \
    192.168.0.11:2377
This node joined a swarm as a manager.

Langkah selanjutnya adalah login ke worker-1 sampai dengan worker-3 dan ketikkan perintah yang didapat saat melakukan inisialisasi docker swarm

$ docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-d9a8l921hjyql4mub3oh1117g \
    192.168.0.11:2377

Verifikasi swarm

Setelah melakukan testing dari semua manager dan node, silakan verifikasi dari manager dengan perintah berikut:

$ eval $(docker-machine env --swarm manager-1)
$ docker info
Containers: 6
 Running: 2
 Paused: 0
 Stopped: 4
Images: 31
Server Version: swarm/1.2.4
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 5
 manager-2: 192.168.10.12:2376
  └ ID: 3KQB:C4DQ:AV46:NX7O:XN6Y:EP24:3XLH:UO4D:5N2R:SDAX:AJR6:CI3T
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:24Z
  └ ServerVersion: 1.12.1
 worker-1: 192.168.10.111:2376
  └ ID: VO22:NU4C:ODDV:R2TL:HVV2:2E4I:MKAW:SBRO:WWFD:T265:HPNY:JKZI
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:37Z
  └ ServerVersion: 1.12.1
 worker-2: 192.168.10.112:2376
  └ ID: AFYB:C2IM:Z276:RWMN:CODJ:SHKM:IFX6:POWT:VZKO:BHVS:UBAQ:QVJC
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:25Z
  └ ServerVersion: 1.12.1
 worker-3: 192.168.10.113:2376
  └ ID: PGC3:TJJR:GCRG:5RKA:Q4N3:LWHF:3TAO:FDD2:TY6F:DOUK:27WS:76MQ
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T20:18:37Z
  └ ServerVersion: 1.12.1
 manager-1: 192.168.10.11:2376
  └ ID: HEN3:HWX4:2XTZ:EL5B:YUK3:JUH2:YZ2N:XD77:OTPW:ZONP:UYVP:MYDG
  └ Status: Healthy
  └ Containers: 2 (2 Running, 0 Paused, 0 Stopped)
  └ Reserved CPUs: 0 / 8
  └ Reserved Memory: 0 B / 8.087 GiB
  └ Labels: kernelversion=4.4.0-21-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:45Z
  └ ServerVersion: 1.12.1
Plugins:
 Volume: 
 Network: 
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Security Options:
Kernel Version: 4.4.0-21-generic
Operating System: linux
Architecture: amd64
CPUs: 24
Total Memory: 40.83 GiB
Name: 6f894401a6f4
Docker Root Dir: 
Debug Mode (client): false
Debug Mode (server): false
WARNING: No kernel memory limit support

Selamat docker-swarm telah terpasang!

Deploy service di swarm

Setelah membuat cluster swarm, kita akan mencoba membuat service di swarm. kita akan membuat nginx di cluster. Silakan login di manager-1

$ docker service create --replicas 3 --name nginx nginx

Berikut adalah hasil dari docker services diatas:

$ docker service ls
ID            NAME   REPLICAS  IMAGE  COMMAND
cp2er0hu010r  nginx  3/3       nginx  

$ docker service inspect nginx 
[
    {
        "ID": "cp2er0hu010rl0qbv0714t8pw",
        "Version": {
            "Index": 21053
        },
        "CreatedAt": "2016-08-18T22:28:01.748449495Z",
        "UpdatedAt": "2016-08-18T22:28:01.748449495Z",
        "Spec": {
            "Name": "nginx",
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "nginx"
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "MaxAttempts": 0
                },
                "Placement": {}
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 3
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause"
            },
            "EndpointSpec": {
                "Mode": "vip"
            }
        },
        "Endpoint": {
            "Spec": {}
        },
        "UpdateStatus": {
            "StartedAt": "0001-01-01T00:00:00Z",
            "CompletedAt": "0001-01-01T00:00:00Z"
        }
    }
]

$ docker service ps nginx
ID                         NAME     IMAGE  NODE			DESIRED STATE  CURRENT STATE          ERROR
8ihthj14i9qitl792vatmrqjj  nginx.1  nginx  worker-1		Running        Running 2 minutes ago  
48eq2nah2txv7yxthk5y3158m  nginx.2  nginx  worker-2		Running        Running 2 minutes ago  
8yv7z3bk25h7jf06yf6y9hivm  nginx.3  nginx  manager-1	Running        Running 3 minutes ago  

Nah mudah bukan? silakan dicoba

Bagaimana cara menginstall Docker-swarm was originally published by at mahyuddin on August 19, 2016.

on 18 Aug 2016 10:39 PM

16 Aug 2016

Memasang Docker di Linux

Mahyuddin Susanto

Bagaimana memasang docker engine di Linux?

Docker pada saat ini sedang naik daun dikarenakan docker sangat mudah dalam pengoperasiannya. Dalam tulisan ini akan dibahas bagaimana cara memasang Docker di Linux.

Persiapan:

  • Linux box, anda bebas menggunakan distro apa saja
  • Distro yang anda gunakan mensupport cgrups dan unionfs

Install perangkat lunak pendukung

Beberapa perangkat lunak yang perlu dipasang saat pemasangan adalah curl atau wget. untuk pemasangan, sialakan mengikuti prosedur pemasangan dari distro anda.

Contoh apabila menggunakan Debian base:

sudo apt-get update
sudo apt-get install -y curl wget

Contoh apabila menggunakan RedHat basei:

sudo yum install -y curl wget

Langkah selanjutnya adalah memasang docker, petunjuk lengkap dari pemasangan docker dapat dilihat di Dokumentasi Docker hanya saja saya jarang mengikuti prosedur tersebut karena bertele-tele :).

Untuk pemasangan docker, anda cukup mengetikkan perintah dibawah ini:

curl -sSL https://get.docker.com/ | sh

atau jika menggunakan wget

wget -qO- https://get.docker.com/ | sh

Pengaturan tambahan

Berikut adapah pengaturan tambahan untuk docker

Menambahkan account ke grup docker

Secara bawaanya, docker hanya bisa dieksekusi oleh root atau menggunakan sudo, untuk mengakalinya anda harus memasukkan account anda ke grup docker. Untuk menambahkan account anda ke grup docker silakan mengeksekusi perintah dibawah ini:

sudo groupadd docker
sudo usermod -aG docker $(whoami)

Kemudian silakan logout dan login kembali, untuk memastikan account anda silakan cek dengan perintah dibawah ini:

id $(whoami)

Penyesuaian pembatasan memory dan swap

Seringkali dalam menjalankan docker, akan menghasilkan pesan seperti dibawah ini:

WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded.

Untuk mengatasi masalah tersebut, silakan sunting berkas /etc/default/grub dan update seperti dibawah ini

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

Bagaimana memasang docker-compose? (tambahan)

Docker compose adalah salah satu peralatan dari Docker yang saya suka. Berikut adalah cara measangan dari docker-compose

mkdir $HOME/bin
curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-$(uname -s)-$(uname -m) > $HOME/bin/docker-compose
chmod +x $HOME/bin/docker-compose

Alternatif lain

Python pip

Docker-compose dapat dipasang menggunakan python-pip, berikut adalah caranya

sudo apt-get install python-pip
pip install docker-compose

Sebagai Docker container

Docker-compose juga dapat dijalankan sebagai container. Untuk pemasangan compose, silakan ketik

mkdir $HOME/bin
curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > $HOME/bin/docker-compose
chmod +x $HOME/bin/docker-compose

Verifikasi

Berikut adalah cara verifikasi untuk meastikan versi Docker-compose

docker-compose -v
docker-compose version 1.7.1, build 6c29830

Bagaimana memasang docker-machine? (tambahan)

Seperti docker-compose, docker machine juga peralatan pendukung untuk docker. Docker machine sangat berguna bagi anda yang ingin melakukan memanajemen docker host dari tempat lain secara remote.

berikut adalah cara pemasangannya:

mkdir $HOME/bin
curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-`uname -s`-`uname -m` > $HOME/bin/docker-machine
chmod +x $HOME/bin/docker-machine

it is done, next post saya akan menulis tentang memulai menggunakan docker

Memasang Docker di Linux was originally published by at mahyuddin on August 17, 2016.

on 16 Aug 2016 11:27 PM

when you run a business then it is very important to own a custom domain associated with your company and also have email that has a custom address so as to add business credence and proffesionalism to your marketing. and this is why email hosting comes into play.

there are 2 ways to send email, by using email provider like google apps, zoho mail and others or you can just get a server and install email software like zimbra in the server. although the latter requires you to have a sysadmin that will have to standby 24/7 in managing the email server. because if you don’t monitor the server then you might miss those important email from your client and this can be troublesome.

if you used email hosting from shared IP then there is a higher degree that your email IP address might get blacklisted due to spam. and hence will get blocked when you send the email to your client’s email address. so my advice is to use trusted email hosting like google apps or zoho. I had used both of this service and they are just good. although google apps gives you much more functionalities and ask you to pay first to use it.

no matter what, email is still an important tools in delivering messages across business partners and that’s why you should invest money in using better email hosting.

 


on 16 Aug 2016 06:25 AM

30 Jul 2016


Linux Mint Community proudly announced the release and general availability of Linux Mint 18 codenamed “Sarah”. Linux Mint 18 is an LTS release, which will be supported until 2021.

What’s new in Linux Mint 18 Cinnamon

  1. Linux Mint 18 brings latest cinnamon 3.0 to your Desktop, with all its amazing features.
  2. X-Apps can be installed side-to-side to GNOME/MATE/Xfce Apps. In order to produce generic applications for traditional GTK desktop environments, “X-Apps” was started. X-Apps aims at replacing those applications that don’t tend to be adaptive. Other than that X-Apps strive to give you the same set of core applications for your Desktop Environment so that all the changes, new features, improvement are available for all the environment and not just one. Also, it enables you to use modern toolkits and technologies (GTK3, gsettings, …), traditional UI (titlebars, menubar), generic applications along with present functionalities enjoyed by users and backward compatibility.
  3. Totem, popularly known movie player and videos have been updated to 3.18.
  4. Xplayer updated to 1.0, is the default media Player for music and videos.
  5. Xed (based upon Pluma), is the default text editor.
  6. Xviewer (based upon Eye of GNOME), is the default image viewer.
  7. Xrender (based upon Atril), is the default document and PDF reader.
  8. Pix is based on gThumb, for organizing photos.
  9. Updated Update-Manager which lets you when there is newer kernel.
  10. Linux Mint 18 brings Mint Y theme. Mint-Y looks modern, Clean and professional. This theme has three variants, which are light, dark, mix of light and dark.
  11. System Improvements – apt install and apt remove now show progress output.
  12. New Commands were introduced viz., apt full-upgrade, apt edit-sources, apt-showhold, which does the same as apt dist-upgrade, apt- sources and apt held respectively.
  13. Artwork Improvement at login screen, in the default theme.
  14. Superb collection of background.
  15. Improved HiDPI support.
  16. All editions support OEM installations.
  17. Popular applications like Steam, Spotify, Dropbox were added to software center and is available for easy install.
  18. Linux Mint 18 is powered by Linux Kernel 4.4 and Ubuntu 16.04 package base.

System requirements

    1. RAM: Minimum 512 MB, Preferred 1 GB
    2. HDD: Minimum 9GB, Preferred 20 GB
    3. Resolution: 1024X768 and above

Upgrade

If you are running Beta, you may update it to Linux Mint 18 the latest stable release simply as
    • Remove samba
It was observed that Samba negatively impacted boot speed and hence it is removed from stable release. Remove samba as
# apt purge samba
  • Upgrade Linux Mint
Click on the refresh button in your update manager and apply any outstanding level 1 update.

Download Link (Choose your Nearest Mirror or Torrent)

Linux Mint Cinnamon 32 bit
Linux Mint Cinnamon 64 bit
Linux Mint Mate 32 bit
Linux Mint Mate 64 bit
Linux Mint seems to have a number of improvements and some interesting features. It would be interesting to install and test it, which we are going to do, in our next article. Till then stay tuned and connected to Unixmen. Don’t forget to give your valuable feedback in the comments below. Like and share us and help us get spread.
on 30 Jul 2016 06:23 AM

27 Jul 2016

How to delete git branch local and remote?

To delete local branch:

git branch -d branch_name

To delete remote branch:

git push origin --delete branch_name

Note: origin is a remote name, please use remote name with yours

Then, in the other machine, you can sync it with remote with:

git fetch --all --prune

Bagaimana cara membuang branch di remote dan local?

Untuk membuang local branch:

git branch -d branch_name

Untuk membuang remote branch:

git push origin --delete branch_name

Kemudian, di mesin lain anda dapat melakukan sync dengan remote:

git fetch --all --prune

This is a post to remember myself when panic

Git, Delete branch Local dan Remote was originally published by at mahyuddin on July 28, 2016.

on 27 Jul 2016 10:47 PM

I created a planet feed then there is something wrong with its RSS feed that prevent me from posting the feed in my twitter account. below is the error

This page contains the following errors:

error on line 357 at column 40: xmlParseEntityRef: no name
Below is a rendering of the page up to the first error.

turns out the cause of the error is because one of the blogs that I aggregated into has a post title with (&) ampersand. now this ampersand symbol would be allright if it was put into a post body but if you put it into a post title then the above error would come up.

it’s a bit silly that a single ampersand could have fail the whole RSS feed in planetplanet. so yeah I hope you will not put ampersand in the title of your blog posting and just put it in the post body instead.

 


on 27 Jul 2016 12:42 PM

It seems like such a long time ago that we reviewed Linux Mint 17. It was back in June 2014 that we published our thoughts on the “Qiara” release of Mint. Two years on, we’re now taking a look at its successor – Linux Mint 18 (Sarah).
Introduction
mint-1
We decided to take a good look at two releases of Mint 18. We chose to test out the MATE and Cinnamon releases. There are other options available for fans of XFCE and KDE, yet the two we tested probably remain the most popular.
Before we dive into our thoughts on how Mint 18 performs, we need to mention the most important change with this release has been the choice by developers to remove proprietary multimedia codecs from the default builds. This did initially cause a small amount of noise among Mint loyalists, but the fact remains that they can easily be installed in just a few quick key-strokes post-installation. More on this shortly. But as it remains a very minor technical set-back, we’re not going to rant on about it too much because it’s a moot point. And to be honest, there are much more interesting things to talk about with this release rather than dwelling on something minor like codecs.
mint-2
We booted our test builds without any problems. In fact, the early builds we used for testing were so stable, they were worthy of being installed on production machines. As a professional publishing organization, we probably should not be recommending you go ahead and do this, but we use this reference as an indication of just how stable it was, in the weeks prior to final release.
Our test builds were running the Linux kernel 4.4.0-21. This was without running any kind of APT update, so by the time this article makes it to press, we have no doubts you will seeing an updated kernel make its way through the repositories. Although the 4.4.0 branch is not bleeding edge, it is a stable kernel and if absolute stability is what you like in a Linux based operating system, then you will find no problems with the 4.4.0 kernel branch. If you want something a little more on the edge, you could essentially go ahead and install a more recent kernel. We’re actually running Mint 17.3 on one of our servers here in the office, which sits on top of Linux 4.6.0 and it’s rock solid. We didn’t have the resources to be testing Mint 18 with a more recent kernel, but if 17.3 stability is any kind of indication of its compatibility, we see no outstanding indications that Mint 18 would be any different. So if you’re feeling a little more adventurous, go ahead and do it and drop us an email to let us know how it runs.
MATE/Cinnamon
mint-4
The Cinnamon release was the first desktop environment that we gave a run. Our previous experience with Cinnamon was horrible and one we’d rather forget. Its performance was terrible and there were very little options for desktop customization. Admittedly, that was quite some time ago. We are pleased to now say that Cinnamon has grown up, matured and has become a very pleasant desktop environment to use with additional performance improvements to boot.
mint-5
Mint 18 has a new theme – called Mint-Y. Which is unfortunately not enabled as default. It can easily be enabled by the changing the Appearance settings. It’s a beautiful theme and we are not quite sure why the decision as made to have it as an option rather than enabled by default. In Cinnamon, the theme does not change as one. Rather the user needs to change each individual setting – Windows/Buttons/Icons etc. This is a little strange and only a small annoyance, but why the theme can not just be changed as one setting at the desktop level is a little silly, to be frank. Thankfully, things were much better in MATE. If you change the appearance to the new theme inside MATE, it changes everything at the desktop level. This is exactly as it should be.
Like we’ve stated, the theme is beautiful and we recommend you switch Mint 18 to it before you do anything else.
There’s a nice selection of stock wallpapers to choose from. Most users will probably choose their own preference for their own desktop, which is not uncommon. However, if you’re feeling lazy, there’s plenty of choice of stock images to spice up your desktop a little more.
Desktop environment performance was great in both Cinnamon and MATE. There was a slight noticeable lag when using Cinnamon compared to MATE, but that’s just us being technically picky. Most users would probably not even notice unless it was pointed out to them. So we couldn’t possibly take any points away from the Mint 18 developers for this. We commend their efforts for bringing two fantastic desktop environments to the table.
Multimedia codecs
As we mentioned at the beginning of the Review, multimedia codecs are no longer installed out-of-the-box in Linux Mint 18. Instead of complaining about this decision, just go ahead and install them by running the following command in your terminal console as soon as your new system has completed installation:
$ sudo apt-get update && sudo apt-get install mint-meta-codecs
The command above will install the most commonly required and used proprietary codecs.
mint-3
Depending on your network connection, it should be completely downloaded and installed in just a couple of minutes. One installed, you can close your terminal console and get onto more important tasks!

Downloads

Conclusion

We are really happy with the results of Linux Mint 18. Once you have switched to the new theme and installed the multimedia codecs, there’s not much left to do. Mint 18 has it all. It’s selection of software is very well thought out and leaves very little for users to worry about post-installation.
Then there is the ‘Ubuntu-factor’ that can not be ignored. Linux Mint 18 traditionally depends on its Ubuntu heritage for a majority of its packages by utilizing its software repositories, in addition to its own dedicated repository for more updated packages that don’t make their way into the Ubuntu ones. Combined, you will find that you have a extensive package selection at your fingertips – all from inside Mint 18.
Regular readers will have probably seen our recent published Review of Ubuntu 16.04 LTS. If you missed it, we can tell you that we were very disappointed with it and made the recommendation for people to jump ship in search of a good third-party distribution based on Ubuntu. If you are one of those people, then please note that we happily endorse Mint 18 as a perfect Ubuntu replacement.
If you were looking to jump the Ubuntu ship completely, then we recommend taking a look at our recent Review of Fedora 24. It’s equally as good as Mint 18 and equally worthy of your consideration.
Between Linux Mint 18 and Fedora 24, we reckon it’s exciting times in the Linux world. With the exception and onset of the boring world of vanilla Ubuntu releases, Linux feels reinvigorated and fresh once again. Jump on board, because it can only get better from here.
on 27 Jul 2016 06:15 AM

26 Jul 2016

Install RVM di Ubuntu

Mahyuddin Susanto

Install RVM di Ubuntu

Dalam keseharian, terkadang ada aplikasi yang memerlukan ruby versi tertentu. Sebagai contoh ketika kemarin saya melakukan migrasi dari wordpress ke jekyll saya memerlukan ruby minimal versi 2.0 untuk memasang jekyll. Server saya menggunakan Ubuntu 14.04 LTS, secara default Ubuntu 14.04 menggunakan ruby versi 1.9.1 sehingga saya tidak bisa menggunakan jekyll versi terakhir.

Solusi dari permasalahan ini adalah menggunakan RVM, RVM merupakan singkatan dari Ruby Version Manager yang bertugas untuk mengatur versi ruby di sebuah system, sehingga antar versi tidak salah tercampur. Hal ini mirip dengan python virtual environment.

Berikut adalah langkah-langkah cara pemasangan RVM di Ubuntu.

Persiapan

Pengaturan repository

Sebelum melakukan pemasangan, moghon pastikan jika ubuntu anda memiliki menggunakan repository yang benar. Pengaturan repository di Ubuntu dapat di cek di /etc/apt/sources.list, berikut adalah isi dari berkas /etc/apt/sources.list di system saya:

deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse

Upgrade paket ke versi terakhir

Sebelum melakukan pemasangan, alangkah baiknya bila kita melakukan update database paket dan upgrade paket ke versi terakhir, untuk itu silakan ketik perintah dibawah ini:

:~$ sudo apt-get update
:~$ sudo apt-get dist-upgrade -y

Install curl

Paket curl ini dibutuhkan nantinya untuk pemasangan RVM

:~$ sudo apt-get install curl -y

Pemasangan RVM

Setelah melakukan persiapan dasar, langkah selanjutnya adalah pemasangan RVM, pada pemasangan ini kita perlu mengimport kunci GPG dari developer RVM.

:~$ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

Output:

gpg: directory `/home/mahyuddin/.gnupg' created
gpg: new configuration file `/home/mahyuddin/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/mahyuddin/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/mahyuddin/.gnupg/secring.gpg' created
gpg: keyring `/home/mahyuddin/.gnupg/pubring.gpg' created
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpg: /home/mahyuddin/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Install RVM

Langkah selanjutnya adalah memasang RVM

:~$ curl -sSL https://get.rvm.io | bash -s stable

Output:

Downloading https://github.com/rvm/rvm/archive/1.27.0.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.27.0/1.27.0.tar.gz.asc
gpg: Signature made Tue 29 Mar 2016 01:49:47 PM UTC using RSA key ID BF04FF17
gpg: Good signature from "Michal Papis (RVM signing) <mpapis@gmail.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 409B 6B17 96C2 7546 2A17  0311 3804 BB82 D39D C0E3
     Subkey fingerprint: 62C9 E5F4 DA30 0D94 AC36  166B E206 C29F BF04 FF17
GPG verified '/home/mahyuddin/.rvm/archives/rvm-1.27.0.tgz'

Installing RVM to /home/mahyuddin/.rvm/
    Adding rvm PATH line to /home/mahyuddin/.profile /home/mahyuddin/.mkshrc /home/mahyuddin/.bashrc /home/mahyuddin/.zshrc.
    Adding rvm loading line to /home/mahyuddin/.profile /home/mahyuddin/.bash_profile /home/mahyuddin/.zlogin.
Installation of RVM in /home/mahyuddin/.rvm/ is almost complete:

  * To start using RVM you need to run `source /home/mahyuddin/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# mahyuddin,
#
#   Thank you for using RVM!
#   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.

In case of problems: https://rvm.io/help and https://twitter.com/rvm_io

Setup environment

Untuk melanjutkan setup RVM, kita perlu membuat RVM kedalam environment bash. Pada beberapa case tertentu, kita harus memuat RVM pada sesi shell sebagai function. Untuk itu pastikan bahwasanya pada berkas ~/.bashrc mengandung dua baris berikut:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Setelah itu, load berkas ~/.bashrc kedalam sesi sekarang dengan perintah sebegai berikut:

:~$ source ~/.bashrc

Install paket dependency ruby

Untuk memasang RVM, beberapa dependency juga perlu dipasang. Untuk pemasangan nya silakan lakukan perintah dibawah ini:

:~$ rvm requirements

Output:

Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system.......
Installing required packages: patch, gawk, g++, gcc, make, libc6-dev, patch, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgmp-dev, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev................................
Requirements installation successful.
:~$

Memilih versi ruby

Untuk melakukan cek versi berapa saja versi ruby yang tersedia, kita dapat melakukan cek dengan perintah dibawah ini

:~$ rvm list known

Output:

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.8]
[ruby-]2.2[.4]
[ruby-]2.3[.0]
[ruby-]2.2-head
ruby-head

Pada kali ini kita akan meenggunakan ruby versi 2.3, jika anda menginkan versi lain, pastikan bahwa versi nya ada dalam daftar.

:~$ rvm install 2.3

Output:

Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/ubuntu/14.04/x86_64/ruby-2.3.0.tar.bz2
Checking requirements for ubuntu.
Requirements installation successful.
ruby-2.3.0 - #configure
ruby-2.3.0 - #download
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 25.1M  100 25.1M    0     0  1373k      0  0:00:18  0:00:18 --:--:-- 3681k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.0 - #validate archive
ruby-2.3.0 - #extract
ruby-2.3.0 - #validate binary
ruby-2.3.0 - #setup
ruby-2.3.0 - #gemset created /home/mahyuddin/.rvm/gems/ruby-2.3.0@global
ruby-2.3.0 - #importing gemset /home/mahyuddin/.rvm/gemsets/global.gems....................................
ruby-2.3.0 - #generating global wrappers........
ruby-2.3.0 - #gemset created /home/mahyuddin/.rvm/gems/ruby-2.3.0
ruby-2.3.0 - #importing gemsetfile /home/mahyuddin/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.0 - #generating default wrappers........

Langkah selanjutnya adalah memastikan ruby versi 2.3 digunakan sebagai versi ruby default untuk user. Untuk melakukannya, apat mengeksekusi perintah dibawah ini:

:~$ rvm use 2.3 --default
mahyuddin@ubuntu:~$ rvm use 2.3 --default
Using /home/mahyuddin/.rvm/gems/ruby-2.3.0

Cek versi ruby

Untuk melakukan pengecekkan versi ruby yang sedang digunakan oleh sesi user sekarang, silakan ketik perintah dibawah ini dan pastikan bahwasanya output dari kedua peintah mengandung versi 2.3

:~$ which ruby
:~$ ruby --version

Output

:~$ which ruby
/home/mahyuddin/.rvm/rubies/ruby-2.3.0/bin/ruby
:~$ ruby --version
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

Hasil dari output diatas menunjukkan bahwa ruby yang digunakan sekarang adalah versi ruby 2.3

Manajemen ruby menggunakan RVM

Cek versi ruby yang terinstall

Untuk melakukan cek versi berapa saja ruby yang sudah dipasang, silakabn ketk perintah dibawah ini:

:~$ rvm list

Output

rvm rubies

   ruby-2.0.0-p648 [ x86_64 ]
   ruby-2.1.8 [ x86_64 ]
   ruby-2.2.4 [ x86_64 ]
=* ruby-2.3.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Switch ke versi ruby lain

Jika versi lain sudah terinstall, silakan gunakan perintah rvm use, contoh:

:~$ rvm use 2.2
Using /home/mahyuddin/.rvm/gems/ruby-2.2.4

:~$ which ruby
/home/mahyuddin/.rvm/rubies/ruby-2.2.4/bin/ruby

:~$ ruby --version
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]

Bash completion

Salah satu fitur dari RVM adalah adanya fitur tab completion untuk mengaktifkan tab completion, pastikan dalam berkas ~/.bashrc anda terdapat baris berikut:

[[ -r $HOME/.rvm/scripts/completion ]] && . $HOME/.rvm/scripts/completion

Silakan dicoba

Install RVM di Ubuntu was originally published by at mahyuddin on July 27, 2016.

on 26 Jul 2016 06:46 PM

20 Jul 2016

Migrasi Ke Jekyll

Mahyuddin Susanto

Migrasi ke Jekyll

Sudah lama saya menggunakan wordpress, dan saat ini saya memutuskan untuk menggunakan jekyll. Saya memilih jekyll karena jekyll sangat cepat (karena static) dan support markdown (bahasa yang saya suka). Beberapa pertimbangan lain yang ada adalah hosting situs ini menggunakan shared hosting, jadi sangat rentan apabila menggunakan wordpress, seperti yang kita tahu wordpress adalah salah satu cms favorit untuk dijadikan target serangan. Walau sebenarnya kita bisa melakukan pencegahan, tapi saya hanya ingin pengaturan minimal untuk situs ini. CMIIW

Untuk migrasi ke dari wordpress ke jekyll pun sangat mudah dan tidak membutuhkan proses yang bertele-tele dan panjang, saya menggunakan exitwp untuk melakukan export post dan halaman ke format markdown. Kebetulan saya menggunakan Ubuntu untuk melakukan proses migrasi ini jadi tinggal mengikuti prosedur yang ada.

Migrasi Ke Jekyll was originally published by at mahyuddin on July 21, 2016.

on 20 Jul 2016 08:58 PM